home *** CD-ROM | disk | FTP | other *** search
- /*
- File: Storage.h
-
- Contains: Defintion of XMPAbsStorageSystem
-
- Written by: Vincent Lo, Tantek I. Celik
-
- Copyright: ⌐ 1992-1993 by Apple Computer, Inc., all rights reserved.
-
- Change History (most recent first):
-
- <20> 2/4/94 VL Containr.h -> XMPCtr.h.
- <19> 2/4/94 VL Moved to PPC Header and began code cleanup.
- <18> 2/3/94 CG GetSession now returns XMPBaseSession*.
- <17> 1/18/94 CG Moved ISOString defines to BentoDef.h and
- StorgDef.h.
- <16> 1/12/94 VL Init changes.
- <14> 8/3/93 PH Add Bento memory container
- <13> 7/6/93 PH Change to use abstrct base class.
- <12> 6/23/93 Té change kXMPBento... constants from XMPName
- to XMPType
- <11> 6/15/93 VL Changed ContainerList to use LInkedLIst
- instead of DynamicArray. Added
- ClosedContainerList. Made fCMSession public
- (private by convention) for the time
- being.]
- <10> 6/1/93 VL Added private field fCMSession.
- <9> 5/27/93 VL Made ReleaseContainer public by convention.
- Otherwise, implementator of new containers
- would have to modify this file (i.e., to
- add friend to XMPStorageSystem class) to
- create a new Container.
- <8> 5/18/93 VL Changed parameters to CreateContainer and
- OpenContainer.
- <7> 4/29/93 VL Added subType to GetContainer and
- CreateContainer.
- <6> 4/29/93 VL 8.3 Name Change.
- <5> 4/29/93 VL Changed private field fContainers to use
- DynamicArray.
- <4> 4/8/93 VL Removed GetSpace as its function is covered
- by NeedSpace.
- <3> 4/7/93 VL Added Initialize Method.
- <2> 4/6/93 VL Fixed up comments.
- <1> 4/6/93 VL first checked in
-
- To Do:
- 1) Get rid of fCMSession and use Name space to handle global info specific to certain kinds of containers.
- 2) Containr.h is included only for XMPContainerID.
- */
-
- #ifndef _STORAGE_
- #define _STORAGE_
-
- #ifndef _XMPTYPES_
- #include "XMPTypes.h"
- #endif
-
- #ifndef _XMPOBJ_
- #include "XMPObj.h"
- #endif
-
- #ifndef _XMPCTR_
- #include "XMPCtr.h"
- #endif
-
- //==============================================================================
- // Classes used in this interface
- //==============================================================================
- class XMPBaseSession;
- class XMPContainer;
-
- //==============================================================================
- // Classes defined in this interface
- //==============================================================================
- class XMPAbsStorageSystem;
-
- //==============================================================================
- // XMPAbsStorageSystem
- //==============================================================================
-
- class XMPAbsStorageSystem : public XMPObject {
-
- public:
-
- XMPAbsStorageSystem() {}
-
- XMPVMethod ~XMPAbsStorageSystem() {}
-
- XMPVMethod void InitStorageSystem(XMPBaseSession* session, XMPHeap heap)
- = 0;
-
- XMPVMethod XMPBaseSession* GetSession()
- = 0;
-
- XMPVMethod XMPContainer* GetContainer(XMPContainerType containerType,
- XMPContainerID id)
- = 0;
-
- XMPVMethod XMPContainer* CreateContainer(XMPContainerType containerType,
- XMPContainerID id)
- = 0;
-
- XMPVMethod void NeedSpace(XMPSize memSize, XMPBoolean doPurge)
- = 0;
-
-
- private:
-
- XMPVMethod XMPSize Purge(XMPSize size)
- = 0;
-
- XMPVMethod void GrowHeap(XMPSize memSize)
- = 0;
-
- public: // private by convention
-
- XMPVMethod XMPAbsStorageSystem* ReleaseContainer(XMPContainer* container)
- = 0;
- };
-
- #ifdef PLATFORM_MACINTOSH
- #ifndef _STORAGEM_
- #include "StorageM.h"
- #endif
- #endif
-
- #endif // _STORAGE_
-