home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
warptlk3.zip
/
TOOLKIT
/
SOM
/
INCLUDE
/
BOA.XH
< prev
next >
Wrap
Text File
|
1995-08-30
|
18KB
|
749 lines
/*
* This file was generated by the SOM Compiler.
* FileName: boa.xh.
* Generated using:
* SOM Precompiler somipc: 2.29.1.2
* SOM Emitter emitxh: 2.41
*/
/*
*
* COMPONENT_NAME: somd
*
* 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.
*
* IDL interface spec for CORBA Basic Object Adapter.
*
* This is an abstract class which defines the CORBA-defined interface
* for a Basic Object Adapter.
*
* The SOM Object Adapter interface is derived from this one.
* SOMOA provides the actual implementation in DSOM.
*/
#ifndef SOM_BOA_xh
#define SOM_BOA_xh
class BOA;
#define BOA_MajorVersion 2
#define BOA_MinorVersion 1
/* C++ SOM defs */
#include <somcls.xh>
#include <somcm.xh>
/* C++ parent defs */
#ifndef SOM_SOMObject_xh
#include <somobj.xh>
#endif
/*
* C++ metaclass def
*/
#include <snglicls.xh>
#ifndef BOA_API
#define BOA_API
/*
* -- The Class API
*/
/*
* Start of user-defined types:
*/
class SOMClass;
class SOMObject;
class Container;
class SOMDObject;
class Principal;
class ImplementationDef;
class InterfaceDef;
class Context;
/*
* End of user-defined types.
*/
/* A procedure to create the BOA Class */
class SOMMSingleInstance;
SOMEXTERN SOMMSingleInstance * SOMLINK BOANewClass(
integer4 majorVersion,
integer4 minorVersion);
/* The API to the BOA class object, and the methods it introduces. */
SOMEXTERN struct BOAClassDataStructure {
SOMMSingleInstance *classObject;
somMToken create;
somMToken dispose;
somMToken get_id;
somMToken change_implementation;
somMToken get_principal;
somMToken set_exception;
somMToken impl_is_ready;
somMToken deactivate_impl;
somMToken obj_is_ready;
somMToken deactivate_obj;
somMToken activate_impl;
somMToken activate_obj;
} SOMDLINK BOAClassData;
#define _BOA BOAClassData.classObject
/* The API to parentMtabs for BOA, and the instance data it introduces. */
SOMEXTERN struct BOACClassDataStructure {
somMethodTabs parentMtab;
somDToken instanceDataToken;
} SOMDLINK BOACClassData;
/*
* -- Typedefs for BOA Method Procedures
*/
SOMEXTERN {
typedef SOMDObject* (SOMLINK * somTD_BOA_create)(BOA *somSelf, Environment *ev,
ReferenceData* id,
InterfaceDef* intf,
ImplementationDef* impl);
typedef void (SOMLINK * somTD_BOA_dispose)(BOA *somSelf, Environment *ev,
SOMDObject* obj);
typedef ReferenceData (SOMLINK * somTD_BOA_get_id)(BOA *somSelf, Environment *ev,
SOMDObject* obj);
typedef Principal* (SOMLINK * somTD_BOA_get_principal)(BOA *somSelf, Environment *ev,
SOMDObject* obj,
Environment* req_ev);
typedef void (SOMLINK * somTD_BOA_set_exception)(BOA *somSelf, Environment *ev,
exception_type major,
string userid,
void* param);
typedef void (SOMLINK * somTD_BOA_impl_is_ready)(BOA *somSelf, Environment *ev,
ImplementationDef* impl);
typedef void (SOMLINK * somTD_BOA_deactivate_impl)(BOA *somSelf, Environment *ev,
ImplementationDef* impl);
typedef void (SOMLINK * somTD_BOA_change_implementation)(BOA *somSelf, Environment *ev,
SOMDObject* obj,
ImplementationDef* impl);
typedef void (SOMLINK * somTD_BOA_obj_is_ready)(BOA *somSelf, Environment *ev,
SOMDObject* obj,
ImplementationDef* impl);
typedef void (SOMLINK * somTD_BOA_deactivate_obj)(BOA *somSelf, Environment *ev,
SOMDObject* obj);
/*
* -- Typedefs for Reintroduced Wrapper Methods
*/
typedef void (SOMLINK * somTD_BOA_somDefaultInit)(BOA *somSelf,
somInitCtrl* ctrl);
typedef void (SOMLINK * somTD_BOA_somDestruct)(BOA *somSelf,
octet doFree,
somDestructCtrl* ctrl);
typedef void (SOMLINK * somTD_BOA_somDefaultCopyInit)(BOA *somSelf,
somInitCtrl* ctrl,
SOMObject* fromObj);
typedef BOA* (SOMLINK * somTD_BOA_somDefaultAssign)(BOA *somSelf,
somAssignCtrl* ctrl,
SOMObject* fromObj);
typedef void (SOMLINK * somTD_BOA_somDefaultConstCopyInit)(BOA *somSelf,
somInitCtrl* ctrl,
SOMObject* fromObj);
typedef void (SOMLINK * somTD_BOA_somDefaultVCopyInit)(BOA *somSelf,
somInitCtrl* ctrl,
SOMObject* fromObj);
typedef void (SOMLINK * somTD_BOA_somDefaultConstVCopyInit)(BOA *somSelf,
somInitCtrl* ctrl,
SOMObject* fromObj);
typedef BOA* (SOMLINK * somTD_BOA_somDefaultConstAssign)(BOA *somSelf,
somAssignCtrl* ctrl,
SOMObject* fromObj);
typedef BOA* (SOMLINK * somTD_BOA_somDefaultVAssign)(BOA *somSelf,
somAssignCtrl* ctrl,
SOMObject* fromObj);
typedef BOA* (SOMLINK * somTD_BOA_somDefaultConstVAssign)(BOA *somSelf,
somAssignCtrl* ctrl,
SOMObject* fromObj);
typedef void (SOMLINK * somTD_BOA_somInit)(BOA *somSelf);
typedef void (SOMLINK * somTD_BOA_somFree)(BOA *somSelf);
typedef void (SOMLINK * somTD_BOA_somUninit)(BOA *somSelf);
typedef SOMMSingleInstance* (SOMLINK * somTD_BOA_somGetClass)(BOA *somSelf);
typedef string (SOMLINK * somTD_BOA_somGetClassName)(BOA *somSelf);
typedef long (SOMLINK * somTD_BOA_somGetSize)(BOA *somSelf);
typedef boolean (SOMLINK * somTD_BOA_somIsA)(BOA *somSelf,
SOMClass* aClassObj);
typedef boolean (SOMLINK * somTD_BOA_somIsInstanceOf)(BOA *somSelf,
SOMClass* aClassObj);
typedef boolean (SOMLINK * somTD_BOA_somRespondsTo)(BOA *somSelf,
somId mId);
typedef boolean (SOMLINK * somTD_BOA_somDispatch)(BOA *somSelf,
somToken* retValue,
somId methodId,
va_list ap);
typedef boolean (SOMLINK * somTD_BOA_somClassDispatch)(BOA *somSelf,
SOMClass* clsObj,
somToken* retValue,
somId methodId,
va_list ap);
typedef boolean (SOMLINK * somTD_BOA_somCastObj)(BOA *somSelf,
SOMClass* cls);
typedef boolean (SOMLINK * somTD_BOA_somResetObj)(BOA *somSelf);
typedef void (SOMLINK * somTD_BOA_somDispatchV)(BOA *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef long (SOMLINK * somTD_BOA_somDispatchL)(BOA *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef void* (SOMLINK * somTD_BOA_somDispatchA)(BOA *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef double (SOMLINK * somTD_BOA_somDispatchD)(BOA *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef SOMObject* (SOMLINK * somTD_BOA_somPrintSelf)(BOA *somSelf);
typedef void (SOMLINK * somTD_BOA_somDumpSelf)(BOA *somSelf,
long level);
typedef void (SOMLINK * somTD_BOA_somDumpSelfInt)(BOA *somSelf,
long level);
}
#endif /* BOA_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 BOA
*/
class BOA : public SOMObject
{
public:
// BOA::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 (!_BOA) BOANewClass(BOA_MajorVersion,BOA_MinorVersion);
return (void*)
SOM_Resolve(_BOA,SOMClass,somNewNoInit)
((SOMClass *)((void*)_BOA));
}
// BOA::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);
}
}
BOA()
{
if (*(void**)this !=
((somParentMtabStructPtr)
(BOACClassData.parentMtab))->mtab)
return;
somDefaultInit(0);
}
BOA(BOA* fromObj)
{
if (*(void**)this !=
((somParentMtabStructPtr)
(BOACClassData.parentMtab))->mtab)
return;
somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}
BOA(const BOA* fromObj)
{
if (*(void**)this !=
((somParentMtabStructPtr)
(BOACClassData.parentMtab))->mtab)
return;
somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
}
~BOA()
{
if (!somIsObj(this)) return;
somDestruct(0,0);
*(void**)this = **(void***)this;
}
/* method: create */
SOMDObject* create(Environment *ev,
ReferenceData* id,
InterfaceDef* intf,
ImplementationDef* impl)
{
return SOM_ResolveD(this,BOA,BOA,create)
(this, ev,id,intf,impl);
}
/* method: dispose */
void dispose(Environment *ev,
SOMDObject* obj)
{
SOM_ResolveD(this,BOA,BOA,dispose)
(this, ev,obj);
}
/* method: get_id */
ReferenceData get_id(Environment *ev,
SOMDObject* obj)
{
return SOM_ResolveD(this,BOA,BOA,get_id)
(this, ev,obj);
}
/* method: get_principal */
Principal* get_principal(Environment *ev,
SOMDObject* obj,
Environment* req_ev)
{
return SOM_ResolveD(this,BOA,BOA,get_principal)
(this, ev,obj,req_ev);
}
/* method: set_exception */
void set_exception(Environment *ev,
exception_type major,
string userid,
void* param)
{
SOM_ResolveD(this,BOA,BOA,set_exception)
(this, ev,major,userid,param);
}
/* method: impl_is_ready */
void impl_is_ready(Environment *ev,
ImplementationDef* impl)
{
SOM_ResolveD(this,BOA,BOA,impl_is_ready)
(this, ev,impl);
}
/* method: deactivate_impl */
void deactivate_impl(Environment *ev,
ImplementationDef* impl)
{
SOM_ResolveD(this,BOA,BOA,deactivate_impl)
(this, ev,impl);
}
/* method: change_implementation */
void change_implementation(Environment *ev,
SOMDObject* obj,
ImplementationDef* impl)
{
SOM_ResolveD(this,BOA,BOA,change_implementation)
(this, ev,obj,impl);
}
/* method: obj_is_ready */
void obj_is_ready(Environment *ev,
SOMDObject* obj,
ImplementationDef* impl)
{
SOM_ResolveD(this,BOA,BOA,obj_is_ready)
(this, ev,obj,impl);
}
/* method: deactivate_obj */
void deactivate_obj(Environment *ev,
SOMDObject* obj)
{
SOM_ResolveD(this,BOA,BOA,deactivate_obj)
(this, ev,obj);
}
/*
* Reintroduce inherited methods
*/
/* initializer method: somDefaultInit */
void somDefaultInit(somInitCtrl* ctrl)
{
SOM_ResolveD(this,BOA,SOMObject,somDefaultInit)
(this,ctrl);
}
/* method: somDestruct */
void somDestruct(octet doFree,
somDestructCtrl* ctrl)
{
SOM_ResolveD(this,BOA,SOMObject,somDestruct)
(this,doFree,ctrl);
}
/* method: somDefaultCopyInit */
void somDefaultCopyInit(somInitCtrl* ctrl,
SOMObject* fromObj)
{
SOM_ResolveD(this,BOA,SOMObject,somDefaultCopyInit)
(this,ctrl,fromObj);
}
/* method: somDefaultAssign */
BOA* somDefaultAssign(somAssignCtrl* ctrl,
SOMObject* fromObj)
{
return SOM_ResolveD(this,BOA,SOMObject,somDefaultAssign)
(this,ctrl,fromObj);
}
/* method: somDefaultConstCopyInit */
void somDefaultConstCopyInit(somInitCtrl* ctrl,
SOMObject* fromObj)
{
SOM_ResolveD(this,BOA,SOMObject,somDefaultConstCopyInit)
(this,ctrl,fromObj);
}
/* method: somDefaultVCopyInit */
void somDefaultVCopyInit(somInitCtrl* ctrl,
SOMObject* fromObj)
{
SOM_ResolveD(this,BOA,SOMObject,somDefaultVCopyInit)
(this,ctrl,fromObj);
}
/* method: somDefaultConstVCopyInit */
void somDefaultConstVCopyInit(somInitCtrl* ctrl,
SOMObject* fromObj)
{
SOM_ResolveD(this,BOA,SOMObject,somDefaultConstVCopyInit)
(this,ctrl,fromObj);
}
/* method: somDefaultConstAssign */
BOA* somDefaultConstAssign(somAssignCtrl* ctrl,
SOMObject* fromObj)
{
return SOM_ResolveD(this,BOA,SOMObject,somDefaultConstAssign)
(this,ctrl,fromObj);
}
/* method: somDefaultVAssign */
BOA* somDefaultVAssign(somAssignCtrl* ctrl,
SOMObject* fromObj)
{
return SOM_ResolveD(this,BOA,SOMObject,somDefaultVAssign)
(this,ctrl,fromObj);
}
/* method: somDefaultConstVAssign */
BOA* somDefaultConstVAssign(somAssignCtrl* ctrl,
SOMObject* fromObj)
{
return SOM_ResolveD(this,BOA,SOMObject,somDefaultConstVAssign)
(this,ctrl,fromObj);
}
/* method: somInit */
void somInit()
{
SOM_ResolveD(this,BOA,SOMObject,somInit)
(this);
}
/* method: somFree */
void somFree()
{
SOM_ResolveD(this,BOA,SOMObject,somFree)
(this);
}
/* method: somUninit */
void somUninit()
{
SOM_ResolveD(this,BOA,SOMObject,somUninit)
(this);
}
/* method: somGetClass */
SOMMSingleInstance* somGetClass()
{
return SOM_ResolveD(this,BOA,SOMObject,somGetClass)
(this);
}
/* method: somGetClassName */
string somGetClassName()
{
return SOM_ResolveD(this,BOA,SOMObject,somGetClassName)
(this);
}
/* method: somGetSize */
long somGetSize()
{
return SOM_ResolveD(this,BOA,SOMObject,somGetSize)
(this);
}
/* method: somIsA */
boolean somIsA(SOMClass* aClassObj)
{
return SOM_ResolveD(this,BOA,SOMObject,somIsA)
(this,aClassObj);
}
/* method: somIsInstanceOf */
boolean somIsInstanceOf(SOMClass* aClassObj)
{
return SOM_ResolveD(this,BOA,SOMObject,somIsInstanceOf)
(this,aClassObj);
}
/* method: somRespondsTo */
boolean somRespondsTo(somId mId)
{
return SOM_ResolveD(this,BOA,SOMObject,somRespondsTo)
(this,mId);
}
/* va_list method: somDispatch */
/* the va_list invocation form */
boolean BOA_somDispatch(somToken* retValue,
somId methodId,
va_list ap)
{
return SOM_ResolveD(this,BOA,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,BOA,SOMObject,somDispatch)
(this,retValue,methodId,ap);
va_end(ap);
return __somResult;
}
/* va_list method: somClassDispatch */
/* the va_list invocation form */
boolean BOA_somClassDispatch(SOMClass* clsObj,
somToken* retValue,
somId methodId,
va_list ap)
{
return SOM_ResolveD(this,BOA,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,BOA,SOMObject,somClassDispatch)
(this,clsObj,retValue,methodId,ap);
va_end(ap);
return __somResult;
}
/* method: somCastObj */
boolean somCastObj(SOMClass* cls)
{
return SOM_ResolveD(this,BOA,SOMObject,somCastObj)
(this,cls);
}
/* method: somResetObj */
boolean somResetObj()
{
return SOM_ResolveD(this,BOA,SOMObject,somResetObj)
(this);
}
/* va_list method: somDispatchV */
/* the va_list invocation form */
void BOA_somDispatchV(somId methodId,
somId descriptor,
va_list ap)
{
SOM_ResolveD(this,BOA,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,BOA,SOMObject,somDispatchV)
(this,methodId,descriptor,ap);
va_end(ap);
}
/* va_list method: somDispatchL */
/* the va_list invocation form */
long BOA_somDispatchL(somId methodId,
somId descriptor,
va_list ap)
{
return SOM_ResolveD(this,BOA,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,BOA,SOMObject,somDispatchL)
(this,methodId,descriptor,ap);
va_end(ap);
return __somResult;
}
/* va_list method: somDispatchA */
/* the va_list invocation form */
void* BOA_somDispatchA(somId methodId,
somId descriptor,
va_list ap)
{
return SOM_ResolveD(this,BOA,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,BOA,SOMObject,somDispatchA)
(this,methodId,descriptor,ap);
va_end(ap);
return __somResult;
}
/* va_list method: somDispatchD */
/* the va_list invocation form */
double BOA_somDispatchD(somId methodId,
somId descriptor,
va_list ap)
{
return SOM_ResolveD(this,BOA,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,BOA,SOMObject,somDispatchD)
(this,methodId,descriptor,ap);
va_end(ap);
return __somResult;
}
/* method: somPrintSelf */
SOMObject* somPrintSelf()
{
return SOM_ResolveD(this,BOA,SOMObject,somPrintSelf)
(this);
}
/* method: somDumpSelf */
void somDumpSelf(long level)
{
SOM_ResolveD(this,BOA,SOMObject,somDumpSelf)
(this,level);
}
/* method: somDumpSelfInt */
void somDumpSelfInt(long level)
{
SOM_ResolveD(this,BOA,SOMObject,somDumpSelfInt)
(this,level);
}
}; /* BOA */
#endif /* SOM_BOA_xh */