1: 2: 3: /************* 4: * * 5: * SENTINEL * 6: * * 7: *************/ 8: 9: 10: #ifndef WWWI_MIND_LABELLIST_H 11: #define WWWI_MIND_LABELLIST_H 12: 13: 14: /********************** 15: * * 16: * COMPILER INCLUDES * 17: * * 18: **********************/ 19: 20: 21: #include <vector> 22: 23: 24: /********************* 25: * * 26: * PROJECT INCLUDES * 27: * * 28: *********************/ 29: 30: 31: #include "mind.h" 32: #include "label.h" 33: 34: 35: using std::vector; 36: 37: 38: /******************** 39: * * 40: * CLASS LABELLIST * 41: * * 42: ********************/ 43: 44: 45: /* 46: * This is used to represent the disassembled components of a name 47: * composed of various labels. 48: */ 49: 50: typedef vector<Label> LabelListParent; 51: 52: class LabelList : public LabelListParent { 53: public: 54: LabelList(void); 55: explicit LabelList(const char *i_strName); 56: explicit LabelList(const unsigned char *ci_ucpLabels); 57: LabelList(const LabelList &ci_llr); 58: unsigned short GetRDLength(void) const; 59: unsigned short ToRaw(unsigned char *o_strOut) const; 60: char *ToString(void) const; 61: void ToString(char *o_strOut, size_t i_szOut) const; 62: ~LabelList(void); 63: 64: }; 65: DECL_POINTER_TYPES(LabelList) 66: 67: 68: /************************ 69: * * 70: * FUNCTION PROTOTYPES * 71: * * 72: ************************/ 73: 74: 75: ostream& operator<<(ostream& io_smr, const LabelList &i_llr); 76: ostream& operator<<(ostream& io_smr, LabelListConstPtr i_llp); 77: 78: 79: /********************* 80: * * 81: * INLINE FUNCTIONS * 82: * * 83: *********************/ 84: 85: 86: #include "labellist.i" 87: 88: 89: /************ 90: * * 91: * THE END * 92: * * 93: ************/ 94: 95: 96: #endif 97: 98: 99: