Change timeout for getting message from mqtt broker.
default timeout: 0 (infinite timeout)
Signed-off-by: gichan <gichan2.jang@samsung.com>
int server_port = 0;
nns_size_t msg_len = 0;
- ret = nns_edge_mqtt_get_message (eh->broker_h, (void **) &msg, &msg_len);
+ ret =
+ nns_edge_mqtt_get_message (eh->broker_h, (void **) &msg, &msg_len, 0U);
if (ret != NNS_EDGE_ERROR_NONE || !msg || msg_len == 0)
break;
}
/**
- * @brief Get message from mqtt broker.
+ * @brief Get message from mqtt broker within timeout (0 for infinite timeout).
*/
int
nns_edge_mqtt_get_message (nns_edge_broker_h broker_h, void **msg,
- nns_size_t * msg_len)
+ nns_size_t * msg_len, unsigned int timeout)
{
nns_edge_broker_s *bh;
bh = (nns_edge_broker_s *) broker_h;
- /* Wait for 1 second */
- if (!nns_edge_queue_wait_pop (bh->message_queue, 1000U, msg, msg_len)) {
+ /*
+ * The time to wait for new data, in milliseconds.
+ * (Default: 0 for infinite timeout)
+ */
+ if (!nns_edge_queue_wait_pop (bh->message_queue, timeout, msg, msg_len)) {
nns_edge_loge ("Failed to get message from mqtt broker within timeout.");
return NNS_EDGE_ERROR_UNKNOWN;
}
}
/**
- * @brief Get message from mqtt broker.
+ * @brief Get message from mqtt broker within timeout (0 for infinite timeout).
*/
int
nns_edge_mqtt_get_message (nns_edge_broker_h broker_h, void **msg,
- nns_size_t * msg_len)
+ nns_size_t * msg_len, unsigned int timeout)
{
nns_edge_broker_s *bh;
bh = (nns_edge_broker_s *) broker_h;
- /* Wait for 1 second */
- if (!nns_edge_queue_wait_pop (bh->message_queue, 1000U, msg, msg_len)) {
+ /*
+ * The time to wait for new data, in milliseconds.
+ * (Default: 0 for infinite timeout)
+ */
+ if (!nns_edge_queue_wait_pop (bh->message_queue, timeout, msg, msg_len)) {
nns_edge_loge ("Failed to get message from mqtt broker within timeout.");
return NNS_EDGE_ERROR_UNKNOWN;
}
bool nns_edge_mqtt_is_connected (nns_edge_broker_h broker_h);
/**
- * @brief Get message from mqtt broker. If no message in the queue, it waits up to 1 second for new message.
+ * @brief Get message from mqtt broker with within timeout. (0 for inifinite timeout)
*/
-int nns_edge_mqtt_get_message (nns_edge_broker_h broker_h, void **msg, nns_size_t *msg_len);
+int
+nns_edge_mqtt_get_message (nns_edge_broker_h broker_h, void **msg, nns_size_t * msg_len, unsigned int timeout);
/**
* @brief Internal util function to send edge-data via MQTT connection.
if (!_check_mqtt_broker ())
return;
- ret = nns_edge_mqtt_get_message (NULL, &msg, &msg_len);
+ ret = nns_edge_mqtt_get_message (NULL, &msg, &msg_len, 0U);
EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);
}
ret = nns_edge_mqtt_connect ("temp-mqtt-id", "temp-mqtt-topic", "127.0.0.1", 1883, &broker_h);
EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
- ret = nns_edge_mqtt_get_message (broker_h, NULL, &msg_len);
+ ret = nns_edge_mqtt_get_message (broker_h, NULL, &msg_len, 0U);
EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);
ret = nns_edge_mqtt_close (broker_h);
ret = nns_edge_mqtt_connect ("temp-mqtt-id", "temp-mqtt-topic", "127.0.0.1", 1883, &broker_h);
EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
- ret = nns_edge_mqtt_get_message (broker_h, &msg, NULL);
+ ret = nns_edge_mqtt_get_message (broker_h, &msg, NULL, 0U);
EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);
ret = nns_edge_mqtt_close (broker_h);
ret = nns_edge_mqtt_connect ("temp-mqtt-id", "temp-mqtt-topic", "127.0.0.1", 1883, &broker_h);
EXPECT_EQ (ret, NNS_EDGE_ERROR_NONE);
- ret = nns_edge_mqtt_get_message (broker_h, &msg, &msg_len);
+ ret = nns_edge_mqtt_get_message (broker_h, &msg, &msg_len, 1000U);
EXPECT_NE (ret, NNS_EDGE_ERROR_NONE);
ret = nns_edge_mqtt_close (broker_h);