diff --git a/pyWrapper.cpp b/pyWrapper.cpp index 157e6d3f..769fff06 100644 --- a/pyWrapper.cpp +++ b/pyWrapper.cpp @@ -120,6 +120,7 @@ PyWrapper::PyWrapper() { _wrapperOnceExec = _obj.attr("wrapperOnceExec"); _wrapperOnceExecAsync = _obj.attr("wrapperOnceExecAsync"); _wrapperError = _obj.attr("wrapperError"); + _wrapperNotify = _obj.attr("wrapperNotify"); // 个性化 _wrapperLoadRes = _obj.attr("wrapperLoadRes"); @@ -161,6 +162,7 @@ PyWrapper::~PyWrapper() { _wrapperRead.release(); _wrapperUnloadRes.release(); _wrapperLoadRes.release(); + _wrapperNotify.release(); pybind11::gil_scoped_release release; } @@ -177,6 +179,7 @@ void PyWrapper::ReloadWrapper() { _wrapperOnceExec = _obj.attr("wrapperOnceExec"); _wrapperError = _obj.attr("wrapperError"); _wrapperTest = _obj.attr("wrapperTestFunc"); + _wrapperNotify = _obj.attr("wrapperNotify"); // stream support _wrapperCreate = _obj.attr("wrapperCreate"); @@ -571,6 +574,12 @@ int PyWrapper::wrapperUnloadRes(std::string patch_id) { return ret; } +int PyWrapper::wrapperNotify(pDataList* data) { + py::gil_scoped_acquire acquire; + int ret = _wrapperNotify(*data).cast();; + return ret; +} + int PyWrapper::wrapperTest() { py::gil_scoped_acquire acquire; std::vector req; diff --git a/pyWrapper.h b/pyWrapper.h index 972bfeeb..5b33f4e3 100644 --- a/pyWrapper.h +++ b/pyWrapper.h @@ -154,6 +154,8 @@ class PyWrapper { void setCallBack(wrapperCallback cb); + int wrapperNotify(pDataList* data); + wrapperMeterCustom metric_cb; private: @@ -167,6 +169,7 @@ class PyWrapper { py::object _wrapperError; py::object _wrapperCreate; py::object _wrapperDestroy; + py::object _wrapperNotify; py::object _wrapperWrite; py::object _wrapperRead; diff --git a/wrapper.cpp b/wrapper.cpp index d747fdae..f5fe54b4 100644 --- a/wrapper.cpp +++ b/wrapper.cpp @@ -494,4 +494,17 @@ wrapperExecAsync(const char *usrTag, pParamList params, pDataList reqData, wrapp return ret; } -const char *WrapperAPI wrapperDebugInfo(const void *handle) { return NULL; } \ No newline at end of file +const char *WrapperAPI wrapperDebugInfo(const void *handle) { return NULL; } + +int WrapperAPI wrapperNotify(pDataList *data) { + spdlog::debug("wrapperNotify"); + + int ret = 0; + ret = pyWrapper->wrapperNotify(data); + if (ret != 0) { + spdlog::get("stderr_console")->error("wrapper notify error!"); + return ret; + } + + return ret; +} \ No newline at end of file