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 + -
显示快捷键?