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

Diff for /pegasus/src/Pegasus/ProviderManager2/Default/ProviderModule.cpp between version 1.2 and 1.3

version 1.2, 2003/08/20 20:08:26 version 1.3, 2003/10/16 23:15:47
Line 36 
Line 36 
 #include <Pegasus/Common/Destroyer.h> #include <Pegasus/Common/Destroyer.h>
 #include <Pegasus/Common/FileSystem.h> #include <Pegasus/Common/FileSystem.h>
 #include <Pegasus/Common/MessageLoader.h> //l10n #include <Pegasus/Common/MessageLoader.h> //l10n
 #include <Pegasus/Config/ConfigManager.h>  
  
 PEGASUS_NAMESPACE_BEGIN  #ifdef PEGASUS_OS_OS400
   #include "CreateProviderOS400SystemState.h"
   #endif
 // added support to re-activate ProviderAdapter  ( A Schuur )  
  
 /*  PEGASUS_NAMESPACE_BEGIN
 ProviderModule::ProviderModule(const String & fileName)  
    : _fileName(fileName),  
      _ref_count(0),  
      _library(0)  
 {  
     _interfaceFileName=String::EMPTY;  
     _library = System::loadDynamicLibrary((const char *)_fileName.getCString());  
 }  
 */  
  
 ProviderModule::ProviderModule(const String & fileName, const String & interfaceName) ProviderModule::ProviderModule(const String & fileName, const String & interfaceName)
     : _fileName(fileName),     : _fileName(fileName),
