(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.12 and 1.14

version 1.12, 2004/01/27 13:48:11 version 1.14, 2004/02/04 22:58:21
Line 52 
Line 52 
 #include <Pegasus/ProviderManager2/Default/OperationResponseHandler.h> #include <Pegasus/ProviderManager2/Default/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 183 
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 2204 
Line 2209 
  
     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(String::EMPTY,
                  request->provider.getProperty(request->providerModule.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 2238 
Line 2252 
     {     {
         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 2254 
Line 2267 
     {     {
         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();
  
Line 2294 
Line 2304 
  
     try     try
     {     {
         ProviderName name(         String physicalName=_resolvePhysicalName(
             String::EMPTY,                request->providerModule.getProperty(
             String::EMPTY,                   request->providerModule.findProperty("Location")).getValue().toString());
             String::EMPTY,  
             String::EMPTY,         ProviderName name(String::EMPTY,
                  request->provider.getProperty(request->providerModule.findProperty
                      ("Name")).getValue ().toString (),
                  physicalName,
                  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 2472 
Line 2467 
     return(response);     return(response);
 } }
  
   
   Message *DefaultProviderManager::handleExportIndicationRequest(const Message *message) throw()
   {
      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,
               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 2740 
Line 2831 
     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 2771 
Line 2863 
 { {
     ProviderName temp = findProvider(providerName);     ProviderName temp = findProvider(providerName);
  
     String physicalName = temp.getPhysicalName();      String physicalName = _resolvePhysicalName(temp.getPhysicalName());
   
       temp.setPhysicalName(physicalName);
   
       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.12  
changed lines
  Added in v.1.14

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2