Back to index

nordugrid-arc-nox  1.1.0~rc6
ArcRequest.h
Go to the documentation of this file.
00001 #ifndef __ARC_SEC_ARCREQUEST_H__
00002 #define __ARC_SEC_ARCREQUEST_H__
00003 
00004 #include <list>
00005 #include <arc/XMLNode.h>
00006 #include <arc/Logger.h>
00007 #include <arc/security/ArcPDP/attr/AttributeFactory.h>
00008 #include <arc/security/ArcPDP/Request.h>
00009 
00010 #include "ArcEvaluator.h"
00011 
00013 
00014 namespace ArcSec {
00015 
00016 class ArcRequest : public Request {
00017 friend class ArcEvaluator;
00018 
00019 public:
00020   //**Get all the RequestItem inside RequestItem container */
00021   virtual ReqItemList getRequestItems () const;
00022   
00023   //**Set the content of the container*/  
00024   virtual void setRequestItems (ReqItemList sl);
00025 
00026   //**Add request tuple from non-XMLNode*/  
00027   virtual void addRequestItem(Attrs& sub, Attrs& res, Attrs& act, Attrs& ctx);
00028 
00029   //**Set the attribute factory for the usage of Request*/
00030   virtual void setAttributeFactory(AttributeFactory* attributefactory) { attrfactory = attributefactory; };
00031 
00032   //**Default constructor*/
00033   ArcRequest ();
00034 
00035   //**Parse request information from external source*/
00036   ArcRequest (const Source& source);
00037 
00038   virtual ~ArcRequest();
00039 
00040   //**Create the objects included in Request according to the node attached to the Request object*/
00041   virtual void make_request();
00042 
00043   virtual const char* getEvalName() const;
00044 
00045   virtual const char* getName() const;
00046 
00047   virtual Arc::XMLNode& getReqNode() { return reqnode; };
00048 
00049   static Arc::Plugin* get_request(Arc::PluginArgument* arg);
00050 
00051 private:
00052   //**AttributeFactory which is in charge of producing Attribute*/
00053   AttributeFactory * attrfactory;
00054 
00055   //**A XMLNode structure which includes the xml structure of a request*/
00056   Arc::XMLNode reqnode;
00057 
00058 };
00059 
00060 } // namespace ArcSec
00061 
00062 #endif /* __ARC_SEC_ARCREQUEST_H__ */