OW_NAMESPACE::CppProviderIFC Class Reference

This class implements a bridge from the CIMOM's ProviderManager to the C++ providers. More...

#include <OW_CppProviderIFC.hpp>

Inheritance diagram for OW_NAMESPACE::CppProviderIFC:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 CppProviderIFC ()
 ~CppProviderIFC ()

Static Public Member Functions

static CppProviderBaseIFCRef loadProvider (const String &libName, LoggerRef logger)

Static Public Attributes

static const char *const CREATIONFUNC = "createProvider"

Protected Member Functions

virtual const char * getName () const
 Return the provider's name.
virtual void doInit (const ProviderEnvironmentIFCRef &env, InstanceProviderInfoArray &i, SecondaryInstanceProviderInfoArray &si, AssociatorProviderInfoArray &a, MethodProviderInfoArray &m, IndicationProviderInfoArray &ind)
 The derived classes must override these functions to implement the desired functionality.
virtual InstanceProviderIFCRef doGetInstanceProvider (const ProviderEnvironmentIFCRef &env, const char *provIdString)
virtual SecondaryInstanceProviderIFCRef doGetSecondaryInstanceProvider (const ProviderEnvironmentIFCRef &env, const char *provIdString)
virtual MethodProviderIFCRef doGetMethodProvider (const ProviderEnvironmentIFCRef &env, const char *provIdString)
virtual AssociatorProviderIFCRef doGetAssociatorProvider (const ProviderEnvironmentIFCRef &env, const char *provIdString)
virtual IndicationProviderIFCRef doGetIndicationProvider (const ProviderEnvironmentIFCRef &env, const char *provIdString)
virtual IndicationExportProviderIFCRefArray doGetIndicationExportProviders (const ProviderEnvironmentIFCRef &env)
virtual PolledProviderIFCRefArray doGetPolledProviders (const ProviderEnvironmentIFCRef &env)
virtual void doUnloadProviders (const ProviderEnvironmentIFCRef &env)
virtual void doShuttingDown (const ProviderEnvironmentIFCRef &env)

Private Types

typedef IntrusiveReference<
CppProviderInitializationHelper
CppProviderInitializationHelperRef
typedef Map< String, CppProviderInitializationHelperRefProviderMap
typedef Map< String, IndicationProviderIFCRefIndicationProviderMap
typedef Array< CppProviderBaseIFCRefLoadedProviderArray
enum  StoreProviderFlag { dontStoreProvider, storeProvider }
enum  InitializeProviderFlag { dontInitializeProvider, initializeProvider }

Private Member Functions

CppProviderBaseIFCRef getProvider (const ProviderEnvironmentIFCRef &env, const char *provIdString, StoreProviderFlag=storeProvider, InitializeProviderFlag=initializeProvider)
void loadProviders (const ProviderEnvironmentIFCRef &env, InstanceProviderInfoArray &i, SecondaryInstanceProviderInfoArray &si, AssociatorProviderInfoArray &a, MethodProviderInfoArray &m, IndicationProviderInfoArray &ind)

Private Attributes

ProviderMap m_provs
IndicationProviderMap m_indicationProviders
Mutex m_guard
LoadedProviderArray m_noUnloadProviders
bool m_loadDone

Classes

class  CppProviderInitializationHelper

Detailed Description

This class implements a bridge from the CIMOM's ProviderManager to the C++ providers.

It's main function is location and creation of providers.

Definition at line 54 of file OW_CppProviderIFC.hpp.


Member Typedef Documentation

typedef IntrusiveReference<CppProviderInitializationHelper> OW_NAMESPACE::CppProviderIFC::CppProviderInitializationHelperRef [private]
 

Definition at line 107 of file OW_CppProviderIFC.hpp.

typedef Map<String, IndicationProviderIFCRef> OW_NAMESPACE::CppProviderIFC::IndicationProviderMap [private]
 

Definition at line 111 of file OW_CppProviderIFC.hpp.

typedef Array<CppProviderBaseIFCRef> OW_NAMESPACE::CppProviderIFC::LoadedProviderArray [private]
 

Definition at line 112 of file OW_CppProviderIFC.hpp.

typedef Map<String, CppProviderInitializationHelperRef> OW_NAMESPACE::CppProviderIFC::ProviderMap [private]
 

Definition at line 110 of file OW_CppProviderIFC.hpp.


Member Enumeration Documentation

enum OW_NAMESPACE::CppProviderIFC::InitializeProviderFlag [private]
 

Enumerator:
dontInitializeProvider 
initializeProvider 

Definition at line 118 of file OW_CppProviderIFC.hpp.

enum OW_NAMESPACE::CppProviderIFC::StoreProviderFlag [private]
 

Enumerator:
dontStoreProvider 
storeProvider 

Definition at line 113 of file OW_CppProviderIFC.hpp.


Constructor & Destructor Documentation

OW_NAMESPACE::CppProviderIFC::CppProviderIFC  ) 
 

Definition at line 176 of file OW_CppProviderIFC.cpp.

OW_NAMESPACE::CppProviderIFC::~CppProviderIFC  ) 
 

Definition at line 185 of file OW_CppProviderIFC.cpp.

References OW_NAMESPACE::Map< Key, T, Compare >::begin(), OW_NAMESPACE::Map< Key, T, Compare >::clear(), OW_NAMESPACE::Map< Key, T, Compare >::end(), i, m_noUnloadProviders, m_provs, and OW_NAMESPACE::Array< T >::size().


Member Function Documentation

AssociatorProviderIFCRef OW_NAMESPACE::CppProviderIFC::doGetAssociatorProvider const ProviderEnvironmentIFCRef env,
const char *  provIdString
[protected, virtual]
 

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 340 of file OW_CppProviderIFC.cpp.

References OW_NAMESPACE::COMPONENT_NAME, env, OW_NAMESPACE::SharedLibraryReference< T >::getLibRef(), getProvider(), OW_LOG_DEBUG, OW_LOG_ERROR, and OW_THROW.

IndicationExportProviderIFCRefArray OW_NAMESPACE::CppProviderIFC::doGetIndicationExportProviders const ProviderEnvironmentIFCRef env  )  [protected, virtual]
 

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 275 of file OW_CppProviderIFC.cpp.

References OW_NAMESPACE::Array< T >::append(), i, m_noUnloadProviders, and OW_NAMESPACE::Array< T >::size().

IndicationProviderIFCRef OW_NAMESPACE::CppProviderIFC::doGetIndicationProvider const ProviderEnvironmentIFCRef env,
const char *  provIdString
[protected, virtual]
 

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 364 of file OW_CppProviderIFC.cpp.

References OW_NAMESPACE::COMPONENT_NAME, OW_NAMESPACE::Map< Key, T, Compare >::end(), env, OW_NAMESPACE::Map< Key, T, Compare >::find(), OW_NAMESPACE::SharedLibraryReference< T >::getLibRef(), getProvider(), OW_NAMESPACE::Map< Key, T, Compare >::insert(), m_indicationProviders, OW_LOG_DEBUG, and OW_LOG_ERROR.

InstanceProviderIFCRef OW_NAMESPACE::CppProviderIFC::doGetInstanceProvider const ProviderEnvironmentIFCRef env,
const char *  provIdString
[protected, virtual]
 

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 231 of file OW_CppProviderIFC.cpp.

References OW_NAMESPACE::COMPONENT_NAME, env, OW_NAMESPACE::SharedLibraryReference< T >::getLibRef(), getProvider(), OW_LOG_DEBUG, OW_LOG_ERROR, and OW_THROW.

MethodProviderIFCRef OW_NAMESPACE::CppProviderIFC::doGetMethodProvider const ProviderEnvironmentIFCRef env,
const char *  provIdString
[protected, virtual]
 

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 316 of file OW_CppProviderIFC.cpp.

References OW_NAMESPACE::COMPONENT_NAME, env, OW_NAMESPACE::SharedLibraryReference< T >::getLibRef(), getProvider(), OW_LOG_DEBUG, OW_LOG_ERROR, and OW_THROW.

PolledProviderIFCRefArray OW_NAMESPACE::CppProviderIFC::doGetPolledProviders const ProviderEnvironmentIFCRef env  )  [protected, virtual]
 

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 296 of file OW_CppProviderIFC.cpp.

References OW_NAMESPACE::Array< T >::append(), i, m_noUnloadProviders, and OW_NAMESPACE::Array< T >::size().

SecondaryInstanceProviderIFCRef OW_NAMESPACE::CppProviderIFC::doGetSecondaryInstanceProvider const ProviderEnvironmentIFCRef env,
const char *  provIdString
[protected, virtual]
 

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 253 of file OW_CppProviderIFC.cpp.

References OW_NAMESPACE::COMPONENT_NAME, env, OW_NAMESPACE::SharedLibraryReference< T >::getLibRef(), getProvider(), OW_LOG_DEBUG, OW_LOG_ERROR, and OW_THROW.

void OW_NAMESPACE::CppProviderIFC::doInit const ProviderEnvironmentIFCRef env,
InstanceProviderInfoArray i,
SecondaryInstanceProviderInfoArray si,
AssociatorProviderInfoArray a,
MethodProviderInfoArray m,
IndicationProviderInfoArray ind
[protected, virtual]
 

The derived classes must override these functions to implement the desired functionality.

Implements OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 212 of file OW_CppProviderIFC.cpp.

References env, i, and loadProviders().

void OW_NAMESPACE::CppProviderIFC::doShuttingDown const ProviderEnvironmentIFCRef env  )  [protected, virtual]
 

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 838 of file OW_CppProviderIFC.cpp.

References OW_NAMESPACE::Map< Key, T, Compare >::begin(), OW_NAMESPACE::Map< Key, T, Compare >::end(), env, m_guard, m_noUnloadProviders, m_provs, and OW_NAMESPACE::MutexLock::release().

void OW_NAMESPACE::CppProviderIFC::doUnloadProviders const ProviderEnvironmentIFCRef env  )  [protected, virtual]
 

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 797 of file OW_CppProviderIFC.cpp.

