Reference.h

Go to the documentation of this file.
00001 
00020 #ifndef ARXX_REFERENCE_H
00021 #define ARXX_REFERENCE_H
00022 
00023 #include "Common.h"
00024 
00031 namespace Arxx
00032 {
00033     class Item;
00034     
00035     class Archive;
00036     
00037     class ReferenceImplementation;
00038     
00046     class Reference
00047     {
00048     public:
00055         Reference(Arxx::Item & Item);
00056         
00064         Reference(Arxx::u4byte u4UniqueID, Arxx::Archive * pArchive = 0);
00065         
00072         Reference(const Arxx::Reference & Reference);
00073         
00079         virtual ~Reference(void);
00080         
00086         Arxx::u4byte u4GetUniqueID(void) const;
00087         
00097         Arxx::Item * pGetItem(void);
00098         
00108         const Arxx::Item * pGetItem(void) const;
00109         
00117         Arxx::u4byte u4GetReferenceCount(void) const;
00118         
00127         void vResolve(Arxx::Item & Item);
00128         
00136         void vUnresolve(void);
00137         
00148         bool bAttach(Arxx::Reference & Reference);
00149         
00159         bool bDetach(void);
00160         
00166         void vDecoupleFromArchive(void);
00167         
00168         bool operator<(const Arxx::Reference & Reference) const
00169         {
00170             return u4GetUniqueID() < Reference.u4GetUniqueID();
00171         }
00172     private:
00176         void vChangeReference(Arxx::ReferenceImplementation * pReference);
00177         
00178         Arxx::ReferenceImplementation * m_pReference;
00179     };
00180 }
00181 
00182 #endif

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