home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / somdobj.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-22  |  13.9 KB  |  417 lines

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