Back to index

nordugrid-arc-nox  1.1.0~rc6
delegation.h
Go to the documentation of this file.
00001 #ifndef __ARC_SERVICE_DELEGATION_H__
00002 #define __ARC_SERVICE_DELEGATION_H__
00003 
00004 #include <map>
00005 #include <arc/delegation/DelegationInterface.h>
00006 #include <arc/infosys/RegisteredService.h>
00007 #include <arc/infosys/InformationInterface.h>
00008 
00009 
00010 namespace ArcSec {
00011 
00013 
00014 class Service_Delegation: public Arc::RegisteredService {
00015  private:
00016   class CredentialCache;
00017   typedef std::map<std::string,CredentialCache*> ID2CredMap;
00018   typedef ID2CredMap::iterator ID2CredMapIterator;
00019   ID2CredMap id2cred_;
00020   typedef std::multimap<std::string,CredentialCache*> Identity2CredMap;
00021   typedef Identity2CredMap::iterator Identity2CredMapIterator;
00022   typedef std::pair<Identity2CredMapIterator,Identity2CredMapIterator> Identity2CredMapReturn;
00023   Identity2CredMap identity2cred_;
00024   Glib::Mutex lock_;
00025   int max_crednum_;
00026   int max_credlife_;
00027   std::string trusted_cadir;
00028   std::string trusted_capath;
00029  protected:
00030   Arc::NS ns_;
00031   Arc::Logger logger_;
00032   std::string endpoint_;
00033   std::string expiration_;
00034   Arc::InformationContainer infodoc;
00035   Arc::MCC_Status make_soap_fault(Arc::Message& outmsg);
00036  public:
00037   Service_Delegation(Arc::Config *cfg);
00038   virtual ~Service_Delegation(void);
00039   virtual Arc::MCC_Status process(Arc::Message& inmsg,Arc::Message& outmsg);
00040   bool RegistrationCollector(Arc::XMLNode &doc);
00041  private:
00042   Arc::DelegationContainerSOAP* deleg_service_;
00043 };
00044 
00045 } // namespace ArcSec
00046 
00047 #endif
00048