/* * This file was generated by the SOM Compiler. * FileName: somobj.xh. * Generated using: * SOM Precompiler somipc: 2.29.1.17 * SOM Emitter emitxh: 2.47 */ #ifndef SOM_SOMObject_xh #define SOM_SOMObject_xh class SOMObject; /* * This is the SOM root class, all SOM classes must be descended from * . has no instance data so there is no * per-instance cost to to being descended from it. */ #define SOMObject_MajorVersion 1 #define SOMObject_MinorVersion 5 /* C++ SOM defs */ #include #ifndef SOMObject_API #define SOMObject_API /* * -- The Class API */ /* * Start of bindings for IDL types */ class SOMClass; class SOMObject; #ifndef _IDL_SEQUENCE_SOMObject_defined #define _IDL_SEQUENCE_SOMObject_defined typedef struct { unsigned long _maximum; unsigned long _length; SOMObject **_buffer; } _IDL_SEQUENCE_SOMObject; #endif /* _IDL_SEQUENCE_SOMObject_defined */ typedef _IDL_SEQUENCE_SOMObject SOMObject_SOMObjectSequence; /* * a sequence of SOM Objects */ #ifndef _IDL_SEQUENCE_octet_defined #define _IDL_SEQUENCE_octet_defined typedef struct { unsigned long _maximum; unsigned long _length; octet *_buffer; } _IDL_SEQUENCE_octet; #endif /* _IDL_SEQUENCE_octet_defined */ typedef _IDL_SEQUENCE_octet SOMObject_BooleanSequence; /* * a sequence of booleans. */ typedef struct SOMObject_somObjectOffset { SOMObject* obj; long offset; } SOMObject_somObjectOffset; /* * a structure to describe an object-related offset */ struct SOMObject_somObjectOffset; #ifndef _IDL_SEQUENCE_SOMObject_somObjectOffset_defined #define _IDL_SEQUENCE_SOMObject_somObjectOffset_defined typedef struct { unsigned long _maximum; unsigned long _length; struct SOMObject_somObjectOffset *_buffer; } _IDL_SEQUENCE_SOMObject_somObjectOffset; #endif /* _IDL_SEQUENCE_SOMObject_somObjectOffset_defined */ typedef _IDL_SEQUENCE_SOMObject_somObjectOffset SOMObject_somObjectOffsets; /* * a sequence of object-related offsets */ #ifndef SOM_DONT_USE_SHORT_NAMES #ifndef SOM_DONT_USE_SHORT_NAMES #ifndef SOMTGD_SOMObjectSequence #ifdef SOMObjectSequence #undef SOMObjectSequence #define SOMTGD_SOMObjectSequence 1 #else #define SOMObjectSequence SOMObject_SOMObjectSequence #endif /* SOMObjectSequence */ #endif /* SOMTGD_SOMObjectSequence */ #endif /* SOM_DONT_USE_SHORT_NAMES */ #ifndef SOM_DONT_USE_SHORT_NAMES #ifndef SOMTGD_BooleanSequence #ifdef BooleanSequence #undef BooleanSequence #define SOMTGD_BooleanSequence 1 #else #define BooleanSequence SOMObject_BooleanSequence #endif /* BooleanSequence */ #endif /* SOMTGD_BooleanSequence */ #endif /* SOM_DONT_USE_SHORT_NAMES */ #ifndef SOMTGD_somObjectOffset #ifdef somObjectOffset #undef somObjectOffset #define SOMTGD_somObjectOffset 1 #else #define somObjectOffset SOMObject_somObjectOffset #endif /* somObjectOffset */ #endif /* SOMTGD_somObjectOffset */ #ifndef SOMTGD__IDL_SEQUENCE_somObjectOffset #ifdef _IDL_SEQUENCE_somObjectOffset #undef _IDL_SEQUENCE_somObjectOffset #define SOMTGD__IDL_SEQUENCE_somObjectOffset 1 #else #define _IDL_SEQUENCE_somObjectOffset _IDL_SEQUENCE_SOMObject_somObjectOffset #endif /* _IDL_SEQUENCE_somObjectOffset */ #endif /* SOMTGD__IDL_SEQUENCE_somObjectOffset */ #ifndef SOM_DONT_USE_SHORT_NAMES #ifndef SOMTGD_somObjectOffsets #ifdef somObjectOffsets #undef somObjectOffsets #define SOMTGD_somObjectOffsets 1 #else #define somObjectOffsets SOMObject_somObjectOffsets #endif /* somObjectOffsets */ #endif /* SOMTGD_somObjectOffsets */ #endif /* SOM_DONT_USE_SHORT_NAMES */ #endif /* SOM_DONT_USE_SHORT_NAMES */ /* * End of bindings for IDL types. */ /* A procedure to create the SOMObject Class */ SOMEXTERN SOMClass * SOMLINK SOMObjectNewClass( integer4 majorVersion, integer4 minorVersion); /* The API to the SOMObject class object, and the methods it introduces. */ SOMEXTERNS struct SOMObjectClassDataStructure { SOMClass *classObject; somMToken somInit; somMToken somUninit; somMToken somFree; somMToken somDefaultVCopyInit; somMToken somGetClassName; somMToken somGetClass; somMToken somIsA; somMToken somRespondsTo; somMToken somIsInstanceOf; somMToken somGetSize; somMToken somDumpSelf; somMToken somDumpSelfInt; somMToken somPrintSelf; somMToken somDefaultConstVCopyInit; somMToken somDispatchV; somMToken somDispatchL; somMToken somDispatchA; somMToken somDispatchD; somMToken somDispatch; somMToken somClassDispatch; somMToken somCastObj; somMToken somResetObj; somMToken somDefaultInit; somMToken somDestruct; somMToken somPrivate1; somMToken somPrivate2; somMToken somDefaultCopyInit; somMToken somDefaultConstCopyInit; somMToken somDefaultAssign; somMToken somDefaultConstAssign; somMToken somDefaultVAssign; somMToken somDefaultConstVAssign; } SOMDLINK SOMObjectClassData; #define _SOMObject SOMObjectClassData.classObject /* The API to parentMtabs for SOMObject, and the instance data it introduces. */ SOMEXTERNS struct SOMObjectCClassDataStructure { somMethodTabs parentMtab; somDToken instanceDataToken; } SOMDLINK SOMObjectCClassData; /* * -- Typedefs for SOMObject Method Procedures */ SOMEXTERN { typedef void SOMLINK somTP_SOMObject_somDefaultInit(SOMObject *somSelf, som3InitCtrl* ctrl); typedef somTP_SOMObject_somDefaultInit *somTD_SOMObject_somDefaultInit; typedef void SOMLINK somTP_SOMObject_somDestruct(SOMObject *somSelf, octet doFree, som3DestructCtrl* ctrl); typedef somTP_SOMObject_somDestruct *somTD_SOMObject_somDestruct; typedef void SOMLINK somTP_SOMObject_somDefaultCopyInit(SOMObject *somSelf, som3InitCtrl* ctrl, SOMObject* fromObj); typedef somTP_SOMObject_somDefaultCopyInit *somTD_SOMObject_somDefaultCopyInit; typedef SOMObject* SOMLINK somTP_SOMObject_somDefaultAssign(SOMObject *somSelf, som3AssignCtrl* ctrl, SOMObject* fromObj); typedef somTP_SOMObject_somDefaultAssign *somTD_SOMObject_somDefaultAssign; typedef void SOMLINK somTP_SOMObject_somDefaultConstCopyInit(SOMObject *somSelf, som3InitCtrl* ctrl, SOMObject* fromObj); typedef somTP_SOMObject_somDefaultConstCopyInit *somTD_SOMObject_somDefaultConstCopyInit; typedef void SOMLINK somTP_SOMObject_somDefaultVCopyInit(SOMObject *somSelf, som3InitCtrl* ctrl, SOMObject* fromObj); typedef somTP_SOMObject_somDefaultVCopyInit *somTD_SOMObject_somDefaultVCopyInit; typedef void SOMLINK somTP_SOMObject_somDefaultConstVCopyInit(SOMObject *somSelf, som3InitCtrl* ctrl, SOMObject* fromObj); typedef somTP_SOMObject_somDefaultConstVCopyInit *somTD_SOMObject_somDefaultConstVCopyInit; typedef SOMObject* SOMLINK somTP_SOMObject_somDefaultConstAssign(SOMObject *somSelf, som3AssignCtrl* ctrl, SOMObject* fromObj); typedef somTP_SOMObject_somDefaultConstAssign *somTD_SOMObject_somDefaultConstAssign; typedef SOMObject* SOMLINK somTP_SOMObject_somDefaultVAssign(SOMObject *somSelf, som3AssignCtrl* ctrl, SOMObject* fromObj); typedef somTP_SOMObject_somDefaultVAssign *somTD_SOMObject_somDefaultVAssign; typedef SOMObject* SOMLINK somTP_SOMObject_somDefaultConstVAssign(SOMObject *somSelf, som3AssignCtrl* ctrl, SOMObject* fromObj); typedef somTP_SOMObject_somDefaultConstVAssign *somTD_SOMObject_somDefaultConstVAssign; typedef void SOMLINK somTP_SOMObject_somInit(SOMObject *somSelf); typedef somTP_SOMObject_somInit *somTD_SOMObject_somInit; typedef void SOMLINK somTP_SOMObject_somFree(SOMObject *somSelf); typedef somTP_SOMObject_somFree *somTD_SOMObject_somFree; typedef void SOMLINK somTP_SOMObject_somUninit(SOMObject *somSelf); typedef somTP_SOMObject_somUninit *somTD_SOMObject_somUninit; typedef SOMClass* SOMLINK somTP_SOMObject_somGetClass(SOMObject *somSelf); typedef somTP_SOMObject_somGetClass *somTD_SOMObject_somGetClass; typedef string SOMLINK somTP_SOMObject_somGetClassName(SOMObject *somSelf); typedef somTP_SOMObject_somGetClassName *somTD_SOMObject_somGetClassName; typedef long SOMLINK somTP_SOMObject_somGetSize(SOMObject *somSelf); typedef somTP_SOMObject_somGetSize *somTD_SOMObject_somGetSize; typedef boolean SOMLINK somTP_SOMObject_somIsA(SOMObject *somSelf, SOMClass* aClassObj); typedef somTP_SOMObject_somIsA *somTD_SOMObject_somIsA; typedef boolean SOMLINK somTP_SOMObject_somIsInstanceOf(SOMObject *somSelf, SOMClass* aClassObj); typedef somTP_SOMObject_somIsInstanceOf *somTD_SOMObject_somIsInstanceOf; typedef boolean SOMLINK somTP_SOMObject_somRespondsTo(SOMObject *somSelf, somId mId); typedef somTP_SOMObject_somRespondsTo *somTD_SOMObject_somRespondsTo; typedef boolean SOMLINK somTP_SOMObject_somDispatch(SOMObject *somSelf, somToken* retValue, somId methodId, va_list ap); typedef somTP_SOMObject_somDispatch *somTD_SOMObject_somDispatch; typedef boolean SOMLINK somTP_SOMObject_somClassDispatch(SOMObject *somSelf, SOMClass* clsObj, somToken* retValue, somId methodId, va_list ap); typedef somTP_SOMObject_somClassDispatch *somTD_SOMObject_somClassDispatch; typedef boolean SOMLINK somTP_SOMObject_somCastObj(SOMObject *somSelf, SOMClass* cls); typedef somTP_SOMObject_somCastObj *somTD_SOMObject_somCastObj; typedef boolean SOMLINK somTP_SOMObject_somResetObj(SOMObject *somSelf); typedef somTP_SOMObject_somResetObj *somTD_SOMObject_somResetObj; typedef void SOMLINK somTP_SOMObject_somDispatchV(SOMObject *somSelf, somId methodId, somId descriptor, va_list ap); typedef somTP_SOMObject_somDispatchV *somTD_SOMObject_somDispatchV; typedef long SOMLINK somTP_SOMObject_somDispatchL(SOMObject *somSelf, somId methodId, somId descriptor, va_list ap); typedef somTP_SOMObject_somDispatchL *somTD_SOMObject_somDispatchL; typedef void* SOMLINK somTP_SOMObject_somDispatchA(SOMObject *somSelf, somId methodId, somId descriptor, va_list ap); typedef somTP_SOMObject_somDispatchA *somTD_SOMObject_somDispatchA; typedef double SOMLINK somTP_SOMObject_somDispatchD(SOMObject *somSelf, somId methodId, somId descriptor, va_list ap); typedef somTP_SOMObject_somDispatchD *somTD_SOMObject_somDispatchD; typedef SOMObject* SOMLINK somTP_SOMObject_somPrintSelf(SOMObject *somSelf); typedef somTP_SOMObject_somPrintSelf *somTD_SOMObject_somPrintSelf; typedef void SOMLINK somTP_SOMObject_somDumpSelf(SOMObject *somSelf, long level); typedef somTP_SOMObject_somDumpSelf *somTD_SOMObject_somDumpSelf; typedef void SOMLINK somTP_SOMObject_somDumpSelfInt(SOMObject *somSelf, long level); typedef somTP_SOMObject_somDumpSelfInt *somTD_SOMObject_somDumpSelfInt; } #endif /* SOMObject_API */ /* * -- This emitter treats Method Tokens as Thunks by default. * -- Use the sc modifier "nothunks" to change this default */ #undef somresolve_ #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken)) // special somclass api for use in SOMObject.xh #include /* * -- The C++ Wrapper Class for SOMObject */ class SOMObject { /* * This is the SOM root class, all SOM classes must be descended from * . has no instance data so there is no * per-instance cost to to being descended from it. */ public: // SOMObject::new creates the class object if necessary, and then uses somNewNoInit // to allocate memory and create the object. Initialization is in ctors. void *operator new(size_t) { if (!_SOMObject) SOMObjectNewClass(SOMObject_MajorVersion,SOMObject_MinorVersion); return (void*) SOM_Resolve(_SOMObject,SOMClass,somNewNoInit) ((SOMClass *)((void*)_SOMObject)); } // SOMObject::delete uses somDestruct. void operator delete(void * obj) { if (obj && *(void**)obj) { SOM_Resolve(obj,SOMObject,somFree) ((SOMObject*)obj); } } SOMObject& operator=(SOMObject& fromObj) { this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj)); return *this; } SOMObject() { } SOMObject(SOMObject* fromObj) { } #ifdef __IBMCPP__ #pragma info(nocnv,nopar) #endif SOMObject(const SOMObject* fromObj) { } #ifdef __IBMCPP__ #pragma info(restore) #endif /* initializer method: somDefaultInit */ void somDefaultInit(som3InitCtrl* ctrl) { /* * A default initializer for a SOM object. Passing a null ctrl * indicates to the receiver that its class is the class of the * object being initialized, whereby the initializer will determine * an appropriate control structure. */ SOM_ResolveD(this,SOMObject,SOMObject,somDefaultInit) (this,ctrl); } /* method: somDestruct */ void somDestruct(octet doFree, som3DestructCtrl* ctrl) { /* * The default destructor for a SOM object. A nonzero * indicates that the object storage should be freed by the * object's class (via somDeallocate) after uninitialization. * As with somDefaultInit, a null ctrl can be passed. */ SOM_ResolveD(this,SOMObject,SOMObject,somDestruct) (this,doFree,ctrl); } /* initializer method: somDefaultCopyInit */ void somDefaultCopyInit(som3InitCtrl* ctrl, SOMObject* fromObj) { /* * A default copy constructor. Use this to make copies of objects for * calling methods with "by-value" argument semantics. */ SOM_ResolveD(this,SOMObject,SOMObject,somDefaultCopyInit) (this,ctrl,fromObj); } /* method: somDefaultAssign */ SOMObject* somDefaultAssign(som3AssignCtrl* ctrl, SOMObject* fromObj) { /* * A default assignment operator. Use this to "assign" the state of one * object to another. */ return SOM_ResolveD(this,SOMObject,SOMObject,somDefaultAssign) (this,ctrl,fromObj); } /* initializer method: somDefaultConstCopyInit */ void somDefaultConstCopyInit(som3InitCtrl* ctrl, SOMObject* fromObj) { /* * A default copy constructor that uses a const fromObj. */ SOM_ResolveD(this,SOMObject,SOMObject,somDefaultConstCopyInit) (this,ctrl,fromObj); } /* initializer method: somDefaultVCopyInit */ void somDefaultVCopyInit(som3InitCtrl* ctrl, SOMObject* fromObj) { /* * A default copy constructor that uses a volatile fromObj. */ SOM_ResolveD(this,SOMObject,SOMObject,somDefaultVCopyInit) (this,ctrl,fromObj); } /* initializer method: somDefaultConstVCopyInit */ void somDefaultConstVCopyInit(som3InitCtrl* ctrl, SOMObject* fromObj) { /* * A default copy constructor that uses a const volatile fromObj. */ SOM_ResolveD(this,SOMObject,SOMObject,somDefaultConstVCopyInit) (this,ctrl,fromObj); } /* method: somDefaultConstAssign */ SOMObject* somDefaultConstAssign(som3AssignCtrl* ctrl, SOMObject* fromObj) { /* * A default assignment operator that uses a const fromObj. */ return SOM_ResolveD(this,SOMObject,SOMObject,somDefaultConstAssign) (this,ctrl,fromObj); } /* method: somDefaultVAssign */ SOMObject* somDefaultVAssign(som3AssignCtrl* ctrl, SOMObject* fromObj) { /* * A default assignment operator that uses a volatile fromObj. */ return SOM_ResolveD(this,SOMObject,SOMObject,somDefaultVAssign) (this,ctrl,fromObj); } /* method: somDefaultConstVAssign */ SOMObject* somDefaultConstVAssign(som3AssignCtrl* ctrl, SOMObject* fromObj) { /* * A default assignment operator that uses a const volatile fromObj. */ return SOM_ResolveD(this,SOMObject,SOMObject,somDefaultConstVAssign) (this,ctrl,fromObj); } /* method: somInit */ void somInit() { /* * Obsolete but still supported. Override somDefaultInit instead of somInit. */ SOM_ResolveD(this,SOMObject,SOMObject,somInit) (this); } /* method: somFree */ void somFree() { /* * Use as directed by framework implementations. */ SOM_ResolveD(this,SOMObject,SOMObject,somFree) (this); } /* method: somUninit */ void somUninit() { /* * Obsolete but still supported. Override somDestruct instead of somUninit. */ SOM_ResolveD(this,SOMObject,SOMObject,somUninit) (this); } /* method: somGetClass */ SOMClass* somGetClass() { /* * Return the receiver's class. */ return SOM_ResolveD(this,SOMObject,SOMObject,somGetClass) (this); } /* method: somGetClassName */ string somGetClassName() { /* * Return the name of the receiver's class. */ return SOM_ResolveD(this,SOMObject,SOMObject,somGetClassName) (this); } /* method: somGetSize */ long somGetSize() { /* * Return the size of the receiver. */ return SOM_ResolveD(this,SOMObject,SOMObject,somGetSize) (this); } /* method: somIsA */ boolean somIsA(SOMClass* aClassObj) { /* * Returns 1 (true) if the receiver responds to methods * introduced by , and 0 (false) otherwise. */ return SOM_ResolveD(this,SOMObject,SOMObject,somIsA) (this,aClassObj); } /* method: somIsInstanceOf */ boolean somIsInstanceOf(SOMClass* aClassObj) { /* * Returns 1 (true) if the receiver is an instance of * and 0 (false) otherwise. */ return SOM_ResolveD(this,SOMObject,SOMObject,somIsInstanceOf) (this,aClassObj); } /* method: somRespondsTo */ boolean somRespondsTo(somId mId) { /* * Returns 1 (true) if the indicated method can be invoked * on the receiver and 0 (false) otherwise. */ return SOM_ResolveD(this,SOMObject,SOMObject,somRespondsTo) (this,mId); } /* va_list method: somDispatch */ /* * This method provides a generic, class-specific dispatch mechanism. * It accepts as input a pointer to the memory area to be * loaded with the result of dispatching the method indicated by * using the arguments in . contains the object * on which the method is to be invoked as the first argument. */ /* the va_list invocation form */ boolean SOMObject_somDispatch(somToken* retValue, somId methodId, va_list ap) {return SOM_ResolveD(this,SOMObject,SOMObject,somDispatch) (this,retValue,methodId,ap); } /* the varargs invocation form */ boolean somDispatch(somToken* retValue, somId methodId, ...) { /* * This method provides a generic, class-specific dispatch mechanism. * It accepts as input a pointer to the memory area to be * loaded with the result of dispatching the method indicated by * using the arguments in . contains the object * on which the method is to be invoked as the first argument. */ va_list ap; va_start(ap, methodId); boolean __somResult = SOM_ResolveD(this,SOMObject,SOMObject,somDispatch) (this,retValue,methodId,ap); va_end(ap); return __somResult; } /* va_list method: somClassDispatch */ /* * Like somDispatch, but method resolution for static methods is done * according to the clsObj instance method table. */ /* the va_list invocation form */ boolean SOMObject_somClassDispatch(SOMClass* clsObj, somToken* retValue, somId methodId, va_list ap) {return SOM_ResolveD(this,SOMObject,SOMObject,somClassDispatch) (this,clsObj,retValue,methodId,ap); } /* the varargs invocation form */ boolean somClassDispatch(SOMClass* clsObj, somToken* retValue, somId methodId, ...) { /* * Like somDispatch, but method resolution for static methods is done * according to the clsObj instance method table. */ va_list ap; va_start(ap, methodId); boolean __somResult = SOM_ResolveD(this,SOMObject,SOMObject,somClassDispatch) (this,clsObj,retValue,methodId,ap); va_end(ap); return __somResult; } /* method: somCastObj */ boolean somCastObj(SOMClass* cls) { /* * cast the receiving object to cls (which must be an ancestor of the * objects true class. Returns true on success. */ return SOM_ResolveD(this,SOMObject,SOMObject,somCastObj) (this,cls); } /* method: somResetObj */ boolean somResetObj() { /* * reset an object to its true class. Returns true always. */ return SOM_ResolveD(this,SOMObject,SOMObject,somResetObj) (this); } /* va_list method: somDispatchV */ /* * Obsolete. Use somDispatch instead. */ /* the va_list invocation form */ void SOMObject_somDispatchV(somId methodId, somId descriptor, va_list ap) { SOM_ResolveD(this,SOMObject,SOMObject,somDispatchV) (this,methodId,descriptor,ap); } /* the varargs invocation form */ void somDispatchV(somId methodId, somId descriptor, ...) { /* * Obsolete. Use somDispatch instead. */ va_list ap; va_start(ap, descriptor); SOM_ResolveD(this,SOMObject,SOMObject,somDispatchV) (this,methodId,descriptor,ap); va_end(ap); } /* va_list method: somDispatchL */ /* * Obsolete. Use somDispatch instead. */ /* the va_list invocation form */ long SOMObject_somDispatchL(somId methodId, somId descriptor, va_list ap) {return SOM_ResolveD(this,SOMObject,SOMObject,somDispatchL) (this,methodId,descriptor,ap); } /* the varargs invocation form */ long somDispatchL(somId methodId, somId descriptor, ...) { /* * Obsolete. Use somDispatch instead. */ va_list ap; va_start(ap, descriptor); long __somResult = SOM_ResolveD(this,SOMObject,SOMObject,somDispatchL) (this,methodId,descriptor,ap); va_end(ap); return __somResult; } /* va_list method: somDispatchA */ /* * Obsolete. Use somDispatch instead. */ /* the va_list invocation form */ void* SOMObject_somDispatchA(somId methodId, somId descriptor, va_list ap) {return SOM_ResolveD(this,SOMObject,SOMObject,somDispatchA) (this,methodId,descriptor,ap); } /* the varargs invocation form */ void* somDispatchA(somId methodId, somId descriptor, ...) { /* * Obsolete. Use somDispatch instead. */ va_list ap; va_start(ap, descriptor); void* __somResult = SOM_ResolveD(this,SOMObject,SOMObject,somDispatchA) (this,methodId,descriptor,ap); va_end(ap); return __somResult; } /* va_list method: somDispatchD */ /* * Obsolete. Use somDispatch instead. */ /* the va_list invocation form */ double SOMObject_somDispatchD(somId methodId, somId descriptor, va_list ap) {return SOM_ResolveD(this,SOMObject,SOMObject,somDispatchD) (this,methodId,descriptor,ap); } /* the varargs invocation form */ double somDispatchD(somId methodId, somId descriptor, ...) { /* * Obsolete. Use somDispatch instead. */ va_list ap; va_start(ap, descriptor); double __somResult = SOM_ResolveD(this,SOMObject,SOMObject,somDispatchD) (this,methodId,descriptor,ap); va_end(ap); return __somResult; } /* method: somPrintSelf */ SOMObject* somPrintSelf() { /* * Uses to write a brief string with identifying * information about this object. The default implementation just gives * the object's class name and its address in memory. * is returned. */ return SOM_ResolveD(this,SOMObject,SOMObject,somPrintSelf) (this); } /* method: somDumpSelf */ void somDumpSelf(long level) { /* * Uses to write a detailed description of this object * and its current state. * * indicates the nesting level for describing compound objects * it must be greater than or equal to zero. All lines in the * description will be preceeded by <2*level> spaces. * * This routine only actually writes the data that concerns the object * as a whole, such as class, and uses to describe * the object's current state. This approach allows readable * descriptions of compound objects to be constructed. * * Generally it is not necessary to override this method, if it is * overriden it generally must be completely replaced. */ SOM_ResolveD(this,SOMObject,SOMObject,somDumpSelf) (this,level); } /* method: somDumpSelfInt */ void somDumpSelfInt(long level) { /* * Uses to write in the current state of this object. * Generally this method will need to be overridden. When overriding * it, begin by calling the parent class form of this method and then * write in a description of your class's instance data. This will * result in a description of all the object's instance data going * from its root ancestor class to its specific class. */ SOM_ResolveD(this,SOMObject,SOMObject,somDumpSelfInt) (this,level); } }; /* SOMObject */ #endif /* SOM_SOMObject_xh */