(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.11 and 1.11.4.4

version 1.11, 2003/12/08 12:25:35 version 1.11.4.4, 2004/03/18 20:38:36
Line 43 
Line 43 
 #include <Pegasus/Common/Logger.h> #include <Pegasus/Common/Logger.h>
 #include <Pegasus/Common/MessageLoader.h> //l10n #include <Pegasus/Common/MessageLoader.h> //l10n
  
   //#include <Pegasus/Common/QueryExpression.h>
   //#include <Pegasus/ProviderManager2/QueryExpressionFactory.h>
   
 #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>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
Line 90 
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 124 
Line 128 
         response = handleDeleteInstanceRequest(request);         response = handleDeleteInstanceRequest(request);
  
         break;         break;
     case CIM_EXEC_QUERY_REQUEST_MESSAGE:   //   case CIM_EXEC_QUERY_REQUEST_MESSAGE:
         response = handleExecuteQueryRequest(request);   //       response = handleExecQueryRequest(request);
  
         break;   //       break;
     case CIM_ASSOCIATORS_REQUEST_MESSAGE:     case CIM_ASSOCIATORS_REQUEST_MESSAGE:
         response = handleAssociatorsRequest(request);         response = handleAssociatorsRequest(request);
  
Line 180 
Line 184 
         response = handleConsumeIndicationRequest(request);         response = handleConsumeIndicationRequest(request);
         break;         break;
  
       case CIM_EXPORT_INDICATION_REQUEST_MESSAGE:
           response = handleExportIndicationRequest(request);
           break;
   
     case CIM_DISABLE_MODULE_REQUEST_MESSAGE:     case CIM_DISABLE_MODULE_REQUEST_MESSAGE:
         response = handleDisableModuleRequest(request);         response = handleDisableModuleRequest(request);
  
Line 203 
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 213 
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 256 
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 324 
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 366 
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
         name = _resolveProviderName(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(),
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);                  name.getLogicalName(), String::EMPTY);
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
Line 434 
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 478 
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 541 
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 585 
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 649 
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 692 
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 760 
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 803 
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 865 
Line 855 
  
     return(response);     return(response);
 } }
   /*
 Message * DefaultProviderManager::handleExecuteQueryRequest(const Message * message) throw()  Message * DefaultProviderManager::handleExecQueryRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleExecuteQueryRequest");      PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleExecQueryRequest");
  
     CIMExecQueryRequestMessage * request =     CIMExecQueryRequestMessage * request =
         dynamic_cast<CIMExecQueryRequestMessage *>(const_cast<Message *>(message));         dynamic_cast<CIMExecQueryRequestMessage *>(const_cast<Message *>(message));
  
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     //l10n  
     CIMExecQueryResponseMessage * response =     CIMExecQueryResponseMessage * response =
         new CIMExecQueryResponseMessage(         new CIMExecQueryResponseMessage(
         request->messageId,         request->messageId,
         PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, MessageLoaderParms(          CIMException(),
         "ProviderManager.DefaultProviderManager.NOT_IMPLEMENTED",  
         "not implemented")),  
         request->queueIds.copyAndPop(),         request->queueIds.copyAndPop(),
         Array<CIMObject>());         Array<CIMObject>());
  
Line 893 
Line 880 
     //  Set HTTP method in response from request     //  Set HTTP method in response from request
     response->setHttpMethod(request->getHttpMethod());     response->setHttpMethod(request->getHttpMethod());
  
     // l10n      // create a handler for this request
     // ATTN: when this is implemented, need to add the language containers to the      ExecQueryResponseHandler handler(request, response);
     // OperationContext.  See how the other requests do it.  
       try
       {
           Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
               "DefaultProviderManager::handleExecQueryRequest - Host name: $0  Name space: $1  Class name: $2",
               System::getHostName(),
               request->nameSpace.getString(),
               request->className.getString());
   
           // make target object path
           CIMObjectPath objectPath(
               System::getHostName(),
               request->nameSpace,
               request->className);
   
           ProviderName name(
               objectPath,
               ProviderType::QUERY);
   
           // resolve provider name
           name = _resolveProviderName(name);
   
           // get cached or load new provider module
           OpProviderHolder ph =
               providerManager.getProvider(name.getPhysicalName(),
                                           name.getLogicalName(), String::EMPTY);
   
           if (dynamic_cast<CIMInstanceQueryProvider*>(ph.GetCIMProvider()) == 0) {
              String errorString = " instance provider is registered supporting execQuery "
                                   "but is not a CIMQueryInstanceProvider subclass.";
              throw CIMException(CIM_ERR_FAILED,"ProviderLoadFailure (" + name.getPhysicalName() + ":" +
                               name.getLogicalName() + "):" + errorString);
           }
   
           // convert arguments
           OperationContext context;
   
           context.insert(IdentityContainer(request->userName));
           context.insert(AcceptLanguageListContainer(request->acceptLanguages));
           context.insert(ContentLanguageListContainer(request->contentLanguages));
   
           QueryExpression qx(QueryExpressionFactory::routeBuildQueryExpressionRep
              (request->queryLanguage,request->query));
   
           // forward request
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
               "Calling provider.executeQueryRequest: " +
               ph.GetProvider().getName());
   
           pm_service_op_lock op_lock(&ph.GetProvider());
   
           STAT_GETSTARTTIME;
   
           ph.GetProvider().execQuery(
               context,
               objectPath,
               qx,
               handler);
   
           STAT_PMS_PROVIDEREND;
       }
       catch(CIMException & e)
       {
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
               "Exception: " + e.getMessage());
   
           handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n
       }
       catch(Exception & e)
       {
              cout<<"--- exception not a CIMInstanceQueryProvider"<<endl;
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
               "Exception: " + e.getMessage());
   
           handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n
       }
       catch(...)
       {
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
               "Exception: Unknown");
   
           handler.setStatus(CIM_ERR_FAILED, "Unknown error.");
       }
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     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 943 
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 1008 
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 1052 
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 1113 
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 1157 
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 1225 
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 1267 
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 1332 
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 1375 
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 1441 
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 1486 
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 1554 
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 1600 
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 1670 
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 1715 
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 1812 
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 1852 
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 1954 
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 1999 
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 2088 
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 2119 
Line 2158 
  
     response->dest = request->queueIds.top();     response->dest = request->queueIds.top();
  
     /*  
     // ATTN: need pointer to Provider Manager Server!     // ATTN: need pointer to Provider Manager Server!
     //EnableIndicationsResponseHandler *handler =       EnableIndicationsResponseHandler *handler =
     //    new EnableIndicationsResponseHandler(request, response, this);          new EnableIndicationsResponseHandler(request, response,
                 request->provider, ProviderManagerService::providerManagerService);
  
     try     try
     {     {
         // get the provider file name and logical name         String physicalName=_resolvePhysicalName(
         Triad<String, String, String> triad =            request->providerModule.getProperty(
             _getProviderRegPair(request->provider, request->providerModule);                request->providerModule.findProperty("Location")).getValue().toString());
   
          ProviderName name(
                  request->provider.getProperty(request->provider.findProperty
                      ("Name")).getValue ().toString (),
                  physicalName,
                  request->providerModule.getProperty(request->providerModule.findProperty
                       ("InterfaceType")).getValue().toString(),
                  0);
  
         // get cached or load new provider module         // get cached or load new provider module
         //Provider provider =  
         OpProviderHolder ph =         OpProviderHolder ph =
             providerManager.getProvider(triad.first, triad.second, triad.third);              providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);
  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Calling provider.enableIndications: " +             "Calling provider.enableIndications: " +
             ph.GetProvider().getName());             ph.GetProvider().getName());
         ph.GetProvider().protect();  
           pm_service_op_lock op_lock(&ph.GetProvider());
   
         ph.GetProvider().enableIndications(*handler);         ph.GetProvider().enableIndications(*handler);
  
  
Line 2153 
Line 2201 
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Exception: " + e.getMessage());             "Exception: " + e.getMessage());
   
         response->cimException = CIMException(e);         response->cimException = CIMException(e);
     }     }
     catch(Exception & e)     catch(Exception & e)
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Exception: " + e.getMessage());             "Exception: " + e.getMessage());
         //l10n  
         //response->cimException = CIMException(CIM_ERR_FAILED, "Internal Error");  
         response->cimException = CIMException(CIM_ERR_FAILED, MessageLoaderParms(         response->cimException = CIMException(CIM_ERR_FAILED, MessageLoaderParms(
             "ProviderManager.DefaultProviderManager.INTERNAL_ERROR",             "ProviderManager.DefaultProviderManager.INTERNAL_ERROR",
             "Internal Error"));             "Internal Error"));
Line 2169 
Line 2216 
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Exception: Unknown");             "Exception: Unknown");
         //l10n  
         //response->cimException = CIMException(CIM_ERR_FAILED, "Unknown Error");  
         response->cimException = CIMException(CIM_ERR_FAILED, MessageLoaderParms(         response->cimException = CIMException(CIM_ERR_FAILED, MessageLoaderParms(
             "ProviderManager.DefaultProviderManager.UNKNOWN_ERROR",             "ProviderManager.DefaultProviderManager.UNKNOWN_ERROR",
             "Unknown Error"));             "Unknown Error"));
     }     }
     */  
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
     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 2197 
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 2209 
Line 2251 
  
     try     try
     {     {
          String physicalName=_resolvePhysicalName(
                 request->providerModule.getProperty(
                    request->providerModule.findProperty("Location")).getValue().toString());
   
         ProviderName name(         ProviderName name(
             String::EMPTY,                 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);
         /*  
         ProviderName name(  
             String::EMPTY,  
             String::EMPTY,  
             objectPath.toString());  
   
         // 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);
  
         /*  
         // get the provider file name and logical name  
         Triad<String, String, String> triad =  
             getProviderRegistrar()->_getProviderRegPair(request->provider, request->providerModule);  
   
         // get cached or load new provider module  
         //Provider provider =  
         OpProviderHolder ph =  
             providerManager.getProvider(triad.first, triad.second, triad.third);  
         */  
   
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Calling provider.disableIndications: " +             "Calling provider.disableIndications: " +
             ph.GetProvider().getName());             ph.GetProvider().getName());
Line 2284 
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 2315 
Line 2342 
             String::EMPTY,             String::EMPTY,
             String::EMPTY,             String::EMPTY,
             String::EMPTY,             String::EMPTY,
             String::EMPTY,  
             0);             0);
  
         /*         /*
Line 2387 
Line 2413 
     return(response);     return(response);
 } }
  
   
   Message *DefaultProviderManager::handleExportIndicationRequest(const Message *message)
   {
      PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManagerService::handlExportIndicationRequest");
   
       CIMExportIndicationRequestMessage * request =
           dynamic_cast<CIMExportIndicationRequestMessage *>(const_cast<Message *>(message));
   
       PEGASUS_ASSERT(request != 0);
   
       CIMExportIndicationResponseMessage * response =
           new CIMExportIndicationResponseMessage(
           request->messageId,
           CIMException(),
           request->queueIds.copyAndPop());
   
       PEGASUS_ASSERT(response != 0);
   
       // preserve message key
       response->setKey(request->getKey());
   
       //  Set HTTP method in response from request
       response->setHttpMethod (request->getHttpMethod ());
   
       OperationResponseHandler handler(request, response);
   
       try
       {
          ProviderName name(
               String::EMPTY,
               String::EMPTY,
               String::EMPTY,
               0);
   
          // resolve provider name
          name = _resolveProviderName(request->destinationPath);
   
          // get cached or load new provider module
           OpProviderHolder ph =
               providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);
   
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                          "Calling provider.: " +
                          ph.GetProvider().getName());
   
           OperationContext context;
   
   //L10N_TODO
   //l10n
   // ATTN-CEC 06/04/03 NOTE: I can't find where the consume msg is sent.  This
   // does not appear to be hooked-up.  When it is added, need to
   // make sure that Content-Language is set in the consume msg.
   // NOTE: A-L is not needed to be set in the consume msg.
         // add the langs to the context
         context.insert(ContentLanguageListContainer(request->contentLanguages));
   
         CIMInstance indication_copy = request->indicationInstance;
         pm_service_op_lock op_lock(&ph.GetProvider());
   
         ph.GetProvider().consumeIndication(context,
                                   request->destinationPath,
                                   indication_copy);
   
       }
   
       catch(CIMException & e)
       {
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
               "Exception: " + e.getMessage());
   
           handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage()); // l10n
       }
       catch(Exception & e)
       {
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
               "Exception: " + e.getMessage());
   
           handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage()); // l10n
       }
       catch(...)
       {
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
               "Exception: Unknown");
   
           handler.setStatus(CIM_ERR_FAILED, "Unknown Error");
       }
   
       PEG_METHOD_EXIT();
   
       return(response);
   }
   
   
   
   
 // //
 // This function disables a provider module if disableProviderOnly is not true, // This function disables a provider module if disableProviderOnly is not true,
 // otherwise, disables a provider. Disable provider module means that // otherwise, disables a provider. Disable provider module means that
Line 2396 
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 2408 
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;
     Uint32 pos = mInstance.findProperty(CIMName ("Name"));     Uint32 pos = mInstance.findProperty(CIMName ("Name"));
  
     if(pos != PEG_NOT_FOUND)        if(pos != PEG_NOT_FOUND) {
     {  
         mInstance.getProperty(pos).getValue().get(moduleName);         mInstance.getProperty(pos).getValue().get(moduleName);
     }     }
  
Line 2423 
Line 2547 
     //     //
     // 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)  
         {  
             //             //
             //  ATTN-CAKG-P2-20020821: Check for null status?             //  ATTN-CAKG-P2-20020821: Check for null status?
             //             //
Line 2440 
Line 2559 
         //         //
         // update module status from OK to Stopping         // update module status from OK to Stopping
         //         //
         for(Uint32 i=0, n = operationalStatus.size(); i < n; i++)           for (Uint32 i=0, n = operationalStatus.size(); i < n; i++) {
         {                    if (operationalStatus[i] == _MODULE_OK) {
             if(operationalStatus[i] == _MODULE_OK)  
             {  
                 operationalStatus.remove(i);                 operationalStatus.remove(i);
             }             }
         }         }
   
         operationalStatus.append(_MODULE_STOPPING);         operationalStatus.append(_MODULE_STOPPING);
  
         if(_providerRegistrationManager->setProviderModuleStatus         if(_providerRegistrationManager->setProviderModuleStatus
             (moduleName, operationalStatus) == false)                 (moduleName, operationalStatus) == false) {
         {  
             //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,
                 "set module status failed."));                       MessageLoaderParms("ProviderManager.ProviderManagerService."
                                 "SET_MODULE_STATUS_FAILED","set module status failed."));
         }         }
     }     }
  
     // Unload providers     // Unload providers
     Array<CIMInstance> _pInstances = request->providers;     Array<CIMInstance> _pInstances = request->providers;
            Array<Boolean> _indicationProviders = request->indicationProviders;
  
     for(Uint32 i = 0, n = _pInstances.size(); i < n; i++)           String physicalName=_resolvePhysicalName(
     {              mInstance.getProperty(
         /* temp disabled by Chip                 mInstance.findProperty("Location")).getValue().toString());
         // get the provider file name and logical name  
         Triad<String, String, String> triad =        for (Uint32 i = 0, n = _pInstances.size(); i < n; i++) {
             getProviderRegistrar()->_getProviderRegPair(_pInstances[i], mInstance);           String pName(_pInstances[i].getProperty(
                     _pInstances[i].findProperty("Name")).getValue().toString());
   
            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);
                     }
                  }
  
         providerManager.unloadProvider(triad.first, triad.second);                 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."));
                  }
               }
     }     }
  
     if(!disableProviderOnly)           else if (ret_value == 1) {
     {              // if It is an indication provider
         // update module status from Stopping to Stopped              // remove the entry from the table since the
         for(Uint32 i=0, n = operationalStatus.size(); i < n; i++)              // provider has been disabled
         {              if (_indicationProviders[i]) {
             if(operationalStatus[i] == _MODULE_STOPPING)                 _removeEntry(_generateKey(pName,physicalName));
             {              }
                 operationalStatus.remove(i);           }
            else {
               // disable failed for other reason, throw exception
               // 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."));
             }             }
         }         }
  
               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) {
         {  
             //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(CIM_ERR_FAILED,
                 "ProviderManager.DefaultProviderManager.SET_MODULE_STATUS_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 2506 
Line 2702 
         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 2521 
Line 2713 
     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 2601 
Line 2793 
     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 2655 
Line 2847 
     EnableIndicationsResponseHandler *ret = 0;     EnableIndicationsResponseHandler *ret = 0;
  
     _responseTable.lookup(key, ret);     _responseTable.lookup(key, ret);
       _responseTable.remove(key);         // why is this needed ? - we get killed when removed...
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
  
Line 2682 
Line 2875 
     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());
       temp.setPhysicalName(physicalName);
  
     String physicalName = temp.getPhysicalName();      return(temp);
   }
  
     // fully qualify physical provider name (module), if not already done so.  ProviderName DefaultProviderManager::_resolveProviderName(String & destinationPath)
     #if defined(PEGASUS_PLATFORM_WIN32_IX86_MSVC)  {
     physicalName = physicalName + String(".dll");      ProviderName temp = findProvider(destinationPath);
     #elif defined(PEGASUS_PLATFORM_LINUX_IX86_GNU) || defined(PEGASUS_PLATFORM_LINUX_IA86_GNU)  
     String root = ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("providerDir"));  
     physicalName = root + String("/lib") + physicalName + String(".so");  
     #elif defined(PEGASUS_OS_HPUX)  
     String root = ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("providerDir"));  
     physicalName = root + String("/lib") + moduleLocation + String(".sl");  
     #elif defined(PEGASUS_OS_OS400)  
     // do nothing  
     #else  
     String root = ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("providerDir"));  
     physicalName = root + String("/lib") + physicalName + String(".so");  
  
     #endif      String physicalName = _resolvePhysicalName(temp.getPhysicalName());
  
     temp.setPhysicalName(physicalName);     temp.setPhysicalName(physicalName);
  


Legend:
Removed from v.1.11  
changed lines
  Added in v.1.11.4.4

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2