Skip to content

Commit

Permalink
Extract loop for getting all resource values
Browse files Browse the repository at this point in the history
The loop is put in an own function for maintainability reasons.
  • Loading branch information
LukasWoodtli committed Sep 9, 2024
1 parent 8226250 commit e6eec2d
Showing 1 changed file with 14 additions and 13 deletions.
27 changes: 14 additions & 13 deletions examples/client/object_server.c
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,19 @@ static void remove_all_optional_resources(uint16_t *resList, server_instance_t *
remove_optional_resource(resList, targetP->communicationSequenceRetryCount, LWM2M_SERVER_SEQ_RETRY_COUNT_ID, nbRes);
}

static uint8_t prv_get_all_values(const int *numDataP, lwm2m_data_t *const *dataArrayP, server_instance_t *targetP) {
int i = 0;
uint8_t result;
do {
if ((*dataArrayP)[i].type == LWM2M_TYPE_MULTIPLE_RESOURCE) {
result = COAP_404_NOT_FOUND;
} else {
result = prv_get_value((*dataArrayP) + i, targetP);
}
i++;
} while (i < *numDataP && result == COAP_205_CONTENT);
return result;
}
static uint8_t prv_server_read(lwm2m_context_t *contextP,
uint16_t instanceId,
int * numDataP,
Expand Down Expand Up @@ -296,19 +309,7 @@ static uint8_t prv_server_read(lwm2m_context_t *contextP,
}
}

i = 0;
do
{
if ((*dataArrayP)[i].type == LWM2M_TYPE_MULTIPLE_RESOURCE)
{
result = COAP_404_NOT_FOUND;
}
else
{
result = prv_get_value((*dataArrayP) + i, targetP);
}
i++;
} while (i < *numDataP && result == COAP_205_CONTENT);
result = prv_get_all_values(numDataP, dataArrayP, targetP);

return result;
}
Expand Down

0 comments on commit e6eec2d

Please sign in to comment.