OW_NAMESPACE::CMPIProviderIFC Class Reference

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

#include <OW_CMPIProviderIFC.hpp>

Inheritance diagram for OW_NAMESPACE::CMPIProviderIFC:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 CMPIProviderIFC ()
 ~CMPIProviderIFC ()

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 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)

Private Types

typedef Map< String, CMPIFTABLERefProviderMap
typedef Array< CMPIFTABLERefLoadedProviderArray

Private Member Functions

CMPIFTABLERef getProvider (const ProviderEnvironmentIFCRef &env, const char *provIdString)
void loadNoIdProviders (const ProviderEnvironmentIFCRef &env)

Private Attributes

ProviderMap m_provs
Mutex m_guard
LoadedProviderArray m_noidProviders
bool m_loadDone
MIs miVector
::CMPI_Broker _broker

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 53 of file OW_CMPIProviderIFC.hpp.


Member Typedef Documentation

typedef Array<CMPIFTABLERef > OW_NAMESPACE::CMPIProviderIFC::LoadedProviderArray [private]
 

Definition at line 95 of file OW_CMPIProviderIFC.hpp.

typedef Map<String, CMPIFTABLERef> OW_NAMESPACE::CMPIProviderIFC::ProviderMap [private]
 

Definition at line 93 of file OW_CMPIProviderIFC.hpp.


Constructor & Destructor Documentation

OW_NAMESPACE::CMPIProviderIFC::CMPIProviderIFC  ) 
 

Definition at line 67 of file OW_CMPIProviderIFC.cpp.

OW_NAMESPACE::CMPIProviderIFC::~CMPIProviderIFC  ) 
 

Definition at line 77 of file OW_CMPIProviderIFC.cpp.

References MIs::assocMI, OW_NAMESPACE::Map< Key, T, Compare >::begin(), _CMPIIndicationMIFT::cleanup, _CMPIPropertyMIFT::cleanup, _CMPIMethodMIFT::cleanup, _CMPIAssociationMIFT::cleanup, _CMPIInstanceMIFT::cleanup, OW_NAMESPACE::Map< Key, T, Compare >::clear(), context, OW_NAMESPACE::Map< Key, T, Compare >::end(), _CMPIIndicationMI::ft, _CMPIPropertyMI::ft, _CMPIMethodMI::ft, _CMPIAssociationMI::ft, _CMPIInstanceMI::ft, i, MIs::indMI, MIs::instMI, m_noidProviders, m_provs, MIs::methMI, miVector, MIs::propMI, and OW_NAMESPACE::Array< T >::size().


Member Function Documentation

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

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 256 of file OW_CMPIProviderIFC.cpp.

References OW_NAMESPACE::COMPONENT_NAME, env, getProvider(), OW_LOG_DEBUG, OW_LOG_ERROR, and OW_THROW.

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

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 191 of file OW_CMPIProviderIFC.cpp.

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

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 280 of file OW_CMPIProviderIFC.cpp.

References OW_NAMESPACE::COMPONENT_NAME, env, getProvider(), OW_LOG_DEBUG, OW_LOG_ERROR, and OW_THROW.

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

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 169 of file OW_CMPIProviderIFC.cpp.

References OW_NAMESPACE::COMPONENT_NAME, env, getProvider(), OW_LOG_DEBUG, OW_LOG_ERROR, and OW_THROW.

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

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 233 of file OW_CMPIProviderIFC.cpp.

References OW_NAMESPACE::COMPONENT_NAME, env, getProvider(), OW_LOG_DEBUG, OW_LOG_ERROR, and OW_THROW.

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

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 211 of file OW_CMPIProviderIFC.cpp.

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

void OW_NAMESPACE::CMPIProviderIFC::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 154 of file OW_CMPIProviderIFC.cpp.

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

Reimplemented from OW_NAMESPACE::ProviderIFCBaseIFC.

Definition at line 659 of file OW_CMPIProviderIFC.cpp.

