1:
2:
3: /*************
4: * *
5: * SENTINEL *
6: * *
7: *************/
8:
9:
10: #ifndef WWWI_MIND_RRT_H
11: #define WWWI_MIND_RRT_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 "rdata.h"
30:
31:
32: /**********************
33: * *
34: * TYPE DECLARATIONS *
35: * *
36: **********************/
37:
38:
39: /*************
40: * *
41: * CLASS RR *
42: * *
43: *************/
44:
45:
46: template <class H> class RRT : public H {
47: public:
48: RRT(void);
49: template <class T> bool Compare(const T ci_xrp) const;
50: inline RRClass GetClass(void) const;
51: inline RDataConstPtr GetRData(void) const;
52: inline RRType GetType(void) const;
53: inline bool IsTypeClass(RRType i_ty, RRClass i_cl) const;
54: inline void SetClass(RRClass i_cl);
55: inline void SetRData(unsigned char* &i_ucprData, size_t i_szData);
56: inline void SetRData(RDataPtr &i_rdpr);
57: inline void SetType(RRType i_ty);
58: ~RRT(void);
59:
60: friend class RRFactory;
61:
62: protected:
63: RRType m_ty;
64: RRClass m_cl;
65: RDataPtr m_rdp;
66:
67: };
68:
69:
70: /************************
71: * *
72: * FUNCTION PROTOTYPES *
73: * *
74: ************************/
75:
76:
77: template <class H> ostream& operator<<(ostream &io_smr, const RRT<H> &i_rrr);
78: template <class H> ostream& operator<<(ostream &io_smr, const RRT<H> *i_rrp);
79:
80:
81: /*********************
82: * *
83: * INLINE FUNCTIONS *
84: * *
85: *********************/
86:
87:
88: #include "rrt.i"
89:
90:
91: /************
92: * *
93: * THE END *
94: * *
95: ************/
96:
97:
98: #endif
99:
100:
101: