home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
tolkit45.zip
/
os2tk45
/
som
/
include
/
somdcprx.xh
< prev
next >
Wrap
Text File
|
1999-02-22
|
34KB
|
1,082 lines
/*
* This file was generated by the SOM Compiler.
* FileName: somdcprx.xh.
* Generated using:
* SOM Precompiler somipc: 2.29.1.17
* SOM Emitter emitxh: 2.47
*/
/*
* This is the class that implements DSOM proxy objects in clients.
*
* This class is a subclass of SOMDObject. It inherits the basic behavior
* (methods) of a CORBA object reference from that parent class.
* Thus, it "is a" SOMDObject.
*
* This class overrides the usual somDispatch methods with versions
* that build a DSOM Request for the invocation and dispatch it, remotely.
* It is intended that the implementation of this "generic" proxy class
* will be used to derive specific proxy classes via multiple inheritance.
* The new dispatch method is inherited from this client proxy class, while
* the desired interface--and language bindings--are inherited from the
* target class (but no implementation).
*
* E.g.,
* SOMDClientProxy Animal
* \ /
* \ / (interface only)
* \ /
* Animal__Proxy
*
* Note that SOMDClientProxy is an instance of SOMDMetaProxy.
*/
#ifndef SOM_SOMDClientProxy_xh
#define SOM_SOMDClientProxy_xh
class SOMDClientProxy;
/*
* To aid in distribution transparency, the following SOMObject methods
* are FORWARDED to the remote object:
* somFree
* somGetClass
* somGetClassName
* somDestruct (unless the remote connection is no longer valid)
* somDefaultInit (when the proxy has already been initialized)
* all assignment operator and copy constructor methods
* (requires that the "fromObj" parameter also be a proxy
* that refers to an object in the same address space.
*
* The following additional methods are provided to explicitly direct
* method calls to the local proxy or to the remote object.
*/
#define SOMDClientProxy_MajorVersion 2
#define SOMDClientProxy_MinorVersion 1
/* C++ SOM defs */
#include <somcls.xh>
#include <somcm.xh>
/* C++ parent defs */
#ifndef SOM_SOMDObject_xh
#include <somdobj.xh>
#endif
#ifndef SOMDClientProxy_API
#define SOMDClientProxy_API
/*
* -- The Class API
*/
/*
* Start of bindings for IDL types
*/
class SOMClass;
class SOMObject;
class Container;
class ImplementationDef;
class InterfaceDef;
class NVList;
class Context;
class Request;
class CommBinding;
class somdMemoryMgr;
/*
* End of bindings for IDL types.
*/
/* A procedure to create the SOMDClientProxy Class */
SOMEXTERN SOMClass * SOMLINK SOMDClientProxyNewClass(
integer4 majorVersion,
integer4 minorVersion);
/* The API to the SOMDClientProxy class object, and the methods it introduces. */
SOMEXTERN struct SOMDClientProxyClassDataStructure {
SOMClass *classObject;
somMToken somdTargetFree;
somMToken somdTargetGetClass;
somMToken somdTargetGetClassName;
somMToken somdProxyFree;
somMToken somdProxyGetClass;
somMToken somdProxyGetClassName;
somMToken set_binding;
somMToken get_binding;
somMToken reset_binding;
somMToken _get_ctx_seq;
somMToken _set_ctx_seq;
somMToken somdReleaseResources;
somMToken _get_memoryMgr;
} SOMDLINK SOMDClientProxyClassData;
#define _SOMDClientProxy SOMDClientProxyClassData.classObject
/* The API to parentMtabs for SOMDClientProxy, and the instance data it introduces. */
SOMEXTERN struct SOMDClientProxyCClassDataStructure {
somMethodTabs parentMtab;
somDToken instanceDataToken;
} SOMDLINK SOMDClientProxyCClassData;
/*
* -- Typedefs for SOMDClientProxy Method Procedures
*/
SOMEXTERN {
typedef void SOMLINK somTP_SOMDClientProxy_somdTargetFree(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_somdTargetFree *somTD_SOMDClientProxy_somdTargetFree;
typedef SOMClass* SOMLINK somTP_SOMDClientProxy_somdTargetGetClass(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_somdTargetGetClass *somTD_SOMDClientProxy_somdTargetGetClass;
typedef string SOMLINK somTP_SOMDClientProxy_somdTargetGetClassName(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_somdTargetGetClassName *somTD_SOMDClientProxy_somdTargetGetClassName;
typedef void SOMLINK somTP_SOMDClientProxy_somdProxyFree(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_somdProxyFree *somTD_SOMDClientProxy_somdProxyFree;
typedef SOMClass* SOMLINK somTP_SOMDClientProxy_somdProxyGetClass(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_somdProxyGetClass *somTD_SOMDClientProxy_somdProxyGetClass;
typedef string SOMLINK somTP_SOMDClientProxy_somdProxyGetClassName(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_somdProxyGetClassName *somTD_SOMDClientProxy_somdProxyGetClassName;
typedef void SOMLINK somTP_SOMDClientProxy_somdReleaseResources(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_somdReleaseResources *somTD_SOMDClientProxy_somdReleaseResources;
/*
* -- Typedefs for Reintroduced Wrapper Methods
*/
typedef ImplementationDef* SOMLINK somTP_SOMDClientProxy_get_implementation(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_get_implementation *somTD_SOMDClientProxy_get_implementation;
typedef InterfaceDef* SOMLINK somTP_SOMDClientProxy_get_interface(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_get_interface *somTD_SOMDClientProxy_get_interface;
typedef boolean SOMLINK somTP_SOMDClientProxy_is_nil(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_is_nil *somTD_SOMDClientProxy_is_nil;
typedef boolean SOMLINK somTP_SOMDClientProxy_is_SOM_ref(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_is_SOM_ref *somTD_SOMDClientProxy_is_SOM_ref;
typedef boolean SOMLINK somTP_SOMDClientProxy_is_constant(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_is_constant *somTD_SOMDClientProxy_is_constant;
typedef boolean SOMLINK somTP_SOMDClientProxy_is_proxy(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_is_proxy *somTD_SOMDClientProxy_is_proxy;
typedef SOMDObject* SOMLINK somTP_SOMDClientProxy_duplicate(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_duplicate *somTD_SOMDClientProxy_duplicate;
typedef void SOMLINK somTP_SOMDClientProxy_release(SOMDClientProxy *somSelf, Environment *ev);
typedef somTP_SOMDClientProxy_release *somTD_SOMDClientProxy_release;
typedef ORBStatus SOMLINK somTP_SOMDClientProxy_create_request(SOMDClientProxy *somSelf, Environment *ev,
Context* ctx,
Identifier operation,
NVList* arg_list,
NamedValue* result,
Request** request,
Flags req_flags);
typedef somTP_SOMDClientProxy_create_request *somTD_SOMDClientProxy_create_request;
typedef ORBStatus SOMLINK somTP_SOMDClientProxy_create_request_args(SOMDClientProxy *somSelf, Environment *ev,
Identifier operation,
NVList** arg_list,
NamedValue* result);
typedef somTP_SOMDClientProxy_create_request_args *somTD_SOMDClientProxy_create_request_args;
typedef void SOMLINK somTP_SOMDClientProxy_somDefaultInit(SOMDClientProxy *somSelf,
som3InitCtrl* ctrl);
typedef somTP_SOMDClientProxy_somDefaultInit *somTD_SOMDClientProxy_somDefaultInit;
typedef void SOMLINK somTP_SOMDClientProxy_somDestruct(SOMDClientProxy *somSelf,
octet doFree,
som3DestructCtrl* ctrl);
typedef somTP_SOMDClientProxy_somDestruct *somTD_SOMDClientProxy_somDestruct;
typedef void SOMLINK somTP_SOMDClientProxy_somDumpSelfInt(SOMDClientProxy *somSelf,
long level);
typedef somTP_SOMDClientProxy_somDumpSelfInt *somTD_SOMDClientProxy_somDumpSelfInt;
typedef void SOMLINK somTP_SOMDClientProxy_somDefaultCopyInit(SOMDClientProxy *somSelf,
som3InitCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMDClientProxy_somDefaultCopyInit *somTD_SOMDClientProxy_somDefaultCopyInit;
typedef SOMDClientProxy* SOMLINK somTP_SOMDClientProxy_somDefaultAssign(SOMDClientProxy *somSelf,
som3AssignCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMDClientProxy_somDefaultAssign *somTD_SOMDClientProxy_somDefaultAssign;
typedef void SOMLINK somTP_SOMDClientProxy_somDefaultConstCopyInit(SOMDClientProxy *somSelf,
som3InitCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMDClientProxy_somDefaultConstCopyInit *somTD_SOMDClientProxy_somDefaultConstCopyInit;
typedef void SOMLINK somTP_SOMDClientProxy_somDefaultVCopyInit(SOMDClientProxy *somSelf,
som3InitCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMDClientProxy_somDefaultVCopyInit *somTD_SOMDClientProxy_somDefaultVCopyInit;
typedef void SOMLINK somTP_SOMDClientProxy_somDefaultConstVCopyInit(SOMDClientProxy *somSelf,
som3InitCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMDClientProxy_somDefaultConstVCopyInit *somTD_SOMDClientProxy_somDefaultConstVCopyInit;
typedef SOMDClientProxy* SOMLINK somTP_SOMDClientProxy_somDefaultConstAssign(SOMDClientProxy *somSelf,
som3AssignCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMDClientProxy_somDefaultConstAssign *somTD_SOMDClientProxy_somDefaultConstAssign;
typedef SOMDClientProxy* SOMLINK somTP_SOMDClientProxy_somDefaultVAssign(SOMDClientProxy *somSelf,
som3AssignCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMDClientProxy_somDefaultVAssign *somTD_SOMDClientProxy_somDefaultVAssign;
typedef SOMDClientProxy* SOMLINK somTP_SOMDClientProxy_somDefaultConstVAssign(SOMDClientProxy *somSelf,
som3AssignCtrl* ctrl,
SOMObject* fromObj);
typedef somTP_SOMDClientProxy_somDefaultConstVAssign *somTD_SOMDClientProxy_somDefaultConstVAssign;
typedef void SOMLINK somTP_SOMDClientProxy_somInit(SOMDClientProxy *somSelf);
typedef somTP_SOMDClientProxy_somInit *somTD_SOMDClientProxy_somInit;
typedef void SOMLINK somTP_SOMDClientProxy_somFree(SOMDClientProxy *somSelf);
typedef somTP_SOMDClientProxy_somFree *somTD_SOMDClientProxy_somFree;
typedef void SOMLINK somTP_SOMDClientProxy_somUninit(SOMDClientProxy *somSelf);
typedef somTP_SOMDClientProxy_somUninit *somTD_SOMDClientProxy_somUninit;
typedef SOMClass* SOMLINK somTP_SOMDClientProxy_somGetClass(SOMDClientProxy *somSelf);
typedef somTP_SOMDClientProxy_somGetClass *somTD_SOMDClientProxy_somGetClass;
typedef string SOMLINK somTP_SOMDClientProxy_somGetClassName(SOMDClientProxy *somSelf);
typedef somTP_SOMDClientProxy_somGetClassName *somTD_SOMDClientProxy_somGetClassName;
typedef long SOMLINK somTP_SOMDClientProxy_somGetSize(SOMDClientProxy *somSelf);
typedef somTP_SOMDClientProxy_somGetSize *somTD_SOMDClientProxy_somGetSize;
typedef boolean SOMLINK somTP_SOMDClientProxy_somIsA(SOMDClientProxy *somSelf,
SOMClass* aClassObj);
typedef somTP_SOMDClientProxy_somIsA *somTD_SOMDClientProxy_somIsA;
typedef boolean SOMLINK somTP_SOMDClientProxy_somIsInstanceOf(SOMDClientProxy *somSelf,
SOMClass* aClassObj);
typedef somTP_SOMDClientProxy_somIsInstanceOf *somTD_SOMDClientProxy_somIsInstanceOf;
typedef boolean SOMLINK somTP_SOMDClientProxy_somRespondsTo(SOMDClientProxy *somSelf,
somId mId);
typedef somTP_SOMDClientProxy_somRespondsTo *somTD_SOMDClientProxy_somRespondsTo;
typedef boolean SOMLINK somTP_SOMDClientProxy_somDispatch(SOMDClientProxy *somSelf,
somToken* retValue,
somId methodId,
va_list ap);
typedef somTP_SOMDClientProxy_somDispatch *somTD_SOMDClientProxy_somDispatch;
typedef boolean SOMLINK somTP_SOMDClientProxy_somClassDispatch(SOMDClientProxy *somSelf,
SOMClass* clsObj,
somToken* retValue,
somId methodId,
va_list ap);
typedef somTP_SOMDClientProxy_somClassDispatch *somTD_SOMDClientProxy_somClassDispatch;
typedef boolean SOMLINK somTP_SOMDClientProxy_somCastObj(SOMDClientProxy *somSelf,
SOMClass* cls);
typedef somTP_SOMDClientProxy_somCastObj *somTD_SOMDClientProxy_somCastObj;
typedef boolean SOMLINK somTP_SOMDClientProxy_somResetObj(SOMDClientProxy *somSelf);
typedef somTP_SOMDClientProxy_somResetObj *somTD_SOMDClientProxy_somResetObj;
typedef void SOMLINK somTP_SOMDClientProxy_somDispatchV(SOMDClientProxy *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef somTP_SOMDClientProxy_somDispatchV *somTD_SOMDClientProxy_somDispatchV;
typedef long SOMLINK somTP_SOMDClientProxy_somDispatchL(SOMDClientProxy *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef somTP_SOMDClientProxy_somDispatchL *somTD_SOMDClientProxy_somDispatchL;
typedef void* SOMLINK somTP_SOMDClientProxy_somDispatchA(SOMDClientProxy *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef somTP_SOMDClientProxy_somDispatchA *somTD_SOMDClientProxy_somDispatchA;
typedef double SOMLINK somTP_SOMDClientProxy_somDispatchD(SOMDClientProxy *somSelf,
somId methodId,
somId descriptor,
va_list ap);
typedef somTP_SOMDClientProxy_somDispatchD *somTD_SOMDClientProxy_somDispatchD;
typedef SOMObject* SOMLINK somTP_SOMDClientProxy_somPrintSelf(SOMDClientProxy *somSelf);
typedef somTP_SOMDClientProxy_somPrintSelf *somTD_SOMDClientProxy_somPrintSelf;
typedef void SOMLINK somTP_SOMDClientProxy_somDumpSelf(SOMDClientProxy *somSelf,
long level);
typedef somTP_SOMDClientProxy_somDumpSelf *somTD_SOMDClientProxy_somDumpSelf;
}
#endif /* SOMDClientProxy_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 SOMDClientProxy
*/
class SOMDClientProxy : public SOMDObject
{
/*
* To aid in distribution transparency, the following SOMObject methods
* are FORWARDED to the remote object:
* somFree
* somGetClass
* somGetClassName
* somDestruct (unless the remote connection is no longer valid)
* somDefaultInit (when the proxy has already been initialized)
* all assignment operator and copy constructor methods
* (requires that the "fromObj" parameter also be a proxy
* that refers to an object in the same address space.
*
* The following additional methods are provided to explicitly direct
* method calls to the local proxy or to the remote object.
*/
public:
// SOMDClientProxy::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 (!_SOMDClientProxy) SOMDClientProxyNewClass(SOMDClientProxy_MajorVersion,SOMDClientProxy_MinorVersion);
return (void*)
SOM_Resolve(_SOMDClientProxy,SOMClass,somNewNoInit)
((SOMClass *)((void*)_SOMDClientProxy));
}
// SOMDClientProxy::delete uses somDestruct.
void operator delete(void * obj)
{
if (obj && *(void**)obj) {
SOM_Resolve(obj,SOMObject,somFree)
((SOMObject*)obj);
}
}
SOMDClientProxy& operator=(SOMDClientProxy& fromObj)
{
this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
return *this;
}
SOMDClientProxy()
{
if (*(void**)this !=
((somParentMtabStructPtr)
(SOMDClientProxyCClassData.parentMtab))->mtab)
return;
((SOMObject*)((void*)this))->somDefaultInit(0);
}
SOMDClientProxy(SOMDClientProxy* fromObj)
{
if (*(void**)this !=
((somParentMtabStructPtr)
(SOMDClientProxyCClassData.parentMtab))->mtab)
return;
((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}
#ifdef __IBMCPP__
#pragma info(nocnv,nopar)
#endif
SOMDClientProxy(const SOMDClientProxy* fromObj)
{
if (*(void**)this !=
((somParentMtabStructPtr)
(SOMDClientProxyCClassData.parentMtab))->mtab)
return;
((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
}
#ifdef __IBMCPP__
#pragma info(restore)
#endif
/* method: somdTargetFree */
void somdTargetFree(Environment *ev)
{
/*
* Forwards _somFree method call to the remote target object.
*/
SOM_ResolveD(this,SOMDClientProxy,SOMDClientProxy,somdTargetFree)
(this, ev);
}
/* method: somdTargetGetClass */
SOMClass* somdTargetGetClass(Environment *ev)
{
/*
* Forwards _somGetClass method call to the remote target object.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMDClientProxy,somdTargetGetClass)
(this, ev);
}
/* method: somdTargetGetClassName */
string somdTargetGetClassName(Environment *ev)
{
/*
* Forwards _somGetClassName method call to the remote target object.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMDClientProxy,somdTargetGetClassName)
(this, ev);
}
/* method: somdProxyFree */
void somdProxyFree(Environment *ev)
{
/*
* Performs _somFree method call on the local proxy object.
*/
SOM_ResolveD(this,SOMDClientProxy,SOMDClientProxy,somdProxyFree)
(this, ev);
}
/* method: somdProxyGetClass */
SOMClass* somdProxyGetClass(Environment *ev)
{
/*
* Performs _somGetClass method call on the local proxy object.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMDClientProxy,somdProxyGetClass)
(this, ev);
}
/* method: somdProxyGetClassName */
string somdProxyGetClassName(Environment *ev)
{
/*
* Performs _somGetClassName method call on the local proxy object.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMDClientProxy,somdProxyGetClassName)
(this, ev);
}
/* method: somdReleaseResources */
void somdReleaseResources(Environment *ev)
{
/*
* Instructs the proxy to free any memory it owns for use by the client.
*/
SOM_ResolveD(this,SOMDClientProxy,SOMDClientProxy,somdReleaseResources)
(this, ev);
}
/*
* Reintroduce inherited methods
*/
/* method: get_implementation */
ImplementationDef* get_implementation(Environment *ev)
{
/*
* Returns the implementation definition for the referenced object.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMDObject,get_implementation)
(this, ev);
}
/* method: get_interface */
InterfaceDef* get_interface(Environment *ev)
{
/*
* Returns the interface definition for the referenced object.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMDObject,get_interface)
(this, ev);
}
/* procedure: is_nil */
static boolean is_nil(SOMDClientProxy *somSelf, Environment *ev)
{
/*
* Tests to see if the object reference is nil.
* This is a procedure method. Therefore, it can be invoked on OBJECT_NIL
* (a null pointer), but it cannot be overridden.
*/
return ((somTD_SOMDClientProxy_is_nil)SOMDObjectClassData.is_nil)
(somSelf, ev);
}
/* method: is_SOM_ref */
boolean is_SOM_ref(Environment *ev)
{
/*
* Returns TRUE if object reference was created by SOMOA::create_SOM_ref
* else returns FALSE.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMDObject,is_SOM_ref)
(this, ev);
}
/* method: is_constant */
boolean is_constant(Environment *ev)
{
/*
* Returns TRUE if object reference was created by SOMOA::create_constant
* else returns FALSE.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMDObject,is_constant)
(this, ev);
}
/* method: is_proxy */
boolean is_proxy(Environment *ev)
{
/*
* Returns TRUE if object reference (self) is a DSOM client proxy object
* (i.e., the target object is remote). Returns FALSE if the referenced
* object is in the same process as the reference.
*
* The default implementation returns FALSE. Proxy classes which are
* subclasses of SOMDObject (like SOMDClientProxy) should override this
* method to return TRUE.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMDObject,is_proxy)
(this, ev);
}
/* method: duplicate */
SOMDObject* duplicate(Environment *ev)
{
/*
* Makes a duplicate of the object reference.
* OWNERSHIP of returned object is transferred to the caller.
* Call release to free the object.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMDObject,duplicate)
(this, ev);
}
/* method: release */
void release(Environment *ev)
{
/*
* Releases the memory associated with the object reference.
*/
SOM_ResolveD(this,SOMDClientProxy,SOMDObject,release)
(this, ev);
}
/* method: create_request */
ORBStatus create_request(Environment *ev,
Context* ctx,
Identifier operation,
NVList* arg_list,
NamedValue* result,
Request** request,
Flags req_flags)
{
/*
* Creates a request to execute a particular operation on the
* referenced object.
*
* CORBA 1.1 introduces this method in this class, but DSOM actually
* implements this method in the SOMDClientProxy subclass.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMDObject,create_request)
(this, ev,ctx,operation,arg_list,result,request,req_flags);
}
/* method: create_request_args */
ORBStatus create_request_args(Environment *ev,
Identifier operation,
NVList** arg_list,
NamedValue* result)
{
/*
* Creates the appropriate arg_list (NVList) for the specified operation.
* Also creates a NamedValue to hold the result.
* (Similar in function to ORB_create_operation_list.)
*
* This method is defined in this class, as a companion to the
* "create_request" method, but DSOM implements this method in the
* SOMDClientProxy subclass.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMDObject,create_request_args)
(this, ev,operation,arg_list,result);
}
/* method: somDefaultInit */
void somDefaultInit(som3InitCtrl* ctrl)
{
SOM_ResolveD(this,SOMDClientProxy,SOMObject,somDefaultInit)
(this,ctrl);
}
/* method: somDestruct */
void somDestruct(octet doFree,
som3DestructCtrl* ctrl)
{
SOM_ResolveD(this,SOMDClientProxy,SOMObject,somDestruct)
(this,doFree,ctrl);
}
/* method: somDumpSelfInt */
void somDumpSelfInt(long level)
{
SOM_ResolveD(this,SOMDClientProxy,SOMObject,somDumpSelfInt)
(this,level);
}
/* 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,SOMDClientProxy,SOMObject,somDefaultCopyInit)
(this,ctrl,fromObj);
}
/* method: somDefaultAssign */
SOMDClientProxy* somDefaultAssign(som3AssignCtrl* ctrl,
SOMObject* fromObj)
{
/*
* A default assignment operator. Use this to "assign" the state of one
* object to another.
*/
return SOM_ResolveD(this,SOMDClientProxy,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,SOMDClientProxy,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,SOMDClientProxy,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,SOMDClientProxy,SOMObject,somDefaultConstVCopyInit)
(this,ctrl,fromObj);
}
/* method: somDefaultConstAssign */
SOMDClientProxy* somDefaultConstAssign(som3AssignCtrl* ctrl,
SOMObject* fromObj)
{
/*
* A default assignment operator that uses a const fromObj.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMObject,somDefaultConstAssign)
(this,ctrl,fromObj);
}
/* method: somDefaultVAssign */
SOMDClientProxy* somDefaultVAssign(som3AssignCtrl* ctrl,
SOMObject* fromObj)
{
/*
* A default assignment operator that uses a volatile fromObj.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMObject,somDefaultVAssign)
(this,ctrl,fromObj);
}
/* method: somDefaultConstVAssign */
SOMDClientProxy* somDefaultConstVAssign(som3AssignCtrl* ctrl,
SOMObject* fromObj)
{
/*
* A default assignment operator that uses a const volatile fromObj.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMObject,somDefaultConstVAssign)
(this,ctrl,fromObj);
}
/* method: somInit */
void somInit()
{
/*
* Obsolete but still supported. Override somDefaultInit instead of somInit.
*/
SOM_ResolveD(this,SOMDClientProxy,SOMObject,somInit)
(this);
}
/* method: somFree */
void somFree()
{
/*
* Use as directed by framework implementations.
*/
SOM_ResolveD(this,SOMDClientProxy,SOMObject,somFree)
(this);
}
/* method: somUninit */
void somUninit()
{
/*
* Obsolete but still supported. Override somDestruct instead of somUninit.
*/
SOM_ResolveD(this,SOMDClientProxy,SOMObject,somUninit)
(this);
}
/* method: somGetClass */
SOMClass* somGetClass()
{
/*
* Return the receiver's class.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMObject,somGetClass)
(this);
}
/* method: somGetClassName */
string somGetClassName()
{
/*
* Return the name of the receiver's class.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMObject,somGetClassName)
(this);
}
/* method: somGetSize */
long somGetSize()
{
/*
* Return the size of the receiver.
*/
return SOM_ResolveD(this,SOMDClientProxy,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,SOMDClientProxy,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,SOMDClientProxy,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,SOMDClientProxy,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 SOMDClientProxy_somDispatch(somToken* retValue,
somId methodId,
va_list ap)
{return SOM_ResolveD(this,SOMDClientProxy,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,SOMDClientProxy,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 SOMDClientProxy_somClassDispatch(SOMClass* clsObj,
somToken* retValue,
somId methodId,
va_list ap)
{return SOM_ResolveD(this,SOMDClientProxy,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,SOMDClientProxy,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,SOMDClientProxy,SOMObject,somCastObj)
(this,cls);
}
/* method: somResetObj */
boolean somResetObj()
{
/*
* reset an object to its true class. Returns true always.
*/
return SOM_ResolveD(this,SOMDClientProxy,SOMObject,somResetObj)
(this);
}
/* va_list method: somDispatchV */
/*
* Obsolete. Use somDispatch instead.
*/
/* the va_list invocation form */
void SOMDClientProxy_somDispatchV(somId methodId,
somId descriptor,
va_list ap)
{ SOM_ResolveD(this,SOMDClientProxy,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,SOMDClientProxy,SOMObject,somDispatchV)
(this,methodId,descriptor,ap);
va_end(ap);
}
/* va_list method: somDispatchL */
/*
* Obsolete. Use somDispatch instead.
*/
/* the va_list invocation form */
long SOMDClientProxy_somDispatchL(somId methodId,
somId descriptor,
va_list ap)
{return SOM_ResolveD(this,SOMDClientProxy,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,SOMDClientProxy,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* SOMDClientProxy_somDispatchA(somId methodId,
somId descriptor,
va_list ap)
{return SOM_ResolveD(this,SOMDClientProxy,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,SOMDClientProxy,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 SOMDClientProxy_somDispatchD(somId methodId,
somId descriptor,
va_list ap)
{return SOM_ResolveD(this,SOMDClientProxy,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,SOMDClientProxy,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,SOMDClientProxy,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,SOMDClientProxy,SOMObject,somDumpSelf)
(this,level);
}
}; /* SOMDClientProxy */
#endif /* SOM_SOMDClientProxy_xh */