home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
tolkit45.zip
/
os2tk45
/
som
/
include
/
sombacls.xh
< prev
next >
Wrap
Text File
|
1999-02-22
|
58KB
|
1,750 lines
/*
* This file was generated by the SOM Compiler.
* FileName: sombacls.xh.
* Generated using:
* SOM Precompiler somipc: 2.29.1.17
* SOM Emitter emitxh: 2.47
*/
/*
* COMPONENT_NAME: somu
*
* ORIGINS: 27
*
*
* 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994
* All Rights Reserved
* Licensed Materials - Property of IBM
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
*
*/
#ifndef SOM_SOMMBeforeAfter_xh
#define SOM_SOMMBeforeAfter_xh
class SOMMBeforeAfter;
#define SOMMBeforeAfter_MajorVersion 2
#define SOMMBeforeAfter_MinorVersion 1
/* C++ SOM defs */
#include <somcls.xh>
#include <somcm.xh>
/* C++ parent defs */
#ifndef SOM_SOMClass_xh
#include <somcls.xh>
#endif
#ifndef SOMMBeforeAfter_API
#define SOMMBeforeAfter_API
/*
* -- The Class API
*/
/*
* Start of bindings for IDL types
*/
class SOMClass;
class SOMObject;
/*
* End of bindings for IDL types.
*/
/* A procedure to create the SOMMBeforeAfter Class */
SOMEXTERN SOMClass * SOMLINK SOMMBeforeAfterNewClass(
integer4 majorVersion,
integer4 minorVersion);
/* The API to the SOMMBeforeAfter class object, and the methods it introduces. */
SOMEXTERN struct SOMMBeforeAfterClassDataStructure {
SOMClass *classObject;
somMToken sommBeforeMethod;
somMToken sommAfterMethod;
} SOMDLINK SOMMBeforeAfterClassData;
#define _SOMMBeforeAfter SOMMBeforeAfterClassData.classObject
/* The API to parentMtabs for SOMMBeforeAfter, and the instance data it introduces. */
SOMEXTERN struct SOMMBeforeAfterCClassDataStructure {
somMethodTabs parentMtab;
somDToken instanceDataToken;
} SOMDLINK SOMMBeforeAfterCClassData;
/*
* -- Typedefs for SOMMBeforeAfter Method Procedures
*/
SOMEXTERN {
typedef boolean SOMLINK somTP_SOMMBeforeAfter_sommBeforeMethod(SOMMBeforeAfter *somSelf, Environment *ev,
SOMObject* object,
somId methodId,
va_list ap);
typedef somTP_SOMMBeforeAfter_sommBeforeMethod *somTD_SOMMBeforeAfter_sommBeforeMethod;
typedef void SOMLINK somTP_SOMMBeforeAfter_sommAfterMethod(SOMMBeforeAfter *somSelf, Environment *ev,
SOMObject* object,
somId methodId,
somToken returnedvalue,
va_list ap);
typedef somTP_SOMMBeforeAfter_sommAfterMethod *somTD_SOMMBeforeAfter_sommAfterMethod;
/*
* -- Typedefs for Reintroduced Wrapper Methods
*/
typedef long SOMLINK somTP_SOMMBeforeAfter__get_somDataAlignment(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter__get_somDataAlignment *somTD_SOMMBeforeAfter__get_somDataAlignment;
typedef SOMClass_somOffsets SOMLINK somTP_SOMMBeforeAfter__get_somInstanceDataOffsets(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter__get_somInstanceDataOffsets *somTD_SOMMBeforeAfter__get_somInstanceDataOffsets;
typedef SOMClass_SOMClassSequence SOMLINK somTP_SOMMBeforeAfter__get_somDirectInitClasses(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter__get_somDirectInitClasses *somTD_SOMMBeforeAfter__get_somDirectInitClasses;
typedef SOMObject* SOMLINK somTP_SOMMBeforeAfter_somNew(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somNew *somTD_SOMMBeforeAfter_somNew;
typedef SOMObject* SOMLINK somTP_SOMMBeforeAfter_somNewNoInit(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somNewNoInit *somTD_SOMMBeforeAfter_somNewNoInit;
typedef SOMObject* SOMLINK somTP_SOMMBeforeAfter_somRenew(SOMMBeforeAfter *somSelf,
void* obj);
typedef somTP_SOMMBeforeAfter_somRenew *somTD_SOMMBeforeAfter_somRenew;
typedef SOMObject* SOMLINK somTP_SOMMBeforeAfter_somRenewNoInit(SOMMBeforeAfter *somSelf,
void* obj);
typedef somTP_SOMMBeforeAfter_somRenewNoInit *somTD_SOMMBeforeAfter_somRenewNoInit;
typedef SOMObject* SOMLINK somTP_SOMMBeforeAfter_somRenewNoZero(SOMMBeforeAfter *somSelf,
void* obj);
typedef somTP_SOMMBeforeAfter_somRenewNoZero *somTD_SOMMBeforeAfter_somRenewNoZero;
typedef SOMObject* SOMLINK somTP_SOMMBeforeAfter_somRenewNoInitNoZero(SOMMBeforeAfter *somSelf,
void* obj);
typedef somTP_SOMMBeforeAfter_somRenewNoInitNoZero *somTD_SOMMBeforeAfter_somRenewNoInitNoZero;
typedef somToken SOMLINK somTP_SOMMBeforeAfter_somAllocate(SOMMBeforeAfter *somSelf,
long size);
typedef somTP_SOMMBeforeAfter_somAllocate *somTD_SOMMBeforeAfter_somAllocate;
typedef void SOMLINK somTP_SOMMBeforeAfter_somDeallocate(SOMMBeforeAfter *somSelf,
somToken memptr);
typedef somTP_SOMMBeforeAfter_somDeallocate *somTD_SOMMBeforeAfter_somDeallocate;
typedef void SOMLINK somTP_SOMMBeforeAfter_somInitClass(SOMMBeforeAfter *somSelf,
string className,
SOMClass* parentClass,
long dataSize,
long maxStaticMethods,
long majorVersion,
long minorVersion);
typedef somTP_SOMMBeforeAfter_somInitClass *somTD_SOMMBeforeAfter_somInitClass;
typedef void SOMLINK somTP_SOMMBeforeAfter_somInitMIClass(SOMMBeforeAfter *somSelf,
long inherit_vars,
string className,
SOMClass_SOMClassSequence* parentClasses,
long dataSize,
long dataAlignment,
long maxStaticMethods,
long majorVersion,
long minorVersion);
typedef somTP_SOMMBeforeAfter_somInitMIClass *somTD_SOMMBeforeAfter_somInitMIClass;
typedef somMToken SOMLINK somTP_SOMMBeforeAfter_somAddStaticMethod(SOMMBeforeAfter *somSelf,
somId methodId,
somId methodDescriptor,
somMethodPtr method,
somMethodPtr redispatchStub,
somMethodPtr applyStub);
typedef somTP_SOMMBeforeAfter_somAddStaticMethod *somTD_SOMMBeforeAfter_somAddStaticMethod;
typedef void SOMLINK somTP_SOMMBeforeAfter_somAddDynamicMethod(SOMMBeforeAfter *somSelf,
somId methodId,
somId methodDescriptor,
somMethodPtr method,
somMethodPtr applyStub);
typedef somTP_SOMMBeforeAfter_somAddDynamicMethod *somTD_SOMMBeforeAfter_somAddDynamicMethod;
typedef void SOMLINK somTP_SOMMBeforeAfter_somOverrideSMethod(SOMMBeforeAfter *somSelf,
somId methodId,
somMethodPtr method);
typedef somTP_SOMMBeforeAfter_somOverrideSMethod *somTD_SOMMBeforeAfter_somOverrideSMethod;
typedef void SOMLINK somTP_SOMMBeforeAfter_somClassReady(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somClassReady *somTD_SOMMBeforeAfter_somClassReady;
typedef somMethodPtr SOMLINK somTP_SOMMBeforeAfter_somGetApplyStub(SOMMBeforeAfter *somSelf,
somId methodId);
typedef somTP_SOMMBeforeAfter_somGetApplyStub *somTD_SOMMBeforeAfter_somGetApplyStub;
typedef somClassDataStructure* SOMLINK somTP_SOMMBeforeAfter_somGetClassData(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetClassData *somTD_SOMMBeforeAfter_somGetClassData;
typedef void SOMLINK somTP_SOMMBeforeAfter_somSetClassData(SOMMBeforeAfter *somSelf,
somClassDataStructure* cds);
typedef somTP_SOMMBeforeAfter_somSetClassData *somTD_SOMMBeforeAfter_somSetClassData;
typedef somMethodTab* SOMLINK somTP_SOMMBeforeAfter_somGetClassMtab(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetClassMtab *somTD_SOMMBeforeAfter_somGetClassMtab;
typedef long SOMLINK somTP_SOMMBeforeAfter_somGetInstanceOffset(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetInstanceOffset *somTD_SOMMBeforeAfter_somGetInstanceOffset;
typedef long SOMLINK somTP_SOMMBeforeAfter_somGetInstancePartSize(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetInstancePartSize *somTD_SOMMBeforeAfter_somGetInstancePartSize;
typedef long SOMLINK somTP_SOMMBeforeAfter_somGetInstanceSize(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetInstanceSize *somTD_SOMMBeforeAfter_somGetInstanceSize;
typedef somDToken SOMLINK somTP_SOMMBeforeAfter_somGetInstanceToken(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetInstanceToken *somTD_SOMMBeforeAfter_somGetInstanceToken;
typedef somDToken SOMLINK somTP_SOMMBeforeAfter_somGetMemberToken(SOMMBeforeAfter *somSelf,
long memberOffset,
somDToken instanceToken);
typedef somTP_SOMMBeforeAfter_somGetMemberToken *somTD_SOMMBeforeAfter_somGetMemberToken;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somGetMethodData(SOMMBeforeAfter *somSelf,
somId methodId,
somMethodData* md);
typedef somTP_SOMMBeforeAfter_somGetMethodData *somTD_SOMMBeforeAfter_somGetMethodData;
typedef somMethodProc* SOMLINK somTP_SOMMBeforeAfter_somGetRdStub(SOMMBeforeAfter *somSelf,
somId methodId);
typedef somTP_SOMMBeforeAfter_somGetRdStub *somTD_SOMMBeforeAfter_somGetRdStub;
typedef somId SOMLINK somTP_SOMMBeforeAfter_somGetMethodDescriptor(SOMMBeforeAfter *somSelf,
somId methodId);
typedef somTP_SOMMBeforeAfter_somGetMethodDescriptor *somTD_SOMMBeforeAfter_somGetMethodDescriptor;
typedef long SOMLINK somTP_SOMMBeforeAfter_somGetMethodIndex(SOMMBeforeAfter *somSelf,
somId id);
typedef somTP_SOMMBeforeAfter_somGetMethodIndex *somTD_SOMMBeforeAfter_somGetMethodIndex;
typedef somMToken SOMLINK somTP_SOMMBeforeAfter_somGetMethodToken(SOMMBeforeAfter *somSelf,
somId methodId);
typedef somTP_SOMMBeforeAfter_somGetMethodToken *somTD_SOMMBeforeAfter_somGetMethodToken;
typedef string SOMLINK somTP_SOMMBeforeAfter_somGetName(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetName *somTD_SOMMBeforeAfter_somGetName;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somGetNthMethodData(SOMMBeforeAfter *somSelf,
long n,
somMethodData* md);
typedef somTP_SOMMBeforeAfter_somGetNthMethodData *somTD_SOMMBeforeAfter_somGetNthMethodData;
typedef somId SOMLINK somTP_SOMMBeforeAfter_somGetNthMethodInfo(SOMMBeforeAfter *somSelf,
long n,
somId* descriptor);
typedef somTP_SOMMBeforeAfter_somGetNthMethodInfo *somTD_SOMMBeforeAfter_somGetNthMethodInfo;
typedef long SOMLINK somTP_SOMMBeforeAfter_somGetNumMethods(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetNumMethods *somTD_SOMMBeforeAfter_somGetNumMethods;
typedef long SOMLINK somTP_SOMMBeforeAfter_somGetNumStaticMethods(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetNumStaticMethods *somTD_SOMMBeforeAfter_somGetNumStaticMethods;
typedef SOMClass* SOMLINK somTP_SOMMBeforeAfter_somGetParent(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetParent *somTD_SOMMBeforeAfter_somGetParent;
typedef SOMClass_SOMClassSequence SOMLINK somTP_SOMMBeforeAfter_somGetParents(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetParents *somTD_SOMMBeforeAfter_somGetParents;
typedef void SOMLINK somTP_SOMMBeforeAfter_somGetVersionNumbers(SOMMBeforeAfter *somSelf,
long* majorVersion,
long* minorVersion);
typedef somTP_SOMMBeforeAfter_somGetVersionNumbers *somTD_SOMMBeforeAfter_somGetVersionNumbers;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somFindMethod(SOMMBeforeAfter *somSelf,
somId methodId,
somMethodPtr* m);
typedef somTP_SOMMBeforeAfter_somFindMethod *somTD_SOMMBeforeAfter_somFindMethod;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somFindMethodOk(SOMMBeforeAfter *somSelf,
somId methodId,
somMethodPtr* m);
typedef somTP_SOMMBeforeAfter_somFindMethodOk *somTD_SOMMBeforeAfter_somFindMethodOk;
typedef somMethodPtr SOMLINK somTP_SOMMBeforeAfter_somFindSMethod(SOMMBeforeAfter *somSelf,
somId methodId);
typedef somTP_SOMMBeforeAfter_somFindSMethod *somTD_SOMMBeforeAfter_somFindSMethod;
typedef somMethodPtr SOMLINK somTP_SOMMBeforeAfter_somFindSMethodOk(SOMMBeforeAfter *somSelf,
somId methodId);
typedef somTP_SOMMBeforeAfter_somFindSMethodOk *somTD_SOMMBeforeAfter_somFindSMethodOk;
typedef somMethodPtr SOMLINK somTP_SOMMBeforeAfter_somLookupMethod(SOMMBeforeAfter *somSelf,
somId methodId);
typedef somTP_SOMMBeforeAfter_somLookupMethod *somTD_SOMMBeforeAfter_somLookupMethod;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somCheckVersion(SOMMBeforeAfter *somSelf,
long majorVersion,
long minorVersion);
typedef somTP_SOMMBeforeAfter_somCheckVersion *somTD_SOMMBeforeAfter_somCheckVersion;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somDescendedFrom(SOMMBeforeAfter *somSelf,
SOMClass* aClassObj);
typedef somTP_SOMMBeforeAfter_somDescendedFrom *somTD_SOMMBeforeAfter_somDescendedFrom;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somSupportsMethod(SOMMBeforeAfter *somSelf,
somId mId);
typedef somTP_SOMMBeforeAfter_somSupportsMethod *somTD_SOMMBeforeAfter_somSupportsMethod;
typedef somMethodPtr SOMLINK somTP_SOMMBeforeAfter_somDefinedMethod(SOMMBeforeAfter *somSelf,
somMToken method);
typedef somTP_SOMMBeforeAfter_somDefinedMethod *somTD_SOMMBeforeAfter_somDefinedMethod;
typedef void SOMLINK somTP_SOMMBeforeAfter_somOverrideMtab(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somOverrideMtab *somTD_SOMMBeforeAfter_somOverrideMtab;
typedef void SOMLINK somTP_SOMMBeforeAfter_somDefaultInit(SOMMBeforeAfter *somSelf,
som3InitCtrl* ctrl);
typedef somTP_SOMMBeforeAfter_somDefaultInit *somTD_SOMMBeforeAfter_somDefaultInit;
typedef void SOMLINK somTP_SOMMBeforeAfter_somDestruct(SOMMBeforeAfter *somSelf,
octet doFree,
som3DestructCtrl* ctrl);
typedef somTP_SOMMBeforeAfter_somDestruct *somTD_SOMMBeforeAfter_somDestruct;
typedef void SOMLINK somTP_SOMMBeforeAfter_somDefaultCopyInit(SOMMBeforeAfter *somSelf,
som3InitCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMMBeforeAfter_somDefaultCopyInit *somTD_SOMMBeforeAfter_somDefaultCopyInit;
typedef SOMMBeforeAfter* SOMLINK somTP_SOMMBeforeAfter_somDefaultAssign(SOMMBeforeAfter *somSelf,
som3AssignCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMMBeforeAfter_somDefaultAssign *somTD_SOMMBeforeAfter_somDefaultAssign;
typedef void SOMLINK somTP_SOMMBeforeAfter_somDefaultConstCopyInit(SOMMBeforeAfter *somSelf,
som3InitCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMMBeforeAfter_somDefaultConstCopyInit *somTD_SOMMBeforeAfter_somDefaultConstCopyInit;
typedef void SOMLINK somTP_SOMMBeforeAfter_somDefaultVCopyInit(SOMMBeforeAfter *somSelf,
som3InitCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMMBeforeAfter_somDefaultVCopyInit *somTD_SOMMBeforeAfter_somDefaultVCopyInit;
typedef void SOMLINK somTP_SOMMBeforeAfter_somDefaultConstVCopyInit(SOMMBeforeAfter *somSelf,
som3InitCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMMBeforeAfter_somDefaultConstVCopyInit *somTD_SOMMBeforeAfter_somDefaultConstVCopyInit;
typedef SOMMBeforeAfter* SOMLINK somTP_SOMMBeforeAfter_somDefaultConstAssign(SOMMBeforeAfter *somSelf,
som3AssignCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMMBeforeAfter_somDefaultConstAssign *somTD_SOMMBeforeAfter_somDefaultConstAssign;
typedef SOMMBeforeAfter* SOMLINK somTP_SOMMBeforeAfter_somDefaultVAssign(SOMMBeforeAfter *somSelf,
som3AssignCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMMBeforeAfter_somDefaultVAssign *somTD_SOMMBeforeAfter_somDefaultVAssign;
typedef SOMMBeforeAfter* SOMLINK somTP_SOMMBeforeAfter_somDefaultConstVAssign(SOMMBeforeAfter *somSelf,
som3AssignCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMMBeforeAfter_somDefaultConstVAssign *somTD_SOMMBeforeAfter_somDefaultConstVAssign;
typedef void SOMLINK somTP_SOMMBeforeAfter_somInit(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somInit *somTD_SOMMBeforeAfter_somInit;
typedef void SOMLINK somTP_SOMMBeforeAfter_somFree(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somFree *somTD_SOMMBeforeAfter_somFree;
typedef void SOMLINK somTP_SOMMBeforeAfter_somUninit(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somUninit *somTD_SOMMBeforeAfter_somUninit;
typedef SOMClass* SOMLINK somTP_SOMMBeforeAfter_somGetClass(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetClass *somTD_SOMMBeforeAfter_somGetClass;
typedef string SOMLINK somTP_SOMMBeforeAfter_somGetClassName(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetClassName *somTD_SOMMBeforeAfter_somGetClassName;
typedef long SOMLINK somTP_SOMMBeforeAfter_somGetSize(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somGetSize *somTD_SOMMBeforeAfter_somGetSize;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somIsA(SOMMBeforeAfter *somSelf,
SOMClass* aClassObj);
typedef somTP_SOMMBeforeAfter_somIsA *somTD_SOMMBeforeAfter_somIsA;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somIsInstanceOf(SOMMBeforeAfter *somSelf,
SOMClass* aClassObj);
typedef somTP_SOMMBeforeAfter_somIsInstanceOf *somTD_SOMMBeforeAfter_somIsInstanceOf;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somRespondsTo(SOMMBeforeAfter *somSelf,
somId mId);
typedef somTP_SOMMBeforeAfter_somRespondsTo *somTD_SOMMBeforeAfter_somRespondsTo;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somDispatch(SOMMBeforeAfter *somSelf,
somToken* retValue,
somId methodId,
va_list ap);
typedef somTP_SOMMBeforeAfter_somDispatch *somTD_SOMMBeforeAfter_somDispatch;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somClassDispatch(SOMMBeforeAfter *somSelf,
SOMClass* clsObj,
somToken* retValue,
somId methodId,
va_list ap);
typedef somTP_SOMMBeforeAfter_somClassDispatch *somTD_SOMMBeforeAfter_somClassDispatch;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somCastObj(SOMMBeforeAfter *somSelf,
SOMClass* cls);
typedef somTP_SOMMBeforeAfter_somCastObj *somTD_SOMMBeforeAfter_somCastObj;
typedef boolean SOMLINK somTP_SOMMBeforeAfter_somResetObj(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somResetObj *somTD_SOMMBeforeAfter_somResetObj;
typedef void SOMLINK somTP_SOMMBeforeAfter_somDispatchV(SOMMBeforeAfter *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef somTP_SOMMBeforeAfter_somDispatchV *somTD_SOMMBeforeAfter_somDispatchV;
typedef long SOMLINK somTP_SOMMBeforeAfter_somDispatchL(SOMMBeforeAfter *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef somTP_SOMMBeforeAfter_somDispatchL *somTD_SOMMBeforeAfter_somDispatchL;
typedef void* SOMLINK somTP_SOMMBeforeAfter_somDispatchA(SOMMBeforeAfter *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef somTP_SOMMBeforeAfter_somDispatchA *somTD_SOMMBeforeAfter_somDispatchA;
typedef double SOMLINK somTP_SOMMBeforeAfter_somDispatchD(SOMMBeforeAfter *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef somTP_SOMMBeforeAfter_somDispatchD *somTD_SOMMBeforeAfter_somDispatchD;
typedef SOMObject* SOMLINK somTP_SOMMBeforeAfter_somPrintSelf(SOMMBeforeAfter *somSelf);
typedef somTP_SOMMBeforeAfter_somPrintSelf *somTD_SOMMBeforeAfter_somPrintSelf;
typedef void SOMLINK somTP_SOMMBeforeAfter_somDumpSelf(SOMMBeforeAfter *somSelf,
long level);
typedef somTP_SOMMBeforeAfter_somDumpSelf *somTD_SOMMBeforeAfter_somDumpSelf;
typedef void SOMLINK somTP_SOMMBeforeAfter_somDumpSelfInt(SOMMBeforeAfter *somSelf,
long level);
typedef somTP_SOMMBeforeAfter_somDumpSelfInt *somTD_SOMMBeforeAfter_somDumpSelfInt;
}
#endif /* SOMMBeforeAfter_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))
/*
* -- The C++ Wrapper Class for SOMMBeforeAfter
*/
class SOMMBeforeAfter : public SOMClass
{
public:
// SOMMBeforeAfter::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 (!_SOMMBeforeAfter) SOMMBeforeAfterNewClass(SOMMBeforeAfter_MajorVersion,SOMMBeforeAfter_MinorVersion);
return (void*)
SOM_Resolve(_SOMMBeforeAfter,SOMClass,somNewNoInit)
((SOMClass *)((void*)_SOMMBeforeAfter));
}
// SOMMBeforeAfter::delete uses somDestruct.
void operator delete(void * obj)
{
if (obj && *(void**)obj) {
SOM_Resolve(obj,SOMObject,somFree)
((SOMObject*)obj);
}
}
SOMMBeforeAfter& operator=(SOMMBeforeAfter& fromObj)
{
this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
return *this;
}
SOMMBeforeAfter()
{
if (*(void**)this !=
((somParentMtabStructPtr)
(SOMMBeforeAfterCClassData.parentMtab))->mtab)
return;
((SOMObject*)((void*)this))->somDefaultInit(0);
}
SOMMBeforeAfter(SOMMBeforeAfter* fromObj)
{
if (*(void**)this !=
((somParentMtabStructPtr)
(SOMMBeforeAfterCClassData.parentMtab))->mtab)
return;
((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}
#ifdef __IBMCPP__
#pragma info(nocnv,nopar)
#endif
SOMMBeforeAfter(const SOMMBeforeAfter* fromObj)
{
if (*(void**)this !=
((somParentMtabStructPtr)
(SOMMBeforeAfterCClassData.parentMtab))->mtab)
return;
((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
}
#ifdef __IBMCPP__
#pragma info(restore)
#endif
/* va_list method: sommBeforeMethod */
/*
* returns one of the following values:
* TRUE -- continue Before/After processing
* FALSE -- skip to executing the corresponding After method
* (this includes skipping the requested method)
*/
/* the va_list invocation form */
boolean SOMMBeforeAfter_sommBeforeMethod(Environment *ev,
SOMObject* object,
somId methodId,
va_list ap)
{return SOM_ResolveD(this,SOMMBeforeAfter,SOMMBeforeAfter,sommBeforeMethod)
(this, ev,object,methodId,ap);
}
/* the varargs invocation form */
boolean sommBeforeMethod(Environment *ev,
SOMObject* object,
somId methodId,
...)
{
/*
* returns one of the following values:
* TRUE -- continue Before/After processing
* FALSE -- skip to executing the corresponding After method
* (this includes skipping the requested method)
*/
va_list ap;
va_start(ap, methodId);
boolean __somResult =
SOM_ResolveD(this,SOMMBeforeAfter,SOMMBeforeAfter,sommBeforeMethod)
(this, ev,object,methodId,ap);
va_end(ap);
return __somResult;
}
/* va_list method: sommAfterMethod */
/* the va_list invocation form */
void SOMMBeforeAfter_sommAfterMethod(Environment *ev,
SOMObject* object,
somId methodId,
somToken returnedvalue,
va_list ap)
{ SOM_ResolveD(this,SOMMBeforeAfter,SOMMBeforeAfter,sommAfterMethod)
(this, ev,object,methodId,returnedvalue,ap);
}
/* the varargs invocation form */
void sommAfterMethod(Environment *ev,
SOMObject* object,
somId methodId,
somToken returnedvalue,
...)
{
va_list ap;
va_start(ap, returnedvalue);
SOM_ResolveD(this,SOMMBeforeAfter,SOMMBeforeAfter,sommAfterMethod)
(this, ev,object,methodId,returnedvalue,ap);
va_end(ap);
}
/*
* Reintroduce inherited methods
*/
/* method: _get_somDataAlignment */
long _get_somDataAlignment()
{
/*
* The alignment required for the instance data structure
* introduced by the receiving class.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,_get_somDataAlignment)
(this);
}
/* nonstatic method: _get_somInstanceDataOffsets */
SOMClass_somOffsets _get_somInstanceDataOffsets()
{
/*
* A sequence of the instance data offsets for all classes used in
* the derivation of the receiving class (including the receiver).
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,_get_somInstanceDataOffsets)
(this);
}
/* nonstatic method: _get_somDirectInitClasses */
SOMClass_SOMClassSequence _get_somDirectInitClasses()
{
/*
* The ancestors whose initializers the receiving
* class wants to directly invoke.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,_get_somDirectInitClasses)
(this);
}
/* method: somNew */
SOMObject* somNew()
{
/*
* Uses SOMMalloc to allocate storage for a new instance of the
* receiving class, and then calls somRenewNoInitNoZero to load the
* new object's method table pointer. Then somDefaultInit is called to
* initialize the new object. Note: If the instance is a class object,
* somInitMIClass must then be invoked to declare parents and
* initialize the class's instance method table. Upon failure, NULL
* is returned.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somNew)
(this);
}
/* method: somNewNoInit */
SOMObject* somNewNoInit()
{
/*
* Equivalent to somNew except that somDefaultInit is not called.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somNewNoInit)
(this);
}
/* method: somRenew */
SOMObject* somRenew(void* obj)
{
/*
* Equivalent to somNew except that storage is not allocated.
* <obj> is taken as the address of the new object.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somRenew)
(this,obj);
}
/* method: somRenewNoInit */
SOMObject* somRenewNoInit(void* obj)
{
/*
* Equivalent to somRenew except that somDefaultInit is not called.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somRenewNoInit)
(this,obj);
}
/* method: somRenewNoZero */
SOMObject* somRenewNoZero(void* obj)
{
/*
* Equivalent to somRenew except that memory is not zeroed out.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somRenewNoZero)
(this,obj);
}
/* method: somRenewNoInitNoZero */
SOMObject* somRenewNoInitNoZero(void* obj)
{
/*
* The purpose of this method is to load an object's method table.
* The SOM API requires that somRenewNoInitNoZero always be
* called when creating a new object whose metaclass is not SOMClass.
* This is because metaclasses must be guaranteed that they can use
* somRenewNoInitNoZero to track object creation if this is desired.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somRenewNoInitNoZero)
(this,obj);
}
/* nonstatic method: somAllocate */
somToken somAllocate(long size)
{
/*
* Allocates memory to hold an object and returns a pointer to this memory.
* This is a nonstatic method, and cannot be overridden. The default
* implementation calls SOMMalloc, but a class designer can specify a
* different implementation using the somallocate modifier in IDL. The
* allocator takes the same parameters as this method.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somAllocate)
(this,size);
}
/* nonstatic method: somDeallocate */
void somDeallocate(somToken memptr)
{
/*
* Zeros out the method table pointer stored in the word pointed to by
* memptr, and then deallocates the block of memory pointed to by memptr.
* This is a nonstatic method and cannot be overridden. The default
* deallocator called is SOMFree, but a class designer can specify a
* different deallocator using the somdeallocate modifier in IDL. The
* deallocator takes a char* (memptr) and a long (size) as arguments.
*/
SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somDeallocate)
(this,memptr);
}
/* method: somInitClass */
void somInitClass(string className,
SOMClass* parentClass,
long dataSize,
long maxStaticMethods,
long majorVersion,
long minorVersion)
{
/*
* somInitClass is obsolete, and should no longer be used. The SOM 2.0
* kernel provides special handling for redispatch stubs in the case
* of SOM 1.0 classes, and use of this method is what tells the kernel
* that old-style redispatch stubs will be registered.
*/
SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somInitClass)
(this,className,parentClass,dataSize,maxStaticMethods,majorVersion,minorVersion);
}
/* method: somInitMIClass */
void somInitMIClass(long inherit_vars,
string className,
SOMClass_SOMClassSequence* parentClasses,
long dataSize,
long dataAlignment,
long maxStaticMethods,
long majorVersion,
long minorVersion)
{
/*
* somInitMIClass implements the second phase of dynamic class creation:
* inheritance of interface and possibly implementation (instance
* variables) by suitable initialization of <self> (a class object).
*
* For somInitMIClass, the inherit_vars argument controls whether abstract
* or implementation inheritance is used. Inherit_vars is a 32 bit
* bit-vector. Implementation is inherited from parent i iff the bit
* 1<<i is on, or i>=32.
* On a class-by-class basis, for each class ancestor, implementation
* inheritance always takes precidence over abstract inheritance. This is
* necessary to guarantee that procedures supporting parent method calls
* (available on non-abstract parents) are always supported by parent
* instance variables.
*
* <className> is a string containing the class name. A copy is made, so
* the string may be freed upon return to the caller if this is desired.
*
* <parentClasses> is a SOMClassSequence containing pointers to the
* parent classes. somInitMIClass makes a copy of this, so it may
* be freed upon return to the caller if this is desired.
*
* <dataSize> is the space needed for the instance variables
* introduced by this class.
*
* <dataAlignment> specifies the desired byte alignment for instance
* data introduced by this class. A value of 0 selects a system-wide default;
* any other argument is taken as the desired byte alignment multiple. Thus,
* for example, even if a byte multiple of 8 is needed for double precision
* values on a given system (so 8 is the default), a class whose instance data
* doesn't require this can indicate otherwise. If A is the next memory
* address available for holding instance data, the address that will be
* used is A + (A mod byte-alignment).
*
* <maxStaticMethods> is the maximum number of static methods that will be
* added to the initialized class using addStaticMethod.
*
* <majorVersion> indicates the major version number for this
* implementation of the class definition, and <minorVersion>
* indicates the minor version number.
*/
SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somInitMIClass)
(this,inherit_vars,className,parentClasses,dataSize,dataAlignment,maxStaticMethods,majorVersion,minorVersion);
}
/* method: somAddStaticMethod */
somMToken somAddStaticMethod(somId methodId,
somId methodDescriptor,
somMethodPtr method,
somMethodPtr redispatchStub,
somMethodPtr applyStub)
{
/*
* Adds the indicated method, creating and returning a new method token.
*
* <methodDescriptor> is the somId for an identifier that can be used
* to access signature information about the method from an interface
* repository.
*
* <method> is the actual method procedure for this method
*
* <redispatchStub> is a procedure with the same calling sequence as
* <method> that invokes somDispatch for the method.
*
* <applyStub> is a procedure used to support somApply.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somAddStaticMethod)
(this,methodId,methodDescriptor,method,redispatchStub,applyStub);
}
/* method: somAddDynamicMethod */
void somAddDynamicMethod(somId methodId,
somId methodDescriptor,
somMethodPtr method,
somMethodPtr applyStub)
{
/*
* Adds the indicated method to the class's name lookup list.
* If this happens to override a static method then this operation is
* equivalent to <somOverrideSMethod> and the <methodDescriptor> and
* <applyStub> arguments are ignored (the overridden method's values
* will be used).
*
* <methodDescriptor> is the somId for an identifier that can be used
* to access signature information about the method from an interface
* repository.
*
* <method> is the actual method procedure for this method
*
* <applyStub> is a procedure that takes a standard variable argument
* list data structure applies it to its target object by calling
* <method> with arguments derived from the data structure. Its
* calling sequence is the same as the calling sequence of the
* dispatch methods defined in SOMObject. This stub is used in the
* support of the dispatch methods used in some classes. In classes
* where the dispatch functions do not need such a function this
* parameter may be null.
*/
SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somAddDynamicMethod)
(this,methodId,methodDescriptor,method,applyStub);
}
/* method: somOverrideSMethod */
void somOverrideSMethod(somId methodId,
somMethodPtr method)
{
/*
* This method can be used instead of <somAddStaticMethod> or
* <somAddDynamicMethod> when it is known that the class' parent
* class already supports this method. This call does not require the
* method descriptor and stub methods that the others do.
*/
SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somOverrideSMethod)
(this,methodId,method);
}
/* method: somClassReady */
void somClassReady()
{
/*
* This method is invoked when all of the static initialization for
* the class has been finished. The default implementation simply
* registers the newly constructed class with the SOMClassMgr.
*/
SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somClassReady)
(this);
}
/* method: somGetApplyStub */
somMethodPtr somGetApplyStub(somId methodId)
{
/*
* Returns the apply stub associated with the specified method,
* if one exists; otherwise NULL is returned. This method is obsolete,
* and retained for binary compatability. In SOMr2, users never access
* apply stubs directly; The function somApply is used to invoke apply
* stubs. See somApply documentation for further information on apply
* stubs, and see somAddStaticMethod documentation for information
* on how apply stubs are registered by class implementations.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetApplyStub)
(this,methodId);
}
/* method: somGetClassData */
somClassDataStructure* somGetClassData()
{
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetClassData)
(this);
}
/* method: somSetClassData */
void somSetClassData(somClassDataStructure* cds)
{
/*
* The class' pointer to the static <className>ClassData structure.
*/
SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somSetClassData)
(this,cds);
}
/* method: somGetClassMtab */
somMethodTab* somGetClassMtab()
{
/*
* A pointer to the method table used by instances of this class. This
* method was misnamed; it should have been called somGetInstanceMtab.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetClassMtab)
(this);
}
/* method: somGetInstanceOffset */
long somGetInstanceOffset()
{
/*
* Returns the offset of instance data introduced by the receiver in
* an instance of the receiver. This method is obsolete and not useful in
* multiple-inheritance situations. The attribute somInstanceDataOffsets
* replaces this method.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetInstanceOffset)
(this);
}
/* method: somGetInstancePartSize */
long somGetInstancePartSize()
{
/*
* The size in bytes of the instance data introduced by the receiving
* class.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetInstancePartSize)
(this);
}
/* method: somGetInstanceSize */
long somGetInstanceSize()
{
/*
* The total size of an instance of the receiving class.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetInstanceSize)
(this);
}
/* method: somGetInstanceToken */
somDToken somGetInstanceToken()
{
/*
* A data token that identifies the introduced portion of this class
* within itself or any derived class. This token can be subsequently
* passed to the run-time somDataResolve function to locate the instance
* data introduced by this class in any object derived from this class.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetInstanceToken)
(this);
}
/* method: somGetMemberToken */
somDToken somGetMemberToken(long memberOffset,
somDToken instanceToken)
{
/*
* Returns a data token that for the data member at offset
* "memberOffset" within the introduced portion of the class identified
* by instanceToken. The instance token must have been obtained from a
* previous invocation of somGetInstanceToken. The returned member
* token can be subsequently passed to the run-time somDataResolve
* function to locate the data member.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetMemberToken)
(this,memberOffset,instanceToken);
}
/* method: somGetMethodData */
boolean somGetMethodData(somId methodId,
somMethodData* md)
{
/*
* If a method with id <methodId> is supported by the target class,
* the structure pointed to by <md> is loaded with method information
* and the value 1 is returned. In this case, if the method is not
* dynamic, md->method is loaded with the result of somClassResolve on
* the target class for the method. If the method is not supported,
* md->id is loaded with 0, and the value 0 is returned.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetMethodData)
(this,methodId,md);
}
/* method: somGetRdStub */
somMethodProc* somGetRdStub(somId methodId)
{
/*
* Returns a redispatch stub for the indicated method, if possible.
* If not possible (because a valid redispatch stub has not been
* registered, and there is insufficient information to dynamically
* construct one), then a NULL is returned.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetRdStub)
(this,methodId);
}
/* method: somGetMethodDescriptor */
somId somGetMethodDescriptor(somId methodId)
{
/*
* Returns the method descriptor for the indicated method. If
* this object does not support the indicated method then NULL is
* returned.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetMethodDescriptor)
(this,methodId);
}
/* method: somGetMethodIndex */
long somGetMethodIndex(somId id)
{
/*
* Returns the index for the specified method. (A number that may
* change if any methods are added or deleted to this class object or
* any of its ancestors). This number is the basis for other calls to
* get info about the method. Indexes start at 0. A -1 is returned if
* the method cannot be found.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetMethodIndex)
(this,id);
}
/* method: somGetMethodToken */
somMToken somGetMethodToken(somId methodId)
{
/*
* Returns the specified method's access token. This token can then
* be passed to method resolution routines, which use the token
* to select a method pointer from a method table.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetMethodToken)
(this,methodId);
}
/* method: somGetName */
string somGetName()
{
/*
* This object's class name as a NULL terminated string.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetName)
(this);
}
/* method: somGetNthMethodData */
boolean somGetNthMethodData(long n,
somMethodData* md)
{
/*
* loads *md with the method data associated with the the nth method,
* or NULL if there is no such method. Returns true is successful;
* false otherwise.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetNthMethodData)
(this,n,md);
}
/* method: somGetNthMethodInfo */
somId somGetNthMethodInfo(long n,
somId* descriptor)
{
/*
* Returns the id of the <n>th method if one exists and NULL
* otherwise.
*
* The ordering of the methods is unpredictable, but will not change
* unless some change is made to the class or one of its ancestor classes.
*
* See CORBA documentation for info on method descriptors.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetNthMethodInfo)
(this,n,descriptor);
}
/* method: somGetNumMethods */
long somGetNumMethods()
{
/*
* The number of methods currently supported by this class,
* including inherited methods (both static and dynamic).
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetNumMethods)
(this);
}
/* method: somGetNumStaticMethods */
long somGetNumStaticMethods()
{
/*
* The number of static methods that this class has. Can
* be used by a child class when initializing its method table.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetNumStaticMethods)
(this);
}
/* method: somGetParent */
SOMClass* somGetParent()
{
/*
* Returns the parent class of self (along its "left-hand" derivation
* path), if one exists and NULL otherwise.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetParent)
(this);
}
/* method: somGetParents */
SOMClass_SOMClassSequence somGetParents()
{
/*
* The parent classes of self.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetParents)
(this);
}
/* method: somGetVersionNumbers */
void somGetVersionNumbers(long* majorVersion,
long* minorVersion)
{
/*
* Returns the class' major and minor version numbers in the corresponding
* output parameters.
*/
SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somGetVersionNumbers)
(this,majorVersion,minorVersion);
}
/* method: somFindMethod */
boolean somFindMethod(somId methodId,
somMethodPtr* m)
{
/*
* Finds the method procedure associated with <methodId> for this
* class and sets <m> to it. 1 (true) is returned when the
* method procedure is a static method and 0 (false) is returned
* when the method procedure is dynamic method.
*
* If the class does not support the specified method then
* <m> is set to NULL and the return value is meaningless.
*
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somFindMethod)
(this,methodId,m);
}
/* method: somFindMethodOk */
boolean somFindMethodOk(somId methodId,
somMethodPtr* m)
{
/*
* Just like <somFindMethod> except that if the method is not
* supported then an error is raised and execution is halted.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somFindMethodOk)
(this,methodId,m);
}
/* method: somFindSMethod */
somMethodPtr somFindSMethod(somId methodId)
{
/*
* Finds the indicated method, which must be a static method supported
* by this class, and returns a pointer to its method procedure.
* If the method is not supported by the receiver (as a static method
* or at all) then a NULL pointer is returned.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somFindSMethod)
(this,methodId);
}
/* method: somFindSMethodOk */
somMethodPtr somFindSMethodOk(somId methodId)
{
/*
* Uses <somFindSMethod>, and raises an error if the result is NULL.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somFindSMethodOk)
(this,methodId);
}
/* method: somLookupMethod */
somMethodPtr somLookupMethod(somId methodId)
{
/*
* Like <somFindSMethodOK>, but without restriction to static methods.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somLookupMethod)
(this,methodId);
}
/* method: somCheckVersion */
boolean somCheckVersion(long majorVersion,
long minorVersion)
{
/*
* Returns 1 (true) if the implementation of this class is
* compatible with the specified major and minor version number and
* false (0) otherwise. An implementation is compatible with the
* specified version numbers if it has the same major version number
* and a minor version number that is equal to or greater than
* <minorVersion>. The major, minor version number pair (0,0) is
* considered to match any version. This method is usually called
* immediately after creating the class object to verify that a
* dynamically loaded class definition is compatible with a using
* application.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somCheckVersion)
(this,majorVersion,minorVersion);
}
/* method: somDescendedFrom */
boolean somDescendedFrom(SOMClass* aClassObj)
{
/*
* Returns 1 (true) if <self> is a descendent class of <aClassObj> and
* 0 (false) otherwise. Note: a class object is considered to be
* descended itself for the purposes of this method.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somDescendedFrom)
(this,aClassObj);
}
/* method: somSupportsMethod */
boolean somSupportsMethod(somId mId)
{
/*
* Returns 1 (true) if the indicated method is supported by this
* class and 0 (false) otherwise.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somSupportsMethod)
(this,mId);
}
/* method: somDefinedMethod */
somMethodPtr somDefinedMethod(somMToken method)
{
/*
* if the receiving class either introduces or overrides the
* indicated method, then its somMethodPtr is returned, otherwise
* NULL is returned.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somDefinedMethod)
(this,method);
}
/* method: somOverrideMtab */
void somOverrideMtab()
{
/*
* Overrides the method table pointers to point to the redispatch stubs.
* All the methods except somDispatch methods are overriden.
*/
SOM_ResolveD(this,SOMMBeforeAfter,SOMClass,somOverrideMtab)
(this);
}
/* 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,SOMMBeforeAfter,SOMObject,somDefaultInit)
(this,ctrl);
}
/* method: somDestruct */
void somDestruct(octet doFree,
som3DestructCtrl* ctrl)
{
/*
* The default destructor for a SOM object. A nonzero <doFree>
* 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,SOMMBeforeAfter,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,SOMMBeforeAfter,SOMObject,somDefaultCopyInit)
(this,ctrl,fromObj);
}
/* method: somDefaultAssign */
SOMMBeforeAfter* somDefaultAssign(som3AssignCtrl* ctrl,
SOMObject* fromObj)
{
/*
* A default assignment operator. Use this to "assign" the state of one
* object to another.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,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,SOMMBeforeAfter,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,SOMMBeforeAfter,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,SOMMBeforeAfter,SOMObject,somDefaultConstVCopyInit)
(this,ctrl,fromObj);
}
/* method: somDefaultConstAssign */
SOMMBeforeAfter* somDefaultConstAssign(som3AssignCtrl* ctrl,
SOMObject* fromObj)
{
/*
* A default assignment operator that uses a const fromObj.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMObject,somDefaultConstAssign)
(this,ctrl,fromObj);
}
/* method: somDefaultVAssign */
SOMMBeforeAfter* somDefaultVAssign(som3AssignCtrl* ctrl,
SOMObject* fromObj)
{
/*
* A default assignment operator that uses a volatile fromObj.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMObject,somDefaultVAssign)
(this,ctrl,fromObj);
}
/* method: somDefaultConstVAssign */
SOMMBeforeAfter* somDefaultConstVAssign(som3AssignCtrl* ctrl,
SOMObject* fromObj)
{
/*
* A default assignment operator that uses a const volatile fromObj.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMObject,somDefaultConstVAssign)
(this,ctrl,fromObj);
}
/* method: somInit */
void somInit()
{
/*
* Obsolete but still supported. Override somDefaultInit instead of somInit.
*/
SOM_ResolveD(this,SOMMBeforeAfter,SOMObject,somInit)
(this);
}
/* method: somFree */
void somFree()
{
/*
* Use as directed by framework implementations.
*/
SOM_ResolveD(this,SOMMBeforeAfter,SOMObject,somFree)
(this);
}
/* method: somUninit */
void somUninit()
{
/*
* Obsolete but still supported. Override somDestruct instead of somUninit.
*/
SOM_ResolveD(this,SOMMBeforeAfter,SOMObject,somUninit)
(this);
}
/* method: somGetClass */
SOMClass* somGetClass()
{
/*
* Return the receiver's class.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMObject,somGetClass)
(this);
}
/* method: somGetClassName */
string somGetClassName()
{
/*
* Return the name of the receiver's class.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMObject,somGetClassName)
(this);
}
/* method: somGetSize */
long somGetSize()
{
/*
* Return the size of the receiver.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMObject,somGetSize)
(this);
}
/* method: somIsA */
boolean somIsA(SOMClass* aClassObj)
{
/*
* Returns 1 (true) if the receiver responds to methods
* introduced by <aClassObj>, and 0 (false) otherwise.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMObject,somIsA)
(this,aClassObj);
}
/* method: somIsInstanceOf */
boolean somIsInstanceOf(SOMClass* aClassObj)
{
/*
* Returns 1 (true) if the receiver is an instance of
* <aClassObj> and 0 (false) otherwise.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,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,SOMMBeforeAfter,SOMObject,somRespondsTo)
(this,mId);
}
/* va_list method: somDispatch */
/*
* This method provides a generic, class-specific dispatch mechanism.
* It accepts as input <retValue> a pointer to the memory area to be
* loaded with the result of dispatching the method indicated by
* <methodId> using the arguments in <ap>. <ap> contains the object
* on which the method is to be invoked as the first argument.
*/
/* the va_list invocation form */
boolean SOMMBeforeAfter_somDispatch(somToken* retValue,
somId methodId,
va_list ap)
{return SOM_ResolveD(this,SOMMBeforeAfter,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 <retValue> a pointer to the memory area to be
* loaded with the result of dispatching the method indicated by
* <methodId> using the arguments in <ap>. <ap> 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,SOMMBeforeAfter,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 SOMMBeforeAfter_somClassDispatch(SOMClass* clsObj,
somToken* retValue,
somId methodId,
va_list ap)
{return SOM_ResolveD(this,SOMMBeforeAfter,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,SOMMBeforeAfter,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,SOMMBeforeAfter,SOMObject,somCastObj)
(this,cls);
}
/* method: somResetObj */
boolean somResetObj()
{
/*
* reset an object to its true class. Returns true always.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMObject,somResetObj)
(this);
}
/* va_list method: somDispatchV */
/*
* Obsolete. Use somDispatch instead.
*/
/* the va_list invocation form */
void SOMMBeforeAfter_somDispatchV(somId methodId,
somId descriptor,
va_list ap)
{ SOM_ResolveD(this,SOMMBeforeAfter,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,SOMMBeforeAfter,SOMObject,somDispatchV)
(this,methodId,descriptor,ap);
va_end(ap);
}
/* va_list method: somDispatchL */
/*
* Obsolete. Use somDispatch instead.
*/
/* the va_list invocation form */
long SOMMBeforeAfter_somDispatchL(somId methodId,
somId descriptor,
va_list ap)
{return SOM_ResolveD(this,SOMMBeforeAfter,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,SOMMBeforeAfter,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* SOMMBeforeAfter_somDispatchA(somId methodId,
somId descriptor,
va_list ap)
{return SOM_ResolveD(this,SOMMBeforeAfter,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,SOMMBeforeAfter,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 SOMMBeforeAfter_somDispatchD(somId methodId,
somId descriptor,
va_list ap)
{return SOM_ResolveD(this,SOMMBeforeAfter,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,SOMMBeforeAfter,SOMObject,somDispatchD)
(this,methodId,descriptor,ap);
va_end(ap);
return __somResult;
}
/* method: somPrintSelf */
SOMObject* somPrintSelf()
{
/*
* Uses <SOMOutCharRoutine> 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.
* <self> is returned.
*/
return SOM_ResolveD(this,SOMMBeforeAfter,SOMObject,somPrintSelf)
(this);
}
/* method: somDumpSelf */
void somDumpSelf(long level)
{
/*
* Uses <SOMOutCharRoutine> to write a detailed description of this object
* and its current state.
*
* <level> 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 <somDumpSelfInt> 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,SOMMBeforeAfter,SOMObject,somDumpSelf)
(this,level);
}
/* method: somDumpSelfInt */
void somDumpSelfInt(long level)
{
/*
* Uses <SOMOutCharRoutine> 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,SOMMBeforeAfter,SOMObject,somDumpSelfInt)
(this,level);
}
}; /* SOMMBeforeAfter */
#endif /* SOM_SOMMBeforeAfter_xh */