Back to index

nordugrid-arc-nox  1.1.0~rc6
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Attributes
Arc::RegisteredService Class Reference

RegisteredService - extension of Service performing self-registration. More...

#include <RegisteredService.h>

Inheritance diagram for Arc::RegisteredService:
Inheritance graph
[legend]
Collaboration diagram for Arc::RegisteredService:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 RegisteredService (Config *)
 Example contructor - Server takes at least it's configuration subtree.
virtual ~RegisteredService (void)
virtual void AddSecHandler (Config *cfg, ArcSec::SecHandler *sechandler, const std::string &label="")
 Add security components/handlers to this MCC.
virtual bool RegistrationCollector (XMLNode &doc)
 Service specific registartion collector, used for generate service registartions.
virtual std::string getID ()
 Service may implement own service identitifer gathering method.
virtual MCC_Status process (Message &request, Message &response)=0
 Method for processing of requests and responses.

Protected Member Functions

bool ProcessSecHandlers (Message &message, const std::string &label="") const
 Executes security handlers of specified queue.

Protected Attributes

std::map< std::string,
std::list< ArcSec::SecHandler * > > 
sechandlers_
 Set of labeled authentication and authorization handlers.

Static Protected Attributes

static Logger logger
 Logger object used to print messages generated by this class.

Private Attributes

InfoRegister inforeg

Detailed Description

RegisteredService - extension of Service performing self-registration.

Definition at line 16 of file RegisteredService.h.


Constructor & Destructor Documentation

Example contructor - Server takes at least it's configuration subtree.

Definition at line 9 of file RegisteredService.cpp.

                                                 :Service(cfg),inforeg((XMLNode&)(*cfg), this) {
  }
virtual Arc::RegisteredService::~RegisteredService ( void  ) [inline, virtual]

Definition at line 25 of file RegisteredService.h.

{ };

Member Function Documentation

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

Add security components/handlers to this MCC.

For more information please see description of MCC::AddSecHandler

Definition at line 14 of file Service.cpp.

                                                                                           {
    if(sechandler) {
        sechandlers_[label].push_back(sechandler); //need polishing to put the SecHandlerFactory->getinstance here
        XMLNode cn = (*cfg)["SecHandler"];
        Config cfg_(cn);
    }
}

Here is the caller graph for this function:

virtual std::string Arc::Service::getID ( ) [inline, virtual, inherited]

Service may implement own service identitifer gathering method.

This method return identifier of service which is used for registering it Information Services.

Reimplemented in ARex::ARexService.

Definition at line 69 of file Service.h.

{ return ""; };
virtual MCC_Status Arc::MCCInterface::process ( Message request,
Message response 
) [pure virtual, inherited]

Method for processing of requests and responses.

This method is called by preceeding MCC in chain when a request needs to be processed. This method must call similar method of next MCC in chain unless any failure happens. Result returned by call to next MCC should be processed and passed back to previous MCC. In case of failure this method is expected to generate valid error response and return it back to previous MCC without calling the next one.

Parameters:
requestThe request that needs to be processed.
responseA Message object that will contain the response of the request when the method returns.
Returns:
An object representing the status of the call.

Implemented in ARex::ARexService, Arc::MCC, Arc::MCC_TCP_Client, ISIS::ISIService, MyRegisteredService, Arc::MCC_TCP_Service, Arc::MCC_TLS_Client, Arc::MCC_HTTP_Client, GridScheduler::GridSchedulerService, Arc::Plexer, Arc::MCC_TLS_Service, Arc::MCC_SOAP_Client, Arc::MCC_HTTP_Service, ArcSec::Charon, Paul::PaulService, Echo::Service_Echo, ARex2::ARex2Service, ArcSec::Service_Delegation, SPService::Service_SP, Arc::MCC_GSI_Client, Arc::MCC_SOAP_Service, Arc::Service_JavaWrapper, DirectMCC, Arc::MCC_MsgValidator_Service, ArcSec::Service_SLCS, Compiler::Service_Compiler, ArcSec::Service_AA, Hopi::Hopi, Arc::Service_PythonWrapper, and Arc::MCC_GSI_Service.

Here is the caller graph for this function:

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

Executes security handlers of specified queue.

For more information please see description of MCC::ProcessSecHandlers

Definition at line 22 of file Service.cpp.

                                                                              {
    std::map<std::string,std::list<ArcSec::SecHandler*> >::const_iterator q = sechandlers_.find(label);
    if(q == sechandlers_.end()) {
        logger.msg(DEBUG, "No security processing/check requested for '%s'", label);
        return true;
    }

    std::list<ArcSec::SecHandler*>::const_iterator h = q->second.begin();
    for(;h!=q->second.end();++h) {
        const ArcSec::SecHandler* handler = *h;
        if(handler) if(!(handler->Handle(&message))) {
            logger.msg(DEBUG, "Security processing/check for '%s' failed", label);
            return false;
        }
    }
    logger.msg(DEBUG, "Security processing/check for '%s' passed", label);
    return true;
}

Here is the call graph for this function:

Here is the caller graph for this function:

bool Arc::Service::RegistrationCollector ( XMLNode doc) [virtual, inherited]

Service specific registartion collector, used for generate service registartions.

In implemented service this method should generate GLUE2 document with part of service description which service wishes to advertise to Information Services.

Reimplemented in ARex::ARexService, ISIS::ISIService, GridScheduler::GridSchedulerService, Echo::Service_Echo, ArcSec::Charon, Paul::PaulService, ArcSec::Service_Delegation, SPService::Service_SP, ArcSec::Service_SLCS, Hopi::Hopi, and Arc::Service_PythonWrapper.

Definition at line 41 of file Service.cpp.

{
    logger.msg(WARNING, "Empty registration collector");
}

Here is the call graph for this function:


Member Data Documentation

Definition at line 19 of file RegisteredService.h.

Logger Arc::Service::logger [static, protected, inherited]

Logger object used to print messages generated by this class.

Reimplemented in Echo::Service_Echo, Arc::Service_JavaWrapper, SPService::Service_SP, Compiler::Service_Compiler, Hopi::Hopi, and Arc::Service_PythonWrapper.

Definition at line 43 of file Service.h.

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

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.

Definition at line 40 of file Service.h.


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