1:
2:
3: /*************
4: * *
5: * SENTINEL *
6: * *
7: *************/
8:
9:
10: #ifndef WWWI_MIND_RRHEADER_H
11: #define WWWI_MIND_RRHEADER_H
12:
13:
14: /**********************
15: * *
16: * COMPILER INCLUDES *
17: * *
18: **********************/
19:
20:
21: /*********************
22: * *
23: * PROJECT INCLUDES *
24: * *
25: *********************/
26:
27:
28: #include "mind.h"
29: #include "labellist.h"
30:
31:
32: /**********************
33: * *
34: * TYPE DECLARATIONS *
35: * *
36: **********************/
37:
38:
39: /*******************
40: * *
41: * CLASS RRHEADER *
42: * *
43: *******************/
44:
45:
46: class RRHeader {
47: public:
48: RRHeader(void);
49: inline LabelListConstPtr GetName(void) const;
50: inline unsigned GetTTL(void) const;
51: inline void SetTTL(unsigned i_uTTL);
52: inline void SetName(LabelListPtr &i_llpr);
53: ~RRHeader(void);
54:
55: protected:
56: LabelListPtr m_llpName;
57: unsigned m_uTTL;
58: };
59:
60:
61: class CacheRRHeader {
62: public:
63: inline time_t GetExpire(void) const;
64: inline time_t GetTTL(void) const;
65: inline time_t GetTTL(time_t i_tmNow) const;
66: inline bool IsExpired(time_t i_tmNow) const;
67: inline void SetTTL(unsigned i_uTTL);
68:
69: protected:
70: time_t m_tmExpire;
71: };
72:
73:
74: /************************
75: * *
76: * FUNCTION PROTOTYPES *
77: * *
78: ************************/
79:
80:
81: ostream& operator<<(ostream &io_smr, const CacheRRHeader &i_rrr);
82: ostream& operator<<(ostream &io_smr, const CacheRRHeader *i_rrp);
83: ostream& operator<<(ostream &io_smr, const RRHeader &i_rrr);
84: ostream& operator<<(ostream &io_smr, const RRHeader *i_rrp);
85:
86:
87: /*********************
88: * *
89: * INLINE FUNCTIONS *
90: * *
91: *********************/
92:
93:
94: #include "rrheader.i"
95:
96:
97: /************
98: * *
99: * THE END *
100: * *
101: ************/
102:
103:
104: #endif
105:
106:
107: