dmlite  0.4
Public Member Functions | Private Attributes
dmlite::StackInstance Class Reference

#include <dmlite.h>

Collaboration diagram for dmlite::StackInstance:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 StackInstance (PluginManager *pm) throw (DmException)
 Constructor.
 ~StackInstance ()
 Destructor.
void set (const std::string &key, const boost::any &value) throw (DmException)
boost::any get (const std::string &key) const throw (DmException)
void erase (const std::string &key) throw (DmException)
PluginManager * getPluginManager () throw (DmException)
 Get the plugin manager.
void setSecurityCredentials (const SecurityCredentials &cred) throw (DmException)
 Set the security credentials.
void setSecurityContext (const SecurityContext &ctx) throw (DmException)
 Set the security context.
const SecurityContext * getSecurityContext (void) const throw ()
 Return the security context.
Authn * getAuthn () throw (DmException)
 Get the UsersDb interface.
INode * getINode () throw (DmException)
 Get the INode.
Catalog * getCatalog () throw (DmException)
 Get the catalog.
bool isTherePoolManager () throw ()
PoolManager * getPoolManager () throw (DmException)
 Get the PoolManager.
PoolDriver * getPoolDriver (const std::string &poolType) throw (DmException)
 Get a pool driver.
IODriver * getIODriver () throw (DmException)
 Get the IO driver.

Private Attributes

PluginManager * pluginManager_
Authn * authn_
INode * inode_
Catalog * catalog_
PoolManager * poolManager_
IODriver * ioDriver_
SecurityContext * secCtx_
std::map< std::string,
PoolDriver * > 
poolDrivers_
std::map< std::string, boost::any > stackMsg_

Detailed Description

We need to have something that allows one plugin stack to access another plugin stack, so this represents a instantiation of each plugin stack. It also keeps common state: user credentials, security context, and run-time parameters (see set)

Note:
Assume a StackInstance (and every instantiated interface under it) is NOT thread-safe. This means, a StackInstance must be used by only one thread at the same time.

Constructor & Destructor Documentation

StackInstance::StackInstance ( PluginManager *  pm) throw (DmException)

Constructor.

StackInstance::~StackInstance ( )

Destructor.


Member Function Documentation

void StackInstance::erase ( const std::string &  key) throw (DmException)

Erase a key,value pair from.

Parameters:
keyThe key of the pair to be erased.
boost::any StackInstance::get ( const std::string &  key) const throw (DmException)

Get a value associated to a key. This can be used to pass advanced parameters to and from the plugins.

Parameters:
keyThe key parameter.
Authn * StackInstance::getAuthn ( ) throw (DmException)

Get the UsersDb interface.

Catalog * StackInstance::getCatalog ( ) throw (DmException)

Get the catalog.

INode * StackInstance::getINode ( ) throw (DmException)

Get the INode.

IODriver * StackInstance::getIODriver ( ) throw (DmException)

Get the IO driver.

PluginManager * StackInstance::getPluginManager ( ) throw (DmException)

Get the plugin manager.

PoolDriver * StackInstance::getPoolDriver ( const std::string &  poolType) throw (DmException)

Get a pool driver.

PoolManager * StackInstance::getPoolManager ( ) throw (DmException)

Get the PoolManager.

const SecurityContext * StackInstance::getSecurityContext ( void  ) const throw ()

Return the security context.

bool StackInstance::isTherePoolManager ( ) throw ()
void StackInstance::set ( const std::string &  key,
const boost::any &  value 
) throw (DmException)

Set a key-value pair associated with this context. This can be used to pass advanced parameters to and from the plugins.

Parameters:
keyThe key.
valueThe value.
void StackInstance::setSecurityContext ( const SecurityContext &  ctx) throw (DmException)

Set the security context.

void StackInstance::setSecurityCredentials ( const SecurityCredentials &  cred) throw (DmException)

Set the security credentials.


Member Data Documentation

Authn* dmlite::StackInstance::authn_
private
Catalog* dmlite::StackInstance::catalog_
private
INode* dmlite::StackInstance::inode_
private
IODriver* dmlite::StackInstance::ioDriver_
private
PluginManager* dmlite::StackInstance::pluginManager_
private
std::map<std::string, PoolDriver*> dmlite::StackInstance::poolDrivers_
private
PoolManager* dmlite::StackInstance::poolManager_
private
SecurityContext* dmlite::StackInstance::secCtx_
private
std::map<std::string, boost::any> dmlite::StackInstance::stackMsg_
private

The documentation for this class was generated from the following files: