static int
_nns_edge_cmd_send_aitt (nns_edge_handle_s * eh, nns_edge_data_h * data_h)
{
- unsigned int n, num_mem;
int ret;
- void *raw_data;
+ void *data;
size_t size;
if (!eh) {
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
- ret = nns_edge_data_get_count (data_h, &num_mem);
- /** @todo Serialize the multi memory data. Now supporting one memory block */
- for (n = 0; n < num_mem; n++) {
- nns_edge_data_get (data_h, n, &raw_data, &size);
- if (NNS_EDGE_ERROR_NONE != nns_edge_aitt_publish (eh, raw_data, size)) {
- nns_edge_loge ("Failed to send %uth memory to socket.", n);
- return NNS_EDGE_ERROR_IO;
- }
+
+ ret = nns_edge_data_serialize (data_h, &data, &size);
+
+ if (NNS_EDGE_ERROR_NONE != ret) {
+ nns_edge_loge ("Failed to serialize the edge data.");
+ goto done;
+ }
+
+ ret = nns_edge_aitt_publish (eh, data, size);
+ if (NNS_EDGE_ERROR_NONE != ret) {
+ nns_edge_loge ("Failed to send data to destination.");
}
+done:
+ nns_edge_free (data);
return ret;
}
free (_td);
}
+
/**
* @brief Edge event callback for test.
*/
/* Compare received data */
ret = nns_edge_data_get_count (data_h, &count);
EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
+ EXPECT_EQ (count, 2U);
+
ret = nns_edge_data_get (data_h, 0, &data, &data_len);
EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
-
- EXPECT_EQ (count, 1U);
for (i = 0; i < 10U; i++)
EXPECT_EQ (((unsigned int *) data)[i], i);
+ ret = nns_edge_data_get (data_h, 1, &data, &data_len);
+ EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
+ for (i = 0; i < 20U; i++)
+ EXPECT_EQ (((unsigned int *) data)[i], 20 - i);
+
ret = nns_edge_data_destroy (data_h);
EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
break;
ne_test_data_s *_td_server, *_td_client1, *_td_client2;
nns_edge_data_h data_h;
size_t data_len;
- void *data;
+ void *data1, *data2;
unsigned int i, retry;
int ret, port;
char *val;
/* Send request to server */
data_len = 10U * sizeof (unsigned int);
- data = malloc (data_len);
- ASSERT_TRUE (data != NULL);
+ data1 = malloc (data_len);
+ ASSERT_TRUE (data1 != NULL);
+
+ data2 = malloc (data_len * 2);
+ ASSERT_TRUE (data2 != NULL);
for (i = 0; i < 10U; i++)
- ((unsigned int *) data)[i] = i;
+ ((unsigned int *) data1)[i] = i;
+
+ for (i = 0; i < 20U; i++)
+ ((unsigned int *) data2)[i] = 20 - i;
ret = nns_edge_data_create (&data_h);
EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
- ret = nns_edge_data_add (data_h, data, data_len, nns_edge_free);
+ ret = nns_edge_data_add (data_h, data1, data_len, nns_edge_free);
EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
- for (i = 0; i < 5U; i++) {
+ ret = nns_edge_data_add (data_h, data2, data_len * 2, nns_edge_free);
+ EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
+
+ for (i = 0; i < 1U; i++) {
ret = nns_edge_send (server_h, data_h);
EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
usleep (10000);
_free_test_data (_td_client2);
}
-
/**
* @brief Connect to the mqtt broker with invalid param.
*/