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

📄 cimprovidercommand.cpp

📁 Pegasus is an open-source implementationof the DMTF CIM and WBEM standards. It is designed to be por
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        case OPERATION_TYPE_DISABLE:            try            {                _StopProvider( outPrintWriter, errPrintWriter );            }            catch (CIMException& e)            {                CIMStatusCode code = e.getCode();                if (code == CIM_ERR_FAILED)                {                    //l10n                    //outPrintWriter << STOP_PROVIDER_FAILURE << endl;                    outPrintWriter << localizeMessage(MSG_PATH,                        STOP_PROVIDER_FAILURE_KEY,                        STOP_PROVIDER_FAILURE) << endl;                    errPrintWriter << e.getMessage() << endl;                }                else if (code == CIM_ERR_INVALID_CLASS)                {                    //l10n                    //outPrintWriter << STOP_PROVIDER_FAILURE << endl;                    //outPrintWriter << PG_PROVIDER_SCHEMA_NOT_LOADED << endl;                    outPrintWriter << localizeMessage(MSG_PATH,                        STOP_PROVIDER_FAILURE_KEY,                        STOP_PROVIDER_FAILURE) << endl;                    outPrintWriter << localizeMessage(MSG_PATH,                        PG_PROVIDER_SCHEMA_NOT_LOADED,                        PG_PROVIDER_SCHEMA_NOT_LOADED) << endl;                }                else                {                    errPrintWriter << e.getMessage() << endl;                }                return ( RC_ERROR );            }            catch (Exception& e)            {                errPrintWriter << e.getMessage() << endl;                return ( RC_ERROR );            }            break;        case OPERATION_TYPE_LIST:            try            {                 _ListProviders(outPrintWriter, errPrintWriter);                break;            }            catch (CIMException& e)            {                CIMStatusCode code = e.getCode();                if (code == CIM_ERR_FAILED)                {                    //l10n                    //outPrintWriter << LIST_PROVIDERS_FAILURE << endl;                    outPrintWriter << localizeMessage(MSG_PATH,                        LIST_PROVIDERS_FAILURE_KEY,                        LIST_PROVIDERS_FAILURE) << endl;                    errPrintWriter << e.getMessage() << endl;                }                else if (code == CIM_ERR_INVALID_CLASS)                {                    //l10n                    //outPrintWriter << LIST_PROVIDERS_FAILURE << endl;                    //outPrintWriter << PG_PROVIDER_SCHEMA_NOT_LOADED << endl;                    outPrintWriter << localizeMessage(MSG_PATH,                        LIST_PROVIDERS_FAILURE_KEY,                        LIST_PROVIDERS_FAILURE) << endl;                    outPrintWriter << localizeMessage(MSG_PATH,                        PG_PROVIDER_SCHEMA_NOT_LOADED_KEY,                        PG_PROVIDER_SCHEMA_NOT_LOADED) << endl;                }                else                {                    errPrintWriter << e.getMessage() << endl;                }                return ( RC_ERROR );            }            catch (Exception& e)            {                errPrintWriter << e.getMessage() << endl;                return ( RC_ERROR );            }        default:            //            // Should never get here            //            break;    }    return (RC_SUCCESS);}/**    Delete the provider module or providers in a module*/void CIMProviderCommand::_deleteProvider    (    ostream&    outPrintWriter,    ostream&    errPrintWriter    ){    if ( _moduleSet )    {        if ( _providerSet )        {            // Delete provider which have specified module name and provider name            CIMInstance providerInstance = _getProviderInstance();            CIMObjectPath providerRef = providerInstance.getPath ();            providerRef.setNameSpace(PEGASUS_NAMESPACENAME_PROVIDERREG);            providerRef.setClassName(PEGASUS_CLASSNAME_PROVIDER);            CIMKeyBinding kb1(_PROPERTY_PROVIDERMODULENAME, _moduleName, CIMKeyBinding::STRING);            CIMKeyBinding kb2(_PROPERTY_PROVIDER_NAME, _providerName, CIMKeyBinding::STRING);            Array<CIMKeyBinding> keys;            keys.append(kb1);            keys.append(kb2);            providerRef.setKeyBindings(keys);            //l10n            //outPrintWriter << DELETEING_PROVIDER << endl;            outPrintWriter << localizeMessage(MSG_PATH,                DELETEING_PROVIDER_KEY,                DELETEING_PROVIDER) << endl;            _client->deleteInstance(                PEGASUS_NAMESPACENAME_PROVIDERREG,                providerRef);//l10n            //outPrintWriter << DELETE_PROVIDER_SUCCESS << endl;            outPrintWriter << localizeMessage(MSG_PATH,                DELETE_PROVIDER_SUCCESS_KEY,                DELETE_PROVIDER_SUCCESS) << endl;        }        else        {            // Delete all the registered provider modules            CIMInstance moduleInstance = _getModuleInstance();            CIMObjectPath moduleRef = moduleInstance.getPath ();            moduleRef.setNameSpace(PEGASUS_NAMESPACENAME_PROVIDERREG);            moduleRef.setClassName(PEGASUS_CLASSNAME_PROVIDERMODULE);            CIMKeyBinding kb1(CIMName ("Name"), _moduleName,                CIMKeyBinding::STRING);            Array<CIMKeyBinding> keys;            keys.append(kb1);            moduleRef.setKeyBindings(keys);//l10n            //outPrintWriter << DELETEING_PROVIDER_MODULE << endl;            outPrintWriter << localizeMessage(MSG_PATH,                DELETEING_PROVIDER_MODULE_KEY,                DELETEING_PROVIDER_MODULE) << endl;            _client->deleteInstance(                PEGASUS_NAMESPACENAME_PROVIDERREG,                moduleRef);//l10n            //outPrintWriter << DELETE_PROVIDER_MODULE_SUCCESS << endl;            outPrintWriter << localizeMessage(MSG_PATH,                DELETE_PROVIDER_MODULE_SUCCESS_KEY,                DELETE_PROVIDER_MODULE_SUCCESS) << endl;        }    }}//// Enable the provider module//void CIMProviderCommand::_StartProvider    (    ostream&    outPrintWriter,    ostream&    errPrintWriter    ){    CIMObjectPath ref;    //    // enable module    //    if ( _moduleSet )    {        // get the module instance        CIMInstance moduleInstance = _getModuleInstance();        CIMObjectPath moduleRef = moduleInstance.getPath ();        moduleRef.setNameSpace(PEGASUS_NAMESPACENAME_PROVIDERREG);        moduleRef.setClassName(PEGASUS_CLASSNAME_PROVIDERMODULE);        CIMKeyBinding kb1(CIMName ("Name"), _moduleName,            CIMKeyBinding::STRING);        Array<CIMKeyBinding> keys;        keys.append(kb1);        moduleRef.setKeyBindings(keys);        ref = moduleRef;        //l10n        //outPrintWriter << STARTING_PROVIDER_MODULE << endl;        outPrintWriter << localizeMessage(MSG_PATH,            STARTING_PROVIDER_MODULE_KEY,            STARTING_PROVIDER_MODULE) << endl;    }    Array<CIMParamValue> inParams;    Array<CIMParamValue> outParams;    CIMValue ret_value = _client->invokeMethod(        PEGASUS_NAMESPACENAME_PROVIDERREG,        ref,        START_METHOD,        inParams,        outParams);    Sint16 retValue;    ret_value.get(retValue);    if (retValue == 1)    {        //l10n        //outPrintWriter << PROVIDER_ALREADY_STARTED << endl;        outPrintWriter << localizeMessage(MSG_PATH,            PROVIDER_ALREADY_STARTED_KEY,            PROVIDER_ALREADY_STARTED) << endl;    }    else if (retValue == 2)    {        //l10n        //outPrintWriter << CANNOT_START_PROVIDER << endl;        outPrintWriter << localizeMessage(MSG_PATH,            CANNOT_START_PROVIDER_KEY,            CANNOT_START_PROVIDER) << endl;    }    else if (retValue == 0)    {        //l10n        //outPrintWriter << START_PROVIDER_SUCCESS << endl;        outPrintWriter << localizeMessage(MSG_PATH,            START_PROVIDER_SUCCESS_KEY,            START_PROVIDER_SUCCESS) << endl;    }    else    {        //l10n        //outPrintWriter << START_PROVIDER_FAILURE << endl;        outPrintWriter << localizeMessage(MSG_PATH,            START_PROVIDER_FAILURE_KEY,            START_PROVIDER_FAILURE) << endl;    }}//// Disable the provider module//void CIMProviderCommand::_StopProvider    (    ostream&    outPrintWriter,    ostream&    errPrintWriter    ){    CIMObjectPath ref;    //    // disable the module    //    if ( _moduleSet )    {        // get the module instance        CIMInstance moduleInstance = _getModuleInstance();        CIMObjectPath moduleRef = moduleInstance.getPath ();        moduleRef.setNameSpace(PEGASUS_NAMESPACENAME_PROVIDERREG);        moduleRef.setClassName(PEGASUS_CLASSNAME_PROVIDERMODULE);        CIMKeyBinding kb1(CIMName ("Name"), _moduleName,            CIMKeyBinding::STRING);        Array<CIMKeyBinding> keys;        keys.append(kb1);        moduleRef.setKeyBindings(keys);        ref = moduleRef;        //l10n        //outPrintWriter << STOPING_PROVIDER_MODULE << endl;        outPrintWriter << localizeMessage(MSG_PATH,            STOPING_PROVIDER_MODULE_KEY,            STOPING_PROVIDER_MODULE) << endl;    }    Array<CIMParamValue> inParams;    Array<CIMParamValue> outParams;    CIMValue ret_value = _client->invokeMethod(        PEGASUS_NAMESPACENAME_PROVIDERREG,        ref,        STOP_METHOD,        inParams,        outParams);    Sint16 retValue;    ret_value.get(retValue);    if (retValue == 1)    {        //l10n        //outPrintWriter << PROVIDER_ALREADY_STOPPED << endl;        outPrintWriter << localizeMessage(MSG_PATH,            PROVIDER_ALREADY_STOPPED_KEY,            PROVIDER_ALREADY_STOPPED) << endl;    }    else if (retValue == 0)    {        //l10n        //outPrintWriter << STOP_PROVIDER_SUCCESS << endl;        outPrintWriter << localizeMessage(MSG_PATH,            STOP_PROVIDER_SUCCESS_KEY,            STOP_PROVIDER_SUCCESS) << endl;    }    else if (retValue == -2)    {        //l10n        //outPrintWriter << PENDING_REQUESTS_STOP_PROVIDER_FAILURE << endl;        outPrintWriter << localizeMessage(MSG_PATH,            PENDING_REQUESTS_STOP_PROVIDER_FAILURE_KEY,            PENDING_REQUESTS_STOP_PROVIDER_FAILURE) << endl;    }    else    {        //l10n        //outPrintWriter << STOP_PROVIDER_FAILURE << endl;        outPrintWriter << localizeMessage(MSG_PATH,            STOP_PROVIDER_FAILURE_KEY,            STOP_PROVIDER_FAILURE) << endl;    }}/**    get a list of all registered provider modules or their status or providers. */void CIMProviderCommand::_ListProviders    (    ostream&    outPrintWriter,    ostream&    errPrintWriter    ){    Array<CIMInstance> moduleInstances;    Array<CIMObjectPath> instanceNames;    String moduleName;    String providerName;    Array<String> moduleNames;    Array<CIMInstance> instances;    Boolean moduleExist = false;    if (_moduleSet)    {        // get registered providers which are in the specified module        instanceNames = _client->enumerateInstanceNames(            PEGASUS_NAMESPACENAME_PROVIDERREG,            PEGASUS_CLASSNAME_PROVIDER);        if ( instanceNames.size() == 0 )        {            //l10n            //cerr << ERR_PROVIDER_NOT_REGISTERED << endl;            cerr << localizeMessage(MSG_PATH,                ERR_PROVIDER_NOT_REGISTERED_KEY,                ERR_PROVIDER_NOT_REGISTERED) << endl;            exit(-1);        }        else        {            // List all the registered providers which have specified module            for (Uint32 i = 0; i < instanceNames.size(); i++)            {                Array<CIMKeyBinding> keys = instanceNames[i].getKeyBindings();                for(Uint32 j=0; j < keys.size(); j++)                {                    if(keys[j].getName().equal (_PROPERTY_PROVIDERMODULENAME))                    {                        moduleName = keys[j].getValue();                    }                    if(keys[j].getName().equal (_PROPERTY_PROVIDER_NAME))                    {                        providerName = keys[j].getValue();                    }                }                if (String::equalNoCase(moduleName, _moduleName))                {                    moduleExist = true;                        outPrintWriter << providerName << endl;;                }            }            if (!moduleExist)            {                //l10n                //cerr << ERR_PROVIDER_NOT_REGISTERED << endl;                cerr << localizeMessage(MSG_PATH,                    ERR_PROVIDER_NOT_REGISTERED_KEY,                    ERR_PROVIDER_NOT_REGISTERED) << endl;                exit(-1);            }        }    }    else    {        // Get all registered provider modules        moduleInstances = _client->enumerateInstances(            PEGASUS_NAMESPACENAME_PROVIDERREG,            PEGASUS_CLASSNAME_PROVIDERMODULE);        if ( moduleInstances.size() == 0 )        {            //l10n

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -