Skip to content

Commit 45fe8fd

Browse files
committed
feat: support PatchID MAP in wrapper
1 parent 665bd4d commit 45fe8fd

File tree

1 file changed

+42
-3
lines changed

1 file changed

+42
-3
lines changed

wrapper.cpp

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,22 @@ py::gil_scoped_release release; // 主线程中先释放release锁
1919
PyWrapper *pyWrapper;
2020
wrapperMeterCustom global_metric_cb;
2121
wrapperTraceLog 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+
}
2938
void so_init(void) {
3039
printf("libwrapper so init.\n");
3140
}
@@ -136,12 +145,42 @@ const char *WrapperAPI wrapperVersion() {
136145
}
137146

138147
int 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

143180
int 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

Comments
 (0)