home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / orb.xh < prev    next >
Encoding:
Text File  |  1996-02-22  |  15.0 KB  |  608 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: h:\somnt\include\ORB.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: Development
  7.  *     SOM Emitter emitxh.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 ORB pseudo-object, from CORBA document (8.1).
  24.  */
  25.  
  26.  
  27. #ifndef SOM_ORB_xh
  28. #define SOM_ORB_xh
  29.  
  30. class ORB;
  31.  
  32. #define ORB_MajorVersion 2
  33. #define ORB_MinorVersion 1
  34.  
  35. /* C++ SOM defs */
  36. #include <somcls.xh>
  37. #include <somcm.xh>
  38.  
  39. /* C++ parent defs */
  40. #ifndef SOM_SOMObject_xh
  41. #include <somobj.xh>
  42. #endif
  43.  
  44. /*
  45.  * C++ metaclass def
  46.  */
  47. #include <snglicls.xh>
  48.  
  49. #ifndef ORB_API
  50. #define ORB_API
  51. /*
  52.  * -- The Class API
  53.  */
  54.  
  55. /*
  56.  * Start of user-defined types:
  57.  */
  58. class SOMClass;
  59. class SOMObject;
  60. class Container;
  61. class OperationDef;
  62. class SOMDObject;
  63. class NVList;
  64. class Context;
  65.  
  66. /*
  67.  * End of user-defined types.
  68.  */
  69.  
  70. /*
  71.  * Passthru lines: File: "C.xh", "after"
  72.  */
  73.  
  74. class ORB;
  75. SOMEXTERN WIN32_DLLIMPORT ORB * SOMD_ORBObject;
  76.  
  77. #include <somdobj.xh>
  78.  
  79.  
  80. /* A procedure to create the ORB Class */
  81. class SOMMSingleInstance;
  82. SOMEXTERN
  83. #if (defined(SOM_Module_ORB_Source) || defined(ORB_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ORB))
  84. WIN32_DLLEXPORT
  85. #else
  86. WIN32_DLLIMPORT
  87. #endif
  88. SOMMSingleInstance * SOMLINK ORBNewClass(
  89.         integer4,
  90.         integer4 );
  91.  
  92. /* The API to the ORB class object, and the methods it introduces. */
  93. SOMEXTERN struct ORBClassDataStructure {
  94.     SOMMSingleInstance *classObject;
  95.     somMToken object_to_string;
  96.     somMToken string_to_object;
  97.     somMToken create_list;
  98.     somMToken create_operation_list;
  99.     somMToken get_default_context;
  100.     somMToken object_to_binary;
  101.     somMToken binary_to_object;
  102. }
  103. #if !(defined(SOM_Module_ORB_Source) || defined(ORB_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ORB))
  104. WIN32_DLLIMPORT
  105. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  106. WIN32_DLLEXPORT
  107. #endif
  108. SOMDLINK ORBClassData;
  109. #define _ORB ORBClassData.classObject
  110.  
  111. /* The API to parentMtabs for ORB, and the instance data it introduces. */
  112. SOMEXTERN struct ORBCClassDataStructure {
  113.     somMethodTabs parentMtab;
  114.     somDToken              instanceDataToken;
  115. }
  116. #if !(defined(SOM_Module_ORB_Source) || defined(ORB_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ORB))
  117. WIN32_DLLIMPORT
  118. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  119. WIN32_DLLEXPORT
  120. #endif
  121. SOMDLINK ORBCClassData;
  122.  
  123. /*
  124.  * -- Typedefs for ORB Method Procedures
  125.  */
  126. extern "C" {
  127. typedef string   SOMLINK somTP_ORB_object_to_string(ORB *somSelf, Environment *ev,
  128.         SOMDObject* obj);
  129. typedef somTP_ORB_object_to_string *somTD_ORB_object_to_string;
  130. typedef SOMDObject*   SOMLINK somTP_ORB_string_to_object(ORB *somSelf, Environment *ev,
  131.         string str);
  132. typedef somTP_ORB_string_to_object *somTD_ORB_string_to_object;
  133. typedef ORBStatus   SOMLINK somTP_ORB_create_list(ORB *somSelf, Environment *ev,
  134.         long count,
  135.         NVList** new_list);
  136. typedef somTP_ORB_create_list *somTD_ORB_create_list;
  137. typedef ORBStatus   SOMLINK somTP_ORB_create_operation_list(ORB *somSelf, Environment *ev,
  138.         OperationDef* oper,
  139.         NVList** new_list);
  140. typedef somTP_ORB_create_operation_list *somTD_ORB_create_operation_list;
  141. typedef ORBStatus   SOMLINK somTP_ORB_get_default_context(ORB *somSelf, Environment *ev,
  142.         Context** ctx);
  143. typedef somTP_ORB_get_default_context *somTD_ORB_get_default_context;
  144.  
  145. /*
  146.  * -- Typedefs for Reintroduced Wrapper Methods
  147.  */
  148. typedef void   SOMLINK somTP_ORB_somDefaultInit(ORB *somSelf,
  149.         somInitCtrl* ctrl);
  150. typedef somTP_ORB_somDefaultInit *somTD_ORB_somDefaultInit;
  151. typedef void   SOMLINK somTP_ORB_somDestruct(ORB *somSelf,
  152.         octet doFree,
  153.         somDestructCtrl* ctrl);
  154. typedef somTP_ORB_somDestruct *somTD_ORB_somDestruct;
  155. typedef void   SOMLINK somTP_ORB_somDefaultCopyInit(ORB *somSelf,
  156.         somInitCtrl* ctrl,
  157.         SOMObject* fromObj);
  158. typedef somTP_ORB_somDefaultCopyInit *somTD_ORB_somDefaultCopyInit;
  159. typedef ORB*   SOMLINK somTP_ORB_somDefaultAssign(ORB *somSelf,
  160.         somAssignCtrl* ctrl,
  161.         SOMObject* fromObj);
  162. typedef somTP_ORB_somDefaultAssign *somTD_ORB_somDefaultAssign;
  163. typedef void   SOMLINK somTP_ORB_somDefaultConstCopyInit(ORB *somSelf,
  164.         somInitCtrl* ctrl,
  165.         SOMObject* fromObj);
  166. typedef somTP_ORB_somDefaultConstCopyInit *somTD_ORB_somDefaultConstCopyInit;
  167. typedef void   SOMLINK somTP_ORB_somDefaultVCopyInit(ORB *somSelf,
  168.         somInitCtrl* ctrl,
  169.         SOMObject* fromObj);
  170. typedef somTP_ORB_somDefaultVCopyInit *somTD_ORB_somDefaultVCopyInit;
  171. typedef void   SOMLINK somTP_ORB_somDefaultConstVCopyInit(ORB *somSelf,
  172.         somInitCtrl* ctrl,
  173.         SOMObject* fromObj);
  174. typedef somTP_ORB_somDefaultConstVCopyInit *somTD_ORB_somDefaultConstVCopyInit;
  175. typedef ORB*   SOMLINK somTP_ORB_somDefaultConstAssign(ORB *somSelf,
  176.         somAssignCtrl* ctrl,
  177.         SOMObject* fromObj);
  178. typedef somTP_ORB_somDefaultConstAssign *somTD_ORB_somDefaultConstAssign;
  179. typedef ORB*   SOMLINK somTP_ORB_somDefaultVAssign(ORB *somSelf,
  180.         somAssignCtrl* ctrl,
  181.         SOMObject* fromObj);
  182. typedef somTP_ORB_somDefaultVAssign *somTD_ORB_somDefaultVAssign;
  183. typedef ORB*   SOMLINK somTP_ORB_somDefaultConstVAssign(ORB *somSelf,
  184.         somAssignCtrl* ctrl,
  185.         SOMObject* fromObj);
  186. typedef somTP_ORB_somDefaultConstVAssign *somTD_ORB_somDefaultConstVAssign;
  187. typedef void   SOMLINK somTP_ORB_somInit(ORB *somSelf);
  188. typedef somTP_ORB_somInit *somTD_ORB_somInit;
  189. typedef void   SOMLINK somTP_ORB_somFree(ORB *somSelf);
  190. typedef somTP_ORB_somFree *somTD_ORB_somFree;
  191. typedef void   SOMLINK somTP_ORB_somUninit(ORB *somSelf);
  192. typedef somTP_ORB_somUninit *somTD_ORB_somUninit;
  193. typedef SOMMSingleInstance*   SOMLINK somTP_ORB_somGetClass(ORB *somSelf);
  194. typedef somTP_ORB_somGetClass *somTD_ORB_somGetClass;
  195. typedef string   SOMLINK somTP_ORB_somGetClassName(ORB *somSelf);
  196. typedef somTP_ORB_somGetClassName *somTD_ORB_somGetClassName;
  197. typedef long   SOMLINK somTP_ORB_somGetSize(ORB *somSelf);
  198. typedef somTP_ORB_somGetSize *somTD_ORB_somGetSize;
  199. typedef boolean   SOMLINK somTP_ORB_somIsA(ORB *somSelf,
  200.         SOMClass* aClassObj);
  201. typedef somTP_ORB_somIsA *somTD_ORB_somIsA;
  202. typedef boolean   SOMLINK somTP_ORB_somIsInstanceOf(ORB *somSelf,
  203.         SOMClass* aClassObj);
  204. typedef somTP_ORB_somIsInstanceOf *somTD_ORB_somIsInstanceOf;
  205. typedef boolean   SOMLINK somTP_ORB_somRespondsTo(ORB *somSelf,
  206.         somId mId);
  207. typedef somTP_ORB_somRespondsTo *somTD_ORB_somRespondsTo;
  208. typedef boolean   SOMLINK somTP_ORB_somDispatch(ORB *somSelf,
  209.         somToken* retValue,
  210.         somId methodId,
  211.         va_list ap);
  212. typedef somTP_ORB_somDispatch *somTD_ORB_somDispatch;
  213. typedef boolean   SOMLINK somTP_ORB_somClassDispatch(ORB *somSelf,
  214.         SOMClass* clsObj,
  215.         somToken* retValue,
  216.         somId methodId,
  217.         va_list ap);
  218. typedef somTP_ORB_somClassDispatch *somTD_ORB_somClassDispatch;
  219. typedef boolean   SOMLINK somTP_ORB_somCastObj(ORB *somSelf,
  220.         SOMClass* cls);
  221. typedef somTP_ORB_somCastObj *somTD_ORB_somCastObj;
  222. typedef boolean   SOMLINK somTP_ORB_somResetObj(ORB *somSelf);
  223. typedef somTP_ORB_somResetObj *somTD_ORB_somResetObj;
  224. typedef SOMObject*   SOMLINK somTP_ORB_somPrintSelf(ORB *somSelf);
  225. typedef somTP_ORB_somPrintSelf *somTD_ORB_somPrintSelf;
  226. typedef void   SOMLINK somTP_ORB_somDumpSelf(ORB *somSelf,
  227.         long level);
  228. typedef somTP_ORB_somDumpSelf *somTD_ORB_somDumpSelf;
  229. typedef void   SOMLINK somTP_ORB_somDumpSelfInt(ORB *somSelf,
  230.         long level);
  231. typedef somTP_ORB_somDumpSelfInt *somTD_ORB_somDumpSelfInt;
  232. }
  233.  
  234. #endif /* ORB_API */
  235.  
  236.  
  237. /*
  238.  * -- This emitter believes that method thunks are unavailable,
  239.  * -- so somResolve will be called.
  240.  */
  241. #undef somresolve_
  242. #define somresolve_(obj,mToken) (somResolve(obj,mToken))
  243.  
  244. /*
  245.  * -- The C++ Wrapper Class for ORB
  246.  */
  247. class ORB : public SOMObject
  248. {
  249. public:
  250.  
  251. // ORB::new creates the class object if necessary, and then uses somNewNoInit
  252. // to allocate memory and create the object. Initialization is in ctors.
  253. void *operator new(size_t)
  254. {
  255.    if (!_ORB) ORBNewClass(ORB_MajorVersion,ORB_MinorVersion);
  256.    return (void*)
  257.       SOM_Resolve(_ORB,SOMClass,somNewNoInit)
  258.          ((SOMClass *)((void*)_ORB));
  259. }
  260.  
  261. // ORB::delete uses somDestruct.
  262. void operator delete(void * obj)
  263. {
  264.    if (obj && *(void**)obj) {
  265.       SOM_Resolve(obj,SOMObject,somDestruct)
  266.          ((SOMObject*)obj, 1, 0);
  267.    }
  268. }
  269.  
  270. ORB()
  271. {
  272.    if (*(void**)this != 
  273.        ((somParentMtabStructPtr)
  274.         (ORBCClassData.parentMtab))->mtab)
  275.       return;
  276.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  277. }
  278.  
  279. ORB(ORB* fromObj)
  280. {
  281.    if (*(void**)this != 
  282.        ((somParentMtabStructPtr)
  283.         (ORBCClassData.parentMtab))->mtab)
  284.       return;
  285.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  286. }
  287.  
  288. ORB(const ORB* fromObj)
  289. {
  290.    if (*(void**)this != 
  291.        ((somParentMtabStructPtr)
  292.         (ORBCClassData.parentMtab))->mtab)
  293.       return;
  294.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  295. }
  296.  
  297.  
  298. /* method: object_to_string */
  299. string   object_to_string(Environment *ev,
  300.         SOMDObject* obj)
  301. {
  302.    return SOM_ResolveD(this,ORB,ORB,object_to_string)
  303.     (this, ev,obj);
  304. }
  305.  
  306.  
  307. /* method: string_to_object */
  308. SOMDObject*   string_to_object(Environment *ev,
  309.         string str)
  310. {
  311.    return SOM_ResolveD(this,ORB,ORB,string_to_object)
  312.     (this, ev,str);
  313. }
  314.  
  315.  
  316. /* method: create_list */
  317. ORBStatus   create_list(Environment *ev,
  318.         long count,
  319.         NVList** new_list)
  320. {
  321.    return SOM_ResolveD(this,ORB,ORB,create_list)
  322.     (this, ev,count,new_list);
  323. }
  324.  
  325.  
  326. /* method: create_operation_list */
  327. ORBStatus   create_operation_list(Environment *ev,
  328.         OperationDef* oper,
  329.         NVList** new_list)
  330. {
  331.    return SOM_ResolveD(this,ORB,ORB,create_operation_list)
  332.     (this, ev,oper,new_list);
  333. }
  334.  
  335.  
  336. /* method: get_default_context */
  337. ORBStatus   get_default_context(Environment *ev,
  338.         Context** ctx)
  339. {
  340.    return SOM_ResolveD(this,ORB,ORB,get_default_context)
  341.     (this, ev,ctx);
  342. }
  343.  
  344.  
  345. /*
  346.  * Reintroduce inherited methods
  347.  */
  348.  
  349. /* initializer method: somDefaultInit */
  350. void   somDefaultInit(somInitCtrl* ctrl)
  351. {
  352.    SOM_ResolveD(this,ORB,SOMObject,somDefaultInit)
  353.     (this,ctrl);
  354. }
  355.  
  356.  
  357. /* method: somDestruct */
  358. void   somDestruct(octet doFree,
  359.         somDestructCtrl* ctrl)
  360. {
  361.    SOM_ResolveD(this,ORB,SOMObject,somDestruct)
  362.     (this,doFree,ctrl);
  363. }
  364.  
  365.  
  366. /* initializer method: somDefaultCopyInit */
  367. void   somDefaultCopyInit(somInitCtrl* ctrl,
  368.         SOMObject* fromObj)
  369. {
  370.    SOM_ResolveD(this,ORB,SOMObject,somDefaultCopyInit)
  371.     (this,ctrl,fromObj);
  372. }
  373.  
  374.  
  375. /* method: somDefaultAssign */
  376. ORB*  somDefaultAssign(somAssignCtrl* ctrl,
  377.         SOMObject* fromObj)
  378. {
  379.    return SOM_ResolveD(this,ORB,SOMObject,somDefaultAssign)
  380.     (this,ctrl,fromObj);
  381. }
  382.  
  383.  
  384. /* initializer method: somDefaultConstCopyInit */
  385. void   somDefaultConstCopyInit(somInitCtrl* ctrl,
  386.         SOMObject* fromObj)
  387. {
  388.    SOM_ResolveD(this,ORB,SOMObject,somDefaultConstCopyInit)
  389.     (this,ctrl,fromObj);
  390. }
  391.  
  392.  
  393. /* initializer method: somDefaultVCopyInit */
  394. void   somDefaultVCopyInit(somInitCtrl* ctrl,
  395.         SOMObject* fromObj)
  396. {
  397.    SOM_ResolveD(this,ORB,SOMObject,somDefaultVCopyInit)
  398.     (this,ctrl,fromObj);
  399. }
  400.  
  401.  
  402. /* initializer method: somDefaultConstVCopyInit */
  403. void   somDefaultConstVCopyInit(somInitCtrl* ctrl,
  404.         SOMObject* fromObj)
  405. {
  406.    SOM_ResolveD(this,ORB,SOMObject,somDefaultConstVCopyInit)
  407.     (this,ctrl,fromObj);
  408. }
  409.  
  410.  
  411. /* method: somDefaultConstAssign */
  412. ORB*  somDefaultConstAssign(somAssignCtrl* ctrl,
  413.         SOMObject* fromObj)
  414. {
  415.    return SOM_ResolveD(this,ORB,SOMObject,somDefaultConstAssign)
  416.     (this,ctrl,fromObj);
  417. }
  418.  
  419.  
  420. /* method: somDefaultVAssign */
  421. ORB*  somDefaultVAssign(somAssignCtrl* ctrl,
  422.         SOMObject* fromObj)
  423. {
  424.    return SOM_ResolveD(this,ORB,SOMObject,somDefaultVAssign)
  425.     (this,ctrl,fromObj);
  426. }
  427.  
  428.  
  429. /* method: somDefaultConstVAssign */
  430. ORB*  somDefaultConstVAssign(somAssignCtrl* ctrl,
  431.         SOMObject* fromObj)
  432. {
  433.    return SOM_ResolveD(this,ORB,SOMObject,somDefaultConstVAssign)
  434.     (this,ctrl,fromObj);
  435. }
  436.  
  437.  
  438. /* method: somInit */
  439. void   somInit()
  440. {
  441.    SOM_ResolveD(this,ORB,SOMObject,somInit)
  442.     (this);
  443. }
  444.  
  445.  
  446. /* method: somFree */
  447. void   somFree()
  448. {
  449.    SOM_ResolveD(this,ORB,SOMObject,somFree)
  450.     (this);
  451. }
  452.  
  453.  
  454. /* method: somUninit */
  455. void   somUninit()
  456. {
  457.    SOM_ResolveD(this,ORB,SOMObject,somUninit)
  458.     (this);
  459. }
  460.  
  461.  
  462. /* method: somGetClass */
  463. SOMMSingleInstance*  somGetClass()
  464. {
  465.    return SOM_ResolveD(this,ORB,SOMObject,somGetClass)
  466.     (this);
  467. }
  468.  
  469.  
  470. /* method: somGetClassName */
  471. string   somGetClassName()
  472. {
  473.    return SOM_ResolveD(this,ORB,SOMObject,somGetClassName)
  474.     (this);
  475. }
  476.  
  477.  
  478. /* method: somGetSize */
  479. long   somGetSize()
  480. {
  481.    return SOM_ResolveD(this,ORB,SOMObject,somGetSize)
  482.     (this);
  483. }
  484.  
  485.  
  486. /* method: somIsA */
  487. boolean   somIsA(SOMClass* aClassObj)
  488. {
  489.    return SOM_ResolveD(this,ORB,SOMObject,somIsA)
  490.     (this,aClassObj);
  491. }
  492.  
  493.  
  494. /* method: somIsInstanceOf */
  495. boolean   somIsInstanceOf(SOMClass* aClassObj)
  496. {
  497.    return SOM_ResolveD(this,ORB,SOMObject,somIsInstanceOf)
  498.     (this,aClassObj);
  499. }
  500.  
  501.  
  502. /* method: somRespondsTo */
  503. boolean   somRespondsTo(somId mId)
  504. {
  505.    return SOM_ResolveD(this,ORB,SOMObject,somRespondsTo)
  506.     (this,mId);
  507. }
  508.  
  509.  
  510. /* va_list method: somDispatch */
  511. /* the va_list invocation form */
  512. boolean   ORB_somDispatch(somToken* retValue,
  513.         somId methodId,
  514.         va_list ap)
  515. {
  516. return SOM_ResolveD(this,ORB,SOMObject,somDispatch)
  517.     (this,retValue,methodId,ap);
  518. }
  519.  
  520. /* the varargs invocation form */
  521. boolean   somDispatch(somToken* retValue,
  522.         somId methodId,
  523.         ...)
  524. {
  525.    va_list ap;
  526.    va_start(ap, methodId);
  527.    boolean __somResult = 
  528.       SOM_ResolveD(this,ORB,SOMObject,somDispatch)
  529.     (this,retValue,methodId,ap);
  530.    va_end(ap);
  531.    return __somResult;
  532. }
  533.  
  534.  
  535. /* va_list method: somClassDispatch */
  536. /* the va_list invocation form */
  537. boolean   ORB_somClassDispatch(SOMClass* clsObj,
  538.         somToken* retValue,
  539.         somId methodId,
  540.         va_list ap)
  541. {
  542. return SOM_ResolveD(this,ORB,SOMObject,somClassDispatch)
  543.     (this,clsObj,retValue,methodId,ap);
  544. }
  545.  
  546. /* the varargs invocation form */
  547. boolean   somClassDispatch(SOMClass* clsObj,
  548.         somToken* retValue,
  549.         somId methodId,
  550.         ...)
  551. {
  552.    va_list ap;
  553.    va_start(ap, methodId);
  554.    boolean __somResult = 
  555.       SOM_ResolveD(this,ORB,SOMObject,somClassDispatch)
  556.     (this,clsObj,retValue,methodId,ap);
  557.    va_end(ap);
  558.    return __somResult;
  559. }
  560.  
  561.  
  562. /* method: somCastObj */
  563. boolean   somCastObj(SOMClass* cls)
  564. {
  565.    return SOM_ResolveD(this,ORB,SOMObject,somCastObj)
  566.     (this,cls);
  567. }
  568.  
  569.  
  570. /* method: somResetObj */
  571. boolean   somResetObj()
  572. {
  573.    return SOM_ResolveD(this,ORB,SOMObject,somResetObj)
  574.     (this);
  575. }
  576.  
  577.  
  578. /* method: somPrintSelf */
  579. SOMObject*   somPrintSelf()
  580. {
  581.    return SOM_ResolveD(this,ORB,SOMObject,somPrintSelf)
  582.     (this);
  583. }
  584.  
  585.  
  586. /* method: somDumpSelf */
  587. void   somDumpSelf(long level)
  588. {
  589.    SOM_ResolveD(this,ORB,SOMObject,somDumpSelf)
  590.     (this,level);
  591. }
  592.  
  593.  
  594. /* method: somDumpSelfInt */
  595. void   somDumpSelfInt(long level)
  596. {
  597.    SOM_ResolveD(this,ORB,SOMObject,somDumpSelfInt)
  598.     (this,level);
  599. }
  600.  
  601.  
  602.  
  603. };   /* ORB */
  604.  
  605.  
  606.  
  607. #endif       /* SOM_ORB_xh */
  608.