00001 00020 #ifndef ARXX_ITEM_H 00021 #define ARXX_ITEM_H 00022 00023 #include "Data.h" 00024 #include "Structure.h" 00025 00032 namespace Arxx 00033 { 00034 class ItemFactory; 00035 00036 class Archive; 00037 00047 class Item : public Arxx::Data 00048 { 00049 friend class Arxx::Archive; 00050 public: 00058 Item(Arxx::Archive & Archive, Arxx::u4byte u4UniqueID = g_u4InvalidID); 00059 00068 Item(Arxx::ItemFactory & ItemFactory, Arxx::Archive & Archive, Arxx::u4byte u4UniqueID = g_u4InvalidID); 00069 00076 explicit Item(Arxx::u4byte u4UniqueID = g_u4InvalidID); 00077 00085 Item(Arxx::ItemFactory & ItemFactory, Arxx::u4byte u4UniqueID = g_u4InvalidID); 00086 00092 virtual ~Item(); 00093 00099 Arxx::u4byte u4GetUniqueID(void) const; 00100 00109 void vSetUniqueID(Arxx::u4byte u4UniqueID); 00110 00116 const std::string & sGetName(void) const; 00117 00124 void vSetName(const std::string & sName); 00125 00133 Arxx::u4byte u4GetType(void) const; 00134 00142 Arxx::u4byte u4GetSubType(void) const; 00143 00153 Arxx::u4byte u4GetVersion(void) const; 00154 00161 void vSetType(Arxx::u4byte u4Type); 00162 00169 void vSetSubType(Arxx::u4byte u4SubType); 00170 00177 void vSetVersion(Arxx::u4byte u4Version); 00178 00184 Arxx::Archive * pGetArchive(void) const; 00185 00191 Arxx::ItemFactory * pGetItemFactory(void) const; 00192 00196 Arxx::Structure & GetStructure(void); 00197 00201 const Arxx::Structure & GetStructure(void) const; 00202 private: 00207 Item(const Item & Item); 00208 00213 Item & operator=(const Item & Item); 00214 00222 u4byte m_u4UniqueID; 00223 00243 std::string m_sName; 00244 00252 Arxx::u4byte m_u4Type; 00253 00261 Arxx::u4byte m_u4SubType; 00262 00270 Arxx::u4byte m_u4Version; 00271 00279 Arxx::Archive * m_pArchive; 00280 00286 Arxx::ItemFactory * m_pItemFactory; 00287 00291 Arxx::Structure m_Structure; 00292 }; 00293 } 00294 00295 #endif