31 #ifndef __IDatabaseSnapshot__ 32 #define __IDatabaseSnapshot__ 33 #include "IDataBase.h" 34 #include <boost/intrusive_ptr.hpp> 35 #include "IDThreadingPrimitives.h" 41 typedef boost::intrusive_ptr<IDatabaseSnapshot> DatabaseSnapshotPtr;
54 virtual void SetFileInfo(IPubFile* pubFile,
const IDFile & sysFileFromOpen) = 0;
55 virtual IPubFile* GetPubFile()
const = 0;
56 virtual const IDFile & GetSysFileFromOpen ()
const = 0;
59 virtual uint32 GetLinksUpdateSeed()
const = 0;
60 virtual void SetLinksUpdateSeed(uint32 seed) = 0;
62 virtual void DetatchFromBase() = 0;
63 virtual IDataBase* CreateCloneDataBase() = 0;
67 IDThreading::AtomicIncrement(fRefCount);
69 virtual void Release()
71 const uint32 newCount = IDThreading::AtomicDecrement(fRefCount);
72 ASSERT (newCount < uint32(-1));
79 virtual MemXferBytes* GetPrivateDataForHTTPLinks() = 0;
80 virtual void SetPrivateDataForHTTPLinks(MemXferBytes* bytes) = 0;
81 virtual std::string GetAssetRef() =0;
84 volatile uint32 fRefCount;