(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.6 and 1.10.2.1

version 1.6, 2003/10/16 23:15:47 version 1.10.2.1, 2004/02/17 01:35:03
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%2003////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000 - 2003 BMC Software, Hewlett-Packard Company, IBM,  // Copyright (c) 2000, 2001, 2002  BMC Software, Hewlett-Packard Development
 // The Open Group, Tivoli Systems  // Company, L. P., IBM Corp., The Open Group, Tivoli Systems.
   // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.;
   // IBM Corp.; EMC Corporation, The Open Group.
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
Line 47 
Line 49 
 #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 78 
Line 81 
 static const Uint16 _MODULE_STOPPED  = 10; static const Uint16 _MODULE_STOPPED  = 10;
  
 // provider manager // provider manager
 LocalProviderManager providerManager;  static LocalProviderManager providerManager;
  
 DefaultProviderManager::DefaultProviderManager(void) DefaultProviderManager::DefaultProviderManager(void)
 { {
Line 2117 
Line 2120 
  
     response->dest = request->queueIds.top();     response->dest = request->queueIds.top();
  
     /*       EnableIndicationsResponseHandler *handler =
     // ATTN: need pointer to Provider Manager Server!          new EnableIndicationsResponseHandler(request, response,
     //EnableIndicationsResponseHandler *handler =                request->provider, ProviderManagerService::providerManagerService);
     //    new EnableIndicationsResponseHandler(request, response, this);  
  
     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 2151 
Line 2162 
     {     {
         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 2167 
Line 2177 
     {     {
         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 2207 
Line 2214 
  
     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 2460 
Line 2452 
  
     // Unload providers     // Unload providers
     Array<CIMInstance> _pInstances = request->providers;     Array<CIMInstance> _pInstances = request->providers;
       String physicalName=_resolvePhysicalName(request->providerModule.getProperty(
                 request->providerModule.findProperty("Location")).getValue().toString());
  
     for(Uint32 i = 0, n = _pInstances.size(); i < n; i++)     for(Uint32 i = 0, n = _pInstances.size(); i < n; i++)
     {     {
         /* temp disabled by Chip          providerManager.unloadProvider(_pInstances[i].getProperty(
         // get the provider file name and logical name                                            request->providerModule.findProperty
         Triad<String, String, String> triad =                                            ("Name")).getValue ().toString (),
             getProviderRegistrar()->_getProviderRegPair(_pInstances[i], mInstance);                                         physicalName);
   
         providerManager.unloadProvider(triad.first, triad.second);  
         */  
     }     }
  
     if(!disableProviderOnly)     if(!disableProviderOnly)
Line 2680 
Line 2671 
     return(tableKey);     return(tableKey);
 } }
  
 ProviderName DefaultProviderManager::_resolveProviderName(const ProviderName & providerName)  String DefaultProviderManager::_resolvePhysicalName(const String  & name)
 { {
     ProviderName temp = findProvider(providerName);      String physicalName;
   
     String physicalName = temp.getPhysicalName();  
  
     // fully qualify physical provider name (module), if not already done so.  
     #if defined(PEGASUS_PLATFORM_WIN32_IX86_MSVC)     #if defined(PEGASUS_PLATFORM_WIN32_IX86_MSVC)
     physicalName = physicalName + String(".dll");      physicalName = name + String(".dll");
     #elif defined(PEGASUS_PLATFORM_LINUX_IX86_GNU) || defined(PEGASUS_PLATFORM_LINUX_IA86_GNU)     #elif defined(PEGASUS_PLATFORM_LINUX_IX86_GNU) || defined(PEGASUS_PLATFORM_LINUX_IA86_GNU)
     String root = ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("providerDir"));     String root = ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("providerDir"));
     physicalName = root + String("/lib") + physicalName + String(".so"));      physicalName = root + String("/lib") + name + String(".so");
     #elif defined(PEGASUS_OS_HPUX)     #elif defined(PEGASUS_OS_HPUX)
     String root = ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("providerDir"));     String root = ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("providerDir"));
     physicalName = root + String("/lib") + moduleLocation + String(".sl"));      physicalName = root + String("/lib") + name + String(".sl");
     #elif defined(PEGASUS_OS_OS400)     #elif defined(PEGASUS_OS_OS400)
     // do nothing      physicalName = name;
     #else     #else
     foo // needs code      String root = ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("providerDir"));
       physicalName = root + String("/lib") + name + String(".so");
     #endif     #endif
  
       return physicalName;
   }
   
   ProviderName DefaultProviderManager::_resolveProviderName(const ProviderName & providerName)
   {
       ProviderName temp = findProvider(providerName);
   
       String physicalName = _resolvePhysicalName(temp.getPhysicalName());
   
     temp.setPhysicalName(physicalName);     temp.setPhysicalName(physicalName);
  
     return(temp);     return(temp);


Legend:
Removed from v.1.6  
changed lines
  Added in v.1.10.2.1

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2