home *** CD-ROM | disk | FTP | other *** search
- /*
- File: XMPCtr.h
-
- Contains: Definition of XMPContainer
-
- Written by: Vincent Lo, Tantek I. Celik
-
- Copyright: ⌐ 1993 by Apple Computer, Inc., all rights reserved.
-
- Change History (most recent first):
-
- <1> 2/4/94 VL first checked in
- <16> 2/4/94 VL Moved to PPC Header and began code cleanup.
- <15> 1/12/94 VL Init Changes
- <14> 7/30/93 VL XMPContainerName* should be
- XMPContainerName.
- <13> 7/6/93 PH Inline con/destructor and fix
- XMPContainerName
- <12> 6/29/93 RCR Moved typedefs to XMPTypes
- <11> 5/27/93 VL Made XMPContainer into an abstract base
- class.
- <10> 5/18/93 VL Removed subType from constructor because
- the class should encapsulate what the type
- of the container is. Removed private field
- fSubType.
- <9> 4/29/93 VL Make fContainer public by convention for
- now.
- <8> 4/29/93 VL 8.3 Name Change.
- <8> 4/29/93 VL 8.3 Name Change.
- <7> 4/29/93 VL Adding private field fContRefCount.
- <6> 4/22/93 VL Modified ContainerTypes and
- ContainerSubTypes. XMPContainerName* should
- be XMPContainerName in GetName and SetName.
- kDefaultDocument to kXMPDefaultDocument.
- XMPStorageSytem to XMPStorageSystem.
- <5> 4/9/93 VL XMPContainer is a subclass of
- XMPRefCntObject.
- <4> 4/8/93 VL Removed private fSession because it was
- only an implementation detail.
- <3> 4/7/93 VL Moved parameters from Initialize to
- constructor.
- <2> 4/6/93 VL Fixed up comments.
- <1> 4/6/93 VL first checked in
-
- To Do:
- 1) Document.h is included only for XMPDocumentID.
- */
-
- #ifndef _XMPCTR_
- #define _XMPCTR_
-
- #ifndef _XMPTYPES_
- #include "XMPTypes.h"
- #endif
-
- #ifndef _REFCTOBJ_
- #include "RefCtObj.h"
- #endif
-
- #ifndef _DOCUMENT_
- #include "Document.h"
- #endif
-
- //==============================================================================
- // Constants
- //==============================================================================
- const XMPDocumentID kXMPDefaultDocument = 1;
-
- //==============================================================================
- // Classes used by this interface
- //==============================================================================
- class XMPStorageSystem;
- class XMPDocument;
-
- //==============================================================================
- // Classes defined in this interface
- //==============================================================================
- class XMPContainer;
-
- //==============================================================================
- // XMPContainer
- //==============================================================================
-
- class XMPContainer : public XMPRefCntObject {
-
- public:
-
- XMPVMethod XMPStorageSystem* GetStorageSystem()
- = 0;
-
- XMPVMethod XMPContainerID GetID()
- = 0;
-
- XMPVMethod XMPContainerName GetName()
- = 0;
-
- XMPVMethod void SetName(XMPContainerName name)
- = 0;
-
- XMPVMethod XMPDocument* GetDocument(XMPDocumentID id)
- = 0;
-
- XMPVMethod void IncrementRefCount()
- = 0;
-
- XMPVMethod void Release()
- = 0;
-
- public: // private by convention
-
- XMPContainer() {}
-
- XMPVMethod ~XMPContainer() {}
-
- XMPVMethod void InitContainer(XMPStorageSystem* system, XMPContainerID id)
- = 0;
-
- XMPVMethod XMPContainer* Create()
- = 0;
-
- XMPVMethod XMPContainer* Open()
- = 0;
-
- XMPVMethod XMPContainer* Close()
- = 0;
-
- XMPVMethod XMPSize Purge(XMPSize size)
- = 0;
-
- XMPVMethod XMPContainer* ReleaseDocument(XMPDocument* document)
- = 0;
- };
-
-
- #endif // _XMPCTR_
-