void UserObject::popActionResult() { for(std::vector<UserActionResult>::iterator iter=_actionResultList.begin();iter!=_actionResultList.end();){ UserObject* userObject = dynamic_cast<UserObject*>(PluginUtils::getPluginPtr(iter->pluginKey)); if(userObject){ UserActionListener* listener = userObject->getActionListener(); if(listener){ listener->onActionResult(userObject,iter->resultCode, iter->msg.c_str()); //remove from record iter=_actionResultList.erase(iter); continue; } } ++iter; } }
JNIEXPORT void JNICALL Java_com_opensdk_framework_NativeInvoker_nativeOnActionResult(JNIEnv* env, jobject thiz, jstring pluginKey, jint ret, jstring msg) { std::string strMsg = PluginJniHelper::jstring2string(msg); std::string strPluginKey = PluginJniHelper::jstring2string(pluginKey); PluginProtocol* pPlugin = PluginUtils::getPluginPtr(strPluginKey); PluginUtils::outputLog("ProtocolUser", "nativeOnActionResult(), Get plugin ptr : %p", pPlugin); UserObject* userObject = dynamic_cast<UserObject*>(pPlugin); if (userObject != NULL) { PluginUtils::outputLog("ProtocolUser", "nativeOnActionResult(), Get plugin name : %s", pPlugin->getPluginName()); UserActionListener* listener = userObject->getActionListener(); if (NULL != listener) { listener->onActionResult(userObject, (UserActionResultCode) ret, strMsg.c_str()); } else { UserActionResult result={ (UserActionResultCode)ret, strMsg, strPluginKey }; UserObject::pushActionResult(result); PluginUtils::outputLog("ProtocolUser","Listener of plugin %s not set correctly", pPlugin->getPluginName()); } }else{ UserActionResult result={ (UserActionResultCode)ret, strMsg, strPluginKey }; UserObject::pushActionResult(result); PluginUtils::outputLog("ProtocolUser", "plugin %s is null", pPlugin->getPluginName()); } }