version 1.19, 2006/11/14 18:34:56
|
version 1.20.6.1, 2007/09/26 22:12:56
|
|
|
#include <Pegasus/Common/FileSystem.h> | #include <Pegasus/Common/FileSystem.h> |
#include <Pegasus/Common/MessageLoader.h> | #include <Pegasus/Common/MessageLoader.h> |
| |
#ifdef PEGASUS_OS_OS400 |
|
# include "CreateProviderOS400SystemState.h" |
|
#endif |
|
|
|
|
|
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
ProviderModule::ProviderModule(const String& fileName) | ProviderModule::ProviderModule(const String& fileName) |
|
|
| |
CIMProvider* ProviderModule::load(const String& providerName) | CIMProvider* ProviderModule::load(const String& providerName) |
{ | { |
|
/* |
|
BOOKMARK3: |
|
*/ |
|
std::cout << "ProviderModule::load[" << providerName << "]" << std::endl; |
|
|
// dynamically load the provider library | // dynamically load the provider library |
if (!_library.load()) | if (!_library.load()) |
{ | { |
|
|
} | } |
| |
// invoke the provider entry point | // invoke the provider entry point |
#ifndef PEGASUS_OS_OS400 |
|
CIMProvider* provider = createProvider(providerName); | CIMProvider* provider = createProvider(providerName); |
#else |
|
// On OS/400, need to call a layer of code that does platform-specific |
|
// checks before calling the provider |
|
CIMProvider* 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) |