Arc::MCC Class Reference

Message Chain Component - base class for every MCC plugin. More...

#include <MCC.h>

Inheritance diagram for Arc::MCC:
Arc::MCCInterface Arc::Plugin Arc::Plexer

Public Member Functions

 MCC (Config *, PluginArgument *arg)
virtual void Next (MCCInterface *next, const std::string &label="")
virtual void AddSecHandler (Config *cfg, ArcSec::SecHandler *sechandler, const std::string &label="")
virtual void Unlink ()
virtual MCC_Status process (Message &, Message &)

Protected Member Functions

bool ProcessSecHandlers (Message &message, const std::string &label="") const

Protected Attributes

std::map< std::string,
MCCInterface * > 
next_
std::map< std::string,
std::list< ArcSec::SecHandler * > > 
sechandlers_

Static Protected Attributes

static Logger logger

Detailed Description

Message Chain Component - base class for every MCC plugin.

This is partialy virtual class which defines interface and common functionality for every MCC plugin needed for managing of component in a chain.


Constructor & Destructor Documentation

Arc::MCC::MCC ( Config ,
PluginArgument arg 
) [inline]

Example contructor - MCC takes at least it's configuration subtree


Member Function Documentation

virtual void Arc::MCC::AddSecHandler ( Config cfg,
ArcSec::SecHandler sechandler,
const std::string &  label = "" 
) [virtual]

Add security components/handlers to this MCC. Security handlers are stacked into a few queues with each queue identified by its label. The queue labelled 'incoming' is executed for every 'request' message after the message is processed by the MCC on the service side and before processing on the client side. The queue labelled 'outgoing' is run for response message before it is processed by MCC algorithms on the service side and after processing on the client side. Those labels are just a matter of agreement and some MCCs may implement different queues executed at various message processing steps.

virtual void Arc::MCC::Next ( MCCInterface next,
const std::string &  label = "" 
) [virtual]

Add reference to next MCC in chain. This method is called by Loader for every potentially labeled link to next component which implements MCCInterface. If next is NULL corresponding link is removed.

Reimplemented in Arc::Plexer.

virtual MCC_Status Arc::MCC::process ( Message ,
Message  
) [inline, virtual]

Dummy Message processing method. Just a placeholder.

Implements Arc::MCCInterface.

Reimplemented in Arc::Plexer.

bool Arc::MCC::ProcessSecHandlers ( Message message,
const std::string &  label = "" 
) const [protected]

Executes security handlers of specified queue. Returns true if the message is authorized for further processing or if there are no security handlers which implement authorization functionality. This is a convenience method and has to be called by the implemention of the MCC.

virtual void Arc::MCC::Unlink (  )  [virtual]

Removing all links. Useful for destroying chains.


Field Documentation

Logger Arc::MCC::logger [static, protected]

A logger for MCCs.

A logger intended to be the parent of loggers in the different MCCs.

Reimplemented in Arc::Plexer.

std::map<std::string, MCCInterface *> Arc::MCC::next_ [protected]

Set of labeled "next" components. Each implemented MCC must call process() method of corresponding MCCInterface from this set in own process() method.

std::map<std::string, std::list<ArcSec::SecHandler *> > Arc::MCC::sechandlers_ [protected]

Set of labeled authentication and authorization handlers. MCC calls sequence of handlers at specific point depending on associated identifier. In most aces those are "in" and "out" for incoming and outgoing messages correspondingly.


The documentation for this class was generated from the following file:
Generated on Wed Jun 27 11:54:24 2012 for Hosting Environment (Daemon) by  doxygen 1.6.3