support trace (#136)
diff --git a/rocketmq/client.py b/rocketmq/client.py
index 88ae128..fecac9c 100644
--- a/rocketmq/client.py
+++ b/rocketmq/client.py
@@ -23,7 +23,7 @@
from .ffi import (
dll, _CSendResult, MSG_CALLBACK_FUNC, MessageModel, TRANSACTION_CHECK_CALLBACK,
- LOCAL_TRANSACTION_EXECUTE_CALLBACK
+ LOCAL_TRANSACTION_EXECUTE_CALLBACK, TraceModel
)
from .exceptions import (
ffi_check, NullPointerException,
@@ -259,6 +259,9 @@
def set_max_message_size(self, max_size):
ffi_check(dll.SetProducerMaxMessageSize(self._handle, max_size))
+ def set_message_trace(self, message_trace):
+ ffi_check(dll.SetProducerMessageTrace(self._handle, message_trace and TraceModel.OPEN or TraceModel.CLOSE))
+
def start(self):
ffi_check(dll.StartProducer(self._handle))
@@ -311,6 +314,9 @@
def set_name_server_address(self, addr):
ffi_check(dll.SetProducerNameServerAddress(self._handle, _to_bytes(addr)))
+ def set_message_trace(self, message_trace):
+ ffi_check(dll.SetProducerMessageTrace(self._handle, message_trace and TraceModel.OPEN or TraceModel.CLOSE))
+
def start(self):
ffi_check(dll.StartProducer(self._handle))
@@ -437,3 +443,6 @@
def set_instance_name(self, name):
ffi_check(dll.SetPushConsumerInstanceName(self._handle, _to_bytes(name)))
+
+ def set_message_trace(self, message_trace):
+ ffi_check(dll.SetPushConsumerMessageTrace(self._handle, message_trace and TraceModel.OPEN or TraceModel.CLOSE))
diff --git a/rocketmq/ffi.py b/rocketmq/ffi.py
index 21a01df..b4f6a11 100644
--- a/rocketmq/ffi.py
+++ b/rocketmq/ffi.py
@@ -81,6 +81,11 @@
CLUSTERING = 1
+class TraceModel(CtypesEnum):
+ OPEN = 0
+ CLOSE = 1
+
+
class _CSendResult(Structure):
_fields_ = [
('sendStatus', c_int),
@@ -200,6 +205,8 @@
dll.SetProducerCompressLevel.restype = _CStatus
dll.SetProducerMaxMessageSize.argtypes = [c_void_p, c_int]
dll.SetProducerMaxMessageSize.restype = _CStatus
+dll.SetProducerMessageTrace.argtypes = [c_void_p, TraceModel]
+dll.SetProducerMessageTrace.restype = _CStatus
dll.SendMessageSync.argtypes = [c_void_p, c_void_p, POINTER(_CSendResult)]
dll.SendMessageSync.restype = _CStatus
dll.SendMessageOneway.argtypes = [c_void_p, c_void_p]
@@ -261,6 +268,9 @@
dll.SetPushConsumerLogLevel.restype = _CStatus
dll.SetPushConsumerMessageModel.argtypes = [c_void_p, MessageModel]
dll.SetPushConsumerMessageModel.restype = _CStatus
+dll.SetPushConsumerLogLevel.restype = _CStatus
+dll.SetPushConsumerMessageTrace.argtypes = [c_void_p, TraceModel]
+dll.SetPushConsumerMessageTrace.restype = _CStatus
# Misc
dll.GetLatestErrorMessage.argtypes = []