(file) Return to DefaultProviderManager.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / ProviderManager2 / Default

Diff for /pegasus/src/Pegasus/ProviderManager2/Default/DefaultProviderManager.cpp between version 1.15 and 1.22

version 1.15, 2004/02/20 00:56:00 version 1.22, 2004/03/04 10:11:14
Line 49 
Line 49 
 #include <Pegasus/Config/ConfigManager.h> #include <Pegasus/Config/ConfigManager.h>
  
 #include <Pegasus/ProviderManager2/Default/Provider.h> #include <Pegasus/ProviderManager2/Default/Provider.h>
 #include <Pegasus/ProviderManager2/Default/OperationResponseHandler.h>  #include <Pegasus/ProviderManager2/OperationResponseHandler.h>
  
 #include <Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h> #include <Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h>
 #include <Pegasus/ProviderManager2/ProviderManagerService.h> #include <Pegasus/ProviderManager2/ProviderManagerService.h>
Line 94 
Line 94 
 { {
 } }
  
 Message * DefaultProviderManager::processMessage(Message * request) throw()  Message * DefaultProviderManager::processMessage(Message * request)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,
         "DefaultProviderManager::processMessage()");         "DefaultProviderManager::processMessage()");
Line 211 
Line 211 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleUnsupportedRequest(const Message * message) throw()  Message * DefaultProviderManager::handleUnsupportedRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleUnsupportedRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleUnsupportedRequest");
  
Line 221 
Line 221 
     return(0);     return(0);
 } }
  
 Message * DefaultProviderManager::handleGetInstanceRequest(const Message * message) throw()  Message * DefaultProviderManager::handleGetInstanceRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleGetInstanceRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleGetInstanceRequest");
  
Line 264 
Line 264 
             request->instanceName.getKeyBindings());             request->instanceName.getKeyBindings());
  
         ProviderName name(         ProviderName name(
             objectPath.toString(),              objectPath,
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             ProviderType::INSTANCE);             ProviderType::INSTANCE);
  
         // resolve provider name         // resolve provider name
Line 332 
Line 329 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleEnumerateInstancesRequest(const Message * message) throw()  Message * DefaultProviderManager::handleEnumerateInstancesRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleEnumerateInstanceRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleEnumerateInstanceRequest");
  
Line 374 
Line 371 
             request->className);             request->className);
  
         ProviderName name(         ProviderName name(
             objectPath.toString(),              objectPath,
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             ProviderType::INSTANCE);             ProviderType::INSTANCE);
  
         // resolve provider name         // resolve provider name
Line 442 
Line 436 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleEnumerateInstanceNamesRequest(const Message * message) throw()  Message * DefaultProviderManager::handleEnumerateInstanceNamesRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleEnumerateInstanceNamesRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleEnumerateInstanceNamesRequest");
  
Line 486 
Line 480 
  
         // build an internal provider name from the request arguments         // build an internal provider name from the request arguments
         ProviderName name(         ProviderName name(
             objectPath.toString(),              objectPath,
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             ProviderType::INSTANCE);             ProviderType::INSTANCE);
  
         // resolve provider name         // resolve provider name
Line 549 
Line 540 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleCreateInstanceRequest(const Message * message) throw()  Message * DefaultProviderManager::handleCreateInstanceRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleCreateInstanceRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleCreateInstanceRequest");
  
Line 593 
Line 584 
             request->newInstance.getPath().getKeyBindings());             request->newInstance.getPath().getKeyBindings());
  
         ProviderName name(         ProviderName name(
             objectPath.toString(),              objectPath,
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             ProviderType::INSTANCE);             ProviderType::INSTANCE);
  
         // resolve provider name         // resolve provider name
Line 657 
Line 645 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleModifyInstanceRequest(const Message * message) throw()  Message * DefaultProviderManager::handleModifyInstanceRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleModifyInstanceRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleModifyInstanceRequest");
  
Line 700 
Line 688 
             request->modifiedInstance.getPath ().getKeyBindings());             request->modifiedInstance.getPath ().getKeyBindings());
  
         ProviderName name(         ProviderName name(
             objectPath.toString(),              objectPath,
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             ProviderType::INSTANCE);             ProviderType::INSTANCE);
  
         // resolve provider name         // resolve provider name
Line 768 
Line 753 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleDeleteInstanceRequest(const Message * message) throw()  Message * DefaultProviderManager::handleDeleteInstanceRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleDeleteInstanceRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleDeleteInstanceRequest");
  
Line 811 
Line 796 
             request->instanceName.getKeyBindings());             request->instanceName.getKeyBindings());
  
         ProviderName name(         ProviderName name(
             objectPath.toString(),              objectPath,
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             ProviderType::INSTANCE);             ProviderType::INSTANCE);
  
         // resolve provider name         // resolve provider name
Line 874 
Line 856 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleExecQueryRequest(const Message * message) throw()  Message * DefaultProviderManager::handleExecQueryRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleExecQueryRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleExecQueryRequest");
  
Line 916 
Line 898 
             request->className);             request->className);
  
         ProviderName name(         ProviderName name(
             objectPath.toString(),              objectPath,
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             ProviderType::QUERY);             ProviderType::QUERY);
  
         // resolve provider name         // resolve provider name
Line 992 
Line 971 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleAssociatorsRequest(const Message * message) throw()  Message * DefaultProviderManager::handleAssociatorsRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleAssociatorsRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleAssociatorsRequest");
  
Line 1033 
Line 1012 
  
         objectPath.setKeyBindings(request->objectName.getKeyBindings());         objectPath.setKeyBindings(request->objectName.getKeyBindings());
  
           CIMObjectPath assocPath(
               System::getHostName(),
               request->nameSpace,
               request->assocClass.getString());
   
         ProviderName name(         ProviderName name(
             objectPath.toString(),              assocPath,
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             ProviderType::ASSOCIATION);             ProviderType::ASSOCIATION);
  
         // resolve provider name         // resolve provider name
Line 1098 
Line 1079 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleAssociatorNamesRequest(const Message * message) throw()  Message * DefaultProviderManager::handleAssociatorNamesRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleAssociatorNamesRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleAssociatorNamesRequest");
  
Line 1142 
Line 1123 
  
         objectPath.setKeyBindings(request->objectName.getKeyBindings());         objectPath.setKeyBindings(request->objectName.getKeyBindings());
  
           CIMObjectPath assocPath(
               System::getHostName(),
               request->nameSpace,
               request->assocClass.getString());
   
         ProviderName name(         ProviderName name(
             objectPath.toString(),              assocPath,
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             ProviderType::ASSOCIATION);             ProviderType::ASSOCIATION);
  
         // resolve provider name         // resolve provider name
Line 1203 
Line 1186 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleReferencesRequest(const Message * message) throw()  Message * DefaultProviderManager::handleReferencesRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleReferencesRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleReferencesRequest");
  
Line 1247 
Line 1230 
  
         objectPath.setKeyBindings(request->objectName.getKeyBindings());         objectPath.setKeyBindings(request->objectName.getKeyBindings());
  
           CIMObjectPath resultPath(
               System::getHostName(),
               request->nameSpace,
               request->resultClass.getString());
   
         ProviderName name(         ProviderName name(
             objectPath.toString(),              resultPath,
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             ProviderType::ASSOCIATION);             ProviderType::ASSOCIATION);
  
         // resolve provider name         // resolve provider name
Line 1315 
Line 1300 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleReferenceNamesRequest(const Message * message) throw()  Message * DefaultProviderManager::handleReferenceNamesRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleReferenceNamesRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleReferenceNamesRequest");
  
Line 1357 
Line 1342 
  
         objectPath.setKeyBindings(request->objectName.getKeyBindings());         objectPath.setKeyBindings(request->objectName.getKeyBindings());
  
           CIMObjectPath resultPath(
               System::getHostName(),
               request->nameSpace,
               request->resultClass.getString());
   
         ProviderName name(         ProviderName name(
             objectPath.toString(),              resultPath,
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             ProviderType::ASSOCIATION);             ProviderType::ASSOCIATION);
  
         // resolve provider name         // resolve provider name
