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 }
00130
00131 #endif
00132