00001 /*******************************************************/ 00009 #if !defined(_AJA_ATTRIBUTEITEM_H_) 00010 #define _AJA_ATTRIBUTEITEM_H_ 00011 00012 #include "aja.h" 00013 00014 namespace aja 00015 { 00016 /*****************************************************/ 00025 class AttributeItem : public Item 00026 { 00027 public: 00028 AttributeItem(byte_t id, attributeType_t type); 00029 virtual ~AttributeItem(); 00030 00032 // METHODS 00034 public: 00035 attributeType_t getAttrType(); 00036 byte_t getAttrId(); 00037 void setAttrId(byte_t id); 00038 00039 static AttributeItem* parseAttribute(const buffer_t buffer, unsigned int size, unsigned int& pos); 00040 00041 00043 // MEMBERS 00045 protected: 00046 byte_t mAttrId; 00047 attributeType_t mAttrType; 00048 00049 00051 // EVENTS & Abstract METHODS 00053 public: 00054 virtual bool buildAja(OutputBuffer& out); 00055 virtual number_t getItemSize(); 00056 00057 /***********************************************************/ 00077 virtual bool parseAttrData(buffer_t buffer, unsigned int size, unsigned int& pos) = 0; 00078 00079 /************************************************************/ 00089 virtual void getValueStr(std::string& out) = 0; 00090 00091 00092 00093 }; 00094 } 00095 00096 00097 #endif