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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: somoa.h.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emith: 2.47
  8.  */
  9.  
  10. /*
  11.  *    IDL interface spec for SOM Object Adapter (derived from BOA)
  12.  * 
  13.  *    This is DSOM's primary Object Adapter.  It implements the BOA interface.
  14.  */
  15.  
  16.  
  17. #ifndef SOM_SOMOA_h
  18. #define SOM_SOMOA_h
  19.  
  20.  
  21. #include <som.h>
  22.  
  23. /*
  24.  * -- This emitter treats Method Tokens as Thunks by default.
  25.  * -- Use the sc modifier "nothunks" to change this default
  26.  */
  27. #undef somresolve_
  28. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  29.  
  30. /*
  31.  * Define the class name as an object type
  32.  */
  33. #ifndef SOMOA
  34. #define SOMOA SOMObject
  35. #endif
  36. #include <boa.h>
  37.  
  38. /*
  39.  * Start of bindings for IDL types
  40.  */
  41.  
  42. #ifndef SOMClass
  43.     #define SOMClass SOMObject
  44. #endif /* SOMClass */
  45. #ifndef Container
  46.     #define Container SOMObject
  47. #endif /* Container */
  48. #ifndef SOMDObject
  49.     #define SOMDObject SOMObject
  50. #endif /* SOMDObject */
  51. #ifndef Principal
  52.     #define Principal SOMObject
  53. #endif /* Principal */
  54. #ifndef ImplementationDef
  55.     #define ImplementationDef SOMObject
  56. #endif /* ImplementationDef */
  57. #ifndef InterfaceDef
  58.     #define InterfaceDef SOMObject
  59. #endif /* InterfaceDef */
  60. #ifndef Context
  61.     #define Context SOMObject
  62. #endif /* Context */
  63.  
  64. /*
  65.  * End of bindings for IDL types.
  66.  */
  67.  
  68. /*
  69.  * Passthru lines: File: "C.h", "after"
  70.  */
  71.  
  72. #define SOMD_WAIT     1
  73. #define SOMD_NO_WAIT  0
  74. #define SOMD_IMPL_NOT_INITIALIZED          0
  75. #define SOMD_IMPL_NOT_ACTIVE               1
  76. #define SOMD_IMPL_ACTIVE                   2
  77.  
  78. #ifdef SOM_STRICT_IDL
  79. SOMEXTERN SOMOA   SOMDLINK SOMD_SOMOAObject;
  80. #else
  81. SOMEXTERN SOMOA *  SOMDLINK SOMD_SOMOAObject;
  82. #endif
  83.  
  84.  
  85. #define SOMOA_MajorVersion 2
  86. #define SOMOA_MinorVersion 1
  87.  
  88. /*
  89.  * External name shortening if required
  90.  */
  91. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  92. #define SOMOANewClass c
  93. #pragma linkage(c, system)
  94. #define SOMOAClassData d
  95. #define SOMOACClassData x
  96. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  97. /*--------------Migration------------*/
  98. #define SOMOA_classObj SOMOAClassData.classObject
  99. #define _SOMOA SOMOA_classObj
  100.  
  101. /*
  102.  * Declare the class creation procedure
  103.  */
  104. SOMEXTERN SOMClass * SOMLINK SOMOANewClass(integer4 somtmajorVersion,
  105.         integer4 somtminorVersion);
  106. #pragma linkage(SOMOANewClass, system)
  107.  
  108. /*
  109.  * Declare the class data structure
  110.  */
  111. SOMEXTERN struct SOMOAClassDataStructure {
  112.     SOMClass *classObject;
  113.     somMToken execute_next_request;
  114.     somMToken execute_request_loop;
  115.     somMToken create_constant;
  116.     somMToken change_id;
  117.     somMToken create_SOM_ref;
  118.     somMToken get_SOM_object;
  119.     somMToken activate_impl_failed;
  120.     somMToken interrupt_server;
  121. } SOMDLINK SOMOAClassData;
  122.  
  123. /*
  124.  * Declare the C specific class data structure
  125.  */
  126. SOMEXTERN struct SOMOACClassDataStructure {
  127.     somMethodTabs parentMtab;
  128.     somDToken instanceDataToken;
  129. } SOMDLINK SOMOACClassData;
  130.  
  131. /*
  132.  * New and Renew macros for SOMOA
  133.  */
  134. #define SOMOANew() \
  135.    ( _SOMOA ? \
  136.     _somNew(_SOMOA) \
  137.     : ( SOMOANewClass(\
  138.         SOMOA_MajorVersion, \
  139.         SOMOA_MinorVersion),\
  140.        _somNew(_SOMOA)))
  141. #define SOMOARenew(buf) \
  142.    ( _SOMOA ? \
  143.     _somRenew(_SOMOA, buf) \
  144.     : ( SOMOANewClass(\
  145.         SOMOA_MajorVersion, \
  146.         SOMOA_MinorVersion),\
  147.        _somRenew(_SOMOA, buf)))
  148.  
  149. /*
  150.  * Override method: somInit
  151.  */
  152. #define SOMOA_somInit(somSelf) \
  153.     SOMObject_somInit(somSelf)
  154.  
  155. /*
  156.  * Override method: somUninit
  157.  */
  158. #define SOMOA_somUninit(somSelf) \
  159.     SOMObject_somUninit(somSelf)
  160.  
  161. /*
  162.  * Override method: create
  163.  */
  164. #define SOMOA_create(somSelf,ev,id,intf,impl) \
  165.     BOA_create(somSelf,ev,id,intf,impl)
  166.  
  167. /*
  168.  * Override method: dispose
  169.  */
  170. #define SOMOA_dispose(somSelf,ev,obj) \
  171.     BOA_dispose(somSelf,ev,obj)
  172.  
  173. /*
  174.  * Override method: change_implementation
  175.  */
  176. #define SOMOA_change_implementation(somSelf,ev,obj,impl) \
  177.     BOA_change_implementation(somSelf,ev,obj,impl)
  178.  
  179. /*
  180.  * Override method: get_id
  181.  */
  182. #define SOMOA_get_id(somSelf,ev,obj) \
  183.     BOA_get_id(somSelf,ev,obj)
  184.  
  185. /*
  186.  * Override method: get_principal
  187.  */
  188. #define SOMOA_get_principal(somSelf,ev,obj,req_ev) \
  189.     BOA_get_principal(somSelf,ev,obj,req_ev)
  190.  
  191. /*
  192.  * Override method: set_exception
  193.  */
  194. #define SOMOA_set_exception(somSelf,ev,major,userid,param) \
  195.     BOA_set_exception(somSelf,ev,major,userid,param)
  196.  
  197. /*
  198.  * Override method: impl_is_ready
  199.  */
  200. #define SOMOA_impl_is_ready(somSelf,ev,impl) \
  201.     BOA_impl_is_ready(somSelf,ev,impl)
  202.  
  203. /*
  204.  * Override method: deactivate_impl
  205.  */
  206. #define SOMOA_deactivate_impl(somSelf,ev,impl) \
  207.     BOA_deactivate_impl(somSelf,ev,impl)
  208.  
  209. /*
  210.  * Override method: obj_is_ready
  211.  */
  212. #define SOMOA_obj_is_ready(somSelf,ev,obj,impl) \
  213.     BOA_obj_is_ready(somSelf,ev,obj,impl)
  214.  
  215. /*
  216.  * Override method: deactivate_obj
  217.  */
  218. #define SOMOA_deactivate_obj(somSelf,ev,obj) \
  219.     BOA_deactivate_obj(somSelf,ev,obj)
  220.  
  221. /*
  222.  * New Method: execute_next_request
  223.  */
  224. typedef ORBStatus   SOMLINK somTP_SOMOA_execute_next_request(SOMOA *somSelf, Environment *ev, 
  225.         Flags waitFlag);
  226. #pragma linkage(somTP_SOMOA_execute_next_request, system)
  227. typedef somTP_SOMOA_execute_next_request *somTD_SOMOA_execute_next_request;
  228. /*
  229.  *  This method receives a single request message, executes it, and
  230.  *  sends the result to the calling client.  If waitFlag is SOMD_WAIT,
  231.  *  the call will block if there is no message pending.  If waitFlag
  232.  *  is SOMD_NO_WAIT, the call will immediately return "SOMDERROR_NoMessages"
  233.  *  if there is no message pending.
  234.  * 
  235.  *  ("SOMDERROR_NoMessage" is only returned as a status code, not as an
  236.  *  exception structure.)
  237.  */
  238. #define somMD_SOMOA_execute_next_request "::SOMOA::execute_next_request"
  239. #define SOMOA_execute_next_request(somSelf,ev,waitFlag) \
  240.     (SOM_Resolve(somSelf, SOMOA, execute_next_request) \
  241.     (somSelf,ev,waitFlag))
  242. #ifndef SOMGD_execute_next_request
  243.     #if (defined(_execute_next_request) || defined(__execute_next_request))
  244.         #undef _execute_next_request
  245.         #undef __execute_next_request
  246.         #define SOMGD_execute_next_request 1
  247.     #else
  248.         #define _execute_next_request SOMOA_execute_next_request
  249.     #endif /* _execute_next_request */
  250. #endif /* SOMGD_execute_next_request */
  251.  
  252. /*
  253.  * New Method: execute_request_loop
  254.  */
  255. typedef ORBStatus   SOMLINK somTP_SOMOA_execute_request_loop(SOMOA *somSelf, Environment *ev, 
  256.         Flags waitFlag);
  257. #pragma linkage(somTP_SOMOA_execute_request_loop, system)
  258. typedef somTP_SOMOA_execute_request_loop *somTD_SOMOA_execute_request_loop;
  259. /*
  260.  *  Repeatedly calls execute_next_request.  If waitFlag is SOMD_WAIT,
  261.  *  the call will continue to wait for messages when there is no message
  262.  *  pending.  If waitFlag is SOMD_NO_WAIT, the call will process any
  263.  *  messages that are present, and return "SOMD_NoMessages" as soon as there
  264.  *  are no more messages pending.
  265.  * 
  266.  *  ("SOMDERROR_NoMessage" is only returned as a status code, not as an
  267.  *  exception structure.)
  268.  */
  269. #define somMD_SOMOA_execute_request_loop "::SOMOA::execute_request_loop"
  270. #define SOMOA_execute_request_loop(somSelf,ev,waitFlag) \
  271.     (SOM_Resolve(somSelf, SOMOA, execute_request_loop) \
  272.     (somSelf,ev,waitFlag))
  273. #ifndef SOMGD_execute_request_loop
  274.     #if (defined(_execute_request_loop) || defined(__execute_request_loop))
  275.         #undef _execute_request_loop
  276.         #undef __execute_request_loop
  277.         #define SOMGD_execute_request_loop 1
  278.     #else
  279.         #define _execute_request_loop SOMOA_execute_request_loop
  280.     #endif /* _execute_request_loop */
  281. #endif /* SOMGD_execute_request_loop */
  282.  
  283. /*
  284.  * New Method: change_id
  285.  */
  286. typedef void   SOMLINK somTP_SOMOA_change_id(SOMOA *somSelf, Environment *ev, 
  287.         SOMDObject* objref, 
  288.         ReferenceData* id);
  289. #pragma linkage(somTP_SOMOA_change_id, system)
  290. typedef somTP_SOMOA_change_id *somTD_SOMOA_change_id;
  291. /*
  292.  *  This method changes the ReferenceData associated with the object
  293.  *  identified by "objref".  The ReferenceData previously stored in the
  294.  *  SOMOA's reference data table is replaced with the value of "id".
  295.  *  The new id value cannot be larger than the maximum size of the
  296.  *  original ReferenceData (usually specified as 1024 bytes).
  297.  */
  298. #define somMD_SOMOA_change_id "::SOMOA::change_id"
  299. #define SOMOA_change_id(somSelf,ev,objref,id) \
  300.     (SOM_Resolve(somSelf, SOMOA, change_id) \
  301.     (somSelf,ev,objref,id))
  302. #ifndef SOMGD_change_id
  303.     #if (defined(_change_id) || defined(__change_id))
  304.         #undef _change_id
  305.         #undef __change_id
  306.         #define SOMGD_change_id 1
  307.     #else
  308.         #define _change_id SOMOA_change_id
  309.     #endif /* _change_id */
  310. #endif /* SOMGD_change_id */
  311.  
  312. /*
  313.  * New Method: create_constant
  314.  */
  315. typedef SOMDObject*   SOMLINK somTP_SOMOA_create_constant(SOMOA *somSelf, Environment *ev, 
  316.         ReferenceData* id, 
  317.         InterfaceDef* intf, 
  318.         ImplementationDef* impl);
  319. #pragma linkage(somTP_SOMOA_create_constant, system)
  320. typedef somTP_SOMOA_create_constant *somTD_SOMOA_create_constant;
  321. /*
  322.  *  This method is a variant of the "create" method.  Like "create", it
  323.  *  creates an object reference for an object (with the specified interface)
  324.  *  and associates the supplied ReferenceData with the object reference.
  325.  *  The ReferenceData can later be retrieved using the "get_id" method.
  326.  *  Unlike "create", this method creates a "contant" reference whose id
  327.  *  value cannot be changed.  (See "change_id" below.)  This is because
  328.  *  the id is part of the object reference state, versus stored in the
  329.  *  SOMOA reference data table.
  330.  * 
  331.  *  This method would be used whenever the application prefers not to
  332.  *  maintain an object's ReferenceData in the SOMOA reference data table.
  333.  */
  334. #define somMD_SOMOA_create_constant "::SOMOA::create_constant"
  335. #define SOMOA_create_constant(somSelf,ev,id,intf,impl) \
  336.     (SOM_Resolve(somSelf, SOMOA, create_constant) \
  337.     (somSelf,ev,id,intf,impl))
  338. #ifndef SOMGD_create_constant
  339.     #if (defined(_create_constant) || defined(__create_constant))
  340.         #undef _create_constant
  341.         #undef __create_constant
  342.         #define SOMGD_create_constant 1
  343.     #else
  344.         #define _create_constant SOMOA_create_constant
  345.     #endif /* _create_constant */
  346. #endif /* SOMGD_create_constant */
  347.  
  348. /*
  349.  * New Method: create_SOM_ref
  350.  */
  351. typedef SOMDObject*   SOMLINK somTP_SOMOA_create_SOM_ref(SOMOA *somSelf, Environment *ev, 
  352.         SOMObject* somobj, 
  353.         ImplementationDef* impl);
  354. #pragma linkage(somTP_SOMOA_create_SOM_ref, system)
  355. typedef somTP_SOMOA_create_SOM_ref *somTD_SOMOA_create_SOM_ref;
  356. /*
  357.  *  This methods creates a simple DSOM reference (SOMDObject) for a local
  358.  *  SOM object.  The reference is "special" in that there is no explicit
  359.  *  ReferenceData associated with the object.  Also, the reference is
  360.  *  only valid while the SOM object exists.
  361.  * 
  362.  *  The SOMObject can be retrieved via the get_SOM_object method.
  363.  *  The SOMDObject::is_SOM_ref method can be used to tell if the
  364.  *  reference was created using create_SOM_ref or not.
  365.  */
  366. #define somMD_SOMOA_create_SOM_ref "::SOMOA::create_SOM_ref"
  367. #define SOMOA_create_SOM_ref(somSelf,ev,somobj,impl) \
  368.     (SOM_Resolve(somSelf, SOMOA, create_SOM_ref) \
  369.     (somSelf,ev,somobj,impl))
  370. #ifndef SOMGD_create_SOM_ref
  371.     #if (defined(_create_SOM_ref) || defined(__create_SOM_ref))
  372.         #undef _create_SOM_ref
  373.         #undef __create_SOM_ref
  374.         #define SOMGD_create_SOM_ref 1
  375.     #else
  376.         #define _create_SOM_ref SOMOA_create_SOM_ref
  377.     #endif /* _create_SOM_ref */
  378. #endif /* SOMGD_create_SOM_ref */
  379.  
  380. /*
  381.  * New Method: get_SOM_object
  382.  */
  383. typedef SOMObject*   SOMLINK somTP_SOMOA_get_SOM_object(SOMOA *somSelf, Environment *ev, 
  384.         SOMDObject* somref);
  385. #pragma linkage(somTP_SOMOA_get_SOM_object, system)
  386. typedef somTP_SOMOA_get_SOM_object *somTD_SOMOA_get_SOM_object;
  387. /*
  388.  *  This method returns the SOM object associated with a SOMDObject
  389.  *  reference created by the create_SOM_ref method.
  390.  */
  391. #define somMD_SOMOA_get_SOM_object "::SOMOA::get_SOM_object"
  392. #define SOMOA_get_SOM_object(somSelf,ev,somref) \
  393.     (SOM_Resolve(somSelf, SOMOA, get_SOM_object) \
  394.     (somSelf,ev,somref))
  395. #ifndef SOMGD_get_SOM_object
  396.     #if (defined(_get_SOM_object) || defined(__get_SOM_object))
  397.         #undef _get_SOM_object
  398.         #undef __get_SOM_object
  399.         #define SOMGD_get_SOM_object 1
  400.     #else
  401.         #define _get_SOM_object SOMOA_get_SOM_object
  402.     #endif /* _get_SOM_object */
  403. #endif /* SOMGD_get_SOM_object */
  404.  
  405. /*
  406.  * New Method: activate_impl_failed
  407.  */
  408. typedef void   SOMLINK somTP_SOMOA_activate_impl_failed(SOMOA *somSelf, Environment *ev, 
  409.         ImplementationDef* impl, 
  410.         ORBStatus rc);
  411. #pragma linkage(somTP_SOMOA_activate_impl_failed, system)
  412. typedef somTP_SOMOA_activate_impl_failed *somTD_SOMOA_activate_impl_failed;
  413. /*
  414.  *  Indicates there was an error when activating this implementation.
  415.  *  Called by a server program.  ORBStatus code is returned to the client
  416.  *  in an exception.
  417.  */
  418. #define somMD_SOMOA_activate_impl_failed "::SOMOA::activate_impl_failed"
  419. #define SOMOA_activate_impl_failed(somSelf,ev,impl,rc) \
  420.     (SOM_Resolve(somSelf, SOMOA, activate_impl_failed) \
  421.     (somSelf,ev,impl,rc))
  422. #ifndef SOMGD_activate_impl_failed
  423.     #if (defined(_activate_impl_failed) || defined(__activate_impl_failed))
  424.         #undef _activate_impl_failed
  425.         #undef __activate_impl_failed
  426.         #define SOMGD_activate_impl_failed 1
  427.     #else
  428.         #define _activate_impl_failed SOMOA_activate_impl_failed
  429.     #endif /* _activate_impl_failed */
  430. #endif /* SOMGD_activate_impl_failed */
  431.  
  432. /*
  433.  * New Method: interrupt_server
  434.  */
  435. typedef void   SOMLINK somTP_SOMOA_interrupt_server(SOMOA *somSelf, Environment *ev);
  436. #pragma linkage(somTP_SOMOA_interrupt_server, system)
  437. typedef somTP_SOMOA_interrupt_server *somTD_SOMOA_interrupt_server;
  438. /*
  439.  *  Wakes up a server waiting for a request message.
  440.  */
  441. #define somMD_SOMOA_interrupt_server "::SOMOA::interrupt_server"
  442. #define SOMOA_interrupt_server(somSelf,ev) \
  443.     (SOM_Resolve(somSelf, SOMOA, interrupt_server) \
  444.     (somSelf,ev))
  445. #ifndef SOMGD_interrupt_server
  446.     #if (defined(_interrupt_server) || defined(__interrupt_server))
  447.         #undef _interrupt_server
  448.         #undef __interrupt_server
  449.         #define SOMGD_interrupt_server 1
  450.     #else
  451.         #define _interrupt_server SOMOA_interrupt_server
  452.     #endif /* _interrupt_server */
  453. #endif /* SOMGD_interrupt_server */
  454. #ifndef SOM_DONT_USE_INHERITED_MACROS
  455. #define SOMOA_somDefaultInit SOMObject_somDefaultInit
  456. #define SOMOA_somDestruct SOMObject_somDestruct
  457. #define SOMOA_somDefaultCopyInit SOMObject_somDefaultCopyInit
  458. #define SOMOA_somDefaultAssign SOMObject_somDefaultAssign
  459. #define SOMOA_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  460. #define SOMOA_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  461. #define SOMOA_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  462. #define SOMOA_somDefaultConstAssign SOMObject_somDefaultConstAssign
  463. #define SOMOA_somDefaultVAssign SOMObject_somDefaultVAssign
  464. #define SOMOA_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  465. #define SOMOA_somFree SOMObject_somFree
  466. #define SOMOA_somGetClass SOMObject_somGetClass
  467. #define SOMOA_somGetClassName SOMObject_somGetClassName
  468. #define SOMOA_somGetSize SOMObject_somGetSize
  469. #define SOMOA_somIsA SOMObject_somIsA
  470. #define SOMOA_somIsInstanceOf SOMObject_somIsInstanceOf
  471. #define SOMOA_somRespondsTo SOMObject_somRespondsTo
  472. #define SOMOA_somDispatch SOMObject_somDispatch
  473. #define SOMOA_somClassDispatch SOMObject_somClassDispatch
  474. #define SOMOA_somCastObj SOMObject_somCastObj
  475. #define SOMOA_somResetObj SOMObject_somResetObj
  476. #define SOMOA_somDispatchV SOMObject_somDispatchV
  477. #define SOMOA_somDispatchL SOMObject_somDispatchL
  478. #define SOMOA_somDispatchA SOMObject_somDispatchA
  479. #define SOMOA_somDispatchD SOMObject_somDispatchD
  480. #define SOMOA_somPrintSelf SOMObject_somPrintSelf
  481. #define SOMOA_somDumpSelf SOMObject_somDumpSelf
  482. #define SOMOA_somDumpSelfInt SOMObject_somDumpSelfInt
  483. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  484.  
  485. #endif       /* SOM_SOMOA_h */
  486.