@@ -19,13 +19,22 @@ py::gil_scoped_release release; // 主线程中先释放release锁
1919PyWrapper *pyWrapper;
2020wrapperMeterCustom global_metric_cb;
2121wrapperTraceLog global_trace_cb;
22+ // REsID 和 PERSID 映射维护
23+ std::mutex RES_MUTEX;
24+ std::map <unsigned int , std::string> RESID_MAP;
2225
2326//
2427
2528// const char *logDir = "./log";
2629// const char *wrapperLogFile = "./log/wrapper.log";
2730
28-
31+ std::string GetPatchID (unsigned int perID) {
32+ std::string rlt;
33+ RES_MUTEX.lock ();
34+ rlt = RESID_MAP[perID];
35+ RES_MUTEX.unlock ();
36+ return rlt;
37+ }
2938void so_init (void ) {
3039 printf (" libwrapper so init.\n " );
3140}
@@ -136,12 +145,42 @@ const char *WrapperAPI wrapperVersion() {
136145}
137146
138147int WrapperAPI wrapperLoadRes (pDataList perData, unsigned int resId) {
139- int ret = pyWrapper->wrapperLoadRes (perData, resId);
148+ if (perData == NULL ) {
149+ spdlog::debug (" wrapper LoadResource Error, perData Null" );
150+ return -1 ;
151+ }
152+ if (perData->desc == NULL ) {
153+ spdlog::debug (" wrapper LoadResource Error, perData Desc Null" );
154+ return -1 ;
155+ }
156+ if (perData->desc ->key == NULL ) {
157+ spdlog::debug (" wrapper LoadResource Error, perData Desc Key Null" );
158+ return -1 ;
159+ }
160+ string patch_key = perData->desc ->key ;
161+ string fixKey = " patch_id" ;
162+
163+ if (patch_key.compare (fixKey) != 0 ) {
164+ spdlog::debug (" wrapper LoadResource Error, perData Desc Key Null" );
165+ return -1 ;
166+ }
167+ if (perData->desc ->value == NULL ) {
168+ spdlog::debug (" wrapper LoadResource Error, perData Desc PatchId Value Null" );
169+ return -1 ;
170+ }
171+ string patch_Id = perData->desc ->value ;
172+ RES_MUTEX.lock ();
173+ RESID_MAP[resId] = patch_Id;
174+ RES_MUTEX.unlock ();
175+ int ret = pyWrapper->wrapperLoadRes (perData, patch_Id);
176+
140177 return ret;
141178}
142179
143180int WrapperAPI wrapperUnloadRes (unsigned int resId) {
144- int ret = pyWrapper->wrapperUnloadRes (resId);
181+ std::string patchId;
182+ patchId = GetPatchID (resId)
183+ int ret = pyWrapper->wrapperUnloadRes (patchId);
145184 return ret;
146185}
147186
0 commit comments