}
memset (ed, 0, sizeof (nns_edge_data_s));
+ nns_edge_lock_init (ed);
ed->magic = NNS_EDGE_MAGIC;
nns_edge_metadata_init (&ed->metadata);
unsigned int i;
ed = (nns_edge_data_s *) data_h;
+ if (!ed) {
+ nns_edge_loge ("Invalid param, given edge data handle is null.");
+ return NNS_EDGE_ERROR_INVALID_PARAMETER;
+ }
+
+ nns_edge_lock (ed);
if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
nns_edge_loge ("Invalid param, given edge data is invalid.");
+ nns_edge_unlock (ed);
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
nns_edge_metadata_free (&ed->metadata);
+ nns_edge_unlock (ed);
+ nns_edge_lock_destroy (ed);
SAFE_FREE (ed);
return NNS_EDGE_ERROR_NONE;
}
nns_edge_data_s *ed;
ed = (nns_edge_data_s *) data_h;
+ if (!ed) {
+ nns_edge_loge ("Invalid param, given edge data handle is null.");
+ return NNS_EDGE_ERROR_INVALID_PARAMETER;
+ }
+
+ nns_edge_lock (ed);
if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
nns_edge_loge ("Invalid param, edge data handle is invalid.");
+ nns_edge_unlock (ed);
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
+ nns_edge_unlock (ed);
return NNS_EDGE_ERROR_NONE;
}
int ret;
ed = (nns_edge_data_s *) data_h;
-
- if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
- nns_edge_loge ("Invalid param, edge data handle is invalid.");
+ if (!ed) {
+ nns_edge_loge ("Invalid param, given edge data handle is null.");
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
+ nns_edge_lock (ed);
+
+ if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
+ nns_edge_loge ("Invalid param, edge data handle is invalid.");
+ nns_edge_unlock (ed);
+ return NNS_EDGE_ERROR_INVALID_PARAMETER;
+ }
+
ret = nns_edge_data_create (new_data_h);
if (ret != NNS_EDGE_ERROR_NONE) {
nns_edge_loge ("Failed to create new data handle.");
+ nns_edge_unlock (ed);
return ret;
}
copied->data[i].destroy_cb = nns_edge_free;
}
- return nns_edge_metadata_copy (&copied->metadata, &ed->metadata);
+ ret = nns_edge_metadata_copy (&copied->metadata, &ed->metadata);
+
+ nns_edge_unlock (ed);
+ return ret;
}
/**
nns_edge_data_s *ed;
ed = (nns_edge_data_s *) data_h;
+ if (!ed) {
+ nns_edge_loge ("Invalid param, given edge data handle is null.");
+ return NNS_EDGE_ERROR_INVALID_PARAMETER;
+ }
+
+ if (!data || data_len <= 0) {
+ nns_edge_loge ("Invalid param, data should not be null.");
+ return NNS_EDGE_ERROR_INVALID_PARAMETER;
+ }
+
+ nns_edge_lock (ed);
if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
nns_edge_loge ("Invalid param, given edge data is invalid.");
+ nns_edge_unlock (ed);
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
if (ed->num >= NNS_EDGE_DATA_LIMIT) {
nns_edge_loge ("Cannot add data, the maximum number of edge data is %d.",
NNS_EDGE_DATA_LIMIT);
- return NNS_EDGE_ERROR_INVALID_PARAMETER;
- }
-
- if (!data || data_len <= 0) {
- nns_edge_loge ("Invalid param, data should not be null.");
+ nns_edge_unlock (ed);
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
ed->data[ed->num].destroy_cb = destroy_cb;
ed->num++;
+ nns_edge_unlock (ed);
return NNS_EDGE_ERROR_NONE;
}
/**
- * @brief Get the nnstreamer edge data.
+ * @brief Get the n'th edge data.
* @note DO NOT release returned data. You should copy the data to another buffer if the returned data is necessary.
*/
int
nns_edge_data_s *ed;
ed = (nns_edge_data_s *) data_h;
-
- if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
- nns_edge_loge ("Invalid param, given edge data is invalid.");
+ if (!ed) {
+ nns_edge_loge ("Invalid param, given edge data handle is null.");
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
+ nns_edge_lock (ed);
+
+ if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
+ nns_edge_loge ("Invalid param, given edge data is invalid.");
+ nns_edge_unlock (ed);
+ return NNS_EDGE_ERROR_INVALID_PARAMETER;
+ }
+
if (index >= ed->num) {
nns_edge_loge
("Invalid param, the number of edge data is %u but requested %uth data.",
ed->num, index);
+ nns_edge_unlock (ed);
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
*data = ed->data[index].data;
*data_len = ed->data[index].data_len;
+ nns_edge_unlock (ed);
return NNS_EDGE_ERROR_NONE;
}
/**
- * @brief Get the number of nnstreamer edge data.
+ * @brief Get the number of edge data in handle.
*/
int
nns_edge_data_get_count (nns_edge_data_h data_h, unsigned int *count)
nns_edge_data_s *ed;
ed = (nns_edge_data_s *) data_h;
-
- if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
- nns_edge_loge ("Invalid param, given edge data is invalid.");
+ if (!ed) {
+ nns_edge_loge ("Invalid param, given edge data handle is null.");
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
+ nns_edge_lock (ed);
+
+ if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
+ nns_edge_loge ("Invalid param, given edge data is invalid.");
+ nns_edge_unlock (ed);
+ return NNS_EDGE_ERROR_INVALID_PARAMETER;
+ }
+
*count = ed->num;
+ nns_edge_unlock (ed);
return NNS_EDGE_ERROR_NONE;
}
const char *value)
{
nns_edge_data_s *ed;
+ int ret;
ed = (nns_edge_data_s *) data_h;
-
- if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
- nns_edge_loge ("Invalid param, given edge data is invalid.");
+ if (!ed) {
+ nns_edge_loge ("Invalid param, given edge data handle is null.");
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
- if (!STR_IS_VALID (value)) {
- nns_edge_loge ("Invalid param, given value is invalid.");
+ nns_edge_lock (ed);
+
+ if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
+ nns_edge_loge ("Invalid param, given edge data is invalid.");
+ nns_edge_unlock (ed);
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
- return nns_edge_metadata_set (&ed->metadata, key, value);
+ ret = nns_edge_metadata_set (&ed->metadata, key, value);
+
+ nns_edge_unlock (ed);
+ return ret;
}
/**
nns_edge_data_get_info (nns_edge_data_h data_h, const char *key, char **value)
{
nns_edge_data_s *ed;
+ int ret;
ed = (nns_edge_data_s *) data_h;
-
- if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
- nns_edge_loge ("Invalid param, given edge data is invalid.");
+ if (!ed) {
+ nns_edge_loge ("Invalid param, given edge data handle is null.");
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
- return nns_edge_metadata_get (&ed->metadata, key, value);
+ nns_edge_lock (ed);
+
+ if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
+ nns_edge_loge ("Invalid param, given edge data is invalid.");
+ nns_edge_unlock (ed);
+ return NNS_EDGE_ERROR_INVALID_PARAMETER;
+ }
+
+ ret = nns_edge_metadata_get (&ed->metadata, key, value);
+
+ nns_edge_unlock (ed);
+ return ret;
}
/**
size_t *data_len)
{
nns_edge_data_s *ed;
+ int ret;
ed = (nns_edge_data_s *) data_h;
+ if (!ed) {
+ nns_edge_loge ("Invalid param, given edge data handle is null.");
+ return NNS_EDGE_ERROR_INVALID_PARAMETER;
+ }
+
+ nns_edge_lock (ed);
if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
nns_edge_loge ("Invalid param, given edge data is invalid.");
+ nns_edge_unlock (ed);
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
- return nns_edge_metadata_serialize (&ed->metadata, data, data_len);
+ ret = nns_edge_metadata_serialize (&ed->metadata, data, data_len);
+
+ nns_edge_unlock (ed);
+ return ret;
}
/**
size_t data_len)
{
nns_edge_data_s *ed;
+ int ret;
ed = (nns_edge_data_s *) data_h;
+ if (!ed) {
+ nns_edge_loge ("Invalid param, given edge data handle is null.");
+ return NNS_EDGE_ERROR_INVALID_PARAMETER;
+ }
+
+ nns_edge_lock (ed);
if (!NNS_EDGE_MAGIC_IS_VALID (ed)) {
nns_edge_loge ("Invalid param, given edge data is invalid.");
+ nns_edge_unlock (ed);
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
- return nns_edge_metadata_deserialize (&ed->metadata, data, data_len);
+ ret = nns_edge_metadata_deserialize (&ed->metadata, data, data_len);
+
+ nns_edge_unlock (ed);
+ return ret;
}