OW_NAMESPACE::ProviderManager Class Reference

This class will be used by the CIMOM as a way of finding providers. More...

#include <OW_ProviderManager.hpp>

Inheritance diagram for OW_NAMESPACE::ProviderManager:

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

Collaboration graph
[legend]
List of all members.

Public Types

typedef HashMap< String, ProvRegProvRegMap_t
typedef HashMultiMap< String,
ProvReg
MultiProvRegMap_t
typedef SortedVectorSet< StringNameSpaceSet_t

Public Member Functions

void load (const ProviderIFCLoaderRef &ifcLoader, const ServiceEnvironmentIFCRef &env)
 Load and instantiate the ProviderIFCBaseIFC classes using the ifcLoader to do the work.
virtual String getName () const
 Every service may have a name.
virtual void init (const ServiceEnvironmentIFCRef &env)
 Initialize the provider interfaces and providers.
virtual void shutdown ()
 Called when the cimom is shutting down.
virtual void shuttingDown ()
 Called just prior to shutting down the CIMOM, to allow shutdown activities that still require access to the CIMOM.
InstanceProviderIFCRef getInstanceProvider (const ProviderEnvironmentIFCRef &env, const String &ns, const CIMClass &cc) const
 Locate an Instance provider.
SecondaryInstanceProviderIFCRefArray getSecondaryInstanceProviders (const ProviderEnvironmentIFCRef &env, const String &ns, const CIMName &className) const
 Locate secondary Instance providers.
MethodProviderIFCRef getMethodProvider (const ProviderEnvironmentIFCRef &env, const String &ns, const CIMClass &cc, const CIMMethod &method) const
 Locate a Method provider.
AssociatorProviderIFCRef getAssociatorProvider (const ProviderEnvironmentIFCRef &env, const String &ns, const CIMClass &cc) const
 Locate an Associator provider.
IndicationExportProviderIFCRefArray getIndicationExportProviders (const ProviderEnvironmentIFCRef &env) const
PolledProviderIFCRefArray getPolledProviders (const ProviderEnvironmentIFCRef &env) const
IndicationProviderIFCRefArray getIndicationProviders (const ProviderEnvironmentIFCRef &env, const String &ns, const CIMName &indicationClassName, const CIMNameArray &monitoredClassNames) const
void unloadProviders (const ProviderEnvironmentIFCRef &env)
 Call into each ProviderIFC to unload providers which haven't been used for a while.

Static Public Attributes

static String COMPONENT_NAME

Private Member Functions

ProviderIFCBaseIFCRef getProviderIFC (const ProviderEnvironmentIFCRef &env, const CIMQualifier &qual, String &provStr) const
bool isRestrictedNamespace (const String &ns) const
void findIndicationProviders (const ProviderEnvironmentIFCRef &env, const String &ns, const CIMName &className, const ProviderManager::MultiProvRegMap_t &indProvs, IndicationProviderIFCRefArray &rval) const

Private Attributes

Array< ProviderIFCBaseIFCRefm_IFCArray
Mutex m_guard
ProvRegMap_t m_registeredInstProvs
MultiProvRegMap_t m_registeredSecInstProvs
ProvRegMap_t m_registeredAssocProvs
ProvRegMap_t m_registeredMethProvs
ProvRegMap_t m_registeredPropProvs
MultiProvRegMap_t m_registeredIndProvs
LoggerRef m_logger
ServiceEnvironmentIFCRef m_env
NameSpaceSet_t m_restrictedNamespaces

Classes

struct  ProvReg

Detailed Description

This class will be used by the CIMOM as a way of finding providers.

It will keep the list of provider interfaces and query them when searching for providers.

Definition at line 64 of file OW_ProviderManager.hpp.


Member Typedef Documentation

typedef HashMultiMap<String, ProvReg> OW_NAMESPACE::ProviderManager::MultiProvRegMap_t
 

Definition at line 205 of file OW_ProviderManager.hpp.

typedef SortedVectorSet<String> OW_NAMESPACE::ProviderManager::NameSpaceSet_t
 

Definition at line 206 of file OW_ProviderManager.hpp.

typedef HashMap<String, ProvReg> OW_NAMESPACE::ProviderManager::ProvRegMap_t
 

Definition at line 204 of file OW_ProviderManager.hpp.


Member Function Documentation

