home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / som / include / somdobj.h < prev    next >
C/C++ Source or Header  |  1999-02-22  |  16KB  |  465 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: somdobj.h.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emith: 2.47
  8.  */
  9.  
  10. /*
  11.  *    Interface for CORBA Object Reference.
  12.  * 
  13.  *    This is the class that implements the behavior of CORBA object references,
  14.  *    e.g., get_implementation, get_interface, duplicate, release, etc.
  15.  * 
  16.  *    In addition, there are some private methods, which are exposed only to
  17.  *    the ORB classes, to implement the ORB functions related to object
  18.  *    references (e.g., ORB_object_to_string).
  19.  * 
  20.  *    In DSOM, there is also another derivation of this class:  SOMDClientProxy.
  21.  *    This subclass inherits the implementation of this class, but extends it
  22.  *    by overriding somDispatch with a "remote dispatch" method, and caches the
  23.  *    binding to the server process.  Whenever a remote object is accessed, it
  24.  *    is represented in the client process by a SOMDClientProxy object.
  25.  * 
  26.  * 
  27.  */
  28.  
  29.  
  30. #ifndef SOM_SOMDObject_h
  31. #define SOM_SOMDObject_h
  32.  
  33.  
  34. /*
  35.  * Passthru lines: File: "C.h", "before"
  36.  */
  37.  
  38. #include <somdtype.h>
  39.  
  40.  
  41. #include <som.h>
  42.  
  43. /*
  44.  * -- This emitter treats Method Tokens as Thunks by default.
  45.  * -- Use the sc modifier "nothunks" to change this default
  46.  */
  47. #undef somresolve_
  48. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  49.  
  50. /*
  51.  * Define the class name as an object type
  52.  */
  53. #ifndef SOMDObject
  54. #define SOMDObject SOMObject
  55. #endif
  56. #include <somobj.h>
  57.  
  58. /*
  59.  * Start of bindings for IDL types
  60.  */
  61.  
  62. #ifndef SOMClass
  63.     #define SOMClass SOMObject
  64. #endif /* SOMClass */
  65. #ifndef Container
  66.     #define Container SOMObject
  67. #endif /* Container */
  68. #ifndef ImplementationDef
  69.     #define ImplementationDef SOMObject
  70. #endif /* ImplementationDef */
  71. #ifndef InterfaceDef
  72.     #define InterfaceDef SOMObject
  73. #endif /* InterfaceDef */
  74. #ifndef NVList
  75.     #define NVList SOMObject
  76. #endif /* NVList */
  77. #ifndef Context
  78.     #define Context SOMObject
  79. #endif /* Context */
  80. #ifndef Request
  81.     #define Request SOMObject
  82. #endif /* Request */
  83.  
  84. /*
  85.  * End of bindings for IDL types.
  86.  */
  87.  
  88. #define SOMDObject_MajorVersion 2
  89. #define SOMDObject_MinorVersion 1
  90.  
  91. /*
  92.  * External name shortening if required
  93.  */
  94. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  95. #define SOMDObjectNewClass c
  96. #pragma linkage(c, system)
  97. #define SOMDObjectClassData d
  98. #define SOMDObjectCClassData x
  99. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  100. /*--------------Migration------------*/
  101. #define SOMDObject_classObj SOMDObjectClassData.classObject
  102. #define _SOMDObject SOMDObject_classObj
  103.  
  104. /*
  105.  * Declare the class creation procedure
  106.  */
  107. SOMEXTERN SOMClass * SOMLINK SOMDObjectNewClass(integer4 somtmajorVersion,
  108.         integer4 somtminorVersion);
  109. #pragma linkage(SOMDObjectNewClass, system)
  110.  
  111. /*
  112.  * Declare the class data structure
  113.  */
  114. SOMEXTERN struct SOMDObjectClassDataStructure {
  115.     SOMClass *classObject;
  116.     somMToken get_implementation;
  117.     somMToken get_interface;
  118.     somMToken set_to_nil;
  119.     somMethodProc *is_nil;
  120.     somMToken is_SOM_ref;
  121.     somMToken is_constant;
  122.     somMToken is_proxy;
  123.     somMToken duplicate;
  124.     somMToken release;
  125.     somMToken create_request;
  126.     somMToken create_request_args;
  127.     somMToken _get_somd_tag;
  128.     somMToken _get_somd_flags;
  129.     somMToken _set_somd_flags;
  130.     somMToken _get_somd_impl;
  131.     somMToken _set_somd_impl;
  132.     somMToken _get_somd_rid;
  133.     somMToken _set_somd_rid;
  134.     somMToken _get_somd_id;
  135.     somMToken _set_somd_id;
  136. } SOMDLINK SOMDObjectClassData;
  137.  
  138. /*
  139.  * Declare the C specific class data structure
  140.  */
  141. SOMEXTERN struct SOMDObjectCClassDataStructure {
  142.     somMethodTabs parentMtab;
  143.     somDToken instanceDataToken;
  144. } SOMDLINK SOMDObjectCClassData;
  145.  
  146. /*
  147.  * New and Renew macros for SOMDObject
  148.  */
  149. #define SOMDObjectNew() \
  150.    ( _SOMDObject ? \
  151.     _somNew(_SOMDObject) \
  152.     : ( SOMDObjectNewClass(\
  153.         SOMDObject_MajorVersion, \
  154.         SOMDObject_MinorVersion),\
  155.        _somNew(_SOMDObject)))
  156. #define SOMDObjectRenew(buf) \
  157.    ( _SOMDObject ? \
  158.     _somRenew(_SOMDObject, buf) \
  159.     : ( SOMDObjectNewClass(\
  160.         SOMDObject_MajorVersion, \
  161.         SOMDObject_MinorVersion),\
  162.        _somRenew(_SOMDObject, buf)))
  163.  
  164. /*
  165.  * Override method: somDefaultInit
  166.  */
  167. #define SOMDObject_somDefaultInit(somSelf,ctrl) \
  168.     SOMObject_somDefaultInit(somSelf,ctrl)
  169.  
  170. /*
  171.  * Override method: somDestruct
  172.  */
  173. #define SOMDObject_somDestruct(somSelf,doFree,ctrl) \
  174.     SOMObject_somDestruct(somSelf,doFree,ctrl)
  175.  
  176. /*
  177.  * Override method: somDumpSelfInt
  178.  */
  179. #define SOMDObject_somDumpSelfInt(somSelf,level) \
  180.     SOMObject_somDumpSelfInt(somSelf,level)
  181.  
  182. /*
  183.  * New Method: get_implementation
  184.  */
  185. typedef ImplementationDef*   SOMLINK somTP_SOMDObject_get_implementation(SOMDObject *somSelf, Environment *ev);
  186. #pragma linkage(somTP_SOMDObject_get_implementation, system)
  187. typedef somTP_SOMDObject_get_implementation *somTD_SOMDObject_get_implementation;
  188. /*
  189.  *  Returns the implementation definition for the referenced object.
  190.  */
  191. #define somMD_SOMDObject_get_implementation "::SOMDObject::get_implementation"
  192. #define SOMDObject_get_implementation(somSelf,ev) \
  193.     (SOM_Resolve(somSelf, SOMDObject, get_implementation) \
  194.     (somSelf,ev))
  195. #ifndef SOMGD_get_implementation
  196.     #if (defined(_get_implementation) || defined(__get_implementation))
  197.         #undef _get_implementation
  198.         #undef __get_implementation
  199.         #define SOMGD_get_implementation 1
  200.     #else
  201.         #define _get_implementation SOMDObject_get_implementation
  202.     #endif /* _get_implementation */
  203. #endif /* SOMGD_get_implementation */
  204.  
  205. /*
  206.  * New Method: get_interface
  207.  */
  208. typedef InterfaceDef*   SOMLINK somTP_SOMDObject_get_interface(SOMDObject *somSelf, Environment *ev);
  209. #pragma linkage(somTP_SOMDObject_get_interface, system)
  210. typedef somTP_SOMDObject_get_interface *somTD_SOMDObject_get_interface;
  211. /*
  212.  *  Returns the interface definition for the referenced object.
  213.  */
  214. #define somMD_SOMDObject_get_interface "::SOMDObject::get_interface"
  215. #define SOMDObject_get_interface(somSelf,ev) \
  216.     (SOM_Resolve(somSelf, SOMDObject, get_interface) \
  217.     (somSelf,ev))
  218. #ifndef SOMGD_get_interface
  219.     #if (defined(_get_interface) || defined(__get_interface))
  220.         #undef _get_interface
  221.         #undef __get_interface
  222.         #define SOMGD_get_interface 1
  223.     #else
  224.         #define _get_interface SOMDObject_get_interface
  225.     #endif /* _get_interface */
  226. #endif /* SOMGD_get_interface */
  227.  
  228. /*
  229.  * Direct call procedure
  230.  */
  231. typedef boolean   SOMLINK somTP_SOMDObject_is_nil(SOMDObject *somSelf, Environment *ev);
  232. #pragma linkage(somTP_SOMDObject_is_nil, system)
  233. typedef somTP_SOMDObject_is_nil *somTD_SOMDObject_is_nil;
  234. #define SOMDObject_is_nil ((somTD_SOMDObject_is_nil) SOMDObjectClassData.is_nil)
  235. #ifndef SOMGD_is_nil
  236.     #if (defined(_is_nil) || defined(__is_nil))
  237.         #undef _is_nil
  238.         #undef __is_nil
  239.         #define SOMGD_is_nil 1
  240.     #else
  241.         #define _is_nil SOMDObject_is_nil
  242.     #endif /* _is_nil */
  243. #endif /* SOMGD_is_nil */
  244.  
  245. /*
  246.  * New Method: is_SOM_ref
  247.  */
  248. typedef boolean   SOMLINK somTP_SOMDObject_is_SOM_ref(SOMDObject *somSelf, Environment *ev);
  249. #pragma linkage(somTP_SOMDObject_is_SOM_ref, system)
  250. typedef somTP_SOMDObject_is_SOM_ref *somTD_SOMDObject_is_SOM_ref;
  251. /*
  252.  *  Returns TRUE if object reference was created by SOMOA::create_SOM_ref
  253.  *  else returns FALSE.
  254.  */
  255. #define somMD_SOMDObject_is_SOM_ref "::SOMDObject::is_SOM_ref"
  256. #define SOMDObject_is_SOM_ref(somSelf,ev) \
  257.     (SOM_Resolve(somSelf, SOMDObject, is_SOM_ref) \
  258.     (somSelf,ev))
  259. #ifndef SOMGD_is_SOM_ref
  260.     #if (defined(_is_SOM_ref) || defined(__is_SOM_ref))
  261.         #undef _is_SOM_ref
  262.         #undef __is_SOM_ref
  263.         #define SOMGD_is_SOM_ref 1
  264.     #else
  265.         #define _is_SOM_ref SOMDObject_is_SOM_ref
  266.     #endif /* _is_SOM_ref */
  267. #endif /* SOMGD_is_SOM_ref */
  268.  
  269. /*
  270.  * New Method: is_constant
  271.  */
  272. typedef boolean   SOMLINK somTP_SOMDObject_is_constant(SOMDObject *somSelf, Environment *ev);
  273. #pragma linkage(somTP_SOMDObject_is_constant, system)
  274. typedef somTP_SOMDObject_is_constant *somTD_SOMDObject_is_constant;
  275. /*
  276.  *  Returns TRUE if object reference was created by SOMOA::create_constant
  277.  *  else returns FALSE.
  278.  */
  279. #define somMD_SOMDObject_is_constant "::SOMDObject::is_constant"
  280. #define SOMDObject_is_constant(somSelf,ev) \
  281.     (SOM_Resolve(somSelf, SOMDObject, is_constant) \
  282.     (somSelf,ev))
  283. #ifndef SOMGD_is_constant
  284.     #if (defined(_is_constant) || defined(__is_constant))
  285.         #undef _is_constant
  286.         #undef __is_constant
  287.         #define SOMGD_is_constant 1
  288.     #else
  289.         #define _is_constant SOMDObject_is_constant
  290.     #endif /* _is_constant */
  291. #endif /* SOMGD_is_constant */
  292.  
  293. /*
  294.  * New Method: is_proxy
  295.  */
  296. typedef boolean   SOMLINK somTP_SOMDObject_is_proxy(SOMDObject *somSelf, Environment *ev);
  297. #pragma linkage(somTP_SOMDObject_is_proxy, system)
  298. typedef somTP_SOMDObject_is_proxy *somTD_SOMDObject_is_proxy;
  299. /*
  300.  *  Returns TRUE if object reference (self) is a DSOM client proxy object
  301.  *  (i.e., the target object is remote).  Returns FALSE if the referenced
  302.  *  object is in the same process as the reference.
  303.  * 
  304.  *  The default implementation returns FALSE.  Proxy classes which are
  305.  *  subclasses of SOMDObject (like SOMDClientProxy) should override this
  306.  *  method to return TRUE.
  307.  */
  308. #define somMD_SOMDObject_is_proxy "::SOMDObject::is_proxy"
  309. #define SOMDObject_is_proxy(somSelf,ev) \
  310.     (SOM_Resolve(somSelf, SOMDObject, is_proxy) \
  311.     (somSelf,ev))
  312. #ifndef SOMGD_is_proxy
  313.     #if (defined(_is_proxy) || defined(__is_proxy))
  314.         #undef _is_proxy
  315.         #undef __is_proxy
  316.         #define SOMGD_is_proxy 1
  317.     #else
  318.         #define _is_proxy SOMDObject_is_proxy
  319.     #endif /* _is_proxy */
  320. #endif /* SOMGD_is_proxy */
  321.  
  322. /*
  323.  * New Method: duplicate
  324.  */
  325. typedef SOMDObject*   SOMLINK somTP_SOMDObject_duplicate(SOMDObject *somSelf, Environment *ev);
  326. #pragma linkage(somTP_SOMDObject_duplicate, system)
  327. typedef somTP_SOMDObject_duplicate *somTD_SOMDObject_duplicate;
  328. /*
  329.  *  Makes a duplicate of the object reference.
  330.  *  OWNERSHIP of returned object is transferred to the caller.
  331.  *  Call release to free the object.
  332.  */
  333. #define somMD_SOMDObject_duplicate "::SOMDObject::duplicate"
  334. #define SOMDObject_duplicate(somSelf,ev) \
  335.     (SOM_Resolve(somSelf, SOMDObject, duplicate) \
  336.     (somSelf,ev))
  337. #ifndef SOMGD_duplicate
  338.     #if (defined(_duplicate) || defined(__duplicate))
  339.         #undef _duplicate
  340.         #undef __duplicate
  341.         #define SOMGD_duplicate 1
  342.     #else
  343.         #define _duplicate SOMDObject_duplicate
  344.     #endif /* _duplicate */
  345. #endif /* SOMGD_duplicate */
  346.  
  347. /*
  348.  * New Method: release
  349.  */
  350. typedef void   SOMLINK somTP_SOMDObject_release(SOMDObject *somSelf, Environment *ev);
  351. #pragma linkage(somTP_SOMDObject_release, system)
  352. typedef somTP_SOMDObject_release *somTD_SOMDObject_release;
  353. /*
  354.  *  Releases the memory associated with the object reference.
  355.  */
  356. #define somMD_SOMDObject_release "::SOMDObject::release"
  357. #define SOMDObject_release(somSelf,ev) \
  358.     (SOM_Resolve(somSelf, SOMDObject, release) \
  359.     (somSelf,ev))
  360. #ifndef SOMGD_release
  361.     #if (defined(_release) || defined(__release))
  362.         #undef _release
  363.         #undef __release
  364.         #define SOMGD_release 1
  365.     #else
  366.         #define _release SOMDObject_release
  367.     #endif /* _release */
  368. #endif /* SOMGD_release */
  369.  
  370. /*
  371.  * New Method: create_request
  372.  */
  373. typedef ORBStatus   SOMLINK somTP_SOMDObject_create_request(SOMDObject *somSelf, Environment *ev, 
  374.         Context* ctx, 
  375.         Identifier operation, 
  376.         NVList* arg_list, 
  377.         NamedValue* result, 
  378.         Request** request, 
  379.         Flags req_flags);
  380. #pragma linkage(somTP_SOMDObject_create_request, system)
  381. typedef somTP_SOMDObject_create_request *somTD_SOMDObject_create_request;
  382. /*
  383.  *  Creates a request to execute a particular operation on the
  384.  *  referenced object.
  385.  * 
  386.  *  CORBA 1.1 introduces this method in this class, but DSOM actually
  387.  *  implements this method in the SOMDClientProxy subclass.
  388.  */
  389. #define somMD_SOMDObject_create_request "::SOMDObject::create_request"
  390. #define SOMDObject_create_request(somSelf,ev,ctx,operation,arg_list,result,request,req_flags) \
  391.     (SOM_Resolve(somSelf, SOMDObject, create_request) \
  392.     (somSelf,ev,ctx,operation,arg_list,result,request,req_flags))
  393. #ifndef SOMGD_create_request
  394.     #if (defined(_create_request) || defined(__create_request))
  395.         #undef _create_request
  396.         #undef __create_request
  397.         #define SOMGD_create_request 1
  398.     #else
  399.         #define _create_request SOMDObject_create_request
  400.     #endif /* _create_request */
  401. #endif /* SOMGD_create_request */
  402.  
  403. /*
  404.  * New Method: create_request_args
  405.  */
  406. typedef ORBStatus   SOMLINK somTP_SOMDObject_create_request_args(SOMDObject *somSelf, Environment *ev, 
  407.         Identifier operation, 
  408.         NVList** arg_list, 
  409.         NamedValue* result);
  410. #pragma linkage(somTP_SOMDObject_create_request_args, system)
  411. typedef somTP_SOMDObject_create_request_args *somTD_SOMDObject_create_request_args;
  412. /*
  413.  *  Creates the appropriate arg_list (NVList) for the specified operation.
  414.  *  Also creates a NamedValue to hold the result.
  415.  *  (Similar in function to ORB_create_operation_list.)
  416.  * 
  417.  *  This method is defined in this class, as a companion to the
  418.  *  "create_request" method, but DSOM implements this method in the
  419.  *  SOMDClientProxy subclass.
  420.  */
  421. #define somMD_SOMDObject_create_request_args "::SOMDObject::create_request_args"
  422. #define SOMDObject_create_request_args(somSelf,ev,operation,arg_list,result) \
  423.     (SOM_Resolve(somSelf, SOMDObject, create_request_args) \
  424.     (somSelf,ev,operation,arg_list,result))
  425. #ifndef SOMGD_create_request_args
  426.     #if (defined(_create_request_args) || defined(__create_request_args))
  427.         #undef _create_request_args
  428.         #undef __create_request_args
  429.         #define SOMGD_create_request_args 1
  430.     #else
  431.         #define _create_request_args SOMDObject_create_request_args
  432.     #endif /* _create_request_args */
  433. #endif /* SOMGD_create_request_args */
  434. #ifndef SOM_DONT_USE_INHERITED_MACROS
  435. #define SOMDObject_somDefaultCopyInit SOMObject_somDefaultCopyInit
  436. #define SOMDObject_somDefaultAssign SOMObject_somDefaultAssign
  437. #define SOMDObject_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  438. #define SOMDObject_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  439. #define SOMDObject_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  440. #define SOMDObject_somDefaultConstAssign SOMObject_somDefaultConstAssign
  441. #define SOMDObject_somDefaultVAssign SOMObject_somDefaultVAssign
  442. #define SOMDObject_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  443. #define SOMDObject_somInit SOMObject_somInit
  444. #define SOMDObject_somFree SOMObject_somFree
  445. #define SOMDObject_somUninit SOMObject_somUninit
  446. #define SOMDObject_somGetClass SOMObject_somGetClass
  447. #define SOMDObject_somGetClassName SOMObject_somGetClassName
  448. #define SOMDObject_somGetSize SOMObject_somGetSize
  449. #define SOMDObject_somIsA SOMObject_somIsA
  450. #define SOMDObject_somIsInstanceOf SOMObject_somIsInstanceOf
  451. #define SOMDObject_somRespondsTo SOMObject_somRespondsTo
  452. #define SOMDObject_somDispatch SOMObject_somDispatch
  453. #define SOMDObject_somClassDispatch SOMObject_somClassDispatch
  454. #define SOMDObject_somCastObj SOMObject_somCastObj
  455. #define SOMDObject_somResetObj SOMObject_somResetObj
  456. #define SOMDObject_somDispatchV SOMObject_somDispatchV
  457. #define SOMDObject_somDispatchL SOMObject_somDispatchL
  458. #define SOMDObject_somDispatchA SOMObject_somDispatchA
  459. #define SOMDObject_somDispatchD SOMObject_somDispatchD
  460. #define SOMDObject_somPrintSelf SOMObject_somPrintSelf
  461. #define SOMDObject_somDumpSelf SOMObject_somDumpSelf
  462. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  463.  
  464. #endif       /* SOM_SOMDObject_h */
  465.