⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jmpilocalprovidermanager.cpp

📁 Pegasus is an open-source implementationof the DMTF CIM and WBEM standards. It is designed to be por
💻 CPP
📖 第 1 页 / 共 2 页
字号:
                  <<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 + -