void OW_NAMESPACE::ProviderManager::findIndicationProviders const ProviderEnvironmentIFCRef env,
const String ns,
const CIMName className,
const ProviderManager::MultiProvRegMap_t indProvs,
IndicationProviderIFCRefArray rval
const [private]
 

Definition at line 799 of file OW_ProviderManager.cpp.

References className, isRestrictedNamespace(), ns, OW_NAMESPACE::String::toLowerCase(), and OW_NAMESPACE::CIMName::toString().

Referenced by getIndicationProviders().

AssociatorProviderIFCRef OW_NAMESPACE::ProviderManager::getAssociatorProvider const ProviderEnvironmentIFCRef env,
const String ns,
const CIMClass cc
const
 

Locate an Associator provider.

Parameters:
ns The namespace of the class.
cc The class may have a qualifier describing the instance provider. This qualifier must be a "provider" qualifer with a CIMValue that contains a string with the format: "provider interface id::provider string". The "provider interface string" is used to identify the provider interface. The "provider string" is provider interface specific. It is assumed that the provider interface will use this string to identify the provider. This function will also return any providers registered for the class (without the provider qualifier).
Returns:
A ref counted AssociatorProvider. If no provider is found then null is returned.

Definition at line 720 of file OW_ProviderManager.cpp.

References env, OW_NAMESPACE::CIMClass::getName(), isRestrictedNamespace(), m_registeredAssocProvs, ns, OW_NAMESPACE::String::toLowerCase(), and OW_NAMESPACE::wrapProvider().

IndicationExportProviderIFCRefArray OW_NAMESPACE::ProviderManager::getIndicationExportProviders const ProviderEnvironmentIFCRef env  )  const
 

Returns:
all available indication export providers from the available provider interfaces.

Definition at line 764 of file OW_ProviderManager.cpp.

References OW_NAMESPACE::Array< T >::appendArray(), env, i, m_IFCArray, and OW_NAMESPACE::Array< T >::size().

IndicationProviderIFCRefArray OW_NAMESPACE::ProviderManager::getIndicationProviders const ProviderEnvironmentIFCRef env,
const String ns,
const CIMName indicationClassName,
const CIMNameArray monitoredClassNames
const
 

Returns:
all available indication providers from the available provider interfaces, which are interested in exporting indications of indicationClassName in namespace ns.
Parameters:
monitoredClassNames If lifecycle indications are being requested, they will be passed in this parameter.

Definition at line 838 of file OW_ProviderManager.cpp.

References OW_NAMESPACE::Array< T >::empty(), env, findIndicationProviders(), m_registeredIndProvs, ns, OW_NAMESPACE::String::toLowerCase(), and OW_NAMESPACE::CIMName::toString().

InstanceProviderIFCRef OW_NAMESPACE::ProviderManager::getInstanceProvider const ProviderEnvironmentIFCRef env,
const String ns,
const CIMClass cc
const
 

Locate an Instance provider.

Parameters:
ns The namespace of the class.
cc The class may have a qualifier describing the instance provider. This qualifier must be a "provider" qualifer with a CIMValue that contains a string with the format: "provider interface id::provider string". The "provider interface string" is used to identify the provider interface. The "provider string" is provider interface specific. It is assumed that the provider interface will use this string to identify the provider. This function will also return any providers registered for the class (without the provider qualifier).
Returns:
A ref counted InstanceProvider. If no provider is found then null is returned.

Definition at line 548 of file OW_ProviderManager.cpp.

References env, OW_NAMESPACE::String::equalsIgnoreCase(), OW_NAMESPACE::CIMClass::getName(), isRestrictedNamespace(), m_registeredInstProvs, ns, OW_NAMESPACE::String::toLowerCase(), and OW_NAMESPACE::wrapProvider().

MethodProviderIFCRef OW_NAMESPACE::ProviderManager::getMethodProvider const ProviderEnvironmentIFCRef env,
const String ns,
const CIMClass cc,
const CIMMethod method
const
 

Locate a Method provider.

Parameters:
qual A qualifier describing the method provider. This qualifier must be a "provider" qualifer with a CIMValue that contains a string with the format: "provider interface id::provider string". The "provider interface string" is used to identify the provider interface. The "provider string" is provider interface specific. It is assumed that the provider interface will use this string to identify the provider.
Returns:
A ref counted MethodProvider. If no provider is found then null is returned.

