(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.79 and 1.80

version 1.79, 2007/03/16 17:16:56 version 1.80, 2007/08/21 20:10:22
Line 115 
Line 115 
         case CIM_DELETE_SUBSCRIPTION_REQUEST_MESSAGE:         case CIM_DELETE_SUBSCRIPTION_REQUEST_MESSAGE:
         case CIM_EXPORT_INDICATION_REQUEST_MESSAGE:         case CIM_EXPORT_INDICATION_REQUEST_MESSAGE:
         {         {
               ProviderIdContainer providerId =
                   request->operationContext.get(ProviderIdContainer::NAME);
   
             // resolve provider name             // resolve provider name
             ProviderName name = _resolveProviderName(              ProviderName name = _resolveProviderName(providerId);
                 request->operationContext.get(ProviderIdContainer::NAME));  
  
             // get cached or load new provider module             // get cached or load new provider module
             ProviderOperationCounter poc(             ProviderOperationCounter poc(
                 _getProvider(name.getPhysicalName(), name.getLogicalName()));                  _getProvider(
                       name.getPhysicalName(),
                       name.getModuleName(),
                       name.getLogicalName()));
  
             response = poc.GetProvider().processMessage(request);             response = poc.GetProvider().processMessage(request);
             break;             break;
Line 149 
Line 154 
 #if 0 #if 0
         case CIM_INITIALIZE_PROVIDER_REQUEST_MESSAGE:         case CIM_INITIALIZE_PROVIDER_REQUEST_MESSAGE:
         {         {
               ProviderIdContainer providerId =
                   request->operationContext.get(ProviderIdContainer::NAME);
   
             // resolve provider name             // resolve provider name
             ProviderName name = _resolveProviderName(              ProviderName name = _resolveProviderName(providerId);
                 request->operationContext.get(ProviderIdContainer::NAME));  
  
             // get cached or load new provider module             // get cached or load new provider module
             ProviderOperationCounter poc(             ProviderOperationCounter poc(
                 _getProvider(name.getPhysicalName(), name.getLogicalName()));                  _getProvider(
                       name.getPhysicalName(),
                       name.getModuleName(),
                       name.getLogicalName()));
  
             break;             break;
         }         }
Line 229 
Line 239 
                 providerInstances[i].findProperty("Name")).                 providerInstances[i].findProperty("Name")).
                     getValue().get(pName);                     getValue().get(pName);
  
             Sint16 ret_value = _disableProvider(pName);              Sint16 ret_value = _disableProvider(moduleName, pName);
  
             if (ret_value == 0)             if (ret_value == 0)
             {             {
Line 374 
Line 384 
 { {
     String providerName;     String providerName;
     String fileName;     String fileName;
     String interfaceName;      String moduleName;
     CIMValue genericValue;     CIMValue genericValue;
  
       genericValue = providerId.getModule().getProperty(
           providerId.getModule().findProperty("Name")).getValue();
       genericValue.get(moduleName);
   
     genericValue = providerId.getProvider().getProperty(     genericValue = providerId.getProvider().getProperty(
         providerId.getProvider().findProperty("Name")).getValue();         providerId.getProvider().findProperty("Name")).getValue();
     genericValue.get(providerName);     genericValue.get(providerName);
Line 385 
Line 399 
         providerId.getModule().findProperty("Location")).getValue();         providerId.getModule().findProperty("Location")).getValue();
     genericValue.get(fileName);     genericValue.get(fileName);
  
     // ATTN: This attribute is probably not required  
     genericValue = providerId.getModule().getProperty(  
         providerId.getModule().findProperty("InterfaceType")).getValue();  
     genericValue.get(interfaceName);  
   
     String resolvedFileName = _resolvePhysicalName(fileName);     String resolvedFileName = _resolvePhysicalName(fileName);
  
     if (resolvedFileName == String::EMPTY)     if (resolvedFileName == String::EMPTY)
Line 406 
Line 415 
             FileSystem::buildLibraryFileName(fileName), moduleName));             FileSystem::buildLibraryFileName(fileName), moduleName));
     }     }
  
     return ProviderName(providerName, resolvedFileName, interfaceName, 0);      return ProviderName(moduleName, providerName, resolvedFileName);
 } }
  
 ProviderOperationCounter DefaultProviderManager::_getProvider( ProviderOperationCounter DefaultProviderManager::_getProvider(
     const String& moduleFileName,     const String& moduleFileName,
       const String& moduleName,
     const String& providerName)     const String& providerName)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,
         "DefaultProviderManager::_getProvider");         "DefaultProviderManager::_getProvider");
  
     ProviderMessageHandler* pr = _lookupProvider(providerName);      ProviderMessageHandler* pr = _lookupProvider(moduleName, providerName);
  
     if (!pr->status.isInitialized())     if (!pr->status.isInitialized())
     {     {
Line 442 
Line 452 
 } }
  
 ProviderMessageHandler* DefaultProviderManager::_lookupProvider( ProviderMessageHandler* DefaultProviderManager::_lookupProvider(
       const String& moduleName,
     const String& providerName)     const String& providerName)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,
Line 450 
Line 461 
     // lock the providerTable mutex     // lock the providerTable mutex
     AutoMutex lock(_providerTableMutex);     AutoMutex lock(_providerTableMutex);
  
       // Construct the lookup key. We need a compound key to differentiate
       // providers with the same name from different modules. The size field is
       // added to handle the unlikely case when moduleName+providerName
       // produce identical strings but define different providers.
       char buffer[12];
       sprintf(buffer, "%u:", providerName.size());
       const String key = buffer + moduleName + ":" + providerName;
   
     // look up provider in cache     // look up provider in cache
     ProviderMessageHandler* pr = 0;     ProviderMessageHandler* pr = 0;
     if (_providers.lookup(providerName, pr))      if (_providers.lookup(key, pr))
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Found Provider " + providerName + " in Provider Manager Cache");             "Found Provider " + providerName + " in Provider Manager Cache");
Line 465 
Line 484 
             _subscriptionInitComplete);             _subscriptionInitComplete);
  
         // insert provider in provider table         // insert provider in provider table
         _providers.insert(providerName, pr);          _providers.insert(key, pr);
  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Created provider " + pr->getName());             "Created provider " + pr->getName());
Line 726 
Line 745 
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
 } }
  
 Sint16 DefaultProviderManager::_disableProvider(const String& providerName)  Sint16 DefaultProviderManager::_disableProvider(
       const String& moduleName,
       const String& providerName)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,
         "DefaultProviderManager::_disableProvider");         "DefaultProviderManager::_disableProvider");
  
     ProviderMessageHandler* pr = _lookupProvider(providerName);      ProviderMessageHandler* pr = _lookupProvider(moduleName, providerName);
     if (!pr->status.isInitialized())     if (!pr->status.isInitialized())
     {     {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2,


Legend:
Removed from v.1.79  
changed lines
  Added in v.1.80

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2