ReferenceImplementation.h

Go to the documentation of this file.
00001 
00020 #ifndef ARXX_REFERENCEIMPLEMENTATION_H
00021 #define ARXX_REFERENCEIMPLEMENTATION_H
00022 
00023 #include "../Include/Common.h"
00024 
00025 namespace Arxx
00026 {
00027     class Item;
00028     
00029     class Archive;
00030     
00034     class ReferenceImplementation
00035     {
00036     public:
00043         static Arxx::ReferenceImplementation * pGetReference(Arxx::Item & Item);
00044         
00052         static Arxx::ReferenceImplementation * pGetReference(Arxx::u4byte u4UniqueID, Arxx::Archive * pArchive = 0);
00053         
00060         static Arxx::ReferenceImplementation * pGetReference(Arxx::ReferenceImplementation * pReference);
00061         
00069         static bool bRelease(Arxx::ReferenceImplementation * pReference);
00070         
00076         Arxx::u4byte u4GetUniqueID(void) const;
00077         
00083         Arxx::Item * pGetItem(void);
00084         
00090         const Arxx::Item * pGetItem(void) const;
00091         
00095         Arxx::u4byte u4GetReferenceCount(void) const;
00096         
00107         void vResolve(Arxx::Item & Item);
00108         
00112         void vUnresolve(void);
00113         
00117         void vDecoupleFromArchive(void);
00118     private:
00124         ReferenceImplementation(void);
00125         
00131         ~ReferenceImplementation(void);
00132         
00136         ReferenceImplementation(const Arxx::ReferenceImplementation & Reference);
00137         
00141         Arxx::ReferenceImplementation & operator=(const Arxx::ReferenceImplementation & Reference);
00142         
00143         Arxx::u4byte m_u4UniqueID;
00144         Arxx::Item * m_pItem;
00145         Arxx::u4byte m_u4ReferenceCount;
00146         Arxx::Archive * m_pArchive;
00147     };
00148 }
00149 
00150 #endif

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