OW_NAMESPACE::GenericHDBRepository Class Reference

#include <OW_GenericHDBRepository.hpp>

Inheritance diagram for OW_NAMESPACE::GenericHDBRepository:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 GenericHDBRepository ()
 Create a new GenericHDBRepository object.
virtual ~GenericHDBRepository ()
 Destroy this GenericHDBRepository object.
virtual void init (const ServiceEnvironmentIFCRef &env)
 Initialize.
virtual void open (const String &path)
 Open this GenericHDBRepository.
virtual void close ()
 Close this GenericHDBRepository.
virtual int createNameSpace (const String &ns)
 Create the necessary containers to make a valid path.
void deleteNameSpace (const String &key)
 Delete a container and all of its' children.
bool nameSpaceExists (const String &key)
 Check whether a namespace exists.
bool isOpen ()
void nodeToCIMObject (CIMBase &cimObj, const HDBNode &node)
void getCIMObject (CIMBase &cimObj, const String &key, HDBHandle hdl)
void updateCIMObject (const CIMBase &cimObj, HDBNode &node, HDBHandle hdl)
void addCIMObject (const CIMBase &cimObj, const String &key, HDBNode &parentNode, HDBHandle hdl, UInt32 nodeFlags=0)
void addCIMObject (const CIMBase &cimObj, const String &key, HDBHandle hdl, UInt32 nodeFlags=0)
HDBHandle getHandle ()
void freeHandle (HDBHandle &hdl)
 Free a and that was previously acquired by a call to getHandle.
HDBNode getNameSpaceNode (HDBHandleLock &hdl, String key)
 Get the name space node for a given key.

Static Public Attributes

static const String COMPONENT_NAME

Protected Types

enum  { MAXHANDLES = 10 }

Protected Member Functions

void throwIfNotOpen ()
 Throw an IOException is this repository is not open.

Protected Attributes

HDB m_hdb
bool m_opened
Mutex m_guard
Array< HDBHandlem_handles
ServiceEnvironmentIFCRef m_env

Friends

class HDBHandleLock

Detailed Description

Definition at line 51 of file OW_GenericHDBRepository.hpp.


Member Enumeration Documentation

anonymous enum [protected]
 

Enumerator:
MAXHANDLES 

Definition at line 165 of file OW_GenericHDBRepository.hpp.


Constructor & Destructor Documentation

OW_NAMESPACE::GenericHDBRepository::GenericHDBRepository  ) 
 

Create a new GenericHDBRepository object.

Exceptions:
HDBException 

Definition at line 56 of file OW_GenericHDBRepository.cpp.

OW_NAMESPACE::GenericHDBRepository::~GenericHDBRepository  )  [virtual]
 

Destroy this GenericHDBRepository object.

Definition at line 69 of file OW_GenericHDBRepository.cpp.

References close().


Member Function Documentation

void OW_NAMESPACE::GenericHDBRepository::addCIMObject const CIMBase cimObj,
const String key,
HDBHandle  hdl,
UInt32  nodeFlags = 0
 

Definition at line 306 of file OW_GenericHDBRepository.cpp.

References hdl, ostrm, OW_NAMESPACE::HDBNode::turnFlagsOn(), and OW_NAMESPACE::SerializableIFC::writeObject().

void OW_NAMESPACE::GenericHDBRepository::addCIMObject const CIMBase cimObj,
const String key,
HDBNode parentNode,
HDBHandle  hdl,
UInt32  nodeFlags = 0
 

Definition at line 294 of file OW_GenericHDBRepository.cpp.

References hdl, ostrm, OW_NAMESPACE::HDBNode::turnFlagsOn(), and OW_NAMESPACE::SerializableIFC::writeObject().

Referenced by OW_NAMESPACE::MetaRepository::createClass().

void OW_NAMESPACE::GenericHDBRepository::close  )  [virtual]
 

Close this GenericHDBRepository.

Definition at line 144 of file OW_GenericHDBRepository.cpp.

References OW_NAMESPACE::HDL_NOTINUSE, i, m_guard, m_handles, m_opened, and OW_NAMESPACE::Array< T >::size().

