This file is indexed.

/usr/include/arc/security/ArcPDP/attr/DateTimeAttribute.h is in nordugrid-arc-dev 5.4.2-1build1.

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__ */