feat(producer) add transaction producer destroy logic
diff --git a/src/PythonWrapper.cpp b/src/PythonWrapper.cpp
index 6083df9..af80175 100644
--- a/src/PythonWrapper.cpp
+++ b/src/PythonWrapper.cpp
@@ -331,6 +331,15 @@
}
return DestroyPushConsumer(consumerInner);
}
+int PyDestroyTransactionProducer(void *producer) {
+ CProducer *producerInner = (CProducer *) producer;
+ map<CProducer *, PyObject *>::iterator iter;
+ iter = g_TransactionCheckCallBackMap.find(producerInner);
+ if (iter != g_TransactionCheckCallBackMap.end()) {
+ g_TransactionCheckCallBackMap.erase(iter);
+ }
+ return DestroyProducer(producerInner);
+}
int PyStartPushConsumer(void *consumer) {
return StartPushConsumer((CPushConsumer *) consumer);
}
@@ -496,6 +505,7 @@
def("CreateProducer", PyCreateProducer, return_value_policy<return_opaque_pointer>());
def("CreateTransactionProducer", PyCreateTransactionProducer, return_value_policy<return_opaque_pointer>());
def("DestroyProducer", PyDestroyProducer);
+ def("DestroyTransactionProducer", PyDestroyTransactionProducer);
def("StartProducer", PyStartProducer);
def("ShutdownProducer", PyShutdownProducer);
def("SetProducerNameServerAddress", PySetProducerNameServerAddress);
diff --git a/src/PythonWrapper.h b/src/PythonWrapper.h
index ee7026e..8e8e27d 100644
--- a/src/PythonWrapper.h
+++ b/src/PythonWrapper.h
@@ -111,6 +111,7 @@
void *PyCreateTransactionProducer(const char *groupId, PyObject *localTransactionCheckerCallback);
int PyDestroyProducer(void *producer);
+int PyDestroyTransactionProducer(void *producer);
int PyStartProducer(void *producer);
int PyShutdownProducer(void *producer);
int PySetProducerNameServerAddress(void *producer, const char *namesrv);
diff --git a/test/TestSendMessages.py b/test/TestSendMessages.py
index 9ab8cf2..179e1f1 100644
--- a/test/TestSendMessages.py
+++ b/test/TestSendMessages.py
@@ -32,7 +32,7 @@
return producer
def transaction_local_checker(msg):
- print 'begin check for msg: ' + PyGetMessageId(msg)
+ print 'begin check for msg: ' + GetMessageId(msg)
return TransactionStatus.E_COMMIT_TRANSACTION
def init_transaction_producer():