Referenced by OW_NAMESPACE::CIMRepository::close(), open(), and ~GenericHDBRepository().

int OW_NAMESPACE::GenericHDBRepository::createNameSpace const String ns  )  [virtual]
 

Create the necessary containers to make a valid path.

Fail if the last container already exists.

Parameters:
ns The name of the namespace to create
Returns:
0 on success. Otherwise -1 if the bottom most container already exists.

Reimplemented in OW_NAMESPACE::InstanceRepository, and OW_NAMESPACE::MetaRepository.

Definition at line 186 of file OW_GenericHDBRepository.cpp.

References OW_NAMESPACE::String::empty(), getHandle(), hdl, ns, and throwIfNotOpen().

Referenced by OW_NAMESPACE::MetaRepository::createNameSpace(), OW_NAMESPACE::InstanceRepository::createNameSpace(), and open().

void OW_NAMESPACE::GenericHDBRepository::deleteNameSpace const String key  ) 
 

Delete a container and all of its' children.

Parameters:
key The key to the container to remove
Exceptions:
IOException If the database is not opened.
HDBException 

Reimplemented in OW_NAMESPACE::InstanceRepository, and OW_NAMESPACE::MetaRepository.

Definition at line 220 of file OW_GenericHDBRepository.cpp.

References OW_NAMESPACE::String::equals(), OW_NAMESPACE::CIMException::FAILED, OW_THROWCIMMSG, and throwIfNotOpen().

Referenced by OW_NAMESPACE::MetaRepository::deleteNameSpace(), and OW_NAMESPACE::InstanceRepository::deleteNameSpace().

void OW_NAMESPACE::GenericHDBRepository::freeHandle HDBHandle hdl  ) 
 

Free a and that was previously acquired by a call to getHandle.

This method MUST be called on all HDBHandles acquired through getHandle.

Parameters:
hdl A reference to the handle previously acquired through a call to getHandle.

Definition at line 107 of file OW_GenericHDBRepository.cpp.

References hdl, OW_NAMESPACE::HDL_NOTINUSE, m_guard, m_handles, and OW_NAMESPACE::Array< T >::size().

void OW_NAMESPACE::GenericHDBRepository::getCIMObject CIMBase cimObj,
const String key,
HDBHandle  hdl
 

Definition at line 278 of file OW_GenericHDBRepository.cpp.

References hdl, and nodeToCIMObject().

Referenced by OW_NAMESPACE::MetaRepository::getQualifierType().

HDBHandle OW_NAMESPACE::GenericHDBRepository::getHandle  ) 
 

Returns:
An HDBHandle object from the underlying HDB object. freeHandle must be called later on the handle that is returned from this method.The HDBHandleLock is a nice way to handle the return value from this method. It will automatically call free handle when it goes out of scope.

Definition at line 82 of file OW_GenericHDBRepository.cpp.

References OW_NAMESPACE::HDL_NOTINUSE, i, m_guard, m_handles, and OW_NAMESPACE::Array< T >::size().

Referenced by OW_NAMESPACE::MetaRepository::_addQualifierType(), OW_NAMESPACE::InstanceRepository::classHasInstances(), OW_NAMESPACE::MetaRepository::createClass(), OW_NAMESPACE::InstanceRepository::createClass(), OW_NAMESPACE::InstanceRepository::createInstance(), createNameSpace(), OW_NAMESPACE::MetaRepository::deleteClass(), OW_NAMESPACE::InstanceRepository::deleteClass(), OW_NAMESPACE::InstanceRepository::deleteInstance(), OW_NAMESPACE::MetaRepository::deleteQualifierType(), OW_NAMESPACE::MetaRepository::enumClass(), OW_NAMESPACE::MetaRepository::enumClassNames(), OW_NAMESPACE::CIMRepository::enumNameSpace(), OW_NAMESPACE::MetaRepository::enumQualifierTypes(), OW_NAMESPACE::MetaRepository::getCIMClass(), OW_NAMESPACE::InstanceRepository::getCIMInstance(), OW_NAMESPACE::InstanceRepository::getCIMInstances(), OW_NAMESPACE::InstanceRepository::getInstanceNames(), OW_NAMESPACE::MetaRepository::getQualifierType(), OW_NAMESPACE::MetaRepository::getTopLevelAssociations(), OW_NAMESPACE::MetaRepository::modifyClass(), OW_NAMESPACE::InstanceRepository::modifyInstance(), nameSpaceExists(), OW_NAMESPACE::MetaRepository::open(), and OW_NAMESPACE::MetaRepository::setQualifierType().

HDBNode OW_NAMESPACE::GenericHDBRepository::getNameSpaceNode HDBHandleLock hdl,
String  key
 

Get the name space node for a given key.

Parameters:
key The key for the name space node.
Returns:
On success the HDBNode associated with the given key. Otherwise a null HDBNode

Definition at line 166 of file OW_GenericHDBRepository.cpp.

References OW_NAMESPACE::String::empty().

Referenced by OW_NAMESPACE::MetaRepository::createClass(), OW_NAMESPACE::InstanceRepository::createClass(), OW_NAMESPACE::InstanceRepository::createInstance(), OW_NAMESPACE::MetaRepository::enumClass(), OW_NAMESPACE::MetaRepository::enumClassNames(), and OW_NAMESPACE::MetaRepository::getTopLevelAssociations().

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

Initialize.

Parameters:
env The service environment
Exceptions:
HDBException 

Reimplemented in OW_NAMESPACE::MetaRepository.

Definition at line 63 of file OW_GenericHDBRepository.cpp.

References env, and m_env.

Referenced by OW_NAMESPACE::MetaRepository::init(), and OW_NAMESPACE::CIMRepository::init().

bool OW_NAMESPACE::GenericHDBRepository::isOpen  )  [inline]
 

Returns:
true if this repository is open. Otherwise false.

Definition at line 109 of file OW_GenericHDBRepository.hpp.

Referenced by OW_NAMESPACE::CIMRepository::open().

bool OW_NAMESPACE::GenericHDBRepository::nameSpaceExists const String key  ) 
 

Check whether a namespace exists.

Parameters:
key The key to the namespace
Exceptions:
IOException If the database is not opened.
HDBException 
Returns:
Whether the namespace key exists.

Definition at line 246 of file OW_GenericHDBRepository.cpp.

References OW_NAMESPACE::HDBNode::areAllFlagsOn(), getHandle(), OW_NAMESPACE::HDBNSNODE_FLAG, hdl, and throwIfNotOpen().

Referenced by OW_NAMESPACE::CIMRepository::_commonAssociators(), OW_NAMESPACE::CIMRepository::_commonReferences(), OW_NAMESPACE::CIMRepository::checkGetClassRvalAndThrow(), OW_NAMESPACE::CIMRepository::checkGetClassRvalAndThrowInst(), OW_NAMESPACE::CIMRepository::deleteQualifierType(), and OW_NAMESPACE::MetaRepository::getQualifierType().

void OW_NAMESPACE::GenericHDBRepository::nodeToCIMObject CIMBase cimObj,
const HDBNode node
 

Definition at line 263 of file OW_GenericHDBRepository.cpp.

References OW_NAMESPACE::HDBNode::getData(), OW_NAMESPACE::HDBNode::getDataLen(), OW_NAMESPACE::SerializableIFC::readObject(), and OW_NAMESPACE::CIMBase::setNull().

Referenced by OW_NAMESPACE::MetaRepository::_getClassFromNode(), OW_NAMESPACE::MetaRepository::deleteClass(), OW_NAMESPACE::InstanceRepository::deleteInstance(), OW_NAMESPACE::MetaRepository::deleteQualifierType(), OW_NAMESPACE::InstanceRepository::getCIMInstance(), getCIMObject(), OW_NAMESPACE::MetaRepository::getTopLevelAssociations(), and OW_NAMESPACE::MetaRepository::modifyClass().

void OW_NAMESPACE::GenericHDBRepository::open const String path  )  [virtual]
 

Open this GenericHDBRepository.

Parameters:
path The path to where the repository files are or will be located.
Exceptions:
Exception 
HDBException 

Reimplemented in OW_NAMESPACE::MetaRepository.

Definition at line 120 of file OW_GenericHDBRepository.cpp.

References OW_NAMESPACE::String::c_str(), close(), createNameSpace(), m_guard, m_hdb, m_opened, and OW_NAMESPACE::HDB::open().

Referenced by OW_NAMESPACE::MetaRepository::open().

void OW_NAMESPACE::GenericHDBRepository::throwIfNotOpen  )  [inline, protected]
 

Throw an IOException is this repository is not open.

Exceptions:
IOException If this repository is not open.

Definition at line 149 of file OW_GenericHDBRepository.hpp.

References OW_THROW.

Referenced by OW_NAMESPACE::MetaRepository::_addQualifierType(), OW_NAMESPACE::InstanceRepository::classHasInstances(), OW_NAMESPACE::MetaRepository::createClass(), OW_NAMESPACE::InstanceRepository::createClass(), OW_NAMESPACE::InstanceRepository::createInstance(), createNameSpace(), OW_NAMESPACE::MetaRepository::deleteClass(), OW_NAMESPACE::InstanceRepository::deleteClass(), OW_NAMESPACE::InstanceRepository::deleteInstance(), OW_NAMESPACE::MetaRepository::deleteNameSpace(), OW_NAMESPACE::InstanceRepository::deleteNameSpace(), deleteNameSpace(), OW_NAMESPACE::MetaRepository::deleteQualifierType(), OW_NAMESPACE::MetaRepository::enumClass(), OW_NAMESPACE::MetaRepository::enumClassNames(), OW_NAMESPACE::MetaRepository::enumQualifierTypes(), OW_NAMESPACE::MetaRepository::getCIMClass(), OW_NAMESPACE::InstanceRepository::getCIMInstance(), OW_NAMESPACE::InstanceRepository::getCIMInstances(), OW_NAMESPACE::InstanceRepository::getInstanceNames(), OW_NAMESPACE::MetaRepository::getQualifierType(), OW_NAMESPACE::MetaRepository::getTopLevelAssociations(), OW_NAMESPACE::MetaRepository::modifyClass(), OW_NAMESPACE::InstanceRepository::modifyInstance(), nameSpaceExists(), and OW_NAMESPACE::MetaRepository::setQualifierType().

void OW_NAMESPACE::GenericHDBRepository::updateCIMObject const CIMBase cimObj,
HDBNode node,
HDBHandle  hdl
 

Definition at line 285 of file OW_GenericHDBRepository.cpp.

References hdl, ostrm, and OW_NAMESPACE::SerializableIFC::writeObject().

Referenced by OW_NAMESPACE::MetaRepository::modifyClass(), and OW_NAMESPACE::MetaRepository::setQualifierType().


Friends And Related Function Documentation

friend class HDBHandleLock [friend]
 

Definition at line 166 of file OW_GenericHDBRepository.hpp.


Member Data Documentation

const String OW_NAMESPACE::GenericHDBRepository::COMPONENT_NAME [static]
 

Definition at line 142 of file OW_GenericHDBRepository.hpp.

Referenced by OW_NAMESPACE::MetaRepository::open().

ServiceEnvironmentIFCRef OW_NAMESPACE::GenericHDBRepository::m_env [protected]
 

Definition at line 164 of file OW_GenericHDBRepository.hpp.

Referenced by init(), and OW_NAMESPACE::MetaRepository::open().

Mutex OW_NAMESPACE::GenericHDBRepository::m_guard [protected]
 

Definition at line 162 of file OW_GenericHDBRepository.hpp.

Referenced by close(), freeHandle(), getHandle(), and open().

Array<HDBHandle> OW_NAMESPACE::GenericHDBRepository::m_handles [protected]
 

Definition at line 163 of file OW_GenericHDBRepository.hpp.

Referenced by close(), freeHandle(), and getHandle().

HDB OW_NAMESPACE::GenericHDBRepository::m_hdb [protected]
 

Definition at line 160 of file OW_GenericHDBRepository.hpp.

Referenced by open().

bool OW_NAMESPACE::GenericHDBRepository::m_opened [protected]
 

Definition at line 161 of file OW_GenericHDBRepository.hpp.

Referenced by close(), and open().


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