References MIs::assocMI, OW_NAMESPACE::Map< Key, T, Compare >::begin(), _CMPIIndicationMIFT::cleanup, _CMPIPropertyMIFT::cleanup, _CMPIMethodMIFT::cleanup, _CMPIAssociationMIFT::cleanup, _CMPIInstanceMIFT::cleanup, CMPI_RC_DO_NOT_UNLOAD, CMPI_RC_ERR_NOT_SUPPORTED, CMPI_RC_NEVER_UNLOAD, CMPI_RC_OK, OW_NAMESPACE::ConfigOpts::CMPIPROVIFC_PROV_TTL_opt, context, OW_NAMESPACE::Map< Key, T, Compare >::end(), env, _CMPIIndicationMI::ft, _CMPIPropertyMI::ft, _CMPIMethodMI::ft, _CMPIAssociationMI::ft, _CMPIInstanceMI::ft, MIs::indMI, MIs::instMI, m_guard, m_provs, MIs::methMI, miVector, OW_DEFAULT_CMPIPROVIFC_PROV_TTL, OW_DEFAULT_CPPPROVIFC_PROV_TTL, MIs::propMI, _CMPIStatus::rc, OW_NAMESPACE::DateTime::setToCurrent(), and OW_NAMESPACE::String::toInt32().

virtual const char* OW_NAMESPACE::CMPIProviderIFC::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 62 of file OW_CMPIProviderIFC.hpp.

CMPIFTABLERef OW_NAMESPACE::CMPIProviderIFC::getProvider const ProviderEnvironmentIFCRef env,
const char *  provIdString
[private]
 

Definition at line 373 of file OW_CMPIProviderIFC.cpp.

References OW_NAMESPACE::Map< Key, T, Compare >::end(), OW_NAMESPACE::Map< Key, T, Compare >::find(), m_guard, and m_provs.

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

void OW_NAMESPACE::CMPIProviderIFC::loadNoIdProviders const ProviderEnvironmentIFCRef env  )  [private]
 

Definition at line 306 of file OW_CMPIProviderIFC.cpp.

References OW_NAMESPACE::ConfigOpts::CMPIPROVIFC_PROV_LOCATION_opt, OW_NAMESPACE::COMPONENT_NAME, OW_NAMESPACE::SharedLibraryLoader::createSharedLibraryLoader(), env, OW_NAMESPACE::FileSystem::getDirectoryContents(), i, m_guard, m_loadDone, OW_NAMESPACE::String::npos, OW_DEFAULT_CMPIPROVIFC_PROV_LOCATION, OW_FILENAME_SEPARATOR, OW_LOG_ERROR, OW_PATHNAME_SEPARATOR, OW_SHAREDLIB_EXTENSION, and OW_NAMESPACE::Array< T >::size().


Member Data Documentation

::CMPI_Broker OW_NAMESPACE::CMPIProviderIFC::_broker [private]
 

Definition at line 105 of file OW_CMPIProviderIFC.hpp.

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

Definition at line 56 of file OW_CMPIProviderIFC.hpp.

Mutex OW_NAMESPACE::CMPIProviderIFC::m_guard [private]
 

Definition at line 100 of file OW_CMPIProviderIFC.hpp.

Referenced by doUnloadProviders(), getProvider(), and loadNoIdProviders().

bool OW_NAMESPACE::CMPIProviderIFC::m_loadDone [private]
 

Definition at line 102 of file OW_CMPIProviderIFC.hpp.

Referenced by loadNoIdProviders().

LoadedProviderArray OW_NAMESPACE::CMPIProviderIFC::m_noidProviders [private]
 

Definition at line 101 of file OW_CMPIProviderIFC.hpp.

Referenced by doGetPolledProviders(), and ~CMPIProviderIFC().

ProviderMap OW_NAMESPACE::CMPIProviderIFC::m_provs [private]
 

Definition at line 99 of file OW_CMPIProviderIFC.hpp.

Referenced by doUnloadProviders(), getProvider(), and ~CMPIProviderIFC().

MIs OW_NAMESPACE::CMPIProviderIFC::miVector [private]
 

Definition at line 104 of file OW_CMPIProviderIFC.hpp.

Referenced by doUnloadProviders(), and ~CMPIProviderIFC().


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