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: