An error occurs in the communication because of different data sizes in the 32-bit and the 64-bit systems. Fixate the data size.
The type of size variable is set to 64bit as the default.
Tested using 32bit Tizen TV and 64bit Ubuntu.
Signed-off-by: gichan <gichan2.jang@samsung.com>
#ifndef __NNSTREAMER_EDGE_H__
#define __NNSTREAMER_EDGE_H__
+#include <stdint.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
typedef void *nns_edge_h;
typedef void *nns_edge_event_h;
typedef void *nns_edge_data_h;
+typedef uint64_t nns_size_t;
+typedef int64_t nns_ssize_t;
/**
* @brief The maximum number of data instances that nnstreamer-edge data may have.
* @retval #NNS_EDGE_ERROR_NOT_SUPPORTED Not supported.
* @retval #NNS_EDGE_ERROR_INVALID_PARAMETER Given parameter is invalid.
*/
-int nns_edge_data_add (nns_edge_data_h data_h, void *data, size_t data_len, nns_edge_data_destroy_cb destroy_cb);
+int nns_edge_data_add (nns_edge_data_h data_h, void *data, nns_size_t data_len, nns_edge_data_destroy_cb destroy_cb);
/**
* @brief Get the n'th edge data.
* @retval #NNS_EDGE_ERROR_NOT_SUPPORTED Not supported.
* @retval #NNS_EDGE_ERROR_INVALID_PARAMETER Given parameter is invalid.
*/
-int nns_edge_data_get (nns_edge_data_h data_h, unsigned int index, void **data, size_t *data_len);
+int nns_edge_data_get (nns_edge_data_h data_h, unsigned int index, void **data, nns_size_t *data_len);
/**
* @brief Get the number of edge data in handle.
*/
static int
_nns_edge_invoke_event_cb (nns_edge_handle_s * eh, nns_edge_event_e event,
- void *data, size_t data_len, nns_edge_data_destroy_cb destroy_cb)
+ void *data, nns_size_t data_len, nns_edge_data_destroy_cb destroy_cb)
{
nns_edge_event_h event_h;
int ret;
* @brief Add raw data into nnstreamer edge data.
*/
int
-nns_edge_data_add (nns_edge_data_h data_h, void *data, size_t data_len,
+nns_edge_data_add (nns_edge_data_h data_h, void *data, nns_size_t data_len,
nns_edge_data_destroy_cb destroy_cb)
{
nns_edge_data_s *ed;
*/
int
nns_edge_data_get (nns_edge_data_h data_h, unsigned int index, void **data,
- size_t *data_len)
+ nns_size_t * data_len)
{
nns_edge_data_s *ed;
*/
int
nns_edge_data_serialize_meta (nns_edge_data_h data_h, void **data,
- size_t *data_len)
+ nns_size_t * data_len)
{
nns_edge_data_s *ed;
int ret;
*/
int
nns_edge_data_deserialize_meta (nns_edge_data_h data_h, void *data,
- size_t data_len)
+ nns_size_t data_len)
{
nns_edge_data_s *ed;
int ret;
* @brief Serialize edge data (meta data + raw data).
*/
int
-nns_edge_data_serialize (nns_edge_data_h data_h, void **data, size_t *len)
+nns_edge_data_serialize (nns_edge_data_h data_h, void **data, nns_size_t * len)
{
nns_edge_data_s *ed;
nns_edge_data_header_s edata_header;
void *meta_serialized = NULL;
- size_t total, header_len, data_len;
+ nns_size_t total, header_len, data_len;
char *serialized, *ptr;
unsigned int n;
int ret;
nns_edge_data_header_s *header;
int ret;
unsigned int n;
- size_t meta_len;
+ nns_size_t meta_len;
char *ptr;
ed = (nns_edge_data_s *) data_h;
* @brief Internal data structure for edge data.
*/
typedef struct {
- unsigned int magic;
+ uint32_t magic;
pthread_mutex_t lock;
- unsigned int num;
+ uint32_t num;
nns_edge_raw_data_s data[NNS_EDGE_DATA_LIMIT];
nns_edge_metadata_h metadata;
} nns_edge_data_s;
* @brief Internal data structure for the header of the serialzied edge data.
*/
typedef struct {
- unsigned int num_mem;
- size_t data_len[NNS_EDGE_DATA_LIMIT];
- size_t meta_len;
+ uint32_t num_mem;
+ nns_size_t data_len[NNS_EDGE_DATA_LIMIT];
+ nns_size_t meta_len;
} nns_edge_data_header_s;
/**
* @brief Serialize metadata in edge data.
* @note This is internal function, DO NOT export this. Caller should release the returned value using free().
*/
-int nns_edge_data_serialize_meta (nns_edge_data_h data_h, void **data, size_t *data_len);
+int nns_edge_data_serialize_meta (nns_edge_data_h data_h, void **data, nns_size_t *data_len);
/**
* @brief Deserialize metadata in edge data.
* @note This is internal function, DO NOT export this. Caller should release the returned value using free().
*/
-int nns_edge_data_deserialize_meta (nns_edge_data_h data_h, void *data, size_t data_len);
+int nns_edge_data_deserialize_meta (nns_edge_data_h data_h, void *data, nns_size_t data_len);
/**
* @brief Serialize entire edge data (meta data + raw data).
* @note This is internal function, DO NOT export this. Caller should release the returned value using free().
*/
-int nns_edge_data_serialize (nns_edge_data_h data_h, void **data, size_t *data_len);
+int nns_edge_data_serialize (nns_edge_data_h data_h, void **data, nns_size_t *data_len);
/**
* @brief Deserialize entire edge data (meta data + raw data).
* @brief Set event data.
*/
int
-nns_edge_event_set_data (nns_edge_event_h event_h, void *data, size_t data_len,
- nns_edge_data_destroy_cb destroy_cb)
+nns_edge_event_set_data (nns_edge_event_h event_h, void *data,
+ nns_size_t data_len, nns_edge_data_destroy_cb destroy_cb)
{
nns_edge_event_s *ee;
* @brief Set event data.
* @note This is internal function for edge event.
*/
-int nns_edge_event_set_data (nns_edge_event_h event_h, void *data, size_t data_len, nns_edge_data_destroy_cb destroy_cb);
+int nns_edge_event_set_data (nns_edge_event_h event_h, void *data, nns_size_t data_len, nns_edge_data_destroy_cb destroy_cb);
#ifdef __cplusplus
}
*/
typedef struct
{
- unsigned int magic;
+ uint32_t magic;
nns_edge_cmd_e cmd;
int64_t client_id;
/* memory info */
uint32_t num;
- size_t mem_size[NNS_EDGE_DATA_LIMIT];
- size_t meta_size;
+ nns_size_t mem_size[NNS_EDGE_DATA_LIMIT];
+ nns_size_t meta_size;
} nns_edge_cmd_info_s;
/**
* @brief Send data to connected socket.
*/
static bool
-_send_raw_data (nns_edge_conn_s * conn, void *data, size_t size)
+_send_raw_data (nns_edge_conn_s * conn, void *data, nns_size_t size)
{
- size_t sent = 0;
- ssize_t rret;
+ nns_size_t sent = 0;
+ nns_ssize_t rret;
while (sent < size) {
rret = send (conn->sockfd, (char *) data + sent, size - sent, MSG_NOSIGNAL);
* @brief Receive data from connected socket.
*/
static bool
-_receive_raw_data (nns_edge_conn_s * conn, void *data, size_t size)
+_receive_raw_data (nns_edge_conn_s * conn, void *data, nns_size_t size)
{
- size_t received = 0;
- ssize_t rret;
+ nns_size_t received = 0;
+ nns_ssize_t rret;
while (received < size) {
rret = recv (conn->sockfd, (char *) data + received, size - received, 0);
{
int ret;
void *data = NULL;
- size_t size;
+ nns_size_t size;
if (!eh) {
nns_edge_loge ("Failed to send command, edge handle is null.");
*/
static int
_nns_edge_invoke_event_cb (nns_edge_handle_s * eh, nns_edge_event_e event,
- void *data, size_t data_len, nns_edge_data_destroy_cb destroy_cb)
+ void *data, nns_size_t data_len, nns_edge_data_destroy_cb destroy_cb)
{
nns_edge_event_h event_h;
int ret;
/* Received error message from client, remove connection from table. */
if (remove_connection) {
- nns_edge_logd
+ nns_edge_loge
("Received error from client, remove connection of client (ID: %lld).",
(long long) client_id);
_nns_edge_remove_connection (eh, client_id);
*/
typedef struct {
void *data;
- size_t data_len;
+ nns_size_t data_len;
nns_edge_data_destroy_cb destroy_cb;
} nns_edge_raw_data_s;
* @brief Internal data structure for edge event.
*/
typedef struct {
- unsigned int magic;
+ uint32_t magic;
nns_edge_event_e event;
nns_edge_raw_data_s data;
} nns_edge_event_s;
* @brief Data structure for edge handle.
*/
typedef struct {
- unsigned int magic;
+ uint32_t magic;
pthread_mutex_t lock;
char *id;
char *topic;
*/
typedef struct
{
- unsigned int list_len;
+ uint32_t list_len;
nns_edge_metadata_node_s *list;
} nns_edge_metadata_s;
*/
int
nns_edge_metadata_serialize (nns_edge_metadata_h metadata_h,
- void **data, size_t *data_len)
+ void **data, nns_size_t * data_len)
{
nns_edge_metadata_s *meta;
nns_edge_metadata_node_s *node;
char *serialized, *ptr;
- size_t total, len;
+ nns_size_t total;
+ uint32_t len;
meta = (nns_edge_metadata_s *) metadata_h;
if (meta->list_len == 0)
return NNS_EDGE_ERROR_NONE;
- total = len = sizeof (unsigned int);
+ total = len = sizeof (uint32_t);
node = meta->list;
while (node) {
return NNS_EDGE_ERROR_OUT_OF_MEMORY;
/* length + list of key-value pair */
- ((unsigned int *) serialized)[0] = meta->list_len;
+ ((uint32_t *) serialized)[0] = meta->list_len;
ptr += len;
node = meta->list;
*/
int
nns_edge_metadata_deserialize (nns_edge_metadata_h metadata_h,
- void *data, size_t data_len)
+ void *data, nns_size_t data_len)
{
nns_edge_metadata_s *meta;
char *key, *value;
- size_t cur;
- unsigned int total;
+ nns_size_t cur, total;
int ret;
meta = (nns_edge_metadata_s *) metadata_h;
nns_edge_metadata_free (meta);
/* length + list of key-value pair */
- total = ((unsigned int *) data)[0];
+ total = ((uint32_t *) data)[0];
- cur = sizeof (unsigned int);
+ cur = sizeof (uint32_t);
while (cur < data_len || meta->list_len < total) {
key = (char *) data + cur;
cur += (strlen (key) + 1);
/**
* @brief Internal function to serialize the metadata. Caller should release the returned value using free().
*/
-int nns_edge_metadata_serialize (nns_edge_metadata_h metadata_h, void **data, size_t *data_len);
+int nns_edge_metadata_serialize (nns_edge_metadata_h metadata_h, void **data, nns_size_t *data_len);
/**
* @brief Internal function to deserialize memory into metadata.
*/
-int nns_edge_metadata_deserialize (nns_edge_metadata_h metadata_h, void *data, size_t data_len);
+int nns_edge_metadata_deserialize (nns_edge_metadata_h metadata_h, void *data, nns_size_t data_len);
#ifdef __cplusplus
}
* @note Caller should release newly allocated memory using nns_edge_free().
*/
void *
-nns_edge_memdup (const void *data, size_t size)
+nns_edge_memdup (const void *data, nns_size_t size)
{
void *mem = NULL;
* @note Caller should release newly allocated string using nns_edge_free().
*/
char *
-nns_edge_strndup (const char *str, size_t len)
+nns_edge_strndup (const char *str, nns_size_t len)
{
char *new_str = NULL;
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include "nnstreamer-edge.h"
#ifdef __cplusplus
extern "C" {
* @brief Allocate new memory and copy bytes.
* @note Caller should release newly allocated memory using nns_edge_free().
*/
-void *nns_edge_memdup (const void *data, size_t size);
+void *nns_edge_memdup (const void *data, nns_size_t size);
/**
* @brief Allocate new memory and copy string.
* @brief Allocate new memory and copy bytes of string.
* @note Caller should release newly allocated string using nns_edge_free().
*/
-char *nns_edge_strndup (const char *str, size_t len);
+char *nns_edge_strndup (const char *str, nns_size_t len);
/**
* @brief Allocate new memory and print formatted string.
nns_edge_event_e event = NNS_EDGE_EVENT_UNKNOWN;
nns_edge_data_h data_h;
void *data;
- size_t data_len;
+ nns_size_t data_len;
unsigned int i, count;
int ret;
nns_edge_h server_h, client1_h, client2_h;
ne_test_data_s *_td_server, *_td_client1, *_td_client2;
nns_edge_data_h data_h;
- size_t data_len;
+ nns_size_t data_len;
void *data1, *data2;
unsigned int i, retry;
int ret, port;
nns_edge_event_e event = NNS_EDGE_EVENT_UNKNOWN;
nns_edge_data_h data_h;
void *data;
- size_t data_len;
+ nns_size_t data_len;
char *val;
unsigned int i, count;
int ret;
nns_edge_h server_h, client1_h, client2_h;
ne_test_data_s *_td_server, *_td_client1, *_td_client2;
nns_edge_data_h data_h;
- size_t data_len;
+ nns_size_t data_len;
void *data;
unsigned int i, retry;
int ret, port;
{
nns_edge_data_h src_h, desc_h;
void *data, *result;
- size_t data_len, result_len;
+ nns_size_t data_len, result_len;
char *result_value;
unsigned int i, result_count;
int ret;
{
nns_edge_data_h data_h;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int i, ret;
data_len = 10U * sizeof (int);
TEST(edgeData, addInvalidParam01_n)
{
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U * sizeof (int);
nns_edge_data_h data_h;
nns_edge_data_s *ed;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U * sizeof (int);
{
nns_edge_data_h data_h;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U * sizeof (int);
{
nns_edge_data_h data_h;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U * sizeof (int);
{
nns_edge_data_h data_h;
void *data, *result;
- size_t data_len, result_len;
+ nns_size_t data_len, result_len;
unsigned int count;
int ret;
TEST(edgeData, getInvalidParam01_n)
{
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_data_get (NULL, 0, &data, &data_len);
nns_edge_data_h data_h;
nns_edge_data_s *ed;
void *data, *result;
- size_t data_len, result_len;
+ nns_size_t data_len, result_len;
int ret;
data_len = 10U * sizeof (int);
{
nns_edge_data_h data_h;
void *data, *result;
- size_t data_len, result_len;
+ nns_size_t data_len, result_len;
int ret;
data_len = 10U * sizeof (int);
{
nns_edge_data_h data_h;
void *data;
- size_t data_len, result_len;
+ nns_size_t data_len, result_len;
int ret;
data_len = 10U * sizeof (int);
{
nns_edge_data_h data_h;
void *data, *result;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U * sizeof (int);
nns_edge_data_h data_h;
nns_edge_data_s *ed;
void *data;
- size_t data_len;
+ nns_size_t data_len;
unsigned int count;
int ret;
{
nns_edge_data_h data_h;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U * sizeof (int);
TEST(edgeData, serializeInvalidParam01_n)
{
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_data_serialize_meta (NULL, &data, &data_len);
nns_edge_data_h data_h;
nns_edge_data_s *ed;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_data_create (&data_h);
TEST(edgeData, serializeInvalidParam03_n)
{
nns_edge_data_h data_h;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_data_create (&data_h);
{
nns_edge_data_h data_h;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_data_create (&data_h);
nns_edge_data_h data_h;
nns_edge_data_s *ed;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_data_create (&data_h);
{
nns_edge_data_h data_h;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_data_create (&data_h);
{
nns_edge_data_h data_h;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_data_create (&data_h);
{
nns_edge_data_h src_h, dest_h;
void *data1, *data2, *result, *serialized_data;
- size_t data_len, result_len, serialized_len;
+ nns_size_t data_len, result_len, serialized_len;
char *result_value;
unsigned int i, result_count;
int ret;
TEST(edgeDataSerialize, invalidParam01_n)
{
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_data_serialize (NULL, &data, &data_len);
nns_edge_data_h data_h;
nns_edge_data_s *ed;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_data_create (&data_h);
TEST(edgeDataSerialize, invalidParam03_n)
{
nns_edge_data_h data_h;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_data_create (&data_h);
nns_edge_data_h data_h;
nns_edge_data_s *ed;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_data_create (&data_h);
nns_edge_event_h event_h;
nns_edge_event_s *ee;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U * sizeof (int);
TEST(edgeEvent, setDataInvalidParam01_n)
{
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U * sizeof (int);
{
nns_edge_event_h event_h;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U * sizeof (int);
{
nns_edge_event_h event_h;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U * sizeof (int);
nns_edge_event_h event_h;
nns_edge_event_s *ee;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U * sizeof (int);
nns_edge_event_h event_h;
nns_edge_data_h data_h, result_h;
void *data, *result;
- size_t data_len, result_len;
+ nns_size_t data_len, result_len;
char *result_value;
unsigned int i, count;
int ret;
nns_edge_metadata_h src, desc;
char *value;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_metadata_create (&src);
TEST(edgeMeta, serializeInvalidParam01_n)
{
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_metadata_serialize (NULL, &data, &data_len);
TEST(edgeMeta, serializeInvalidParam02_n)
{
nns_edge_metadata_h meta;
- size_t data_len;
+ nns_size_t data_len;
int ret;
ret = nns_edge_metadata_create (&meta);
TEST(edgeMeta, deserializeInvalidParam01_n)
{
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U + sizeof (unsigned int);
TEST(edgeMeta, deserializeInvalidParam02_n)
{
nns_edge_metadata_h meta;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U + sizeof (unsigned int);
{
nns_edge_metadata_h meta;
void *data;
- size_t data_len;
+ nns_size_t data_len;
int ret;
data_len = 10U + sizeof (unsigned int);
nns_edge_event_e event = NNS_EDGE_EVENT_UNKNOWN;
nns_edge_data_h data_h;
void *data;
- size_t data_len;
+ nns_size_t data_len;
char *val;
unsigned int i, count;
int ret;
nns_edge_h server_h, client_h;
ne_test_data_s *_td_server, *_td_client;
nns_edge_data_h data_h;
- size_t data_len;
+ nns_size_t data_len;
void *data;
unsigned int i, retry;
int ret = 0;