home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
warptlk3.zip
/
TOOLKIT
/
SOM
/
INCLUDE
/
SOMCLS.XH
< prev
next >
Wrap
Text File
|
1995-08-30
|
39KB
|
1,435 lines
/*
* This file was generated by the SOM Compiler.
* FileName: somcls.xh.
* Generated using:
* SOM Precompiler somipc: 2.29.1.2
* SOM Emitter emitxh: 2.41
*/
/*
*
* COMPONENT_NAME: somk
*
* 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.
*
* SOMObject: System Object Model root class
*/
#ifndef SOM_SOMClass_xh
#define SOM_SOMClass_xh
class SOMClass;
/*
*
* This is the SOM metaclass. That is, the instances of this class
* are class objects. When the SOM environment is created an instance
* of SOMClass is created and a pointer to it is placed in the external
* data location (SOMClassClassData.classObject). Bindings provide the
* macro _SOMClass for this expression. _SOMClass is unique in that it
* is its own class object. I.e., _SOMClass == _somGetClass(_SOMClass).
* SOMClass can be subclassed just like any SOM class. The subclasses
* of SOMClass are new metaclasses and can generate class objects with
* different implementations than those produced by _SOMClass.
*
* An important rule for metaclass programming is that no methods
* introduced by SOMClass should ever be overridden. While this
* limits the utility of metaclass programming in SOM, it guarantees
* that SOM will operate correctly. Special class frameworks may be
* available from IBM to alleviate this restriction.
*
*/
#define SOMClass_MajorVersion 1
#define SOMClass_MinorVersion 4
/* C++ SOM defs */
#include <som.xh>
/* C++ parent defs */
#ifndef SOM_SOMObject_xh
#include <somobj.xh>
#endif
#ifndef SOMClass_API
#define SOMClass_API
/*
* -- The Class API
*/
/*
* Start of user-defined types:
*/
class SOMClass;
class SOMObject;
#ifndef _IDL_SEQUENCE_somToken_defined
#define _IDL_SEQUENCE_somToken_defined
typedef struct {
unsigned long _maximum;
unsigned long _length;
somToken *_buffer;
} _IDL_SEQUENCE_somToken;
#endif /* _IDL_SEQUENCE_somToken_defined */
typedef
_IDL_SEQUENCE_somToken SOMClass_somTokenSequence;
/*
* a (generic) sequence of somTokens
*/
#ifndef _IDL_SEQUENCE_SOMClass_defined
#define _IDL_SEQUENCE_SOMClass_defined
typedef struct {
unsigned long _maximum;
unsigned long _length;
SOMClass **_buffer;
} _IDL_SEQUENCE_SOMClass;
#endif /* _IDL_SEQUENCE_SOMClass_defined */
typedef
_IDL_SEQUENCE_SOMClass SOMClass_SOMClassSequence;
/*
* a sequence of classes
*/
typedef
struct SOMClass_somOffsetInfo {
SOMClass* cls;
long offset;
} SOMClass_somOffsetInfo;
/*
* a structure to describe a class-related offset
*/
struct SOMClass_somOffsetInfo;
#ifndef _IDL_SEQUENCE_SOMClass_somOffsetInfo_defined
#define _IDL_SEQUENCE_SOMClass_somOffsetInfo_defined
typedef struct {
unsigned long _maximum;
unsigned long _length;
struct SOMClass_somOffsetInfo *_buffer;
} _IDL_SEQUENCE_SOMClass_somOffsetInfo;
#endif /* _IDL_SEQUENCE_SOMClass_somOffsetInfo_defined */
typedef
_IDL_SEQUENCE_SOMClass_somOffsetInfo SOMClass_somOffsets;
/*
* a sequence of class-related offsets
*/
#ifndef _IDL_SEQUENCE_somId_defined
#define _IDL_SEQUENCE_somId_defined
typedef struct {
unsigned long _maximum;
unsigned long _length;
somId *_buffer;
} _IDL_SEQUENCE_somId;
#endif /* _IDL_SEQUENCE_somId_defined */
typedef
_IDL_SEQUENCE_somId SOMClass_somIdSequence;
/*
* a sequence of somIds
*/
#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_somTokenSequence
#ifdef somTokenSequence
#undef somTokenSequence
#define SOMTGD_somTokenSequence 1
#else
#define somTokenSequence SOMClass_somTokenSequence
#endif /* somTokenSequence */
#endif /* SOMTGD_somTokenSequence */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_SOMClassSequence
#ifdef SOMClassSequence
#undef SOMClassSequence
#define SOMTGD_SOMClassSequence 1
#else
#define SOMClassSequence SOMClass_SOMClassSequence
#endif /* SOMClassSequence */
#endif /* SOMTGD_SOMClassSequence */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#ifndef SOMTGD_somOffsetInfo
#ifdef somOffsetInfo
#undef somOffsetInfo
#define SOMTGD_somOffsetInfo 1
#else
#define somOffsetInfo SOMClass_somOffsetInfo
#endif /* somOffsetInfo */
#endif /* SOMTGD_somOffsetInfo */
#ifndef SOMTGD__IDL_SEQUENCE_somOffsetInfo
#ifdef _IDL_SEQUENCE_somOffsetInfo
#undef _IDL_SEQUENCE_somOffsetInfo
#define SOMTGD__IDL_SEQUENCE_somOffsetInfo 1
#else
#define _IDL_SEQUENCE_somOffsetInfo _IDL_SEQUENCE_SOMClass_somOffsetInfo
#endif /* _IDL_SEQUENCE_somOffsetInfo */
#endif /* SOMTGD__IDL_SEQUENCE_somOffsetInfo */
#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_somOffsets
#ifdef somOffsets
#undef somOffsets
#define SOMTGD_somOffsets 1
#else
#define somOffsets SOMClass_somOffsets
#endif /* somOffsets */
#endif /* SOMTGD_somOffsets */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_somIdSequence
#ifdef somIdSequence
#undef somIdSequence
#define SOMTGD_somIdSequence 1
#else
#define somIdSequence SOMClass_somIdSequence
#endif /* somIdSequence */
#endif /* SOMTGD_somIdSequence */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#endif /* SOM_DONT_USE_SHORT_NAMES */
/*
* End of user-defined types.
*/
/* A procedure to create the SOMClass Class */
SOMEXTERN SOMClass * SOMLINK SOMClassNewClass(
integer4 majorVersion,
integer4 minorVersion);
/* The API to the SOMClass class object, and the methods it introduces. */
SOMEXTERN struct SOMClassClassDataStructure {
SOMClass *classObject;
somMToken somNew;
somMToken somRenew;
somMToken somInitClass;
somMToken somClassReady;
somMToken somGetName;
somMToken somGetParent;
somMToken somDescendedFrom;
somMToken somCheckVersion;
somMToken somFindMethod;
somMToken somFindMethodOk;
somMToken somSupportsMethod;
somMToken somGetNumMethods;
somMToken somGetInstanceSize;
somMToken somGetInstanceOffset;
somMToken somGetInstancePartSize;
somMToken somGetMethodIndex;
somMToken somGetNumStaticMethods;
somMToken somGetPClsMtab;
somMToken somGetClassMtab;
somMToken somAddStaticMethod;
somMToken somOverrideSMethod;
somMToken somAddDynamicMethod;
somMToken somcPrivate0;
somMToken somGetApplyStub;
somMToken somFindSMethod;
somMToken somFindSMethodOk;
somMToken somGetMethodDescriptor;
somMToken somGetNthMethodInfo;
somMToken somSetClassData;
somMToken somGetClassData;
somMToken somNewNoInit;
somMToken somRenewNoInit;
somMToken somGetInstanceToken;
somMToken somGetMemberToken;
somMToken somSetMethodDescriptor;
somMToken somGetMethodData;
somMToken somOverrideMtab;
somMToken somGetMethodToken;
somMToken somGetParents;
somMToken somGetPClsMtabs;
somMToken somInitMIClass;
somMToken somGetVersionNumbers;
somMToken somLookupMethod;
somMToken _get_somInstanceDataOffsets;
somMToken somRenewNoZero;
somMToken somRenewNoInitNoZero;
somMToken somAllocate;
somMToken somDeallocate;
somMToken somGetRdStub;
somMToken somGetNthMethodData;
somMToken somcPrivate1;
somMToken somcPrivate2;
somMToken _get_somDirectInitClasses;
somMToken _set_somDirectInitClasses;
somMToken somGetInstanceInitMask;
somMToken somGetInstanceDestructionMask;
somMToken somcPrivate3;
somMToken somcPrivate4;
somMToken somcPrivate5;
somMToken somcPrivate6;
somMToken somcPrivate7;
somMToken somDefinedMethod;
somMToken somcPrivate8;
somMToken somcPrivate9;
somMToken somcPrivate10;
somMToken somcPrivate11;
somMToken somcPrivate12;
somMToken somcPrivate13;
somMToken somcPrivate14;
somMToken somcPrivate15;
somMToken _get_somDataAlignment;
somMToken somGetInstanceAssignmentMask;
somMToken somcPrivate16;
somMToken somcPrivate17;
somMToken _get_somClassAllocate;
somMToken _get_somClassDeallocate;
} SOMDLINK SOMClassClassData;
#define _SOMClass SOMClassClassData.classObject
/* The API to parentMtabs for SOMClass, and the instance data it introduces. */
SOMEXTERN struct SOMClassCClassDataStructure {
somMethodTabs parentMtab;
somDToken instanceDataToken;
} SOMDLINK SOMClassCClassData;
/*
* -- Typedefs for SOMClass Method Procedures
*/
SOMEXTERN {
typedef long (SOMLINK * somTD_SOMClass__get_somDataAlignment)(SOMClass *somSelf);
typedef SOMClass_somOffsets (SOMLINK * somTD_SOMClass__get_somInstanceDataOffsets)(SOMClass *somSelf);
typedef SOMClass_SOMClassSequence (SOMLINK * somTD_SOMClass__get_somDirectInitClasses)(SOMClass *somSelf);
typedef void (SOMLINK * somTD_SOMClass__set_somDirectInitClasses)(SOMClass *somSelf,
SOMClass_SOMClassSequence* somDirectInitClasses);
typedef SOMObject* (SOMLINK * somTD_SOMClass_somNew)(SOMClass *somSelf);
typedef SOMObject* (SOMLINK * somTD_SOMClass_somNewNoInit)(SOMClass *somSelf);
typedef SOMObject* (SOMLINK * somTD_SOMClass_somRenew)(SOMClass *somSelf,
void* obj);
typedef SOMObject* (SOMLINK * somTD_SOMClass_somRenewNoInit)(SOMClass *somSelf,
void* obj);
typedef SOMObject* (SOMLINK * somTD_SOMClass_somRenewNoZero)(SOMClass *somSelf,
void* obj);
typedef SOMObject* (SOMLINK * somTD_SOMClass_somRenewNoInitNoZero)(SOMClass *somSelf,
void* obj);
typedef string (SOMLINK * somTD_SOMClass_somAllocate)(SOMClass *somSelf,
long size);
typedef void (SOMLINK * somTD_SOMClass_somDeallocate)(SOMClass *somSelf,
string memptr);
typedef somMethodProc* (SOMLINK * somTD_SOMClass__get_somClassAllocate)(SOMClass *somSelf);
typedef somMethodProc* (SOMLINK * somTD_SOMClass__get_somClassDeallocate)(SOMClass *somSelf);
typedef somBooleanVector (SOMLINK * somTD_SOMClass_somGetInstanceInitMask)(SOMClass *somSelf,
somInitCtrl* ctrl);
typedef somBooleanVector (SOMLINK * somTD_SOMClass_somGetInstanceDestructionMask)(SOMClass *somSelf,
somDestructCtrl* ctrl);
typedef somBooleanVector (SOMLINK * somTD_SOMClass_somGetInstanceAssignmentMask)(SOMClass *somSelf,
somAssignCtrl* ctrl);
typedef void (SOMLINK * somTD_SOMClass_somInitClass)(SOMClass *somSelf,
string className,
SOMClass* parentClass,
long dataSize,
long maxStaticMethods,
long majorVersion,
long minorVersion);
typedef void (SOMLINK * somTD_SOMClass_somInitMIClass)(SOMClass *somSelf,
long inherit_vars,
string className,
SOMClass_SOMClassSequence* parentClasses,
long dataSize,
long dataAlignment,
long maxStaticMethods,
long majorVersion,
long minorVersion);
typedef somMToken (SOMLINK * somTD_SOMClass_somAddStaticMethod)(SOMClass *somSelf,
somId methodId,
somId methodDescriptor,
somMethodPtr method,
somMethodPtr redispatchStub,
somMethodPtr applyStub);
typedef void (SOMLINK * somTD_SOMClass_somAddDynamicMethod)(SOMClass *somSelf,
somId methodId,
somId methodDescriptor,
somMethodPtr method,
somMethodPtr applyStub);
typedef void (SOMLINK * somTD_SOMClass_somOverrideSMethod)(SOMClass *somSelf,
somId methodId,
somMethodPtr method);
typedef void (SOMLINK * somTD_SOMClass_somClassReady)(SOMClass *somSelf);
typedef somMethodPtr (SOMLINK * somTD_SOMClass_somGetApplyStub)(SOMClass *somSelf,
somId methodId);
typedef somClassDataStructure* (SOMLINK * somTD_SOMClass_somGetClassData)(SOMClass *somSelf);
typedef void (SOMLINK * somTD_SOMClass_somSetClassData)(SOMClass *somSelf,
somClassDataStructure* cds);
typedef somMethodTab* (SOMLINK * somTD_SOMClass_somGetClassMtab)(SOMClass *somSelf);
typedef long (SOMLINK * somTD_SOMClass_somGetInstanceOffset)(SOMClass *somSelf);
typedef long (SOMLINK * somTD_SOMClass_somGetInstancePartSize)(SOMClass *somSelf);
typedef long (SOMLINK * somTD_SOMClass_somGetInstanceSize)(SOMClass *somSelf);
typedef somDToken (SOMLINK * somTD_SOMClass_somGetInstanceToken)(SOMClass *somSelf);
typedef somDToken (SOMLINK * somTD_SOMClass_somGetMemberToken)(SOMClass *somSelf,
long memberOffset,
somDToken instanceToken);
typedef boolean (SOMLINK * somTD_SOMClass_somGetMethodData)(SOMClass *somSelf,
somId methodId,
somMethodData* md);
typedef somMethodProc* (SOMLINK * somTD_SOMClass_somGetRdStub)(SOMClass *somSelf,
somId methodId);
typedef somId (SOMLINK * somTD_SOMClass_somGetMethodDescriptor)(SOMClass *somSelf,
somId methodId);
typedef long (SOMLINK * somTD_SOMClass_somGetMethodIndex)(SOMClass *somSelf,
somId id);
typedef somMToken (SOMLINK * somTD_SOMClass_somGetMethodToken)(SOMClass *somSelf,
somId methodId);
typedef string (SOMLINK * somTD_SOMClass_somGetName)(SOMClass *somSelf);
typedef boolean (SOMLINK * somTD_SOMClass_somGetNthMethodData)(SOMClass *somSelf,
long n,
somMethodData* md);
typedef somId (SOMLINK * somTD_SOMClass_somGetNthMethodInfo)(SOMClass *somSelf,
long n,
somId* descriptor);
typedef long (SOMLINK * somTD_SOMClass_somGetNumMethods)(SOMClass *somSelf);
typedef long (SOMLINK * somTD_SOMClass_somGetNumStaticMethods)(SOMClass *somSelf);
typedef SOMClass* (SOMLINK * somTD_SOMClass_somGetParent)(SOMClass *somSelf);
typedef SOMClass_SOMClassSequence (SOMLINK * somTD_SOMClass_somGetParents)(SOMClass *somSelf);
typedef somMethodTabs (SOMLINK * somTD_SOMClass_somGetPClsMtab)(SOMClass *somSelf);
typedef somMethodTabs (SOMLINK * somTD_SOMClass_somGetPClsMtabs)(SOMClass *somSelf);
typedef void (SOMLINK * somTD_SOMClass_somGetVersionNumbers)(SOMClass *somSelf,
long* majorVersion,
long* minorVersion);
typedef boolean (SOMLINK * somTD_SOMClass_somSetMethodDescriptor)(SOMClass *somSelf,
somId methodId,
somId descriptor);
typedef boolean (SOMLINK * somTD_SOMClass_somFindMethod)(SOMClass *somSelf,
somId methodId,
somMethodPtr* m);
typedef boolean (SOMLINK * somTD_SOMClass_somFindMethodOk)(SOMClass *somSelf,
somId methodId,
somMethodPtr* m);
typedef somMethodPtr (SOMLINK * somTD_SOMClass_somFindSMethod)(SOMClass *somSelf,
somId methodId);
typedef somMethodPtr (SOMLINK * somTD_SOMClass_somFindSMethodOk)(SOMClass *somSelf,
somId methodId);
typedef somMethodPtr (SOMLINK * somTD_SOMClass_somLookupMethod)(SOMClass *somSelf,
somId methodId);
typedef boolean (SOMLINK * somTD_SOMClass_somCheckVersion)(SOMClass *somSelf,
long majorVersion,
long minorVersion);
typedef boolean (SOMLINK * somTD_SOMClass_somDescendedFrom)(SOMClass *somSelf,
SOMClass* aClassObj);
typedef boolean (SOMLINK * somTD_SOMClass_somSupportsMethod)(SOMClass *somSelf,
somId mId);
typedef somMethodPtr (SOMLINK * somTD_SOMClass_somDefinedMethod)(SOMClass *somSelf,
somMToken method);
typedef void (SOMLINK * somTD_SOMClass_somOverrideMtab)(SOMClass *somSelf);
/*
* -- Typedefs for Reintroduced Wrapper Methods
*/
typedef void (SOMLINK * somTD_SOMClass_somDefaultInit)(SOMClass *somSelf,
somInitCtrl* ctrl);
typedef void (SOMLINK * somTD_SOMClass_somDestruct)(SOMClass *somSelf,
octet doFree,
somDestructCtrl* ctrl);
typedef void (SOMLINK * somTD_SOMClass_somDefaultCopyInit)(SOMClass *somSelf,
somInitCtrl* ctrl,
SOMObject* fromObj);
typedef SOMClass* (SOMLINK * somTD_SOMClass_somDefaultAssign)(SOMClass *somSelf,
somAssignCtrl* ctrl,
SOMObject* fromObj);
typedef void (SOMLINK * somTD_SOMClass_somDefaultConstCopyInit)(SOMClass *somSelf,
somInitCtrl* ctrl,
SOMObject* fromObj);
typedef void (SOMLINK * somTD_SOMClass_somDefaultVCopyInit)(SOMClass *somSelf,
somInitCtrl* ctrl,
SOMObject* fromObj);
typedef void (SOMLINK * somTD_SOMClass_somDefaultConstVCopyInit)(SOMClass *somSelf,
somInitCtrl* ctrl,
SOMObject* fromObj);
typedef SOMClass* (SOMLINK * somTD_SOMClass_somDefaultConstAssign)(SOMClass *somSelf,
somAssignCtrl* ctrl,
SOMObject* fromObj);
typedef SOMClass* (SOMLINK * somTD_SOMClass_somDefaultVAssign)(SOMClass *somSelf,
somAssignCtrl* ctrl,
SOMObject* fromObj);
typedef SOMClass* (SOMLINK * somTD_SOMClass_somDefaultConstVAssign)(SOMClass *somSelf,
somAssignCtrl* ctrl,
SOMObject* fromObj);
typedef void (SOMLINK * somTD_SOMClass_somInit)(SOMClass *somSelf);
typedef void (SOMLINK * somTD_SOMClass_somFree)(SOMClass *somSelf);
typedef void (SOMLINK * somTD_SOMClass_somUninit)(SOMClass *somSelf);
typedef SOMClass* (SOMLINK * somTD_SOMClass_somGetClass)(SOMClass *somSelf);
typedef string (SOMLINK * somTD_SOMClass_somGetClassName)(SOMClass *somSelf);
typedef long (SOMLINK * somTD_SOMClass_somGetSize)(SOMClass *somSelf);
typedef boolean (SOMLINK * somTD_SOMClass_somIsA)(SOMClass *somSelf,
SOMClass* aClassObj);
typedef boolean (SOMLINK * somTD_SOMClass_somIsInstanceOf)(SOMClass *somSelf,
SOMClass* aClassObj);
typedef boolean (SOMLINK * somTD_SOMClass_somRespondsTo)(SOMClass *somSelf,
somId mId);
typedef boolean (SOMLINK * somTD_SOMClass_somDispatch)(SOMClass *somSelf,
somToken* retValue,
somId methodId,
va_list ap);
typedef boolean (SOMLINK * somTD_SOMClass_somClassDispatch)(SOMClass *somSelf,
SOMClass* clsObj,
somToken* retValue,
somId methodId,
va_list ap);
typedef boolean (SOMLINK * somTD_SOMClass_somCastObj)(SOMClass *somSelf,
SOMClass* cls);
typedef boolean (SOMLINK * somTD_SOMClass_somResetObj)(SOMClass *somSelf);
typedef void (SOMLINK * somTD_SOMClass_somDispatchV)(SOMClass *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef long (SOMLINK * somTD_SOMClass_somDispatchL)(SOMClass *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef void* (SOMLINK * somTD_SOMClass_somDispatchA)(SOMClass *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef double (SOMLINK * somTD_SOMClass_somDispatchD)(SOMClass *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef SOMObject* (SOMLINK * somTD_SOMClass_somPrintSelf)(SOMClass *somSelf);
typedef void (SOMLINK * somTD_SOMClass_somDumpSelf)(SOMClass *somSelf,
long level);
typedef void (SOMLINK * somTD_SOMClass_somDumpSelfInt)(SOMClass *somSelf,
long level);
}
#endif /* SOMClass_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 SOMClass
*/
class SOMClass : public SOMObject
{
public:
// SOMClass::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 size)
{
SOM_IgnoreWarning(size);
if (!_SOMClass) SOMClassNewClass(SOMClass_MajorVersion,SOMClass_MinorVersion);
return (void*)
SOM_Resolve(_SOMClass,SOMClass,somNewNoInit)
((SOMClass *)((void*)_SOMClass));
}
// SOMClass::delete uses the default deallocator for the object's class.
void operator delete(void * obj)
{
somToken objCls = obj ? *(void**)obj : (somToken) NULL;
if (somIsObj(objCls)) {
SOM_Resolve(objCls,SOMClass,somDeallocate)
((SOMClass*)objCls, (string)obj);
}
}
SOMClass()
{
if (*(void**)this !=
((somParentMtabStructPtr)
(SOMClassCClassData.parentMtab))->mtab)
return;
somDefaultInit(0);
}
SOMClass(SOMClass* fromObj)
{
if (*(void**)this !=
((somParentMtabStructPtr)
(SOMClassCClassData.parentMtab))->mtab)
return;
somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}
SOMClass(const SOMClass* fromObj)
{
if (*(void**)this !=
((somParentMtabStructPtr)
(SOMClassCClassData.parentMtab))->mtab)
return;
somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
}
~SOMClass()
{
if (!somIsObj(this)) return;
somDestruct(0,0);
*(void**)this = **(void***)this;
}
/* method: _get_somDataAlignment */
long _get_somDataAlignment()
{
return SOM_ResolveD(this,SOMClass,SOMClass,_get_somDataAlignment)
(this);
}
/* nonstatic method: _get_somInstanceDataOffsets */
SOMClass_somOffsets _get_somInstanceDataOffsets()
{
return SOM_ResolveD(this,SOMClass,SOMClass,_get_somInstanceDataOffsets)
(this);
}
/* nonstatic method: _get_somDirectInitClasses */
SOMClass_SOMClassSequence _get_somDirectInitClasses()
{
return SOM_ResolveD(this,SOMClass,SOMClass,_get_somDirectInitClasses)
(this);
}
/* nonstatic method: _set_somDirectInitClasses */
void _set_somDirectInitClasses(SOMClass_SOMClassSequence* somDirectInitClasses)
{
SOM_ResolveD(this,SOMClass,SOMClass,_set_somDirectInitClasses)
(this,somDirectInitClasses);
}
/* method: somNew */
SOMObject* somNew()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somNew)
(this);
}
/* method: somNewNoInit */
SOMObject* somNewNoInit()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somNewNoInit)
(this);
}
/* method: somRenew */
SOMObject* somRenew(void* obj)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somRenew)
(this,obj);
}
/* method: somRenewNoInit */
SOMObject* somRenewNoInit(void* obj)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somRenewNoInit)
(this,obj);
}
/* method: somRenewNoZero */
SOMObject* somRenewNoZero(void* obj)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somRenewNoZero)
(this,obj);
}
/* method: somRenewNoInitNoZero */
SOMObject* somRenewNoInitNoZero(void* obj)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somRenewNoInitNoZero)
(this,obj);
}
/* nonstatic method: somAllocate */
string somAllocate(long size)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somAllocate)
(this,size);
}
/* nonstatic method: somDeallocate */
void somDeallocate(string memptr)
{
SOM_ResolveD(this,SOMClass,SOMClass,somDeallocate)
(this,memptr);
}
/* nonstatic method: _get_somClassAllocate */
somMethodProc* _get_somClassAllocate()
{
return SOM_ResolveD(this,SOMClass,SOMClass,_get_somClassAllocate)
(this);
}
/* nonstatic method: _get_somClassDeallocate */
somMethodProc* _get_somClassDeallocate()
{
return SOM_ResolveD(this,SOMClass,SOMClass,_get_somClassDeallocate)
(this);
}
/* method: somGetInstanceInitMask */
somBooleanVector somGetInstanceInitMask(somInitCtrl* ctrl)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstanceInitMask)
(this,ctrl);
}
/* method: somGetInstanceDestructionMask */
somBooleanVector somGetInstanceDestructionMask(somDestructCtrl* ctrl)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstanceDestructionMask)
(this,ctrl);
}
/* method: somGetInstanceAssignmentMask */
somBooleanVector somGetInstanceAssignmentMask(somAssignCtrl* ctrl)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstanceAssignmentMask)
(this,ctrl);
}
/* method: somInitClass */
void somInitClass(string className,
SOMClass* parentClass,
long dataSize,
long maxStaticMethods,
long majorVersion,
long minorVersion)
{
SOM_ResolveD(this,SOMClass,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)
{
SOM_ResolveD(this,SOMClass,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)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somAddStaticMethod)
(this,methodId,methodDescriptor,method,redispatchStub,applyStub);
}
/* method: somAddDynamicMethod */
void somAddDynamicMethod(somId methodId,
somId methodDescriptor,
somMethodPtr method,
somMethodPtr applyStub)
{
SOM_ResolveD(this,SOMClass,SOMClass,somAddDynamicMethod)
(this,methodId,methodDescriptor,method,applyStub);
}
/* method: somOverrideSMethod */
void somOverrideSMethod(somId methodId,
somMethodPtr method)
{
SOM_ResolveD(this,SOMClass,SOMClass,somOverrideSMethod)
(this,methodId,method);
}
/* method: somClassReady */
void somClassReady()
{
SOM_ResolveD(this,SOMClass,SOMClass,somClassReady)
(this);
}
/* method: somGetApplyStub */
somMethodPtr somGetApplyStub(somId methodId)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetApplyStub)
(this,methodId);
}
/* method: somGetClassData */
somClassDataStructure* somGetClassData()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetClassData)
(this);
}
/* method: somSetClassData */
void somSetClassData(somClassDataStructure* cds)
{
SOM_ResolveD(this,SOMClass,SOMClass,somSetClassData)
(this,cds);
}
/* method: somGetClassMtab */
somMethodTab* somGetClassMtab()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetClassMtab)
(this);
}
/* method: somGetInstanceOffset */
long somGetInstanceOffset()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstanceOffset)
(this);
}
/* method: somGetInstancePartSize */
long somGetInstancePartSize()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstancePartSize)
(this);
}
/* method: somGetInstanceSize */
long somGetInstanceSize()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstanceSize)
(this);
}
/* method: somGetInstanceToken */
somDToken somGetInstanceToken()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetInstanceToken)
(this);
}
/* method: somGetMemberToken */
somDToken somGetMemberToken(long memberOffset,
somDToken instanceToken)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetMemberToken)
(this,memberOffset,instanceToken);
}
/* method: somGetMethodData */
boolean somGetMethodData(somId methodId,
somMethodData* md)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetMethodData)
(this,methodId,md);
}
/* method: somGetRdStub */
somMethodProc* somGetRdStub(somId methodId)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetRdStub)
(this,methodId);
}
/* method: somGetMethodDescriptor */
somId somGetMethodDescriptor(somId methodId)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetMethodDescriptor)
(this,methodId);
}
/* method: somGetMethodIndex */
long somGetMethodIndex(somId id)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetMethodIndex)
(this,id);
}
/* method: somGetMethodToken */
somMToken somGetMethodToken(somId methodId)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetMethodToken)
(this,methodId);
}
/* method: somGetName */
string somGetName()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetName)
(this);
}
/* method: somGetNthMethodData */
boolean somGetNthMethodData(long n,
somMethodData* md)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetNthMethodData)
(this,n,md);
}
/* method: somGetNthMethodInfo */
somId somGetNthMethodInfo(long n,
somId* descriptor)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetNthMethodInfo)
(this,n,descriptor);
}
/* method: somGetNumMethods */
long somGetNumMethods()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetNumMethods)
(this);
}
/* method: somGetNumStaticMethods */
long somGetNumStaticMethods()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetNumStaticMethods)
(this);
}
/* method: somGetParent */
SOMClass* somGetParent()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetParent)
(this);
}
/* method: somGetParents */
SOMClass_SOMClassSequence somGetParents()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetParents)
(this);
}
/* method: somGetPClsMtab */
somMethodTabs somGetPClsMtab()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetPClsMtab)
(this);
}
/* method: somGetPClsMtabs */
somMethodTabs somGetPClsMtabs()
{
return SOM_ResolveD(this,SOMClass,SOMClass,somGetPClsMtabs)
(this);
}
/* method: somGetVersionNumbers */
void somGetVersionNumbers(long* majorVersion,
long* minorVersion)
{
SOM_ResolveD(this,SOMClass,SOMClass,somGetVersionNumbers)
(this,majorVersion,minorVersion);
}
/* method: somSetMethodDescriptor */
boolean somSetMethodDescriptor(somId methodId,
somId descriptor)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somSetMethodDescriptor)
(this,methodId,descriptor);
}
/* method: somFindMethod */
boolean somFindMethod(somId methodId,
somMethodPtr* m)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somFindMethod)
(this,methodId,m);
}
/* method: somFindMethodOk */
boolean somFindMethodOk(somId methodId,
somMethodPtr* m)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somFindMethodOk)
(this,methodId,m);
}
/* method: somFindSMethod */
somMethodPtr somFindSMethod(somId methodId)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somFindSMethod)
(this,methodId);
}
/* method: somFindSMethodOk */
somMethodPtr somFindSMethodOk(somId methodId)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somFindSMethodOk)
(this,methodId);
}
/* method: somLookupMethod */
somMethodPtr somLookupMethod(somId methodId)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somLookupMethod)
(this,methodId);
}
/* method: somCheckVersion */
boolean somCheckVersion(long majorVersion,
long minorVersion)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somCheckVersion)
(this,majorVersion,minorVersion);
}
/* method: somDescendedFrom */
boolean somDescendedFrom(SOMClass* aClassObj)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somDescendedFrom)
(this,aClassObj);
}
/* method: somSupportsMethod */
boolean somSupportsMethod(somId mId)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somSupportsMethod)
(this,mId);
}
/* method: somDefinedMethod */
somMethodPtr somDefinedMethod(somMToken method)
{
return SOM_ResolveD(this,SOMClass,SOMClass,somDefinedMethod)
(this,method);
}
/* method: somOverrideMtab */
void somOverrideMtab()
{
SOM_ResolveD(this,SOMClass,SOMClass,somOverrideMtab)
(this);
}
/*
* Reintroduce inherited methods
*/
/* initializer method: somDefaultInit */
void somDefaultInit(somInitCtrl* ctrl)
{
SOM_ResolveD(this,SOMClass,SOMObject,somDefaultInit)
(this,ctrl);
}
/* method: somDestruct */
void somDestruct(octet doFree,
somDestructCtrl* ctrl)
{
SOM_ResolveD(this,SOMClass,SOMObject,somDestruct)
(this,doFree,ctrl);
}
/* method: somDefaultCopyInit */
void somDefaultCopyInit(somInitCtrl* ctrl,
SOMObject* fromObj)
{
SOM_ResolveD(this,SOMClass,SOMObject,somDefaultCopyInit)
(this,ctrl,fromObj);
}
/* method: somDefaultAssign */
SOMClass* somDefaultAssign(somAssignCtrl* ctrl,
SOMObject* fromObj)
{
return SOM_ResolveD(this,SOMClass,SOMObject,somDefaultAssign)
(this,ctrl,fromObj);
}
/* method: somDefaultConstCopyInit */
void somDefaultConstCopyInit(somInitCtrl* ctrl,
SOMObject* fromObj)
{
SOM_ResolveD(this,SOMClass,SOMObject,somDefaultConstCopyInit)
(this,ctrl,fromObj);
}
/* method: somDefaultVCopyInit */
void somDefaultVCopyInit(somInitCtrl* ctrl,
SOMObject* fromObj)
{
SOM_ResolveD(this,SOMClass,SOMObject,somDefaultVCopyInit)
(this,ctrl,fromObj);
}
/* method: somDefaultConstVCopyInit */
void somDefaultConstVCopyInit(somInitCtrl* ctrl,
SOMObject* fromObj)
{
SOM_ResolveD(this,SOMClass,SOMObject,somDefaultConstVCopyInit)
(this,ctrl,fromObj);
}
/* method: somDefaultConstAssign */
SOMClass* somDefaultConstAssign(somAssignCtrl* ctrl,
SOMObject* fromObj)
{
return SOM_ResolveD(this,SOMClass,SOMObject,somDefaultConstAssign)
(this,ctrl,fromObj);
}
/* method: somDefaultVAssign */
SOMClass* somDefaultVAssign(somAssignCtrl* ctrl,
SOMObject* fromObj)
{
return SOM_ResolveD(this,SOMClass,SOMObject,somDefaultVAssign)
(this,ctrl,fromObj);
}
/* method: somDefaultConstVAssign */
SOMClass* somDefaultConstVAssign(somAssignCtrl* ctrl,
SOMObject* fromObj)
{
return SOM_ResolveD(this,SOMClass,SOMObject,somDefaultConstVAssign)
(this,ctrl,fromObj);
}
/* method: somInit */
void somInit()
{
SOM_ResolveD(this,SOMClass,SOMObject,somInit)
(this);
}
/* method: somFree */
void somFree()
{
SOM_ResolveD(this,SOMClass,SOMObject,somFree)
(this);
}
/* method: somUninit */
void somUninit()
{
SOM_ResolveD(this,SOMClass,SOMObject,somUninit)
(this);
}
/* method: somGetClass */
SOMClass* somGetClass()
{
return SOM_ResolveD(this,SOMClass,SOMObject,somGetClass)
(this);
}
/* method: somGetClassName */
string somGetClassName()
{
return SOM_ResolveD(this,SOMClass,SOMObject,somGetClassName)
(this);
}
/* method: somGetSize */
long somGetSize()
{
return SOM_ResolveD(this,SOMClass,SOMObject,somGetSize)
(this);
}
/* method: somIsA */
boolean somIsA(SOMClass* aClassObj)
{
return SOM_ResolveD(this,SOMClass,SOMObject,somIsA)
(this,aClassObj);
}
/* method: somIsInstanceOf */
boolean somIsInstanceOf(SOMClass* aClassObj)
{
return SOM_ResolveD(this,SOMClass,SOMObject,somIsInstanceOf)
(this,aClassObj);
}
/* method: somRespondsTo */
boolean somRespondsTo(somId mId)
{
return SOM_ResolveD(this,SOMClass,SOMObject,somRespondsTo)
(this,mId);
}
/* va_list method: somDispatch */
/* the va_list invocation form */
boolean SOMClass_somDispatch(somToken* retValue,
somId methodId,
va_list ap)
{
return SOM_ResolveD(this,SOMClass,SOMObject,somDispatch)
(this,retValue,methodId,ap);
}
/* the varargs invocation form */
boolean somDispatch(somToken* retValue,
somId methodId,
...)
{
va_list ap;
va_start(ap, methodId);
boolean __somResult =
SOM_ResolveD(this,SOMClass,SOMObject,somDispatch)
(this,retValue,methodId,ap);
va_end(ap);
return __somResult;
}
/* va_list method: somClassDispatch */
/* the va_list invocation form */
boolean SOMClass_somClassDispatch(SOMClass* clsObj,
somToken* retValue,
somId methodId,
va_list ap)
{
return SOM_ResolveD(this,SOMClass,SOMObject,somClassDispatch)
(this,clsObj,retValue,methodId,ap);
}
/* the varargs invocation form */
boolean somClassDispatch(SOMClass* clsObj,
somToken* retValue,
somId methodId,
...)
{
va_list ap;
va_start(ap, methodId);
boolean __somResult =
SOM_ResolveD(this,SOMClass,SOMObject,somClassDispatch)
(this,clsObj,retValue,methodId,ap);
va_end(ap);
return __somResult;
}
/* method: somCastObj */
boolean somCastObj(SOMClass* cls)
{
return SOM_ResolveD(this,SOMClass,SOMObject,somCastObj)
(this,cls);
}
/* method: somResetObj */
boolean somResetObj()
{
return SOM_ResolveD(this,SOMClass,SOMObject,somResetObj)
(this);
}
/* va_list method: somDispatchV */
/* the va_list invocation form */
void SOMClass_somDispatchV(somId methodId,
somId descriptor,
va_list ap)
{
SOM_ResolveD(this,SOMClass,SOMObject,somDispatchV)
(this,methodId,descriptor,ap);
}
/* the varargs invocation form */
void somDispatchV(somId methodId,
somId descriptor,
...)
{
va_list ap;
va_start(ap, descriptor);
SOM_ResolveD(this,SOMClass,SOMObject,somDispatchV)
(this,methodId,descriptor,ap);
va_end(ap);
}
/* va_list method: somDispatchL */
/* the va_list invocation form */
long SOMClass_somDispatchL(somId methodId,
somId descriptor,
va_list ap)
{
return SOM_ResolveD(this,SOMClass,SOMObject,somDispatchL)
(this,methodId,descriptor,ap);
}
/* the varargs invocation form */
long somDispatchL(somId methodId,
somId descriptor,
...)
{
va_list ap;
va_start(ap, descriptor);
long __somResult =
SOM_ResolveD(this,SOMClass,SOMObject,somDispatchL)
(this,methodId,descriptor,ap);
va_end(ap);
return __somResult;
}
/* va_list method: somDispatchA */
/* the va_list invocation form */
void* SOMClass_somDispatchA(somId methodId,
somId descriptor,
va_list ap)
{
return SOM_ResolveD(this,SOMClass,SOMObject,somDispatchA)
(this,methodId,descriptor,ap);
}
/* the varargs invocation form */
void* somDispatchA(somId methodId,
somId descriptor,
...)
{
va_list ap;
va_start(ap, descriptor);
void* __somResult =
SOM_ResolveD(this,SOMClass,SOMObject,somDispatchA)
(this,methodId,descriptor,ap);
va_end(ap);
return __somResult;
}
/* va_list method: somDispatchD */
/* the va_list invocation form */
double SOMClass_somDispatchD(somId methodId,
somId descriptor,
va_list ap)
{
return SOM_ResolveD(this,SOMClass,SOMObject,somDispatchD)
(this,methodId,descriptor,ap);
}
/* the varargs invocation form */
double somDispatchD(somId methodId,
somId descriptor,
...)
{
va_list ap;
va_start(ap, descriptor);
double __somResult =
SOM_ResolveD(this,SOMClass,SOMObject,somDispatchD)
(this,methodId,descriptor,ap);
va_end(ap);
return __somResult;
}
/* method: somPrintSelf */
SOMObject* somPrintSelf()
{
return SOM_ResolveD(this,SOMClass,SOMObject,somPrintSelf)
(this);
}
/* method: somDumpSelf */
void somDumpSelf(long level)
{
SOM_ResolveD(this,SOMClass,SOMObject,somDumpSelf)
(this,level);
}
/* method: somDumpSelfInt */
void somDumpSelfInt(long level)
{
SOM_ResolveD(this,SOMClass,SOMObject,somDumpSelfInt)
(this,level);
}
}; /* SOMClass */
#endif /* SOM_SOMClass_xh */