📄 providermessagehandler.cpp
字号:
CIMRequestMessage* message){ PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "ProviderMessageHandler::_handleEnumerateInstanceNamesRequest"); CIMEnumerateInstanceNamesRequestMessage* request = dynamic_cast<CIMEnumerateInstanceNamesRequestMessage*>(message); PEGASUS_ASSERT(request != 0); AutoPtr<CIMEnumerateInstanceNamesResponseMessage> response( dynamic_cast<CIMEnumerateInstanceNamesResponseMessage*>( request->buildResponse())); PEGASUS_ASSERT(response.get() != 0); // create a handler for this request EnumerateInstanceNamesResponseHandler handler( request, response.get(), _responseChunkCallback); // make target object path CIMObjectPath objectPath( System::getHostName(), request->nameSpace, request->className); PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, "ProviderMessageHandler::_handleEnumerateInstanceNamesRequest - " "Object path: $0", objectPath.toString())); OperationContext providerContext( _createProviderOperationContext(request->operationContext)); AutoPThreadSecurity threadLevelSecurity(providerContext); CIMInstanceProvider* provider = getProviderInterface<CIMInstanceProvider>(_provider); PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Calling provider.enumerateInstanceNames: " + _name); StatProviderTimeMeasurement providerTime(response.get()); HANDLE_PROVIDER_EXCEPTION( provider->enumerateInstanceNames( providerContext, objectPath, handler), handler) PEG_METHOD_EXIT(); return response.release();}CIMResponseMessage* ProviderMessageHandler::_handleCreateInstanceRequest( CIMRequestMessage* message){ PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "ProviderMessageHandler::_handleCreateInstanceRequest"); CIMCreateInstanceRequestMessage* request = dynamic_cast<CIMCreateInstanceRequestMessage*>(message); PEGASUS_ASSERT(request != 0); AutoPtr<CIMCreateInstanceResponseMessage> response( dynamic_cast<CIMCreateInstanceResponseMessage*>( request->buildResponse())); PEGASUS_ASSERT(response.get() != 0); // create a handler for this request CreateInstanceResponseHandler handler( request, response.get(), _responseChunkCallback); // make target object path CIMObjectPath objectPath( System::getHostName(), request->nameSpace, request->newInstance.getPath().getClassName(), request->newInstance.getPath().getKeyBindings()); PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, "ProviderMessageHandler::_handleCreateInstanceRequest - " "Object path: $0", objectPath.toString())); OperationContext providerContext( _createProviderOperationContext(request->operationContext)); AutoPThreadSecurity threadLevelSecurity(providerContext); CIMInstanceProvider* provider = getProviderInterface<CIMInstanceProvider>(_provider); PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Calling provider.createInstance: " + _name); StatProviderTimeMeasurement providerTime(response.get()); HANDLE_PROVIDER_EXCEPTION( provider->createInstance( providerContext, objectPath, request->newInstance, handler), handler) PEG_METHOD_EXIT(); return response.release();}CIMResponseMessage* ProviderMessageHandler::_handleModifyInstanceRequest( CIMRequestMessage* message){ PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "ProviderMessageHandler::_handleModifyInstanceRequest"); CIMModifyInstanceRequestMessage* request = dynamic_cast<CIMModifyInstanceRequestMessage*>(message); PEGASUS_ASSERT(request != 0); AutoPtr<CIMModifyInstanceResponseMessage> response( dynamic_cast<CIMModifyInstanceResponseMessage*>( request->buildResponse())); PEGASUS_ASSERT(response.get() != 0); // create a handler for this request ModifyInstanceResponseHandler handler( request, response.get(), _responseChunkCallback); // make target object path CIMObjectPath objectPath( System::getHostName(), request->nameSpace, request->modifiedInstance.getPath().getClassName(), request->modifiedInstance.getPath().getKeyBindings()); PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, "ProviderMessageHandler::_handleModifyInstanceRequest - " "Object path: $0", objectPath.toString())); OperationContext providerContext( _createProviderOperationContext(request->operationContext)); AutoPThreadSecurity threadLevelSecurity(providerContext); CIMInstanceProvider* provider = getProviderInterface<CIMInstanceProvider>(_provider); PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Calling provider.modifyInstance: " + _name); StatProviderTimeMeasurement providerTime(response.get()); HANDLE_PROVIDER_EXCEPTION( provider->modifyInstance( providerContext, objectPath, request->modifiedInstance, request->includeQualifiers, request->propertyList, handler), handler) PEG_METHOD_EXIT(); return response.release();}CIMResponseMessage* ProviderMessageHandler::_handleDeleteInstanceRequest( CIMRequestMessage* message){ PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "ProviderMessageHandler::_handleDeleteInstanceRequest"); CIMDeleteInstanceRequestMessage* request = dynamic_cast<CIMDeleteInstanceRequestMessage*>(message); PEGASUS_ASSERT(request != 0); AutoPtr<CIMDeleteInstanceResponseMessage> response( dynamic_cast<CIMDeleteInstanceResponseMessage*>( request->buildResponse())); PEGASUS_ASSERT(response.get() != 0); // create a handler for this request DeleteInstanceResponseHandler handler( request, response.get(), _responseChunkCallback); // make target object path CIMObjectPath objectPath( System::getHostName(), request->nameSpace, request->instanceName.getClassName(), request->instanceName.getKeyBindings()); PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, "ProviderMessageHandler::_handleDeleteInstanceRequest - " "Object path: $0", objectPath.toString())); OperationContext providerContext( _createProviderOperationContext(request->operationContext)); AutoPThreadSecurity threadLevelSecurity(providerContext); CIMInstanceProvider* provider = getProviderInterface<CIMInstanceProvider>(_provider); PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Calling provider.deleteInstance: " + _name); StatProviderTimeMeasurement providerTime(response.get()); HANDLE_PROVIDER_EXCEPTION( provider->deleteInstance( providerContext, objectPath, handler), handler) PEG_METHOD_EXIT(); return response.release();}CIMResponseMessage* ProviderMessageHandler::_handleExecQueryRequest( CIMRequestMessage* message){ PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "ProviderMessageHandler::_handleExecQueryRequest"); CIMExecQueryRequestMessage* request = dynamic_cast<CIMExecQueryRequestMessage*>(message); PEGASUS_ASSERT(request != 0); AutoPtr<CIMExecQueryResponseMessage> response( dynamic_cast<CIMExecQueryResponseMessage*>( request->buildResponse())); PEGASUS_ASSERT(response.get() != 0); // create a handler for this request ExecQueryResponseHandler handler( request, response.get(), _responseChunkCallback); // make target object path CIMObjectPath objectPath( System::getHostName(), request->nameSpace, request->className); PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, "ProviderMessageHandler::_handleExecQueryRequest - " "Object path: $0", objectPath.toString())); QueryExpression qx(request->queryLanguage,request->query); OperationContext providerContext( _createProviderOperationContext(request->operationContext)); AutoPThreadSecurity threadLevelSecurity(providerContext); CIMInstanceQueryProvider* provider = getProviderInterface<CIMInstanceQueryProvider>(_provider); PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Calling provider.execQuery: " + _name); StatProviderTimeMeasurement providerTime(response.get()); HANDLE_PROVIDER_EXCEPTION( provider->execQuery( providerContext, objectPath, qx, handler), handler) PEG_METHOD_EXIT(); return response.release();}CIMResponseMessage* ProviderMessageHandler::_handleAssociatorsRequest( CIMRequestMessage* message){ PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "ProviderMessageHandler::_handleAssociatorsRequest"); CIMAssociatorsRequestMessage* request = dynamic_cast<CIMAssociatorsRequestMessage*>(message); PEGASUS_ASSERT(request != 0); AutoPtr<CIMAssociatorsResponseMessage> response( dynamic_cast<CIMAssociatorsResponseMessage*>( request->buildResponse())); PEGASUS_ASSERT(response.get() != 0); // create a handler for this request AssociatorsResponseHandler handler( request, response.get(), _responseChunkCallback); // make target object path CIMObjectPath objectPath( System::getHostName(), request->nameSpace, request->objectName.getClassName()); objectPath.setKeyBindings(request->objectName.getKeyBindings()); PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, "ProviderMessageHandler::_handleAssociatorsRequest - " "Object path: $0", objectPath.toString())); CIMObjectPath assocPath( System::getHostName(), request->nameSpace, request->assocClass.getString()); OperationContext providerContext( _createProviderOperationContext(request->operationContext)); AutoPThreadSecurity threadLevelSecurity(providerContext); CIMAssociationProvider* provider = getProviderInterface<CIMAssociationProvider>(_provider); PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Calling provider.associators: " + _name); StatProviderTimeMeasurement providerTime(response.get()); HANDLE_PROVIDER_EXCEPTION( provider->associators( providerContext, objectPath, request->assocClass, request->resultClass, request->role, request->resultRole, request->includeQualifiers, request->includeClassOrigin, request->propertyList, handler), handler) PEG_METHOD_EXIT(); return response.release();}CIMResponseMessage* ProviderMessageHandler::_handleAssociatorNamesRequest( CIMRequestMessage* message){ PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "ProviderMessageHandler::_handleAssociatorNamesRequest"); CIMAssociatorNamesRequestMessage* request = dynamic_cast<CIMAssociatorNamesRequestMessage*>(message); PEGASUS_ASSERT(request != 0); AutoPtr<CIMAssociatorNamesResponseMessage> response( dynamic_cast<CIMAssociatorNamesResponseMessage*>( request->buildResponse())); PEGASUS_ASSERT(response.get() != 0); // create a handler for this request AssociatorNamesResponseHandler handler( request, response.get(), _responseChunkCallback); // make target object path CIMObjectPath objectPath( System::getHostName(), request->nameSpace, request->objectName.getClassName()); objectPath.setKeyBindings(request->objectName.getKeyBindings()); PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, "ProviderMessageHandler::_handleAssociationNamesRequest - " "Object path: $0", objectPath.toString())); CIMObjectPath assocPath( System::getHostName(), request->nameSpace, request->assocClass.getString()); OperationContext providerContext( _createProviderOperationContext(request->operationContext)); AutoPThreadSecurity threadLevelSecurity(providerContext); CIMAssociationProvider* provider = getProviderInterface<CIMAssociationProvider>(_provider); PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Calling provider.associatorNames: " + _name); StatProviderTimeMeasurement providerTime(response.get()); HANDLE_PROVIDER_EXCEPTION( provider->associatorNames( providerContext, objectPath, request->assocClass, request->resultClass, request->role, request->resultRole, handler), handler) PEG_METHOD_EXIT(); return response.release();}CIMResponseMessage* ProviderMessageHandler::_handleReferencesRequest( CIMRequestMessage* message){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -