Back to index

nordugrid-arc-nox  1.1.0~rc6
ArcEvaluationCtx.h
Go to the documentation of this file.
00001 #ifndef __ARC_SEC_ARCEVALUATIONCTX_H__
00002 #define __ARC_SEC_ARCEVALUATIONCTX_H__
00003 
00004 #include <list>
00005 #include <fstream>
00006 #include <arc/XMLNode.h>
00007 #include <arc/Logger.h>
00008 #include <arc/security/ArcPDP/attr/AttributeValue.h>
00009 #include <arc/security/ArcPDP/Request.h>
00010 #include <arc/security/ArcPDP/EvaluationCtx.h>
00011 
00012 namespace ArcSec {
00013 
00015 class ArcRequestTuple : public RequestTuple {
00016 public:
00017   RequestTuple* duplicate(const RequestTuple*);
00018   //virtual Arc::XMLNode& getNode() { return tuple; };
00019   ArcRequestTuple();
00020   virtual ~ArcRequestTuple();
00021   virtual void erase();
00022 };
00023 
00025 class ArcEvaluationCtx : public EvaluationCtx {
00026 public:
00028   ArcEvaluationCtx (Request* request);
00029 
00030   virtual ~ArcEvaluationCtx();
00031   
00032   virtual Request* getRequest() const;
00033  
00034   virtual void setRequestItem(RequestItem* reqit){reqitem = reqit;};
00035 
00036   virtual RequestItem* getRequestItem() const {return reqitem;};
00037   
00042   virtual void split();
00043 
00044   virtual std::list<RequestTuple*> getRequestTuples() const { return reqtuples; };
00045 
00046   virtual void setEvalTuple(RequestTuple* tuple){ evaltuple = tuple; };
00047 
00048   virtual RequestTuple* getEvalTuple()const { return evaltuple; };
00049   
00050 private:
00051   static Arc::Logger logger;
00052   Request* req;
00053   RequestItem* reqitem;
00054   std::list<RequestTuple*> reqtuples;
00056   RequestTuple* evaltuple;
00057  
00058 };
00059 
00060 } // namespace ArcSec
00061 
00062 #endif /* __ARC_SEC_EVALUATIONCTX_H__ */