/usr/include/arc/security/ArcPDP/attr/DateTimeAttribute.h is in nordugrid-arc-dev 4.0.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | #ifndef __ARC_SEC_DATETIMEATTRIBUTE_H__
#define __ARC_SEC_DATETIMEATTRIBUTE_H__
#include <arc/security/ArcPDP/attr/AttributeValue.h>
#include <arc/DateTime.h>
namespace ArcSec {
//DateTimeAttribute, TimeAttribute, DateAttribute, DurationAttribute, PeriodAttribute
//As reference: See Date and Time on the Internet: Timestamps
//(http://www.ietf.org/rfc/rfc3339.txt)
//DateTimeAttribute
/**Format:
* YYYYMMDDHHMMSSZ
* Day Month DD HH:MM:SS YYYY
* YYYY-MM-DD HH:MM:SS
* YYYY-MM-DDTHH:MM:SS+HH:MM
* YYYY-MM-DDTHH:MM:SSZ
*/
class DateTimeAttribute : public AttributeValue {
private:
static std::string identifier;
Arc::Time value; //using the Time class definition in DateTime.h
std::string id;
public:
DateTimeAttribute(){ };
DateTimeAttribute(const std::string& v,const std::string& i) : value(v), id(i) {};
virtual ~DateTimeAttribute(){ };
virtual bool equal(AttributeValue* other, bool check_id = true);
virtual bool lessthan(AttributeValue* other);
virtual bool inrange(AttributeValue* other);
virtual std::string encode(); //encode value into ISOTime format
Arc::Time getValue(){ return value; };
virtual std::string getType() {return identifier; };
virtual std::string getId() {return id;};
static const std::string& getIdentifier(void) { return identifier; };
};
//TimeAttribute
/**Format:
* HHMMSSZ
* HH:MM:SS
* HH:MM:SS+HH:MM
* HH:MM:SSZ
*/
class TimeAttribute : public AttributeValue {
private:
static std::string identifier;
Arc::Time value;
std::string id;
public:
TimeAttribute() { };
TimeAttribute(const std::string& v,const std::string& i);
virtual ~TimeAttribute(){ };
virtual bool equal(AttributeValue* other, bool check_id = true);
virtual bool lessthan(AttributeValue* other);
virtual std::string encode();
Arc::Time getValue(){ return value; };
virtual std::string getType() {return identifier; };
virtual std::string getId() {return id;};
static const std::string& getIdentifier(void) { return identifier; };
};
//DateAttribute
//Formate:
//YYYY-MM-DD
class DateAttribute : public AttributeValue {
private:
static std::string identifier;
Arc::Time value;
std::string id;
public:
DateAttribute() { };
DateAttribute(const std::string& v,const std::string& i);
virtual ~DateAttribute(){ };
virtual bool equal(AttributeValue* other, bool check_id = true);
virtual bool lessthan(AttributeValue* other);
virtual std::string encode();
Arc::Time getValue(){ return value; };
virtual std::string getType() {return identifier; };
virtual std::string getId() {return id;};
static const std::string& getIdentifier(void) { return identifier; };
};
//DurationAttribute
/**Formate:
*P??Y??M??DT??H??M??S
*/
class DurationAttribute : public AttributeValue {
private:
static std::string identifier;
Arc::Period value;
std::string id;
public:
DurationAttribute() { };
DurationAttribute(const std::string& v,const std::string& i) : value(v), id(i){};
virtual ~DurationAttribute(){ };
virtual bool equal(AttributeValue* other, bool check_id = true);
virtual std::string encode();
Arc::Period getValue(){ return value; };
virtual std::string getType() {return identifier;};
virtual std::string getId() {return id;};
static const std::string& getIdentifier(void) { return identifier; };
};
typedef struct{
Arc::Time starttime;
Arc::Time endtime;
Arc::Period duration;
}ArcPeriod;
//PeriodAttribute
/**Formate:
*datetime"/"duration
*datetime"/"datetime
*duration"/"datetime
*/
class PeriodAttribute : public AttributeValue {
private:
static std::string identifier;
ArcPeriod value;
std::string id;
public:
PeriodAttribute() { };
PeriodAttribute(const std::string& v,const std::string& i);
virtual ~PeriodAttribute(){ };
virtual bool equal(AttributeValue* other, bool check_id = true);
virtual std::string encode();
ArcPeriod getValue(){ return value; };
virtual std::string getType() {return identifier; };
virtual std::string getId() {return id;};
static const std::string& getIdentifier(void) { return identifier; };
};
}// namespace ArcSec
#endif /* __ARC_SEC_DATETIMEATTRIBUTE_H__ */
|