Class Definition File | ODObject.idl |
Class C++ Binding | ODObject.xh |
Class Hierarchy |
SOMObject ODObject |
Description | The ODObject class is the superclass of all OpenDoc classes; it defines features that all subclasses support, such as memory recovery and extensions. The ODObject class defines a general memory recovery system through the Purge method. It also defines an extension mechanism that allows subclasses to extend the functionality of objects. Subclasses are responsible for defining the extensions they support. For more information on extensions, see the class description for ODExtension. You should never instantiate ODObject. You can create an object of ODObject subclass by calling the appropriate factory method, if a factory method exists. |
Methods | The methods defined by the ODObject class include: |
Overridden Methods | There are no methods overridden by the ODObject class. |
This method returns a reference to the specified extension object.
Signature
ODExtension AcquireExtension (ODType extensionName) |
Parameters
kODScriptExtension | An extension to support direct scripting. |
kODSettingsExtension | An extension to add parameters to the Properties notebook. |
Returns
Remarks
Your part calls this method to obtain a reference to an extension object with the specified extension type. If the subclass does not support the specified extension, this method raises an exception. The ODObject class has no inherent extensions of its own and always raises an exception.
Your override of this method should increment the reference count of the returned extension object. The caller must call the ReleaseExtension method of the returned ODExtension object.
Exception Handling
kODErrUnsupportedExtension | The specified extension is not supported by this object. |
Override Policy
Your subclass of ODPart can override this method if your part supports extensions. If your part does not support the specified extension, your override method must call its inherited AcquireExtension method at the end of your implementation. The client of an extension object must be prepared if the specified extension is not supported.
Your override of this mehtod should return a reference to your part's extension object. A client of an extension object calls this method to obtain a reference to the specified extension.
Related Methods
This method indicates whether the object supports the specified extension.
Signature
ODBoolean HasExtension (ODType extensionName) |
Parameters
Returns
kODTrue | The object supports the specified extension. |
kODFalse | The object does not support the specified extension. |
Remarks
Your part can call this method before accessing an object's extension.
The ODObject class has no inherent extensions of its own and always returns kODFalse.
Override Policy
Your subclass of ODPart can override this method if your part supports extensions. If your part does not support the specified extension, your override method must call its inherited HasExtension method at the end of your implementation. The client of an extension object must be prepared in the event that the specified extension is not supported.
Your override of this method shoudl return a reference to the part's extension object. A client of an extension object calls this method to obtain a reference to the specified extension.
Related Methods
This method initializes the object.
Signature
void InitObject () |
Parameters
None.
Returns
None.
Remarks
Subsequent calls to this method have no affect.
This method indicates whether the specified object is equal to this object.
Signature
ODBoolean IsEqualTo (ODObject object) |
Parameters
Returns
kODTrue | The objects are the same. |
kODFalse | The objects are different. |
Remarks
You should call this method when you need to compare objects for equality. You should never use the equal or not equal operators (for example, the == and != operators of the C++ language) to compare references of two objects.
This method releases any unneeded memory during low-memory situations.
Signature
ODSize Purge (ODSize size) |
Parameters
Returns
Remarks
Your part may call this method, but in general, OpenDoc calls this method in low-memory situations to free any caches, noncritical buffers, or objects; you should not allocate memory for this operation.
Because the ODObject class does not allocate (or deallocate) any memory, it always returns the value 0.
Override Policy
Every subclass of ODObject can and should override this method if it creates caches and temporary buffers. If you subclass specific classes, for example ODPart, you must override this method or risk running out of available memory. Your override method must call its inherited purge method during your implementation. You should save the size value returned by the inherited purge method and add it to the size value returned from your override method.
Your override of this method should:
This method releases the specified extension object.
Signature
void ReleaseExtension (ODExtension extension) |
Parameters
Returns
None.
Remarks
OpenDoc or an extension object client calls this method to release an extension object that was previously acquired using the AcquireExtension method. If the extension was not previously acquired by the caller, the ReleaseExtension method raises an exception. After this method executes successfully, the specified extension object is no longer guaranteed to be valid.
The ODObject class has no inherent extensions and always raises an exception.
Exception Handling
kODErrUnsupportedExtension | This object did not recognize the specified extension object and cannot release it. |
Override Policy
Your subclass of ODPart can override this method if your part supports extensions. If your part does not support the specified extension, your override method must call its inherited ReleaseExtension method at the end of your implementation. The client of the extension object must be prepared if the specified extension is not supported.
Your override of this method should release the specified extension object, acquired when AcquireExtension was called. A client of an extension object calls this method when it finishes working with the extension.
Related Methods
This method raises an exception to indicate that a subclass failed to override a required method.
Signature
void SubClassResponsibility () |
Parameters
None.
Returns
None.
Remarks
OpenDoc calls this method at run time to indicate that a subclass that should have overridden a particular method failed to do so.
Exception Handling
kODErrSubClassResponsibility | The subclass must override this method. The called method should have, but was not, overridden by the subclass of the class that defines this method. |