[ISSUE #118] Support send message oneway orderly for C API
[ISSUE #118] Support send message oneway orderly for C API
diff --git a/include/CProducer.h b/include/CProducer.h
index 5518a56..c542dc2 100644
--- a/include/CProducer.h
+++ b/include/CProducer.h
@@ -53,6 +53,7 @@
ROCKETMQCLIENT_API int SendMessageSync(CProducer *producer, CMessage *msg, CSendResult *result);
ROCKETMQCLIENT_API int SendMessageAsync(CProducer *producer, CMessage *msg, CSendSuccessCallback cSendSuccessCallback , CSendExceptionCallback cSendExceptionCallback);
ROCKETMQCLIENT_API int SendMessageOneway(CProducer *producer,CMessage *msg);
+ROCKETMQCLIENT_API int SendMessageOnewayOrderly(CProducer *producer,CMessage *msg, QueueSelectorCallback selector, void* arg);
ROCKETMQCLIENT_API int SendMessageOrderly(CProducer *producer, CMessage *msg, QueueSelectorCallback callback, void *arg, int autoRetryTimes, CSendResult *result);
diff --git a/src/extern/CProducer.cpp b/src/extern/CProducer.cpp
index de2cfe0..58542a6 100644
--- a/src/extern/CProducer.cpp
+++ b/src/extern/CProducer.cpp
@@ -196,6 +196,21 @@
return OK;
}
+int SendMessageOnewayOrderly(CProducer *producer, CMessage *msg, QueueSelectorCallback selector, void* arg) {
+ if (producer == NULL || msg == NULL) {
+ return NULL_POINTER;
+ }
+ DefaultMQProducer *defaultMQProducer = (DefaultMQProducer *) producer;
+ MQMessage *message = (MQMessage *) msg;
+ try {
+ SelectMessageQueue selectMessageQueue(selector);
+ defaultMQProducer->sendOneway(*message, &selectMessageQueue, arg);
+ } catch (exception &e) {
+ return PRODUCER_SEND_ONEWAY_FAILED;
+ }
+ return OK;
+}
+
int
SendMessageOrderlyAsync(CProducer *producer,
CMessage *msg,