Definition at line 638 of file OW_ProviderManager.cpp.

References env, OW_NAMESPACE::CIMClass::getName(), OW_NAMESPACE::CIMMethod::getName(), isRestrictedNamespace(), m_registeredMethProvs, ns, OW_NAMESPACE::String::toLowerCase(), OW_NAMESPACE::CIMName::toString(), and OW_NAMESPACE::wrapProvider().

String OW_NAMESPACE::ProviderManager::getName  )  const [virtual]
 

Every service may have a name.

The name is used to calculate dependencies, other services can return the name from getDependencies(), to instruct the cimom about which order to start and shutdown all the services. The default is to have no name, in that case, no other service can depend on it.

Reimplemented from OW_NAMESPACE::ServiceIFC.

Definition at line 62 of file OW_ProviderManager.cpp.

References OW_NAMESPACE::ServiceIFCNames::ProviderManager.

PolledProviderIFCRefArray OW_NAMESPACE::ProviderManager::getPolledProviders const ProviderEnvironmentIFCRef env  )  const
 

Returns:
all available polled providers from the available provider interfaces.

Definition at line 781 of file OW_ProviderManager.cpp.

References OW_NAMESPACE::Array< T >::appendArray(), env, i, m_IFCArray, and OW_NAMESPACE::Array< T >::size().

ProviderIFCBaseIFCRef OW_NAMESPACE::ProviderManager::getProviderIFC const ProviderEnvironmentIFCRef env,
const CIMQualifier qual,
String provStr
const [private]
 

Definition at line 891 of file OW_ProviderManager.cpp.

References OW_NAMESPACE::CIMQualifier::CIM_QUAL_PROVIDER, OW_NAMESPACE::String::equalsIgnoreCase(), OW_NAMESPACE::CIMQualifier::getName(), m_logger, and OW_LOG_ERROR.

SecondaryInstanceProviderIFCRefArray OW_NAMESPACE::ProviderManager::getSecondaryInstanceProviders const ProviderEnvironmentIFCRef env,
const String ns,
const CIMName className
const
 

Locate secondary Instance providers.

Parameters:
ns The namespace of the class.
className The name of the class.
Returns:
An array of secondary instance providers which have registered for the class identified by the className argument.

Definition at line 592 of file OW_ProviderManager.cpp.

References className, isRestrictedNamespace(), m_registeredSecInstProvs, ns, OW_NAMESPACE::String::toLowerCase(), and OW_NAMESPACE::CIMName::toString().

void OW_NAMESPACE::ProviderManager::init const ServiceEnvironmentIFCRef env  )  [virtual]
 

Initialize the provider interfaces and providers.

This is called after the CIM Server is up and running, so the providers can access the repository. None of the services have been started yet however.

Implements OW_NAMESPACE::ServiceIFC.

Definition at line 415 of file OW_ProviderManager.cpp.

References COMPONENT_NAME, env, i, m_env, m_IFCArray, m_logger, m_registeredAssocProvs, m_registeredIndProvs, m_registeredInstProvs, m_registeredMethProvs, m_registeredSecInstProvs, OW_NAMESPACE::processProviderInfo(), and OW_NAMESPACE::Array< T >::size().

bool OW_NAMESPACE::ProviderManager::isRestrictedNamespace const String ns  )  const [private]
 

Definition at line 462 of file OW_ProviderManager.cpp.

References OW_NAMESPACE::SortedVectorSet< T, Compare >::end(), OW_NAMESPACE::SortedVectorSet< T, Compare >::find(), m_restrictedNamespaces, ns, and OW_NAMESPACE::String::toLowerCase().

Referenced by findIndicationProviders(), getAssociatorProvider(), getInstanceProvider(), getMethodProvider(), and getSecondaryInstanceProviders().

void OW_NAMESPACE::ProviderManager::load const ProviderIFCLoaderRef ifcLoader,
const ServiceEnvironmentIFCRef env
 

Load and instantiate the ProviderIFCBaseIFC classes using the ifcLoader to do the work.

Parameters:
ifcLoader the class that will actually load and instantiate the ProviderIFCBaseIFC classes.

Definition at line 67 of file OW_ProviderManager.cpp.

References OW_NAMESPACE::ConfigOpts::DISABLE_CPP_PROVIDER_INTERFACE_opt, env, m_IFCArray, OW_DEFAULT_DISABLE_CPP_PROVIDER_INTERFACE, and OW_NAMESPACE::Array< T >::push_back().

