OW_NAMESPACE::ProviderIFCLoader Class Reference

#include <OW_ProviderIFCLoader.hpp>

Inheritance diagram for OW_NAMESPACE::ProviderIFCLoader:

Inheritance graph
[legend]
Collaboration diagram for OW_NAMESPACE::ProviderIFCLoader:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ProviderIFCLoader (SharedLibraryLoaderRef sll, ServiceEnvironmentIFCRef env)
virtual ~ProviderIFCLoader ()
virtual void loadIFCs (Array< ProviderIFCBaseIFCRef > &ifcs) const
 This function needs to be overridden by derived classes and implement a strategy to obtain the shared library names of the provider interfaces.

Static Public Member Functions

static ProviderIFCLoaderRef createProviderIFCLoader (ServiceEnvironmentIFCRef env)
 Factory function.

Detailed Description

Definition at line 129 of file OW_ProviderIFCLoader.hpp.


Constructor & Destructor Documentation

OW_NAMESPACE::ProviderIFCLoader::ProviderIFCLoader SharedLibraryLoaderRef  sll,
ServiceEnvironmentIFCRef  env
[inline]
 

Definition at line 132 of file OW_ProviderIFCLoader.hpp.

Referenced by createProviderIFCLoader().

OW_NAMESPACE::ProviderIFCLoader::~ProviderIFCLoader  )  [virtual]
 

Definition at line 139 of file OW_ProviderIFCLoader.cpp.


Member Function Documentation

ProviderIFCLoaderRef OW_NAMESPACE::ProviderIFCLoader::createProviderIFCLoader ServiceEnvironmentIFCRef  env  )  [static]
 

Factory function.

Definition at line 129 of file OW_ProviderIFCLoader.cpp.

References OW_NAMESPACE::SharedLibraryLoader::createSharedLibraryLoader(), env, and ProviderIFCLoader().

Referenced by OW_NAMESPACE::EmbeddedCIMOMEnvironment::startServices(), and OW_NAMESPACE::CIMOMEnvironment::startServices().

void OW_NAMESPACE::ProviderIFCLoader::loadIFCs Array< ProviderIFCBaseIFCRef > &  ifcs  )  const [virtual]
 

This function needs to be overridden by derived classes and implement a strategy to obtain the shared library names of the provider interfaces.

Once the file names are obtained it should call createProviderIFCFromLib and add the returned provider interface into interfaces.

Parameters:
interfaces This is an out parameter. The ProviderIFC refs will be added to the array.
shlibs This is an our parameter. The shared libraries of the ProviderIFC refs will be added to this array. NOTE: The provider IFC refs MUST go away and delete the underlying object before the libraries are deleted, otherwise the program will segfault.
The derived classes code will probably be similar to this: virtual void loadIFCs( Array<ProviderIFCBaseIFCRef>& ifcs, Array<SharedLibraryRef>& shlibs) const { ifc_lib_pair rval; rval = createProviderIFCFromLib( "libname" ); if ( !rval.first.isNull() && !rval.second.isNull() ) { out.push_back( rval.first ); shlibs.push_back( rval.second ); }

rval = createProviderIFCFromLib( "libname2" ); if ( !rval.first.isNull() && !rval.second.isNull() ) { out.push_back( rval.first ); shlibs.push_back( rval.second ); } }

Implements OW_NAMESPACE::ProviderIFCLoaderBase.

Definition at line 79 of file OW_ProviderIFCLoader.cpp.

References OW_NAMESPACE::COMPONENT_NAME, env, OW_NAMESPACE::FileSystem::getDirectoryContents(), OW_NAMESPACE::ProviderIFCLoaderBase::getEnvironment(), i, OW_DEFAULT_PROVIDER_IFC_LIBS, OW_LOG_DEBUG, OW_PATHNAME_SEPARATOR, OW_THROW, OW_NAMESPACE::ConfigOpts::PROVIDER_IFC_LIBS_opt, and OW_NAMESPACE::Array< T >::size().


The documentation for this class was generated from the following files:
Generated on Thu Feb 9 09:12:55 2006 for openwbem by  doxygen 1.4.6