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: