return NNS_EDGE_ERROR_NONE;
}
-/**
- * @brief Internal function to invoke event callback.
- * @note This function should be called with handle lock.
- */
-static int
-_nns_edge_invoke_event_cb (nns_edge_handle_s * eh, nns_edge_event_e event,
- void *data, nns_size_t data_len, nns_edge_data_destroy_cb destroy_cb)
-{
- nns_edge_event_h event_h;
- int ret;
-
- /* If event callback is null, return ok. */
- if (!eh->event_cb) {
- nns_edge_logw ("AITT: The event callback is null, do nothing!");
- return NNS_EDGE_ERROR_NONE;
- }
-
- ret = nns_edge_event_create (event, &event_h);
- if (ret != NNS_EDGE_ERROR_NONE) {
- nns_edge_loge ("Failed to create new edge event.");
- return ret;
- }
-
- if (data) {
- ret = nns_edge_event_set_data (event_h, data, data_len, destroy_cb);
- if (ret != NNS_EDGE_ERROR_NONE) {
- nns_edge_loge ("Failed to handle edge event due to invalid event data.");
- goto error;
- }
- }
-
- ret = eh->event_cb (event_h, eh->user_data);
- if (ret != NNS_EDGE_ERROR_NONE) {
- nns_edge_loge ("The event callback returns error.");
- }
-
-error:
- nns_edge_event_destroy (event_h);
- return ret;
-}
-
/**
* @brief Callback function to be called when a message is arrived.
*/
nns_edge_data_deserialize (data_h, (void *) msg, (nns_size_t) msg_len);
- ret = _nns_edge_invoke_event_cb (eh, NNS_EDGE_EVENT_NEW_DATA_RECEIVED,
- data_h, sizeof (nns_edge_data_h), NULL);
+ ret = nns_edge_event_invoke_callback (eh->event_cb, eh->user_data,
+ NNS_EDGE_EVENT_NEW_DATA_RECEIVED, data_h, sizeof (nns_edge_data_h), NULL);
if (ret != NNS_EDGE_ERROR_NONE)
nns_edge_loge ("Failed to send an event for received message.");
#include "nnstreamer-edge-log.h"
#include "nnstreamer-edge-util.h"
+/**
+ * @brief Internal util function to invoke event callback.
+ */
+int
+nns_edge_event_invoke_callback (nns_edge_event_cb event_cb, void *user_data,
+ nns_edge_event_e event, void *data, nns_size_t data_len,
+ nns_edge_data_destroy_cb destroy_cb)
+{
+ nns_edge_event_h event_h;
+ int ret;
+
+ /* If event callback is null, return ok. */
+ if (!event_cb) {
+ nns_edge_logw ("The event callback is null, do nothing!");
+ return NNS_EDGE_ERROR_NONE;
+ }
+
+ ret = nns_edge_event_create (event, &event_h);
+ if (ret != NNS_EDGE_ERROR_NONE) {
+ nns_edge_loge ("Failed to create new edge event.");
+ return ret;
+ }
+
+ if (data) {
+ ret = nns_edge_event_set_data (event_h, data, data_len, destroy_cb);
+ if (ret != NNS_EDGE_ERROR_NONE) {
+ nns_edge_loge ("Failed to handle edge event due to invalid event data.");
+ goto error;
+ }
+ }
+
+ ret = event_cb (event_h, user_data);
+ if (ret != NNS_EDGE_ERROR_NONE)
+ nns_edge_logw ("The event callback returns error (%d).", ret);
+
+error:
+ nns_edge_event_destroy (event_h);
+ return ret;
+}
+
/**
* @brief Create nnstreamer edge event.
*/
return ret;
}
-/**
- * @brief Internal function to invoke event callback.
- * @note This function should be called with handle lock.
- */
-static int
-_nns_edge_invoke_event_cb (nns_edge_handle_s * eh, nns_edge_event_e event,
- void *data, nns_size_t data_len, nns_edge_data_destroy_cb destroy_cb)
-{
- nns_edge_event_h event_h;
- int ret;
-
- if (!eh) {
- nns_edge_loge ("Invalid param, given edge handle is null.");
- return NNS_EDGE_ERROR_INVALID_PARAMETER;
- }
-
- /* If event callback is null, return ok. */
- if (!eh->event_cb) {
- nns_edge_logw ("The event callback is null, do nothing!");
- return NNS_EDGE_ERROR_NONE;
- }
-
- ret = nns_edge_event_create (event, &event_h);
- if (ret != NNS_EDGE_ERROR_NONE) {
- nns_edge_loge ("Failed to create new edge event.");
- return ret;
- }
-
- if (data) {
- ret = nns_edge_event_set_data (event_h, data, data_len, destroy_cb);
- if (ret != NNS_EDGE_ERROR_NONE) {
- nns_edge_loge ("Failed to handle edge event due to invalid event data.");
- goto error;
- }
- }
-
- ret = eh->event_cb (event_h, eh->user_data);
- if (ret != NNS_EDGE_ERROR_NONE) {
- nns_edge_loge ("The event callback returns error.");
- }
-
-error:
- nns_edge_event_destroy (event_h);
- return ret;
-}
-
/**
* @brief Close connection
*/
nns_edge_data_set_info (data_h, "client_id", val);
SAFE_FREE (val);
- ret = _nns_edge_invoke_event_cb (eh, NNS_EDGE_EVENT_NEW_DATA_RECEIVED,
- data_h, sizeof (nns_edge_data_h), NULL);
+ ret = nns_edge_event_invoke_callback (eh->event_cb, eh->user_data,
+ NNS_EDGE_EVENT_NEW_DATA_RECEIVED, data_h, sizeof (nns_edge_data_h),
+ NULL);
if (ret != NNS_EDGE_ERROR_NONE) {
/* Try to get next request if server does not accept data from client. */
nns_edge_logw ("The server does not accept data from client.");
("Received error from client, remove connection of client (ID: %lld).",
(long long) client_id);
_nns_edge_remove_connection (eh, client_id);
- _nns_edge_invoke_event_cb (eh, NNS_EDGE_EVENT_CONNECTION_CLOSED,
- NULL, 0, NULL);
+ nns_edge_event_invoke_callback (eh->event_cb, eh->user_data,
+ NNS_EDGE_EVENT_CONNECTION_CLOSED, NULL, 0, NULL);
}
return NULL;
client_id = eh->client_id = cmd.info.client_id;
/* Check compatibility. */
- ret = _nns_edge_invoke_event_cb (eh, NNS_EDGE_EVENT_CAPABILITY,
- cmd.mem[0], cmd.info.mem_size[0], NULL);
+ ret = nns_edge_event_invoke_callback (eh->event_cb, eh->user_data,
+ NNS_EDGE_EVENT_CAPABILITY, cmd.mem[0], cmd.info.mem_size[0], NULL);
_nns_edge_cmd_clear (&cmd);
if (ret != NNS_EDGE_ERROR_NONE) {
return NNS_EDGE_ERROR_INVALID_PARAMETER;
}
- ret = _nns_edge_invoke_event_cb (eh, NNS_EDGE_EVENT_CALLBACK_RELEASED,
- NULL, 0, NULL);
+ ret = nns_edge_event_invoke_callback (eh->event_cb, eh->user_data,
+ NNS_EDGE_EVENT_CALLBACK_RELEASED, NULL, 0, NULL);
if (ret != NNS_EDGE_ERROR_NONE) {
nns_edge_loge ("Failed to set new event callback.");
nns_edge_unlock (eh);