cimoperationrequestencoder.cpp

来自「Pegasus is an open-source implementation」· C++ 代码 · 共 931 行 · 第 1/3 页

CPP
931
字号
        params);    _sendRequest(buffer);}void CIMOperationRequestEncoder::_encodeEnumerateQualifiersRequest(    CIMEnumerateQualifiersRequestMessage* message){    Buffer params;    Buffer buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,        message->nameSpace, CIMName ("EnumerateQualifiers"), message->messageId,        message->getHttpMethod(),        _authenticator->buildRequestAuthHeader(),        ((AcceptLanguageListContainer)message->operationContext.get(            AcceptLanguageListContainer::NAME)).getLanguages(),        ((ContentLanguageListContainer)message->operationContext.get(            ContentLanguageListContainer::NAME)).getLanguages(),        params);    _sendRequest(buffer);}void CIMOperationRequestEncoder::_encodeDeleteQualifierRequest(    CIMDeleteQualifierRequestMessage* message){    Buffer params;    if (!message->qualifierName.isNull())        XmlWriter::appendStringIParameter(            params, "QualifierName", message->qualifierName.getString());    Buffer buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,        message->nameSpace, CIMName ("DeleteQualifier"), message->messageId,        message->getHttpMethod(),        _authenticator->buildRequestAuthHeader(),        ((AcceptLanguageListContainer)message->operationContext.get(            AcceptLanguageListContainer::NAME)).getLanguages(),        ((ContentLanguageListContainer)message->operationContext.get(            ContentLanguageListContainer::NAME)).getLanguages(),        params);    _sendRequest(buffer);}void CIMOperationRequestEncoder::_encodeReferenceNamesRequest(    CIMReferenceNamesRequestMessage* message){    Buffer params;    XmlWriter::appendObjectNameIParameter(        params, "ObjectName", message->objectName);    XmlWriter::appendClassNameIParameter(        params, "ResultClass", message->resultClass);    //    //  The Client API has no way to represent a NULL role;    //  An empty string is interpreted as NULL    //    if (message->role != String::EMPTY)    {        XmlWriter::appendStringIParameter(            params, "Role", message->role);    }    Buffer buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,        message->nameSpace, CIMName ("ReferenceNames"), message->messageId,        message->getHttpMethod(),        _authenticator->buildRequestAuthHeader(),        ((AcceptLanguageListContainer)message->operationContext.get(            AcceptLanguageListContainer::NAME)).getLanguages(),        ((ContentLanguageListContainer)message->operationContext.get(            ContentLanguageListContainer::NAME)).getLanguages(),        params);    _sendRequest(buffer);}void CIMOperationRequestEncoder::_encodeReferencesRequest(    CIMReferencesRequestMessage* message){    Buffer params;    XmlWriter::appendObjectNameIParameter(        params, "ObjectName", message->objectName);    XmlWriter::appendClassNameIParameter(        params, "ResultClass", message->resultClass);    //    //  The Client API has no way to represent a NULL role;    //  An empty string is interpreted as NULL    //    if (message->role != String::EMPTY)    {        XmlWriter::appendStringIParameter(            params, "Role", message->role);    }    if (message->includeQualifiers != false)        XmlWriter::appendBooleanIParameter(params, "IncludeQualifiers", true);    if (message->includeClassOrigin != false)        XmlWriter::appendBooleanIParameter(params, "IncludeClassOrigin", true);    if (!message->propertyList.isNull())        XmlWriter::appendPropertyListIParameter(            params, message->propertyList);    Buffer buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,        message->nameSpace, CIMName ("References"), message->messageId,        message->getHttpMethod(),        _authenticator->buildRequestAuthHeader(),        ((AcceptLanguageListContainer)message->operationContext.get(            AcceptLanguageListContainer::NAME)).getLanguages(),        ((ContentLanguageListContainer)message->operationContext.get(            ContentLanguageListContainer::NAME)).getLanguages(),        params);    _sendRequest(buffer);}void CIMOperationRequestEncoder::_encodeAssociatorNamesRequest(    CIMAssociatorNamesRequestMessage* message){    Buffer params;    XmlWriter::appendObjectNameIParameter(        params, "ObjectName", message->objectName);    XmlWriter::appendClassNameIParameter(        params, "AssocClass", message->assocClass);    XmlWriter::appendClassNameIParameter(        params, "ResultClass", message->resultClass);    //    //  The Client API has no way to represent a NULL role;    //  An empty string is interpreted as NULL    //    if (message->role != String::EMPTY)    {        XmlWriter::appendStringIParameter(            params, "Role", message->role);    }    //    //  The Client API has no way to represent a NULL resultRole;    //  An empty string is interpreted as NULL    //    if (message->resultRole != String::EMPTY)    {        XmlWriter::appendStringIParameter(            params, "ResultRole", message->resultRole);    }    Buffer buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,        message->nameSpace, CIMName ("AssociatorNames"), message->messageId,        message->getHttpMethod(),        _authenticator->buildRequestAuthHeader(),        ((AcceptLanguageListContainer)message->operationContext.get(            AcceptLanguageListContainer::NAME)).getLanguages(),        ((ContentLanguageListContainer)message->operationContext.get(            ContentLanguageListContainer::NAME)).getLanguages(),        params);    _sendRequest(buffer);}void CIMOperationRequestEncoder::_encodeAssociatorsRequest(    CIMAssociatorsRequestMessage* message){    Buffer params;    XmlWriter::appendObjectNameIParameter(        params, "ObjectName", message->objectName);    XmlWriter::appendClassNameIParameter(        params, "AssocClass", message->assocClass);    XmlWriter::appendClassNameIParameter(        params, "ResultClass", message->resultClass);    //    //  The Client API has no way to represent a NULL role;    //  An empty string is interpreted as NULL    //    if (message->role != String::EMPTY)    {        XmlWriter::appendStringIParameter(            params, "Role", message->role);    }    //    //  The Client API has no way to represent a NULL resultRole;    //  An empty string is interpreted as NULL    //    if (message->resultRole != String::EMPTY)    {        XmlWriter::appendStringIParameter(            params, "ResultRole", message->resultRole);    }    if (message->includeQualifiers != false)        XmlWriter::appendBooleanIParameter(params, "IncludeQualifiers", true);    if (message->includeClassOrigin != false)        XmlWriter::appendBooleanIParameter(params, "IncludeClassOrigin", true);    if (!message->propertyList.isNull())        XmlWriter::appendPropertyListIParameter(            params, message->propertyList);    Buffer buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,        message->nameSpace, CIMName ("Associators"), message->messageId,        message->getHttpMethod(),        _authenticator->buildRequestAuthHeader(),        ((AcceptLanguageListContainer)message->operationContext.get(            AcceptLanguageListContainer::NAME)).getLanguages(),        ((ContentLanguageListContainer)message->operationContext.get(            ContentLanguageListContainer::NAME)).getLanguages(),        params);    _sendRequest(buffer);}void CIMOperationRequestEncoder::_encodeExecQueryRequest(    CIMExecQueryRequestMessage* message){    Buffer params;    XmlWriter::appendStringIParameter(        params, "QueryLanguage", message->queryLanguage);    XmlWriter::appendStringIParameter(        params, "Query", message->query);    Buffer buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,        message->nameSpace, CIMName ("ExecQuery"), message->messageId,        message->getHttpMethod(),        _authenticator->buildRequestAuthHeader(),        ((AcceptLanguageListContainer)message->operationContext.get(            AcceptLanguageListContainer::NAME)).getLanguages(),        ((ContentLanguageListContainer)message->operationContext.get(            ContentLanguageListContainer::NAME)).getLanguages(),        params);    _sendRequest(buffer);}void CIMOperationRequestEncoder::_encodeInvokeMethodRequest(    CIMInvokeMethodRequestMessage* message){    Buffer buffer = XmlWriter::formatSimpleMethodReqMessage(_hostName,        message->nameSpace, message->instanceName, message->methodName,        message->inParameters, message->messageId,        message->getHttpMethod(), _authenticator->buildRequestAuthHeader(),        ((AcceptLanguageListContainer)message->operationContext.get(            AcceptLanguageListContainer::NAME)).getLanguages(),        ((ContentLanguageListContainer)message->operationContext.get(            ContentLanguageListContainer::NAME)).getLanguages());    _sendRequest(buffer);}// Enqueue the buffer to the ouptut queue with a conditional display.// This function is only enabled if the Pegasus Client trace is enabled.// Uses parameter to determine whether to send to console to log.void CIMOperationRequestEncoder::_sendRequest(Buffer& buffer){#ifdef PEGASUS_CLIENT_TRACE_ENABLE    if (_showOutput & 1)    {        buffer.append('\0');        XmlWriter::indentedPrint(cout, buffer.getData());        cout << endl;        buffer.remove(buffer.size() - 1);    }    if (_showOutput & 2)    {        buffer.append('\0');        Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,            "CIMOperationRequestEncoder::SendRequest, XML content: $1",            buffer.getData());        buffer.remove(buffer.size() - 1);    }#endif    HTTPMessage * http_request = new HTTPMessage(buffer);    // these variables are needed to call HTTPMessage::parse, all we need    // is contentLength    String startLine;    Array<HTTPHeader> headers;    Uint32 contentLength;    http_request->parse(startLine, headers, contentLength);    if (dataStore_prt)    {        dataStore_prt->setRequestSize(contentLength);        dataStore_prt->setStartNetworkTime();    }    _outputQueue->enqueue(http_request);}PEGASUS_NAMESPACE_END

⌨️ 快捷键说明

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