[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,