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

Diff for /pegasus/src/Pegasus/ProviderManager2/Attic/ProviderRegistrar.cpp between version 1.7.2.1 and 1.9

version 1.7.2.1, 2004/02/19 01:01:54 version 1.9, 2004/02/04 22:58:21
Line 25 
Line 25 
 // //
 // Author: Chip Vincent (cvincent@us.ibm.com) // Author: Chip Vincent (cvincent@us.ibm.com)
 // //
 // Modified By: Adrian Schuur (schuur@de-ibm.com)  // Modified By:
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 34 
Line 34 
 #include <Pegasus/Common/Constants.h> #include <Pegasus/Common/Constants.h>
 #include <Pegasus/Common/Tracer.h> #include <Pegasus/Common/Tracer.h>
 #include <Pegasus/Common/Pair.h> #include <Pegasus/Common/Pair.h>
 #include <Pegasus/Common/Tracer.h>  
 #include <Pegasus/Common/Logger.h>  
 #include <Pegasus/Common/MessageLoader.h> //l10n  
  
 #include <Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h> #include <Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h>
 #include <Pegasus/ProviderManager2/ProviderType.h> #include <Pegasus/ProviderManager2/ProviderType.h>
Line 196 
Line 193 
 { {
 } }
  
 static const Uint16 _MODULE_STOPPING = 9;  ProviderName ProviderRegistrar::findConsumerProvider(const String & destinationPath)
 static const Uint16 _MODULE_STOPPED  = 10;  
   
 static void checkBlocked(CIMInstance &pm)  
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "checkBlocked");     CIMInstance provider;
      CIMInstance providerModule;
      ProviderName temp;
  
     Array<Uint16> operationalStatus;     if (_prm->lookupIndicationConsumer(destinationPath,provider,providerModule))
         return ProviderName(temp.getObjectName(),
                  provider.getProperty(providerModule.findProperty
                      ("Name")).getValue ().toString (),
                  providerModule.getProperty(providerModule.findProperty
                       ("Location")).getValue().toString(),
                  providerModule.getProperty(providerModule.findProperty
                       ("InterfaceType")).getValue().toString(),
                  0);
  
     Uint32 pos = pm.findProperty(CIMName ("OperationalStatus"));     return temp;
     if(pos == PEG_NOT_FOUND) {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "OperationalStatus not found.");  
         PEG_METHOD_EXIT();  
         //l10n  
         //throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, "provider lookup failed.");  
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, MessageLoaderParms(  
                                                 "ProviderManager.ProviderManagerService.PROVIDER_LOOKUP_FAILED",  
                                                 "provider lookup failed."));  
     }  
   
     pm.getProperty(pos).getValue().get(operationalStatus);  
     for(Uint32 i = 0; i < operationalStatus.size(); i++) {  
         if(operationalStatus[i] == _MODULE_STOPPED ||  
            operationalStatus[i] == _MODULE_STOPPING) {  
             PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
                 "Provider blocked.");  
             PEG_METHOD_EXIT();  
                         //l10n  
             //throw PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, "provider blocked.");  
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED, MessageLoaderParms(  
                                 "ProviderManager.ProviderManagerService.PROVIDER_BLOCKED",  
                                 "provider blocked."));  
         }  
     }  
 } }
  
 // need at least the object and the one capability. // need at least the object and the one capability.
Line 242 
Line 221 
  
 // the method will return the logical and physical provider names associated with the object and capability. // the method will return the logical and physical provider names associated with the object and capability.
  
 ProviderName ProviderRegistrar::findProvider(const ProviderName & providerName, Boolean test)  ProviderName ProviderRegistrar::findProvider(const ProviderName & providerName)
 { {
     CIMObjectPath objectName = providerName.getObjectName();     CIMObjectPath objectName = providerName.getObjectName();
     Uint32 flags = providerName.getCapabilitiesMask();     Uint32 flags = providerName.getCapabilitiesMask();
Line 256 
Line 235 
     CIMInstance provider;     CIMInstance provider;
     CIMInstance providerModule;     CIMInstance providerModule;
     ProviderName temp;     ProviderName temp;
       Boolean hasNoQuery;
  
    switch (flags) {    switch (flags) {
        case 2: //ProviderType::INSTANCE         case ProviderType_INSTANCE:
           if (_prm->lookupInstanceProvider(objectName.getNameSpace(),objectName.getClassName(),           if (_prm->lookupInstanceProvider(objectName.getNameSpace(),objectName.getClassName(),
                 provider,providerModule,0)) {                 provider,providerModule,0)) {
               if (test) checkBlocked(providerModule);  
               return ProviderName(providerName.getObjectName(),               return ProviderName(providerName.getObjectName(),
                     provider.getProperty(provider.findProperty                      provider.getProperty(providerModule.findProperty
                        ("Name")).getValue ().toString (),                        ("Name")).getValue ().toString (),
                     providerModule.getProperty(providerModule.findProperty                     providerModule.getProperty(providerModule.findProperty
                        ("Location")).getValue().toString(),                        ("Location")).getValue().toString(),
Line 272 
Line 251 
                     ProviderType::INSTANCE);                     ProviderType::INSTANCE);
           }           }
           break;           break;
        case 5: //ProviderType::ASSOCIATION         case ProviderType_ASSOCIATION:
           if (_prm->lookupInstanceProvider(objectName.getNameSpace(),objectName.getClassName(),           if (_prm->lookupInstanceProvider(objectName.getNameSpace(),objectName.getClassName(),
                 provider,providerModule,1)) {                 provider,providerModule,1)) {
               if (test) checkBlocked(providerModule);  
               return ProviderName(providerName.getObjectName(),               return ProviderName(providerName.getObjectName(),
                     provider.getProperty(provider.findProperty                      provider.getProperty(providerModule.findProperty
                        ("Name")).getValue ().toString (),                        ("Name")).getValue ().toString (),
                     providerModule.getProperty(providerModule.findProperty                     providerModule.getProperty(providerModule.findProperty
                        ("Location")).getValue().toString(),                        ("Location")).getValue().toString(),
Line 286 
Line 264 
                     ProviderType::ASSOCIATION);                     ProviderType::ASSOCIATION);
           }           }
           break;           break;
          case ProviderType_QUERY:
             if (_prm->lookupInstanceProvider(objectName.getNameSpace(),objectName.getClassName(),
                   provider,providerModule,0,&hasNoQuery)) {
                 return ProviderName(providerName.getObjectName(),
                       provider.getProperty(providerModule.findProperty
                          ("Name")).getValue ().toString (),
                       providerModule.getProperty(providerModule.findProperty
                          ("Location")).getValue().toString(),
                       providerModule.getProperty(providerModule.findProperty
                          ("InterfaceType")).getValue().toString(),
                       ProviderType::INSTANCE);
             }
             break;
        default:        default:
           temp = _lookupProvider(objectName);           temp = _lookupProvider(objectName);
     }     }


Legend:
Removed from v.1.7.2.1  
changed lines
  Added in v.1.9

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2