Back to index

nordugrid-arc-nox  1.1.0~rc6
RequestItem.h
Go to the documentation of this file.
00001 #ifndef __ARC_SEC_REQUESTITEM_H__
00002 #define __ARC_SEC_REQUESTITEM_H__
00003 
00004 #include <list>
00005 #include <arc/XMLNode.h>
00006 #include "attr/AttributeFactory.h"
00007 #include "attr/RequestAttribute.h"
00008 
00009 namespace ArcSec {
00010 
00012 
00093 typedef std::list<RequestAttribute*> Subject, Resource, Action, Context;
00094 
00096 typedef std::list<Subject> SubList;
00097 typedef std::list<Resource> ResList;
00098 typedef std::list<Action> ActList;
00099 typedef std::list<Context> CtxList; 
00100 
00102 class RequestItem{
00103  public:
00108   RequestItem(Arc::XMLNode&, AttributeFactory*){};
00109   virtual ~RequestItem(){};
00110 
00111 protected:
00112   SubList subjects;
00113   ResList actions;
00114   ActList resources;
00115   CtxList contexts;
00116 
00117 public:
00118   virtual SubList getSubjects () const  = 0;
00119   virtual void setSubjects (const SubList& sl) = 0;
00120   virtual ResList getResources () const  = 0;
00121   virtual void setResources (const ResList& rl) = 0;
00122   virtual ActList getActions () const  = 0;
00123   virtual void setActions (const ActList& al) = 0;
00124   virtual CtxList getContexts () const  = 0;
00125   virtual void setContexts (const CtxList& ctx) = 0;
00126 
00127 };
00128 
00129 } // namespace Arc
00130 
00131 #endif /* __ARC_SEC_REQUESTITEM_H__ */
00132