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

Diff for /pegasus/src/Pegasus/ProviderManager2/Attic/BasicProviderManagerRouter.cpp between version 1.28 and 1.28.2.3

version 1.28, 2006/02/10 19:13:47 version 1.28.2.3, 2006/10/18 19:16:12
Line 86 
Line 86 
         const String& physicalName,         const String& physicalName,
         const String& logicalName,         const String& logicalName,
         const String& interfaceName,         const String& interfaceName,
         PEGASUS_INDICATION_CALLBACK indicationCallback,          PEGASUS_INDICATION_CALLBACK_T indicationCallback,
           PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback,
         Boolean subscriptionInitComplete)         Boolean subscriptionInitComplete)
     : _manager(0)     : _manager(0)
     {     {
Line 138 
Line 139 
         }         }
  
         _manager->setIndicationCallback(indicationCallback);         _manager->setIndicationCallback(indicationCallback);
           _manager->setResponseChunkCallback(responseChunkCallback);
  
         _manager->setSubscriptionInitComplete (subscriptionInitComplete);         _manager->setSubscriptionInitComplete (subscriptionInitComplete);
     }     }
Line 197 
Line 199 
 // END TEMP SECTION // END TEMP SECTION
  
  
 PEGASUS_INDICATION_CALLBACK BasicProviderManagerRouter::_indicationCallback = 0;  PEGASUS_INDICATION_CALLBACK_T
       BasicProviderManagerRouter::_indicationCallback = 0;
   
   PEGASUS_RESPONSE_CHUNK_CALLBACK_T
       BasicProviderManagerRouter::_responseChunkCallback = 0;
  
 BasicProviderManagerRouter::BasicProviderManagerRouter( BasicProviderManagerRouter::BasicProviderManagerRouter(
     PEGASUS_INDICATION_CALLBACK indicationCallback)      PEGASUS_INDICATION_CALLBACK_T indicationCallback,
       PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,
         "BasicProviderManagerRouter::BasicProviderManagerRouter");         "BasicProviderManagerRouter::BasicProviderManagerRouter");
  
     _indicationCallback = indicationCallback;     _indicationCallback = indicationCallback;
       _responseChunkCallback = responseChunkCallback;
     _subscriptionInitComplete = false;     _subscriptionInitComplete = false;
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
Line 334 
Line 342 
         try         try
         {         {
             // Look up the appropriate ProviderManager by InterfaceType             // Look up the appropriate ProviderManager by InterfaceType
             pm = _lookupProviderManager(interfaceType);              pm = _getProviderManager(interfaceType);
         }         }
         catch (const CIMException& e)         catch (const CIMException& e)
         {         {
Line 370 
Line 378 
 } }
  
 // ATTN: May need to add interfaceVersion parameter to further constrain lookup // ATTN: May need to add interfaceVersion parameter to further constrain lookup
 ProviderManager* BasicProviderManagerRouter::_lookupProviderManager(  ProviderManager* BasicProviderManagerRouter::_getProviderManager(
     const String& interfaceType)     const String& interfaceType)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,
         "BasicProviderManagerRouter::_lookupProviderManager");          "BasicProviderManagerRouter::_getProviderManager");
  
     //     //
     // Search for this InterfaceType in the table of loaded ProviderManagers     // Search for this InterfaceType in the table of loaded ProviderManagers
Line 382 
Line 390 
     {     {
         ReadLock tableLock(_providerManagerTableLock);         ReadLock tableLock(_providerManagerTableLock);
  
         // find provider manager for specified provider interface type          ProviderManager* pm = _lookupProviderManager(interfaceType);
         for(Uint32 i = 0, n = _providerManagerTable.size(); i < n; i++)          if (pm)
         {  
             if (interfaceType == _providerManagerTable[i]->getInterfaceName())  
             {             {
                 ProviderManagerContainer* pmc=_providerManagerTable[i];  
                 PEG_METHOD_EXIT();                 PEG_METHOD_EXIT();
                 return pmc->getProviderManager();              return pm;
             }  
         }         }
     }     }
  