Line 79 
Line 68 
     }     }
 } }
  
 /*  
 ProviderModule::ProviderModule(const String & fileName,  
                                const String & providerName)  
     : _fileName(fileName),  
       _library(0),  
       _providerName(providerName),  
       _provider(0)  
 {  
 }  
 */  
   
 ProviderModule::ProviderModule(const String & fileName, ProviderModule::ProviderModule(const String & fileName,
     const String & providerName,     const String & providerName,
     const String & interfaceName,     const String & interfaceName,
Line 141 
Line 119 
  
 ProviderModule::~ProviderModule(void) ProviderModule::~ProviderModule(void)
 { {
   
 } }
  
 CIMProvider *ProviderModule::load(const String & providerName) CIMProvider *ProviderModule::load(const String & providerName)
 { {
     // get the interface adapter library first  
     CIMProvider *provider = 0;     CIMProvider *provider = 0;
  
     /*  
     if (_interfaceFileName.size()>0) {  
       _adapter=ProviderAdapterManager::get_pamgr()->addAdapter(  
           _interfaceName,_interfaceFileName,_fileName,providerName);  
       provider=dynamic_cast<CIMProvider*>(_adapter);  
       if (provider==NULL) {  
         //l10n  
     //throw Exception("ProviderLoadFailure ("+providerName+  
             //"Provider is not a BaseProvider");  
             String s0 = "ProviderLoadFailure";  
             String s2 = "Provider";  
             String s3 = "BaseProvider";  
             throw Exception(MessageLoaderParms("ProviderManager.ProviderModule.IS_NOT_A"  
                                                "$0 ($1$2 is not a $3)",  
                                                s0,  
                                                providerName,  
                                                s2,  
                                                s3));  
         }  
       _ref_count++;  
       return provider;  
     }  
     */  
   
     // dynamically load the provider library     // dynamically load the provider library
     if(_library == 0)     if(_library == 0)
     {     {
Line 186 
Line 138 
         //l10n         //l10n
         //String errorString = "Cannot load library, error: " + System::dynamicLoadError();         //String errorString = "Cannot load library, error: " + System::dynamicLoadError();
         //throw Exception("ProviderLoadFailure (" + _fileName + ":" + providerName + "):" + errorString);         //throw Exception("ProviderLoadFailure (" + _fileName + ":" + providerName + "):" + errorString);
         String s0 = "ProviderLoadFailure";  
         throw Exception(MessageLoaderParms("ProviderManager.ProviderModule.CANNOT_LOAD_LIBRARY",         throw Exception(MessageLoaderParms("ProviderManager.ProviderModule.CANNOT_LOAD_LIBRARY",
             "$0 ($1:$2):Cannot load library, error: $3",              "ProviderLoadFailure ($0:$1):Cannot load library, error: $2",
             s0,  
             _fileName,             _fileName,
             providerName,             providerName,
             System::dynamicLoadError()));             System::dynamicLoadError()));
Line 206 
Line 156 
         //l10n         //l10n
         //String errorString = "entry point not found.";         //String errorString = "entry point not found.";
         //throw Exception("ProviderLoadFailure (" + _fileName + ":" + providerName + "):" + errorString);         //throw Exception("ProviderLoadFailure (" + _fileName + ":" + providerName + "):" + errorString);
         String s0 = "ProviderLoadFailure";  
         throw Exception(MessageLoaderParms("ProviderManager.ProviderModule.ENTRY_POINT_NOT_FOUND",         throw Exception(MessageLoaderParms("ProviderManager.ProviderModule.ENTRY_POINT_NOT_FOUND",
             "$0 ($1:$2):entry point not found.",              "ProviderLoadFailure ($0:$1):entry point not found.",
             s0,  
             _fileName,             _fileName,
             providerName));             providerName));
     }     }
  
     // invoke the provider entry point     // invoke the provider entry point
   #ifndef PEGASUS_OS_OS400
     provider = createProvider(providerName);     provider = createProvider(providerName);
   #else
       // On OS/400, need to call a layer of code that does platform-specific
       // checks before calling the provider
       provider = OS400_CreateProvider(providerName.getCString(), createProvider, _fileName);
   #endif
   
  
     // test for the appropriate interface     // test for the appropriate interface
     if(dynamic_cast<CIMProvider *>(provider) == 0)     if(dynamic_cast<CIMProvider *>(provider) == 0)
Line 223 
Line 179 
         //l10n         //l10n
         //String errorString = "provider is not a CIMProvider.";         //String errorString = "provider is not a CIMProvider.";
         //throw Exception("ProviderLoadFailure (" + _fileName + ":" + providerName + "):" + errorString);         //throw Exception("ProviderLoadFailure (" + _fileName + ":" + providerName + "):" + errorString);
         String s0 = "ProviderLoadFailure";  
         String s3 = "CIMProvider";  
         throw Exception(MessageLoaderParms("ProviderManager.ProviderModule.PROVIDER_IS_NOT_A",         throw Exception(MessageLoaderParms("ProviderManager.ProviderModule.PROVIDER_IS_NOT_A",
             "$0 ($1:$2):provider is not a $3.",              "ProviderLoadFailure ($0:$1):provider is not a CIMProvider.",
             s0,  
             _fileName,             _fileName,
             providerName,              providerName));
             s3));  
     }     }
   
     _ref_count++;     _ref_count++;
   
     return(provider);     return(provider);
 } }
  
 void ProviderModule::unloadModule(void) void ProviderModule::unloadModule(void)
 { {
     _ref_count--;     _ref_count--;
   
     if(_ref_count.value() > 0)     if(_ref_count.value() > 0)
         return;         return;
   
     _ref_count = 0;     _ref_count = 0;
   
     if(_library != 0)     if(_library != 0)
     {     {
         System::unloadDynamicLibrary(_library);         System::unloadDynamicLibrary(_library);
Line 257 
Line 204 
 Boolean ProviderModule::operator == (const void *key) const Boolean ProviderModule::operator == (const void *key) const
 { {
     String *prov = reinterpret_cast<String *>(const_cast<void *>(key));     String *prov = reinterpret_cast<String *>(const_cast<void *>(key));
   
     if(String::equalNoCase(_fileName, *prov))     if(String::equalNoCase(_fileName, *prov))
         return(true);         return(true);
   
     return(false);     return(false);
 } }
  
Line 268 
Line 213 
 { {
     if(String::equalNoCase(_fileName, pm._fileName))     if(String::equalNoCase(_fileName, pm._fileName))
         return(true);         return(true);
   
     return(false);     return(false);
 } }
  


Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2