home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
som30tk.zip
/
som30os2.zip
/
include
/
somdobj.idl
< prev
next >
Wrap
Text File
|
1996-12-24
|
5KB
|
174 lines
/*
* @(#) 2.37 src/somd/somdobj.idl, somd, som3.0 9/26/96 14:02:18 [12/24/96 07:39:37]
*/
//
// COMPONENT_NAME: somd
//
// ORIGINS: 27
//
// 25H7912 (C) COPYRIGHT International Business Machines Corp. 1992,1994,1996
// 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.
//
//# SOMDObject is a PUBLIC class derived from SOMObject.
//
// This is the class that implements the behavior of CORBA object references,
// e.g., get_implementation, get_interface, duplicate, release, etc.
//
// In DSOM, there is also another derivation of this class: SOMDClientProxy.
// This subclass inherits the implementation of this class, but extends it
// by overriding sommProxyDispatch with a "remote dispatch" method, and
// caches the binding to the server process. Whenever a remote object is
// accessed, it is represented in the client process by a SOMDClientProxy
// object.
#ifndef somdobj_idl
#define somdobj_idl
#include <somobj.idl>
#include <unotypes.idl>
interface ImplementationDef;
interface InterfaceDef;
interface NVList;
interface Context;
interface Request;
interface SOMDObject : SOMObject
{
boolean is_nil();
// Tests to see if the target object is nil. This is a procedure
// method. Therefore, it can be invoked on OBJECT_NIL (a null pointer),
// but it cannot be overridden.
boolean is_SOM_ref();
// Returns TRUE if target object was created by SOMOA::create_SOM_ref.
// This method can only be called from a server.
// SOM extension.
boolean is_constant();
// Returns TRUE if target object was created by SOMOA::create_SOM_ref or
// SOMOA::create_constant. Indicates ReferenceData cannot be changed.
// This method can only be called from a server.
// SOM extension.
ImplementationDef get_implementation();
// Returns the implementation definition of the target object.
InterfaceDef get_interface();
// Returns the interface definition of the target object.
boolean is_proxy();
// Returns TRUE if target object is a proxy object (i.e., the target object
// is remote). The default implementation returns FALSE. Proxy classes
// which are subclasses of SOMDObject (e.g. SOMDClientProxy) should override
// this method to return TRUE.
// SOM extension.
SOMObject duplicate();
// Returns a double of the target object.
// OWNERSHIP of returned object is transferred to the caller.
void release();
// Frees the memory associated with the target object.
ORBStatus create_request(in Context ctx, in Identifier operation,
in NVList arg_list, inout NamedValue result,
out Request request, in Flags req_flags);
// Creates a request to execute a particular operation on the target
// object. CORBA introduces this method in this class, but DSOM actually
// implements this method in the SOMDClientProxy subclass.
ORBStatus create_request_args(in Identifier operation, out NVList arg_list,
out NamedValue result);
// Creates the appropriate NVList for the specified operation and 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 "create_request", but DSOM implements this method in the
// SOMDClientProxy subclass.
attribute string type_id;
// IDL-format repository ID. Format defined by OMG Interface
// Repository Specificiation.
#ifdef __SOMIDL__
// D21205: Move _get_somd_id, _set_somd_id, _get_tagged_profiles,
// _set_tagged_profiles to private.
implementation
{
releaseorder: get_implementation, get_interface, unused1,
is_nil, is_SOM_ref, is_constant, is_proxy,
duplicate, release, create_request, create_request_args,
private1,
private2, private3,
private4, private5,
private6, private7,
private8, private9,
private10, private11,
_get_type_id, _set_type_id;
//# class modifiers
callstyle = idl;
dllname = "somd.dll";
majorversion = 2;
minorversion = 2;
//# method modifiers
somDefaultInit: override;
somDestruct: override;
somDumpSelfInt: override;
is_nil: procedure;
passthru C_h_before = ""
"#include <somdtype.h>"
"#ifndef SOM_DONT_USE_SHORT_NAMES"
"#define SOM_DONT_USE_SHORT_NAMES"
"#include <unotypes.h>"
"#undef SOM_DONT_USE_SHORT_NAMES"
"#else"
"#include <unotypes.h>"
"#endif"
"";
passthru C_xh_before = ""
"#include <somdtype.xh>"
"#ifndef SOM_DONT_USE_SHORT_NAMES"
"#define SOM_DONT_USE_SHORT_NAMES"
"#include <unotypes.xh>"
"#undef SOM_DONT_USE_SHORT_NAMES"
"#else"
"#include <unotypes.xh>"
"#endif"
"";
};
#endif /* __SOMIDL__ */
};
#endif /* somdobj_idl */