Line 400 
Line 404 
     {     {
         WriteLock tableLock(_providerManagerTableLock);         WriteLock tableLock(_providerManagerTableLock);
  
           ProviderManager* pm = _lookupProviderManager(interfaceType);
           if (pm)
           {
               PEG_METHOD_EXIT();
               return pm;
           }
   
         // ATTN: this section is a temporary solution to populate the list of         // ATTN: this section is a temporary solution to populate the list of
         // enabled provider managers for a given distribution.  It includes         // enabled provider managers for a given distribution.  It includes
         // another temporary solution for converting a generic file name into         // another temporary solution for converting a generic file name into
Line 409 
Line 420 
         if (interfaceType == "C++Default")         if (interfaceType == "C++Default")
         {         {
             ProviderManagerContainer* pmc = new ProviderManagerContainer(             ProviderManagerContainer* pmc = new ProviderManagerContainer(
                 LIBRARY_NAME_DEFAULTPM, "DEFAULT", "C++Default",                  LIBRARY_NAME_DEFAULTPM,
                 _indicationCallback, _subscriptionInitComplete);                  "DEFAULT",
                   "C++Default",
                   _indicationCallback,
                   _responseChunkCallback,
                   _subscriptionInitComplete);
             _providerManagerTable.append(pmc);             _providerManagerTable.append(pmc);
             return pmc->getProviderManager();             return pmc->getProviderManager();
         }         }
Line 420 
Line 435 
         if (interfaceType == "CMPI")         if (interfaceType == "CMPI")
         {         {
             ProviderManagerContainer* pmc = new ProviderManagerContainer(             ProviderManagerContainer* pmc = new ProviderManagerContainer(
                 LIBRARY_NAME_CMPIPM, "CMPI", "CMPI", _indicationCallback,                  LIBRARY_NAME_CMPIPM,
                   "CMPI",
                   "CMPI",
                   _indicationCallback,
                   _responseChunkCallback,
                 _subscriptionInitComplete);                 _subscriptionInitComplete);
             _providerManagerTable.append(pmc);             _providerManagerTable.append(pmc);
             return pmc->getProviderManager();             return pmc->getProviderManager();
Line 428 
Line 447 
 #endif #endif
  
 #if defined(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER) #if defined(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER)
         if (interfaceType == "JMPI")          if (  interfaceType == "JMPI"
              || interfaceType == "JMPIExperimental"
              )
         {         {
             ProviderManagerContainer* pmc = new ProviderManagerContainer(             ProviderManagerContainer* pmc = new ProviderManagerContainer(
                 LIBRARY_NAME_JMPIPM, "JMPI", "JMPI", _indicationCallback,                  LIBRARY_NAME_JMPIPM,
                   interfaceType,
                   interfaceType,
                   _indicationCallback,
                   _responseChunkCallback,
                 _subscriptionInitComplete);                 _subscriptionInitComplete);
             _providerManagerTable.append(pmc);             _providerManagerTable.append(pmc);
             return pmc->getProviderManager();             return pmc->getProviderManager();
Line 446 
Line 471 
     return 0;     return 0;
 } }
  
   // NOTE: The caller must lock _providerManagerTableLock before calling this
   // method.
   ProviderManager* BasicProviderManagerRouter::_lookupProviderManager(
       const String& interfaceType)
   {
       PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,
           "BasicProviderManagerRouter::_lookupProviderManager");
   
       //
       // Search for this InterfaceType in the table of loaded ProviderManagers
       //
       for (Uint32 i = 0, n = _providerManagerTable.size(); i < n; i++)
       {
           if (interfaceType == _providerManagerTable[i]->getInterfaceName())
           {
               ProviderManagerContainer* pmc = _providerManagerTable[i];
               PEG_METHOD_EXIT();
               return pmc->getProviderManager();
           }
       }
   
       // Not found
       PEG_METHOD_EXIT();
       return 0;
   }
   
 Boolean BasicProviderManagerRouter::hasActiveProviders() Boolean BasicProviderManagerRouter::hasActiveProviders()
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,


Legend:
Removed from v.1.28  
changed lines
  Added in v.1.28.2.3

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2