1:
2:
3: /*************
4: * *
5: * SENTINEL *
6: * *
7: *************/
8:
9:
10: #ifndef WWWI_MIND_LABEL_H
11: #define WWWI_MIND_LABEL_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:
30:
31: /****************
32: * *
33: * CLASS LABEL *
34: * *
35: ****************/
36:
37:
38: class Label {
39: public:
40: Label(unsigned short i_usLength, const char *ci_str);
41: Label(const Label &ci_lbr);
42: inline bool operator<(const Label &ci_lbr) const;
43: inline Label &operator=(const Label &ci_lbr);
44: inline bool operator==(const Label &ci_lbr) const;
45: inline bool operator!=(const Label &ci_lbr) const;
46: inline unsigned short GetLength(void) const;
47: inline const char *GetString(void) const;
48: ~Label(void);
49:
50: protected:
51: inline void Set(unsigned short i_usLength, const char *ci_str);
52:
53: public:
54: unsigned short m_usLength;
55: char *m_str;
56:
57: };
58: typedef Label* LabelPtr;
59: typedef const Label *LabelConstPtr;
60:
61:
62: /************************
63: * *
64: * FUNCTION PROTOTYPES *
65: * *
66: ************************/
67:
68:
69: //ostream& operator<<(ostream& io_smr, const Label &i_lbr);
70: template <class SM> SM& operator<<(SM& io_smr, const Label &i_lbr);
71: template <class SM> SM& operator<<(SM& io_smr, const Label *i_lbp);
72:
73:
74: /*********************
75: * *
76: * INLINE FUNCTIONS *
77: * *
78: *********************/
79:
80:
81: #include "label.i"
82:
83:
84: /************
85: * *
86: * THE END *
87: * *
88: ************/
89:
90:
91: #endif
92:
93:
94: