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)
 Constructor.
 ~StackInstance ()
 Destructor.
void set (const std::string &key, const boost::any &value)
boost::any get (const std::string &key) const
void erase (const std::string &key)
void eraseAll (void) throw ()
 Erase all the values set previously.
bool contains (const std::string &key) throw ()
PluginManager * getPluginManager ()
 Get the plugin manager.
void setSecurityCredentials (const SecurityCredentials &cred)
 Set the security credentials.
void setSecurityContext (const SecurityContext &ctx)
 Set the security context.
const SecurityContext * getSecurityContext (void) const throw ()
 Return the security context.
Authn * getAuthn ()
 Get the UsersDb interface.
INode * getINode ()
 Get the INode.
Catalog * getCatalog ()
 Get the catalog.
bool isTherePoolManager () throw ()
PoolManager * getPoolManager ()
 Get the PoolManager.
PoolDriver * getPoolDriver (const std::string &poolType)
 Get a pool driver.
IODriver * getIODriver ()
 Get the IO driver.

Private Member Functions

void setSecurityContextImpl_ (void)

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

dmlite::StackInstance::StackInstance ( PluginManager *  pm  ) 

Constructor.

dmlite::StackInstance::~StackInstance (  ) 

Destructor.


Member Function Documentation

bool dmlite::StackInstance::contains ( const std::string &  key  )  throw ()

Checks if the stack instance contains a value associated with the given key.

void dmlite::StackInstance::erase ( const std::string &  key  ) 

Erase a key,value pair from.

Parameters:
key The key of the pair to be erased.
void dmlite::StackInstance::eraseAll ( void   )  throw ()

Erase all the values set previously.

boost::any dmlite::StackInstance::get ( const std::string &  key  )  const

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

Parameters:
key The key parameter.
Authn* dmlite::StackInstance::getAuthn (  ) 

Get the UsersDb interface.

Catalog* dmlite::StackInstance::getCatalog (  ) 

Get the catalog.

INode* dmlite::StackInstance::getINode (  ) 

Get the INode.

IODriver* dmlite::StackInstance::getIODriver (  ) 

Get the IO driver.

PluginManager* dmlite::StackInstance::getPluginManager (  ) 

Get the plugin manager.

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

Get a pool driver.

PoolManager* dmlite::StackInstance::getPoolManager (  ) 

Get the PoolManager.

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

Return the security context.

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

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

Parameters:
key The key.
value The value.
void dmlite::StackInstance::setSecurityContext ( const SecurityContext &  ctx  ) 

Set the security context.

void dmlite::StackInstance::setSecurityContextImpl_ ( void   )  [private]
void dmlite::StackInstance::setSecurityCredentials ( const SecurityCredentials &  cred  ) 

Set the security credentials.


Member Data Documentation

std::map<std::string, PoolDriver*> dmlite::StackInstance::poolDrivers_ [private]
std::map<std::string, boost::any> dmlite::StackInstance::stackMsg_ [private]

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

Generated on 5 Nov 2020 for dmlite by  doxygen 1.6.1