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)
PluginManagergetPluginManager () 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 SecurityContextgetSecurityContext (void) const throw ()
 Return the security context.
AuthngetAuthn () throw (DmException)
 Get the UsersDb interface.
INodegetINode () throw (DmException)
 Get the INode.
CataloggetCatalog () throw (DmException)
 Get the catalog.
bool isTherePoolManager () throw ()
PoolManagergetPoolManager () throw (DmException)
 Get the PoolManager.
PoolDrivergetPoolDriver (const std::string &poolType) throw (DmException)
 Get a pool driver.
IODrivergetIODriver () throw (DmException)
 Get the IO driver.

Private Attributes

PluginManagerpluginManager_
Authnauthn_
INodeinode_
Catalogcatalog_
PoolManagerpoolManager_
IODriverioDriver_
SecurityContextsecCtx_
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: