home *** CD-ROM | disk | FTP | other *** search
- /*
- File: XMPObj.h
-
- Contains: Class definition for XMPObject
-
- Written by: Joshua Susser
-
- Protocols: Extensions
-
- Copyright: ⌐ 1993 by Apple Computer, Inc., all rights reserved.
-
- Change History (most recent first):
-
- <11> 1/11/94 Té Init... changes
- <10> 12/15/93 Té InitObject changes
- <9> 8/9/93 NP Added class id string.
- <8> 7/21/93 NP Added a virtual keyword (temporary for
- ASLM).
- <7> 6/10/93 NP Changed XMPName to XMPType.
- <6> 5/4/93 NP Unvirtualed Initialize.
- <5> 4/29/93 VL 8.3 Name Change.
- <3> 4/12/93 VL Made functions public.
- <2> 4/8/93 VL Added Purge and Initialize.
- <1> 4/6/93 VL first checked in
-
- */
-
- #ifndef _XMPOBJ_
- #define _XMPOBJ_
-
- #ifndef _PLFMDEF_
- #include "PlfmDef.h"
- #endif
-
- #ifndef _XMPTYPES_
- #include "XMPTypes.h"
- #endif
-
- //==============================================================================
- // Theory of Operation
- //==============================================================================
-
- /*
- This file defines class XMPObject. This class is the common base class
- for most XMP classes. It provides for extensibility through the
- Extensions protocol.
- */
-
- //==============================================================================
- // Classes defined in this interface
- //==============================================================================
-
- class XMPObject;
-
- //==============================================================================
- // Classes used by this interface
- //==============================================================================
-
- class XMPExtension;
-
- //==============================================================================
- // XMPObject
- //==============================================================================
-
- #define kXMPObjectID "appl:object$class,1.0.0"
-
- class XMPObject
- {
-
- public:
-
- XMPObject();
-
- virtual ~XMPObject();
-
- XMPNVMethod void InitObject();
-
- //-------------------------------------------------------------------------
- // From Extensions protocol
- //-------------------------------------------------------------------------
-
- XMPVMethod XMPBoolean HasExtension(XMPType extensionName);
-
- // answer whether this object supports the specified extension interface
-
- XMPVMethod XMPExtension* GetExtension(XMPType extensionName);
-
- // return the specified extension interface
-
- XMPVMethod void ReleaseExtension(XMPExtension* extension);
-
- // release resources associated with the specified extension interface.
- // may count references if necessary.
-
- //-------------------------------------------------------------------------
- // From Memory protocol
- //-------------------------------------------------------------------------
-
- XMPVMethod XMPSize Purge(XMPSize size)
- = 0;
-
- // Get rid of any unnecessary memory.
-
- protected:
- XMPBoolean fInitialized;
- };
-
- #endif // _XMPOBJ_
-