References OW_NAMESPACE::Map< Key, T, Compare >::begin(), OW_NAMESPACE::COMPONENT_NAME, OW_NAMESPACE::ConfigOpts::CPPPROVIFC_PROV_TTL_opt, OW_NAMESPACE::Map< Key, T, Compare >::end(), env, OW_NAMESPACE::Map< Key, T, Compare >::erase(), m_guard, m_provs, OW_DEFAULT_CPPPROVIFC_PROV_TTL, OW_LOG_INFO, OW_NAMESPACE::DateTime::setToCurrent(), and OW_NAMESPACE::String::toInt32().

virtual const char* OW_NAMESPACE::CppProviderIFC::getName  )  const [inline, protected, virtual]
 

Return the provider's name.

The name will be used to identify this provider interface from other provider interfaces.

Returns:
The name of the provider interface.

Implements OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 65 of file OW_CppProviderIFC.hpp.

CppProviderBaseIFCRef OW_NAMESPACE::CppProviderIFC::getProvider const ProviderEnvironmentIFCRef env,
const char *  provIdString,
StoreProviderFlag  = storeProvider,
InitializeProviderFlag  = initializeProvider
[private]
 

Definition at line 694 of file OW_CppProviderIFC.cpp.

References dontInitializeProvider, dontStoreProvider, OW_NAMESPACE::Map< Key, T, Compare >::end(), OW_NAMESPACE::Map< Key, T, Compare >::find(), initializeProvider, m_guard, m_provs, OW_ASSERT, OW_NAMESPACE::MutexLock::release(), and storeProvider.

Referenced by doGetAssociatorProvider(), doGetIndicationProvider(), doGetInstanceProvider(), doGetMethodProvider(), and doGetSecondaryInstanceProvider().

CppProviderBaseIFCRef OW_NAMESPACE::CppProviderIFC::loadProvider const String libName,
LoggerRef  logger
[static]
 

Definition at line 635 of file OW_CppProviderIFC.cpp.

References OW_NAMESPACE::SharedLibraryLoader::createSharedLibraryLoader(), OW_NAMESPACE::String::lastIndexOf(), OW_NAMESPACE::String::length(), logger, OW_FILENAME_SEPARATOR, OW_LOG_DEBUG, OW_LOG_ERROR, OW_SHAREDLIB_EXTENSION, and OW_NAMESPACE::String::substring().

void OW_NAMESPACE::CppProviderIFC::loadProviders const ProviderEnvironmentIFCRef env,
InstanceProviderInfoArray i,
SecondaryInstanceProviderInfoArray si,
AssociatorProviderInfoArray a,
MethodProviderInfoArray m,
IndicationProviderInfoArray ind
[private]
 

Definition at line 398 of file OW_CppProviderIFC.cpp.

References OW_NAMESPACE::String::c_str(), OW_NAMESPACE::COMPONENT_NAME, OW_NAMESPACE::ConfigOpts::CPPPROVIFC_PROV_LOCATION_opt, OW_NAMESPACE::SharedLibraryLoader::createSharedLibraryLoader(), env, OW_NAMESPACE::FileSystem::getDirectoryContents(), i, OW_NAMESPACE::FileSystem::isLink(), m_guard, m_loadDone, OW_DEFAULT_CPPPROVIFC_PROV_LOCATION, OW_FILENAME_SEPARATOR, OW_LOG_ERROR, OW_LOG_INFO, OW_PATHNAME_SEPARATOR, OW_SHAREDLIB_EXTENSION, OW_THROW, and OW_NAMESPACE::Array< T >::size().

Referenced by doInit().


Member Data Documentation

const char *const OW_NAMESPACE::CppProviderIFC::CREATIONFUNC = "createProvider" [static]
 

Definition at line 57 of file OW_CppProviderIFC.hpp.

Mutex OW_NAMESPACE::CppProviderIFC::m_guard [private]
 

Definition at line 138 of file OW_CppProviderIFC.hpp.

Referenced by doShuttingDown(), doUnloadProviders(), getProvider(), and loadProviders().

IndicationProviderMap OW_NAMESPACE::CppProviderIFC::m_indicationProviders [private]
 

Definition at line 137 of file OW_CppProviderIFC.hpp.

Referenced by doGetIndicationProvider().

bool OW_NAMESPACE::CppProviderIFC::m_loadDone [private]
 

Definition at line 140 of file OW_CppProviderIFC.hpp.

Referenced by loadProviders().

LoadedProviderArray OW_NAMESPACE::CppProviderIFC::m_noUnloadProviders [private]
 

Definition at line 139 of file OW_CppProviderIFC.hpp.

Referenced by doGetIndicationExportProviders(), doGetPolledProviders(), doShuttingDown(), and ~CppProviderIFC().

ProviderMap OW_NAMESPACE::CppProviderIFC::m_provs [private]
 

Definition at line 136 of file OW_CppProviderIFC.hpp.

Referenced by doShuttingDown(), doUnloadProviders(), getProvider(), and ~CppProviderIFC().


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