Back to index

nordugrid-arc-nox  1.1.0~rc6
ArcAttributeProxy.h
Go to the documentation of this file.
00001 #ifndef __ARC_SEC_ARCATTRIBUTEPROXY_H__
00002 #define __ARC_SEC_ARCATTRIBUTEPROXY_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/attr/AttributeProxy.h>
00010 
00011 namespace ArcSec {
00013 template <class TheAttribute>
00014 class ArcAttributeProxy : public AttributeProxy {
00015 public:
00016   ArcAttributeProxy(){};
00017   virtual ~ArcAttributeProxy(){};
00018 public: 
00019   virtual AttributeValue* getAttribute(const Arc::XMLNode& node);
00020 };
00021 
00023 template <class TheAttribute>
00024 AttributeValue* ArcAttributeProxy<TheAttribute>::getAttribute(const Arc::XMLNode& node){
00025   Arc::XMLNode x = node;
00026   std::string value = (std::string)x;
00027   if(value.empty()) x=x.Child(0); // ???
00028   value = (std::string)x;
00029   std::string attrid = (std::string)(x.Attribute("AttributeId"));
00030   if(attrid.empty())
00031     attrid = (std::string)(x.Attribute("Id"));
00032   return new TheAttribute(value, attrid);
00033 }
00034 
00035 } // namespace ArcSec
00036 
00037 #endif /* __ARC_SEC_ARCATTRIBUTEPROXY_H__ */
00038