void OW_NAMESPACE::ProviderManager::shutdown  )  [virtual]
 

Called when the cimom is shutting down.

All the provider IFCs will be unloaded.

Implements OW_NAMESPACE::ServiceIFC.

Definition at line 83 of file OW_ProviderManager.cpp.

References OW_NAMESPACE::Array< T >::clear(), m_env, m_guard, m_IFCArray, m_registeredAssocProvs, m_registeredIndProvs, m_registeredInstProvs, m_registeredMethProvs, m_registeredPropProvs, and m_registeredSecInstProvs.

void OW_NAMESPACE::ProviderManager::shuttingDown  )  [virtual]
 

Called just prior to shutting down the CIMOM, to allow shutdown activities that still require access to the CIMOM.

See description in base class ServiceIFC.

Reimplemented from OW_NAMESPACE::ServiceIFC.

Definition at line 161 of file OW_ProviderManager.cpp.

References i, m_env, m_IFCArray, and OW_NAMESPACE::Array< T >::size().

void OW_NAMESPACE::ProviderManager::unloadProviders const ProviderEnvironmentIFCRef env  ) 
 

Call into each ProviderIFC to unload providers which haven't been used for a while.

Definition at line 875 of file OW_ProviderManager.cpp.

References env, i, m_IFCArray, and OW_NAMESPACE::Array< T >::size().


Member Data Documentation

String OW_NAMESPACE::ProviderManager::COMPONENT_NAME [static]
 

Definition at line 208 of file OW_ProviderManager.hpp.

Referenced by init(), OW_NAMESPACE::processProviderClassExtraInfo(), OW_NAMESPACE::processProviderInfo(), and OW_NAMESPACE::registerProviderInfo().

ServiceEnvironmentIFCRef OW_NAMESPACE::ProviderManager::m_env [private]
 

Definition at line 240 of file OW_ProviderManager.hpp.

Referenced by init(), shutdown(), and shuttingDown().

Mutex OW_NAMESPACE::ProviderManager::m_guard [private]
 

Definition at line 197 of file OW_ProviderManager.hpp.

Referenced by shutdown().

Array<ProviderIFCBaseIFCRef> OW_NAMESPACE::ProviderManager::m_IFCArray [private]
 

Definition at line 196 of file OW_ProviderManager.hpp.

Referenced by getIndicationExportProviders(), getPolledProviders(), init(), load(), shutdown(), shuttingDown(), and unloadProviders().

LoggerRef OW_NAMESPACE::ProviderManager::m_logger [private]
 

Definition at line 239 of file OW_ProviderManager.hpp.

Referenced by getProviderIFC(), and init().

ProvRegMap_t OW_NAMESPACE::ProviderManager::m_registeredAssocProvs [private]
 

Definition at line 228 of file OW_ProviderManager.hpp.

Referenced by getAssociatorProvider(), init(), and shutdown().

MultiProvRegMap_t OW_NAMESPACE::ProviderManager::m_registeredIndProvs [private]
 

Definition at line 237 of file OW_ProviderManager.hpp.

Referenced by getIndicationProviders(), init(), and shutdown().

ProvRegMap_t OW_NAMESPACE::ProviderManager::m_registeredInstProvs [private]
 

Definition at line 221 of file OW_ProviderManager.hpp.

Referenced by getInstanceProvider(), init(), and shutdown().

ProvRegMap_t OW_NAMESPACE::ProviderManager::m_registeredMethProvs [private]
 

Definition at line 231 of file OW_ProviderManager.hpp.

Referenced by getMethodProvider(), init(), and shutdown().

ProvRegMap_t OW_NAMESPACE::ProviderManager::m_registeredPropProvs [private]
 

Definition at line 233 of file OW_ProviderManager.hpp.

Referenced by shutdown().

MultiProvRegMap_t OW_NAMESPACE::ProviderManager::m_registeredSecInstProvs [private]
 

Definition at line 225 of file OW_ProviderManager.hpp.

Referenced by getSecondaryInstanceProviders(), init(), and shutdown().

NameSpaceSet_t OW_NAMESPACE::ProviderManager::m_restrictedNamespaces [private]
 

Definition at line 241 of file OW_ProviderManager.hpp.

Referenced by isRestrictedNamespace().


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