Item.h

Go to the documentation of this file.
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

Generated on Tue Oct 10 11:33:55 2006 for libarxx by  doxygen 1.4.7