Line 1422 
Line 1409 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleGetPropertyRequest(const Message * message) throw()  Message * DefaultProviderManager::handleGetPropertyRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleGetPropertyRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleGetPropertyRequest");
  
Line 1465 
Line 1452 
             request->instanceName.getKeyBindings());             request->instanceName.getKeyBindings());
  
         ProviderName name(         ProviderName name(
             objectPath.toString(),              objectPath,
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             0);             0);
  
         // resolve provider name         // resolve provider name
Line 1531 
Line 1515 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleSetPropertyRequest(const Message * message) throw()  Message * DefaultProviderManager::handleSetPropertyRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleSetPropertyRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleSetPropertyRequest");
  
Line 1576 
Line 1560 
             request->instanceName.getKeyBindings());             request->instanceName.getKeyBindings());
  
         ProviderName name(         ProviderName name(
             objectPath.toString(),              objectPath,
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             0);             0);
  
         // resolve provider name         // resolve provider name
Line 1644 
Line 1625 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleInvokeMethodRequest(const Message * message) throw()  Message * DefaultProviderManager::handleInvokeMethodRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleInvokeMethodRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleInvokeMethodRequest");
  
Line 1690 
Line 1671 
             request->instanceName.getKeyBindings());             request->instanceName.getKeyBindings());
  
         ProviderName name(         ProviderName name(
             objectPath.toString(),              objectPath,
             String::EMPTY,              ProviderType::METHOD,
             String::EMPTY,              request->methodName);
             String::EMPTY,  
             0);  
  
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);         name = _resolveProviderName(name);
Line 1760 
Line 1739 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleCreateSubscriptionRequest(const Message * message) throw()  Message * DefaultProviderManager::handleCreateSubscriptionRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleCreateSubscriptionRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleCreateSubscriptionRequest");
  
Line 1805 
Line 1784 
             request->nameSpace.getString(),             request->nameSpace.getString(),
             temp);             temp);
  
         // NOTE: the provider and provider module name are embedded in the request, presumably to reduce          String physicalName=_resolvePhysicalName(
         // the number of provider lookups (but this should be trivial if the data is cached and accessed             request->providerModule.getProperty(
         // from the same source). to keep the lookups consistent, use the first class name, combined             request->providerModule.findProperty("Location")).getValue().toString());
         // with the other information in the request, and create an object path that can be used to  
         // resolve the provider using the ProviderRegistrar.  
   
         // make target object path  
         CIMObjectPath objectPath(  
             System::getHostName(),  
             request->nameSpace,  
             request->classNames[0].getString());  
  
         ProviderName name(         ProviderName name(
             objectPath.toString(),             request->provider.getProperty(request->provider.findProperty
             String::EMPTY,                ("Name")).getValue ().toString (),
             String::EMPTY,             physicalName,
             String::EMPTY,             request->providerModule.getProperty(request->providerModule.findProperty
                 ("InterfaceType")).getValue().toString(),
             0);             0);
  
         // resolve provider name  
         name = _resolveProviderName(name);  
   
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);
Line 1902 
Line 1871 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleModifySubscriptionRequest( const Message * message) throw()  Message * DefaultProviderManager::handleModifySubscriptionRequest( const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleModifySubscriptionRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleModifySubscriptionRequest");
  
Line 1942 
Line 1911 
         }         }
  
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
             "DefaultProviderManager::handleModifySubscriptionRequest - Host name: $0  Name space: $1  Class name(s): $2",              "DefaultProviderManager::handleCreateSubscriptionRequest - Host name: $0  Name space: $1  Class name(s): $2",
             System::getHostName(),             System::getHostName(),
             request->nameSpace.getString(),             request->nameSpace.getString(),
             temp);             temp);
  
         // NOTE: the provider and provider module name are embedded in the request, presumably to reduce          String physicalName=_resolvePhysicalName(
         // the number of provider lookups (but this should be trivial if the data is cached and accessed             request->providerModule.getProperty(
         // from the same source). to keep the lookups consistent, use the first class name, combined             request->providerModule.findProperty("Location")).getValue().toString());
         // with the other information in the request, and create an object path that can be used to  
         // resolve the provider using the ProviderRegistrar.  
   
         // make target object path  
         CIMObjectPath objectPath(  
             System::getHostName(),  
             request->nameSpace,  
             request->classNames[0].getString());  
  
         ProviderName name(         ProviderName name(
             objectPath.toString(),             request->provider.getProperty(request->provider.findProperty
             String::EMPTY,                ("Name")).getValue ().toString (),
             String::EMPTY,             physicalName,
             String::EMPTY,             request->providerModule.getProperty(request->providerModule.findProperty
                 ("InterfaceType")).getValue().toString(),
             0);             0);
  
         // resolve provider name  
         name = _resolveProviderName(name);  
   
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);
Line 2044 
Line 2003 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleDeleteSubscriptionRequest(const Message * message) throw()  Message * DefaultProviderManager::handleDeleteSubscriptionRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleDeleteSubscriptionRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleDeleteSubscriptionRequest");
  
Line 2089 
Line 2048 
             request->nameSpace.getString(),             request->nameSpace.getString(),
             temp);             temp);
  
         // NOTE: the provider and provider module name are embedded in the request, presumably to reduce          String physicalName=_resolvePhysicalName(
         // the number of provider lookups (but this should be trivial if the data is cached and accessed             request->providerModule.getProperty(
         // from the same source). to keep the lookups consistent, use the first class name, combined             request->providerModule.findProperty("Location")).getValue().toString());
         // with the other information in the request, and create an object path that can be used to  
         // resolve the provider using the ProviderRegistrar.  
   
         // make target object path  
         CIMObjectPath objectPath(  
             System::getHostName(),  
             request->nameSpace,  
             request->classNames[0].getString());  
  
         ProviderName name(         ProviderName name(
             objectPath.toString(),             request->provider.getProperty(request->provider.findProperty
             String::EMPTY,                ("Name")).getValue ().toString (),
             String::EMPTY,             physicalName,
             String::EMPTY,             request->providerModule.getProperty(request->providerModule.findProperty
                 ("InterfaceType")).getValue().toString(),
             0);             0);
  
         // resolve provider name  
         name = _resolveProviderName(name);  
   
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);
Line 2178 
Line 2127 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleEnableIndicationsRequest(const Message * message) throw()  Message * DefaultProviderManager::handleEnableIndicationsRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager:: handleEnableIndicationsRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager:: handleEnableIndicationsRequest");
  
Line 2220 
Line 2169 
           request->providerModule.getProperty(           request->providerModule.getProperty(
               request->providerModule.findProperty("Location")).getValue().toString());               request->providerModule.findProperty("Location")).getValue().toString());
  
        ProviderName name(String::EMPTY,         ProviderName name(
                request->provider.getProperty(request->providerModule.findProperty                 request->provider.getProperty(request->provider.findProperty
                    ("Name")).getValue ().toString (),                    ("Name")).getValue ().toString (),
                physicalName,                physicalName,
                request->providerModule.getProperty(request->providerModule.findProperty                request->providerModule.getProperty(request->providerModule.findProperty
Line 2277 
Line 2226 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleDisableIndicationsRequest(const Message * message) throw()  Message * DefaultProviderManager::handleDisableIndicationsRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleDisableIndicationsRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleDisableIndicationsRequest");
  
Line 2292 
Line 2241 
         CIMException(),         CIMException(),
         request->queueIds.copyAndPop());         request->queueIds.copyAndPop());
  
     PEGASUS_ASSERT(response != 0);  
   
     // preserve message key     // preserve message key
     response->setKey(request->getKey());     response->setKey(request->getKey());
  
Line 2308 
Line 2255 
               request->providerModule.getProperty(               request->providerModule.getProperty(
                  request->providerModule.findProperty("Location")).getValue().toString());                  request->providerModule.findProperty("Location")).getValue().toString());
  
        ProviderName name(String::EMPTY,         ProviderName name(
                request->provider.getProperty(request->providerModule.findProperty                 request->provider.getProperty(request->provider.findProperty
                    ("Name")).getValue ().toString (),                    ("Name")).getValue ().toString (),
                physicalName,                physicalName,
                request->providerModule.getProperty(request->providerModule.findProperty                request->providerModule.getProperty(request->providerModule.findProperty
Line 2364 
Line 2311 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleConsumeIndicationRequest(const Message *message) throw()  Message * DefaultProviderManager::handleConsumeIndicationRequest(const Message *message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handlConsumeIndicationRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handlConsumeIndicationRequest");
  
Line 2395 
Line 2342 
             String::EMPTY,             String::EMPTY,
             String::EMPTY,             String::EMPTY,
             String::EMPTY,             String::EMPTY,
             String::EMPTY,  
             0);             0);
  
         /*         /*
Line 2468 
Line 2414 
 } }
  
  
 Message *DefaultProviderManager::handleExportIndicationRequest(const Message *message) throw()  Message *DefaultProviderManager::handleExportIndicationRequest(const Message *message)
 { {
    PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManagerService::handlExportIndicationRequest");    PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManagerService::handlExportIndicationRequest");
  
Line 2499 
Line 2445 
             String::EMPTY,             String::EMPTY,
             String::EMPTY,             String::EMPTY,
             String::EMPTY,             String::EMPTY,
             String::EMPTY,  
             0);             0);
  
        // resolve provider name        // resolve provider name
Line 2572 
Line 2517 
 // //
 // ATTN-YZ-P2-20030519: Provider needs to be blocked when disable a provider. // ATTN-YZ-P2-20030519: Provider needs to be blocked when disable a provider.
 // //
 Message * DefaultProviderManager::handleDisableModuleRequest(const Message * message) throw()  Message * DefaultProviderManager::handleDisableModuleRequest(const Message * message)
 { {
     // HACK  
     ProviderRegistrationManager * _providerRegistrationManager = GetProviderRegistrationManager();  
   
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleDisableModuleRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleDisableModuleRequest");
  
     CIMDisableModuleRequestMessage * request =     CIMDisableModuleRequestMessage * request =
Line 2584 
Line 2526 
  
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
       Array<Uint16> operationalStatus;
       Boolean disableProviderOnly = request->disableProviderOnly;
       CIMException cimException;
   
       ProviderRegistrationManager * _providerRegistrationManager = GetProviderRegistrationManager();
   
       try
       {
     // get provider module name     // get provider module name
     String moduleName;     String moduleName;
     CIMInstance mInstance = request->providerModule;     CIMInstance mInstance = request->providerModule;
Line 2599 
Line 2549 
     //     //
     // get operational status     // get operational status
     //     //
     Array<Uint16> operationalStatus;  
   
     if(!disableProviderOnly)     if(!disableProviderOnly)
     {     {
         Uint32 pos2 = mInstance.findProperty(CIMName ("OperationalStatus"));         Uint32 pos2 = mInstance.findProperty(CIMName ("OperationalStatus"));
   
         if(pos2 != PEG_NOT_FOUND)         if(pos2 != PEG_NOT_FOUND)
         {         {
             //             //
Line 2623 
Line 2570 
                 operationalStatus.remove(i);                 operationalStatus.remove(i);
             }             }
         }         }
   
         operationalStatus.append(_MODULE_STOPPING);         operationalStatus.append(_MODULE_STOPPING);
  
         if(_providerRegistrationManager->setProviderModuleStatus         if(_providerRegistrationManager->setProviderModuleStatus
Line 2630 
Line 2578 
         {         {
             //l10n             //l10n
             //throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, "set module status failed.");             //throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, "set module status failed.");
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, MessageLoaderParms(                  throw PEGASUS_CIM_EXCEPTION_L(
                 "ProviderManager.DefaultProviderManager.SET_MODULE_STATUS_FAILED",                      CIM_ERR_FAILED,
                       MessageLoaderParms(
                           "ProviderManager.ProviderManagerService."
                               "SET_MODULE_STATUS_FAILED",
                 "set module status failed."));                 "set module status failed."));
         }         }
     }     }
  
     // Unload providers     // Unload providers
     Array<CIMInstance> _pInstances = request->providers;     Array<CIMInstance> _pInstances = request->providers;
     String physicalName=_resolvePhysicalName(request->providerModule.getProperty(          Array<Boolean> _indicationProviders = request->indicationProviders;
               request->providerModule.findProperty("Location")).getValue().toString());  
           String physicalName=_resolvePhysicalName(
              mInstance.getProperty(
                 mInstance.findProperty("Location")).getValue().toString());
  
     for(Uint32 i = 0, n = _pInstances.size(); i < n; i++)     for(Uint32 i = 0, n = _pInstances.size(); i < n; i++)
     {     {
         providerManager.unloadProvider(_pInstances[i].getProperty(              String pName(_pInstances[i].getProperty(
                                           request->providerModule.findProperty                 _pInstances[i].findProperty("Name")).getValue().toString());
                                           ("Name")).getValue ().toString (),  
                                        physicalName);              Sint16 ret_value = providerManager.disableProvider(physicalName,pName);
   
               if (ret_value == 0)
               {
                   // disable failed since there are pending requests,
                   // update module status from Stopping to OK if
                   // disableProviderOnly is not true
                   if (!disableProviderOnly)
                   {
                       for(Uint32 j=0, m = operationalStatus.size(); j < m; j++)
                       {
                           if (operationalStatus[j] == _MODULE_STOPPING)
                           {
                               operationalStatus.remove(j);
                           }
     }     }
  
                       operationalStatus.append(_MODULE_OK);
   
                       if(_providerRegistrationManager->setProviderModuleStatus
                           (moduleName, operationalStatus) == false)
                       {
                           throw PEGASUS_CIM_EXCEPTION_L(
                               CIM_ERR_FAILED,
                               MessageLoaderParms(
                                   "ProviderManager.ProviderManagerService."
                                       "SET_MODULE_STATUS_FAILED",
                                   "set module status failed."));
                       }
                   }
               }
               else if (ret_value == 1)
               {
                   // if It is an indication provider
                   // remove the entry from the table since the
                   // provider has been disabled
                   if (_indicationProviders[i])
                   {
                       _removeEntry(_generateKey(pName,physicalName));
                   }
               }
               else
               {
                   // disable failed for other reason, throw exception
                   // update module status from Stopping to OK if
                   // disableProviderOnly is not true
     if(!disableProviderOnly)     if(!disableProviderOnly)
     {     {
         // update module status from Stopping to Stopped                      for(Uint32 j=0, m = operationalStatus.size(); j < m; j++)
         for(Uint32 i=0, n = operationalStatus.size(); i < n; i++)  
         {         {
             if(operationalStatus[i] == _MODULE_STOPPING)                          if (operationalStatus[j] == _MODULE_STOPPING)
             {             {
                 operationalStatus.remove(i);                              operationalStatus.remove(j);
             }             }
         }         }
  
                       operationalStatus.append(_MODULE_OK);
   
                       if(_providerRegistrationManager->setProviderModuleStatus
                           (moduleName, operationalStatus) == false)
                       {
                           throw PEGASUS_CIM_EXCEPTION_L(
                               CIM_ERR_FAILED,
                               MessageLoaderParms(
                                   "ProviderManager.ProviderManagerService."
                                       "SET_MODULE_STATUS_FAILED",
                                   "set module status failed."));
                       }
                   }
   
                   throw PEGASUS_CIM_EXCEPTION_L(
                       CIM_ERR_FAILED,
                       MessageLoaderParms(
                           "ProviderManager.ProviderManagerService."
                               "DISABLE_PROVIDER_FAILED",
                           "Failed to disable the provider."));
               }
           }
           // disable succeed
           // update module status from Stopping to Stopped if
           // disableProviderOnly is not true
           if (!disableProviderOnly)
           {
               // update module status from Stopping to Stopped
               for(Uint32 j=0, m = operationalStatus.size(); j < m; j++)
               {
                   if (operationalStatus[j] == _MODULE_STOPPING)
                   {
                       operationalStatus.remove(j);
         operationalStatus.append(_MODULE_STOPPED);         operationalStatus.append(_MODULE_STOPPED);
                   }
               }
  
         if(_providerRegistrationManager->setProviderModuleStatus         if(_providerRegistrationManager->setProviderModuleStatus
             (moduleName, operationalStatus) == false)             (moduleName, operationalStatus) == false)
Line 2668 
Line 2699 
             //l10n             //l10n
             //throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,             //throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
             //"set module status failed.");             //"set module status failed.");
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, MessageLoaderParms(                  throw PEGASUS_CIM_EXCEPTION_L(
                 "ProviderManager.DefaultProviderManager.SET_MODULE_STATUS_FAILED",                        CIM_ERR_FAILED,
                         MessageLoaderParms(
                         "ProviderManager.ProviderManagerService."
                          "SET_MODULE_STATUS_FAILED",
                 "set module status failed."));                 "set module status failed."));
         }         }
     }     }
       }
       catch(CIMException & e)
       {
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                            "Exception: " + e.getMessage());
           cimException = e;
       }
       catch(Exception & e)
       {
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                            "Exception: " + e.getMessage());
           cimException = CIMException(CIM_ERR_FAILED, e.getMessage());
       }
       catch(...)
       {
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                            "Exception: Unknown");
           //l10n
           //response->cimException = CIMException(CIM_ERR_FAILED, "Unknown Error");
           cimException = PEGASUS_CIM_EXCEPTION_L(
               CIM_ERR_FAILED,
               MessageLoaderParms(
                   "ProviderManager.ProviderManagerService.UNKNOWN_ERROR",
                   "Unknown Error"));
       }
  
     CIMDisableModuleResponseMessage * response =     CIMDisableModuleResponseMessage * response =
         new CIMDisableModuleResponseMessage(         new CIMDisableModuleResponseMessage(
Line 2681 
Line 2740 
         request->queueIds.copyAndPop(),         request->queueIds.copyAndPop(),
         operationalStatus);         operationalStatus);
  
     PEGASUS_ASSERT(response != 0);  
   
     // preserve message key     // preserve message key
     response->setKey(request->getKey());     response->setKey(request->getKey());
  
     //  
     //  Set HTTP method in response from request     //  Set HTTP method in response from request
     //  
     response->setHttpMethod (request->getHttpMethod ());     response->setHttpMethod (request->getHttpMethod ());
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
Line 2696 
Line 2751 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleEnableModuleRequest(const Message * message) throw()  Message * DefaultProviderManager::handleEnableModuleRequest(const Message * message)
 { {
     // HACK     // HACK
     ProviderRegistrationManager * _providerRegistrationManager = GetProviderRegistrationManager();     ProviderRegistrationManager * _providerRegistrationManager = GetProviderRegistrationManager();
Line 2776 
Line 2831 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleStopAllProvidersRequest(const Message * message) throw()  Message * DefaultProviderManager::handleStopAllProvidersRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleStopAllProvidersRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleStopAllProvidersRequest");
  
Line 2858 
Line 2913 
     return(tableKey);     return(tableKey);
 } }
  
   String DefaultProviderManager::_generateKey (
       const String & providerName,
       const String & providerFileName)
   {
       String tableKey;
   
       PEG_METHOD_ENTER (TRC_INDICATION_SERVICE,
                         "DefaultProviderManagerService::_generateKey");
   
       //
       //  Append providerName and providerFileName to key
       //
       tableKey.append (providerName);
       tableKey.append (providerFileName);
   
       PEG_METHOD_EXIT ();
       return tableKey;
   }
   
 ProviderName DefaultProviderManager::_resolveProviderName(const ProviderName & providerName) ProviderName DefaultProviderManager::_resolveProviderName(const ProviderName & providerName)
 { {
     ProviderName temp = findProvider(providerName);     ProviderName temp = findProvider(providerName);
   
     String physicalName = _resolvePhysicalName(temp.getPhysicalName());     String physicalName = _resolvePhysicalName(temp.getPhysicalName());
   
     temp.setPhysicalName(physicalName);     temp.setPhysicalName(physicalName);
  
     return(temp);     return(temp);


Legend:
Removed from v.1.15  
changed lines
  Added in v.1.22

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2