*/
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 Remove raw data in edge data.
+ * @param[in] data_h The edge data handle.
+ * @return 0 on success. Otherwise a negative error value.
+ * @retval #NNS_EDGE_ERROR_NONE Successful.
+ * @retval #NNS_EDGE_ERROR_NOT_SUPPORTED Not supported.
+ * @retval #NNS_EDGE_ERROR_INVALID_PARAMETER Given parameter is invalid.
+ */
+int nns_edge_data_clear (nns_edge_data_h data_h);
+
/**
* @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_get_info (nns_edge_data_h data_h, const char *key, char **value);
+/**
+ * @brief Clear information of edge data.
+ * @param[in] data_h The edge data handle.
+ * @return 0 on success. Otherwise a negative error value.
+ * @retval #NNS_EDGE_ERROR_NONE Successful.
+ * @retval #NNS_EDGE_ERROR_NOT_SUPPORTED Not supported.
+ * @retval #NNS_EDGE_ERROR_INVALID_PARAMETER Given parameter is invalid.
+ */
+int nns_edge_data_clear_info (nns_edge_data_h data_h);
+
/**
* @brief Set the logging level. Default value is NNS_EDGE_LOG_INFO.
* @param[in] level The log level to print out.
return NNS_EDGE_ERROR_NONE;
}
+/**
+ * @brief Remove raw data in edge data.
+ */
+int
+nns_edge_data_clear (nns_edge_data_h data_h)
+{
+ nns_edge_data_s *ed;
+ 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;
+ }
+
+ if (!nns_edge_handle_is_valid (ed)) {
+ nns_edge_loge ("Invalid param, given edge data is invalid.");
+ return NNS_EDGE_ERROR_INVALID_PARAMETER;
+ }
+
+ nns_edge_lock (ed);
+
+ for (i = 0; i < ed->num; i++) {
+ if (ed->data[i].destroy_cb)
+ ed->data[i].destroy_cb (ed->data[i].data);
+ ed->data[i].data = NULL;
+ ed->data[i].data_len = 0;
+ ed->data[i].destroy_cb = NULL;
+ }
+ ed->num = 0;
+
+ nns_edge_unlock (ed);
+
+ return NNS_EDGE_ERROR_NONE;
+}
+
/**
* @brief Get the n'th edge data.
*/
return ret;
}
+/**
+ * @brief Clear information of edge data.
+ */
+int
+nns_edge_data_clear_info (nns_edge_data_h data_h)
+{
+ 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;
+ }
+
+ if (!nns_edge_handle_is_valid (ed)) {
+ nns_edge_loge ("Invalid param, given edge data is invalid.");
+ return NNS_EDGE_ERROR_INVALID_PARAMETER;
+ }
+
+ nns_edge_lock (ed);
+ ret = nns_edge_metadata_destroy (ed->metadata);
+ if (NNS_EDGE_ERROR_NONE != ret)
+ goto done;
+ ret = nns_edge_metadata_create (&ed->metadata);
+done:
+ nns_edge_unlock (ed);
+
+ return ret;
+}
+
/**
* @brief Serialize metadata in edge data.
*/
EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
}
+
+/**
+ * @brief Clear info of edge-data - invalid param.
+ */
+TEST(edgeData, clearInfoInvalidParam01_n)
+{
+ int ret;
+
+ ret = nns_edge_data_clear_info (NULL);
+ EXPECT_NE (NNS_EDGE_ERROR_NONE, ret);
+}
+
+/**
+ * @brief Clear info of edge-data - invalid param.
+ */
+TEST(edgeData, clearInfoInvalidParam02_n)
+{
+ nns_edge_data_h data_h;
+ int ret;
+
+ ret = nns_edge_data_create (&data_h);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+
+ nns_edge_handle_set_magic (data_h, NNS_EDGE_MAGIC_DEAD);
+
+ ret = nns_edge_data_clear_info (data_h);
+ EXPECT_NE (NNS_EDGE_ERROR_NONE, ret);
+
+ nns_edge_handle_set_magic (data_h, NNS_EDGE_MAGIC);
+
+ ret = nns_edge_data_destroy (data_h);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+}
+
+/**
+ * @brief Clear info of edge data.
+ */
+TEST(edgeData, clearInfo)
+{
+ nns_edge_data_h data_h;
+ char *value = NULL;
+ int ret;
+
+ ret = nns_edge_data_create (&data_h);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+
+ ret = nns_edge_data_set_info (data_h, "temp-key", "temp-value");
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+
+ ret = nns_edge_data_get_info (data_h, "temp-key", &value);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+ EXPECT_STREQ ("temp-value", value);
+ SAFE_FREE (value);
+
+ ret = nns_edge_data_clear_info (data_h);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+
+ ret = nns_edge_data_get_info (data_h, "temp-key", &value);
+ EXPECT_NE (NNS_EDGE_ERROR_NONE, ret);
+
+ ret = nns_edge_data_set_info (data_h, "temp-key", "temp-value");
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+
+ ret = nns_edge_data_get_info (data_h, "temp-key", &value);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+ EXPECT_STREQ ("temp-value", value);
+ SAFE_FREE (value);
+
+ ret = nns_edge_data_destroy (data_h);
+ EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
+}
+
/**
* @brief Create edge-data - invalid param.
*/
EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
}
+/**
+ * @brief Clear raw data in edge-data - invalid param.
+ */
+TEST(edgeData, clearInvalidParam01_n)
+{
+ int ret;
+
+ ret = nns_edge_data_clear (NULL);
+ EXPECT_NE (NNS_EDGE_ERROR_NONE, ret);
+}
+
+/**
+ * @brief Clear raw data in edge-data - invalid param.
+ */
+TEST(edgeData, clearInvalidParam02_n)
+{
+ nns_edge_data_h data_h;
+ int ret;
+
+ ret = nns_edge_data_create (&data_h);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+
+ nns_edge_handle_set_magic (data_h, NNS_EDGE_MAGIC_DEAD);
+
+ ret = nns_edge_data_clear (data_h);
+ EXPECT_NE (NNS_EDGE_ERROR_NONE, ret);
+
+ nns_edge_handle_set_magic (data_h, NNS_EDGE_MAGIC);
+
+ ret = nns_edge_data_destroy (data_h);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+}
+
+
+/**
+ * @brief Clear raw data in edge-data.
+ */
+TEST(edgeData, clear)
+{
+ nns_edge_data_h data_h;
+ void *data, *result;
+ nns_size_t data_len, result_len;
+ unsigned int count;
+ int ret;
+
+ data_len = 10U * sizeof (int);
+ data = malloc (data_len);
+ ASSERT_TRUE (data != NULL);
+
+ ret = nns_edge_data_create (&data_h);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+
+ ret = nns_edge_data_add (data_h, data, data_len, nns_edge_free);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+
+ ret = nns_edge_data_get_count (data_h, &count);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE , ret);
+ EXPECT_EQ (1U, count);
+
+ ret = nns_edge_data_clear (data_h);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+
+ ret = nns_edge_data_get_count (data_h, &count);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+ EXPECT_EQ (0U, count);
+
+ ret = nns_edge_data_destroy (data_h);
+ EXPECT_EQ (NNS_EDGE_ERROR_NONE, ret);
+}
+
/**
* @brief Serialize edge-data - invalid param.
*/