📄 jmpilocalprovidermanager.cpp
字号:
<<PEGASUS_STD(dec) <<PEGASUS_STD(endl)); ph->SetProvider( provider ); break; } case UNLOAD_PROVIDER: { DDD(PEGASUS_STD(cout) <<"--- JMPILocalProviderManager::_provider_ctrl: " "UNLOAD_PROVIDER" <<PEGASUS_STD(endl)); break; } case LOOKUP_PROVIDER: { PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2, "_provider_ctrl::LOOKUP_PROVIDER"); DDD(PEGASUS_STD(cout) <<"--- JMPILocalProviderManager::_provider_ctrl: " "LOOKUP_PROVIDER " <<*(parms->providerName) <<PEGASUS_STD(endl)); AutoMutex lock (_providerTableMutex); if (true == _providers.lookup(*(parms->providerName), *(reinterpret_cast<JMPIProvider * *>(ret)))) { PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Found JMPIProvider in cache: " + *(parms->providerName));////////////////(*(reinterpret_cast<JMPIProvider * *>(ret)))->update_idle_timer(); } else { PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Could not find JMPIProvider in cache: " + *(parms->providerName)); ccode = -1; } break; } case LOOKUP_MODULE: { PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2, "_provider_ctrl::LOOKUP_MODULE"); DDD(PEGASUS_STD(cout) <<"--- JMPILocalProviderManager::_provider_ctrl: " "LOOKUP_MODULE " <<*(parms->fileName) <<PEGASUS_STD(endl)); AutoMutex lock (_providerTableMutex); if (false == _modules.lookup(*(parms->fileName), *(reinterpret_cast<JMPIProviderModule * *>(ret)))) { PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Could not find JMPIProvider Module in cache: " + *(parms->fileName)); ccode = -1; } break; } case INSERT_PROVIDER: { PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2, "_provider_ctrl::INSERT_PROVIDER"); DDD(PEGASUS_STD(cout) <<"--- JMPILocalProviderManager::_provider_ctrl: " "INSERT_PROVIDER " <<*(parms->providerName) <<PEGASUS_STD(endl)); AutoMutex lock (_providerTableMutex); if (false == _providers.insert(*(parms->providerName), *reinterpret_cast<JMPIProvider * *>(parm))) ccode = -1; break; } case INSERT_MODULE: { PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2, "_provider_ctrl::INSERT_MODULE"); DDD(PEGASUS_STD(cout) <<"--- JMPILocalProviderManager::_provider_ctrl: " "INSERT_MODULE " <<*(parms->fileName) <<PEGASUS_STD(endl)); AutoMutex lock (_providerTableMutex); if(false == _modules.insert(*(parms->fileName), *reinterpret_cast<JMPIProviderModule * *>(parm))) ccode = -1; break; } case REMOVE_PROVIDER: { PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2, "_provider_ctrl::REMOVE_PROVIDER"); DDD(PEGASUS_STD(cout) <<"--- JMPILocalProviderManager::_provider_ctrl: " "REMOVE_PROVIDER " <<*(parms->providerName) <<PEGASUS_STD(endl)); AutoMutex lock (_providerTableMutex); if (false == _providers.remove(*(parms->providerName))) ccode = -1; break; } case REMOVE_MODULE: { PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2, "_provider_ctrl::REMOVE_MODULE"); DDD(PEGASUS_STD(cout) <<"--- JMPILocalProviderManager::_provider_ctrl: REMOVE_MODULE " <<*(parms->fileName) <<PEGASUS_STD(endl)); AutoMutex lock (_providerTableMutex); if (false == _modules.remove(*(parms->fileName))) ccode = -1; break; } case UNLOAD_ALL_PROVIDERS: { DDD(PEGASUS_STD(cout) <<"--- JMPILocalProviderManager::_provider_ctrl: " "UNLOAD_ALL_PROVIDERS" <<PEGASUS_STD(endl)); JMPIjvm::destroyJVM(); break; } case UNLOAD_IDLE_PROVIDERS: { DDD(PEGASUS_STD(cout) <<"--- JMPILocalProviderManager::_provider_ctrl: " "UNLOAD_IDLE_PROVIDERS" <<PEGASUS_STD(endl)); break; } case UNLOAD_IDLE_MODULES: { DDD(PEGASUS_STD(cout) <<"--- JMPILocalProviderManager::_provider_ctrl: " "UNLOAD_IDLE_MODULES" <<PEGASUS_STD(endl)); break; } default: { DDD(PEGASUS_STD(cout) <<"--- JMPILocalProviderManager::_provider_ctrl: unknown! " <<code <<PEGASUS_STD(endl)); ccode = -1; break; } } PEG_METHOD_EXIT(); return(ccode);}JMPIProvider * JMPILocalProviderManager::_getResolver (const String & fileName, const String & interfaceType){ JMPIProvider *pr; String id(interfaceType+String("::")+fileName); if (true == _resolvers.lookup(id,pr)) { return pr; } return NULL;}JMPIProvider::OpProviderHolder JMPILocalProviderManager::getProvider( const String & fileName, const String & providerName, const String & interfaceName){ JMPIProvider::OpProviderHolder ph; CTRL_STRINGS strings; Sint32 ccode; strings.fileName = &fileName; strings.providerName = &providerName; strings.interfaceName = &interfaceName; PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "ProviderManager::getProvider"); try { ccode = _provider_ctrl( GET_PROVIDER, &strings, &ph ); } catch (const Exception &e) { DDD(PEGASUS_STD(cout) <<"--- JMPILocalProviderManager::getProvider: loading proxy: " <<e.getMessage() <<PEGASUS_STD(endl)); PEG_METHOD_EXIT(); throw; } catch(...) { DDD(PEGASUS_STD(cout) <<"--- JMPILocalProviderManager::getProvider: catch (...) " <<PEGASUS_STD(endl)); PEG_METHOD_EXIT(); throw; } PEG_METHOD_EXIT(); return(ph);}void JMPILocalProviderManager::unloadProvider( const String & fileName, const String & providerName){ CTRL_STRINGS strings; PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "ProviderManager::unloadProvider"); strings.fileName = &fileName; strings.providerName = &providerName; _provider_ctrl(UNLOAD_PROVIDER, &strings, (void *)0); PEG_METHOD_EXIT();}void JMPILocalProviderManager::shutdownAllProviders(void){ PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "ProviderManager::shutdownAllProviders"); _provider_ctrl(UNLOAD_ALL_PROVIDERS, (void *)this, (void *)0); PEG_METHOD_EXIT();}Boolean JMPILocalProviderManager::hasActiveProviders(){ PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "ProviderManager::hasActiveProviders"); AutoMutex lock (_providerTableMutex); Boolean fRet = _providers.size() > 0; PEG_METHOD_EXIT(); return fRet;}void JMPILocalProviderManager::unloadIdleProviders(){ PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "ProviderManager::unloadIdleProviders"); try { AutoMutex lock(_providerTableMutex); _provider_ctrl(UNLOAD_IDLE_PROVIDERS, this, (void *)0); } catch(...) { PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2, "Caught unexpected exception from UNLOAD_IDLE_PROVIDERS."); } PEG_METHOD_EXIT();}Array <JMPIProvider *>JMPILocalProviderManager::getIndicationProvidersToEnable (){ PEG_METHOD_ENTER (TRC_PROVIDERMANAGER, "JMPILocalProviderManager::getIndicationProvidersToEnable"); Array <JMPIProvider *> enableProviders; try { AutoMutex lock (_providerTableMutex); Tracer::trace (TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Number of providers in _providers table = %d", _providers.size ()); // // Iterate through the _providers table // for (ProviderTable::Iterator i = _providers.start (); i != 0; i++) { // // Enable any indication provider with current subscriptions // JMPIProvider * provider = i.value (); if (provider->testSubscriptions ()) { enableProviders.append (provider); } } } catch (CIMException & e) { PEG_TRACE_STRING (TRC_DISCARDED_DATA, Tracer::LEVEL2, "CIMException: " + e.getMessage ()); } catch (Exception & e) { PEG_TRACE_STRING (TRC_DISCARDED_DATA, Tracer::LEVEL2, "Exception: " + e.getMessage ()); } catch (...) { PEG_TRACE_STRING (TRC_DISCARDED_DATA, Tracer::LEVEL2, "Unexpected error in getIndicationProvidersToEnable"); } Tracer::trace (TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Number of indication providers to enable = %d", enableProviders.size ()); PEG_METHOD_EXIT (); return enableProviders;}PEGASUS_NAMESPACE_END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -