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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: h:\somnt\include\REQUEST.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.  *    IDL interface spec for CORBA Request object.
  24.  */
  25.  
  26.  
  27. #ifndef SOM_Request_xh
  28. #define SOM_Request_xh
  29.  
  30. class Request;
  31.  
  32. #define Request_MajorVersion 2
  33. #define Request_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. #ifndef Request_API
  45. #define Request_API
  46. /*
  47.  * -- The Class API
  48.  */
  49.  
  50. /*
  51.  * Start of user-defined types:
  52.  */
  53. class SOMClass;
  54. class SOMObject;
  55. class Container;
  56.  
  57. /*
  58.  * End of user-defined types.
  59.  */
  60.  
  61. /*
  62.  * Passthru lines: File: "C.xh", "after"
  63.  */
  64. /*
  65.  *  Flags defined on requests
  66.  */
  67.  
  68. #define ARG_IN        0x00000001      /* defined in somir.h */
  69. #define ARG_OUT        0x00000002    /* defined in somir.h */
  70. #define ARG_INOUT    0x00000004    /* defined in somir.h */
  71. #define IN_COPY_VALUE    0x00000008    /* add_arg flag */
  72. #define DEPENDENT_LIST    0x00000010    /* add_item flag */
  73. #define OUT_LIST_MEMORY    0x00000020    /* req flag */
  74. #define INV_NO_RESPONSE    0x00000040    /* invoke flag */
  75. #define INV_TERM_ON_ERR    0x00000080    /* invoke flag */
  76. #define RESP_NO_WAIT    0x00000100    /* response flag */
  77. /* Internal Use Flags */
  78. #define AUTH_IN_MSG      0x00010000      /* msg includes auth info */
  79. #define ACKONEWAY        0x00020000      /* ack oneway messages */
  80. #define ENV_IN_MSG       0x00040000      /* msg includes env info */
  81. #define CTX_IN_MSG       0x00080000      /* msg includes ctx info */
  82. #define OBJ_OWNED        0x00100000    /* arg. mem. is obj. owned */
  83. #define CALLER_OWNED     0x00200000    /* arg mem is caller owned */
  84. #define RESULT_OUT       0x00400000    /* method result, not arg  */
  85. #define CLIENT_SIDE      0x00800000    /* client side of request */
  86. #define SERVER_SIDE      0x01000000    /* server side of request */
  87. #define TXCTX_IN_MSG     0x02000000      /* msg includes trans info */
  88. #define ARG_IS_PTRARG    0x10000000      /* ptr to arg, !aggregate */
  89. #define ARG_IS_COMPONENT 0x20000000      /* comp of aggregate type */
  90. #define ROOT_NOT_PTRARG  0x40000000      /* root struct not ptr */
  91. #define RESERVED_FLAGS    0x8c00fe00    /* future/internal use */
  92.  
  93. class Request;
  94. /*
  95.  *  Functions for multiple deferred-synchronous requests.
  96.  */
  97. ORBStatus SOMLINK send_multiple_requests (
  98.     IN    Request*    reqs[],        /* array of Requests */
  99.     IN    Environment    *env,
  100.     IN    long        count,        /* number of Requests */
  101.     IN    Flags        invoke_flags
  102.     );
  103.  
  104. ORBStatus SOMLINK get_next_response (
  105.     INOUT    Environment    *env,
  106.     IN    Flags        response_flags,
  107.     OUT    Request*    *req
  108. );
  109.  
  110.  
  111. /* A procedure to create the Request Class */
  112. SOMEXTERN
  113. #if (defined(SOM_Module_REQUEST_Source) || defined(Request_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_Request))
  114. WIN32_DLLEXPORT
  115. #else
  116. WIN32_DLLIMPORT
  117. #endif
  118. SOMClass * SOMLINK RequestNewClass(
  119.         integer4,
  120.         integer4 );
  121.  
  122. /* The API to the Request class object, and the methods it introduces. */
  123. SOMEXTERN struct RequestClassDataStructure {
  124.     SOMClass *classObject;
  125.     somMToken add_arg;
  126.     somMToken invoke;
  127.     somMToken send;
  128.     somMToken get_response;
  129.     somMToken destroy;
  130.     somMToken _get_objref;
  131.     somMToken _set_objref;
  132.     somMToken _get_ctx;
  133.     somMToken _set_ctx;
  134.     somMToken _get_operation;
  135.     somMToken _set_operation;
  136.     somMToken _get_argument_list;
  137.     somMToken _set_argument_list;
  138.     somMToken _get_return_result;
  139.     somMToken _set_return_result;
  140.     somMToken _get_req_flags;
  141.     somMToken _set_req_flags;
  142.     somMToken _get_env;
  143.     somMToken _set_env;
  144. }
  145. #if !(defined(SOM_Module_REQUEST_Source) || defined(Request_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_Request))
  146. WIN32_DLLIMPORT
  147. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  148. WIN32_DLLEXPORT
  149. #endif
  150. SOMDLINK RequestClassData;
  151. #define _Request RequestClassData.classObject
  152.  
  153. /* The API to parentMtabs for Request, and the instance data it introduces. */
  154. SOMEXTERN struct RequestCClassDataStructure {
  155.     somMethodTabs parentMtab;
  156.     somDToken              instanceDataToken;
  157. }
  158. #if !(defined(SOM_Module_REQUEST_Source) || defined(Request_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_Request))
  159. WIN32_DLLIMPORT
  160. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  161. WIN32_DLLEXPORT
  162. #endif
  163. SOMDLINK RequestCClassData;
  164.  
  165. /*
  166.  * -- Typedefs for Request Method Procedures
  167.  */
  168. extern "C" {
  169. typedef ORBStatus   SOMLINK somTP_Request_add_arg(Request *somSelf, Environment *ev,
  170.         Identifier name,
  171.         TypeCode arg_type,
  172.         void* value,
  173.         long len,
  174.         Flags arg_flags);
  175. typedef somTP_Request_add_arg *somTD_Request_add_arg;
  176. typedef ORBStatus   SOMLINK somTP_Request_invoke(Request *somSelf, Environment *ev,
  177.         Flags invoke_flags);
  178. typedef somTP_Request_invoke *somTD_Request_invoke;
  179. typedef ORBStatus   SOMLINK somTP_Request_send(Request *somSelf, Environment *ev,
  180.         Flags invoke_flags);
  181. typedef somTP_Request_send *somTD_Request_send;
  182. typedef ORBStatus   SOMLINK somTP_Request_get_response(Request *somSelf, Environment *ev,
  183.         Flags response_flags);
  184. typedef somTP_Request_get_response *somTD_Request_get_response;
  185. typedef ORBStatus   SOMLINK somTP_Request_destroy(Request *somSelf, Environment *ev);
  186. typedef somTP_Request_destroy *somTD_Request_destroy;
  187.  
  188. /*
  189.  * -- Typedefs for Reintroduced Wrapper Methods
  190.  */
  191. typedef void   SOMLINK somTP_Request_somDefaultInit(Request *somSelf,
  192.         somInitCtrl* ctrl);
  193. typedef somTP_Request_somDefaultInit *somTD_Request_somDefaultInit;
  194. typedef void   SOMLINK somTP_Request_somDestruct(Request *somSelf,
  195.         octet doFree,
  196.         somDestructCtrl* ctrl);
  197. typedef somTP_Request_somDestruct *somTD_Request_somDestruct;
  198. typedef void   SOMLINK somTP_Request_somDefaultCopyInit(Request *somSelf,
  199.         somInitCtrl* ctrl,
  200.         SOMObject* fromObj);
  201. typedef somTP_Request_somDefaultCopyInit *somTD_Request_somDefaultCopyInit;
  202. typedef Request*   SOMLINK somTP_Request_somDefaultAssign(Request *somSelf,
  203.         somAssignCtrl* ctrl,
  204.         SOMObject* fromObj);
  205. typedef somTP_Request_somDefaultAssign *somTD_Request_somDefaultAssign;
  206. typedef void   SOMLINK somTP_Request_somDefaultConstCopyInit(Request *somSelf,
  207.         somInitCtrl* ctrl,
  208.         SOMObject* fromObj);
  209. typedef somTP_Request_somDefaultConstCopyInit *somTD_Request_somDefaultConstCopyInit;
  210. typedef void   SOMLINK somTP_Request_somDefaultVCopyInit(Request *somSelf,
  211.         somInitCtrl* ctrl,
  212.         SOMObject* fromObj);
  213. typedef somTP_Request_somDefaultVCopyInit *somTD_Request_somDefaultVCopyInit;
  214. typedef void   SOMLINK somTP_Request_somDefaultConstVCopyInit(Request *somSelf,
  215.         somInitCtrl* ctrl,
  216.         SOMObject* fromObj);
  217. typedef somTP_Request_somDefaultConstVCopyInit *somTD_Request_somDefaultConstVCopyInit;
  218. typedef Request*   SOMLINK somTP_Request_somDefaultConstAssign(Request *somSelf,
  219.         somAssignCtrl* ctrl,
  220.         SOMObject* fromObj);
  221. typedef somTP_Request_somDefaultConstAssign *somTD_Request_somDefaultConstAssign;
  222. typedef Request*   SOMLINK somTP_Request_somDefaultVAssign(Request *somSelf,
  223.         somAssignCtrl* ctrl,
  224.         SOMObject* fromObj);
  225. typedef somTP_Request_somDefaultVAssign *somTD_Request_somDefaultVAssign;
  226. typedef Request*   SOMLINK somTP_Request_somDefaultConstVAssign(Request *somSelf,
  227.         somAssignCtrl* ctrl,
  228.         SOMObject* fromObj);
  229. typedef somTP_Request_somDefaultConstVAssign *somTD_Request_somDefaultConstVAssign;
  230. typedef void   SOMLINK somTP_Request_somInit(Request *somSelf);
  231. typedef somTP_Request_somInit *somTD_Request_somInit;
  232. typedef void   SOMLINK somTP_Request_somFree(Request *somSelf);
  233. typedef somTP_Request_somFree *somTD_Request_somFree;
  234. typedef void   SOMLINK somTP_Request_somUninit(Request *somSelf);
  235. typedef somTP_Request_somUninit *somTD_Request_somUninit;
  236. typedef SOMClass*   SOMLINK somTP_Request_somGetClass(Request *somSelf);
  237. typedef somTP_Request_somGetClass *somTD_Request_somGetClass;
  238. typedef string   SOMLINK somTP_Request_somGetClassName(Request *somSelf);
  239. typedef somTP_Request_somGetClassName *somTD_Request_somGetClassName;
  240. typedef long   SOMLINK somTP_Request_somGetSize(Request *somSelf);
  241. typedef somTP_Request_somGetSize *somTD_Request_somGetSize;
  242. typedef boolean   SOMLINK somTP_Request_somIsA(Request *somSelf,
  243.         SOMClass* aClassObj);
  244. typedef somTP_Request_somIsA *somTD_Request_somIsA;
  245. typedef boolean   SOMLINK somTP_Request_somIsInstanceOf(Request *somSelf,
  246.         SOMClass* aClassObj);
  247. typedef somTP_Request_somIsInstanceOf *somTD_Request_somIsInstanceOf;
  248. typedef boolean   SOMLINK somTP_Request_somRespondsTo(Request *somSelf,
  249.         somId mId);
  250. typedef somTP_Request_somRespondsTo *somTD_Request_somRespondsTo;
  251. typedef boolean   SOMLINK somTP_Request_somDispatch(Request *somSelf,
  252.         somToken* retValue,
  253.         somId methodId,
  254.         va_list ap);
  255. typedef somTP_Request_somDispatch *somTD_Request_somDispatch;
  256. typedef boolean   SOMLINK somTP_Request_somClassDispatch(Request *somSelf,
  257.         SOMClass* clsObj,
  258.         somToken* retValue,
  259.         somId methodId,
  260.         va_list ap);
  261. typedef somTP_Request_somClassDispatch *somTD_Request_somClassDispatch;
  262. typedef boolean   SOMLINK somTP_Request_somCastObj(Request *somSelf,
  263.         SOMClass* cls);
  264. typedef somTP_Request_somCastObj *somTD_Request_somCastObj;
  265. typedef boolean   SOMLINK somTP_Request_somResetObj(Request *somSelf);
  266. typedef somTP_Request_somResetObj *somTD_Request_somResetObj;
  267. typedef SOMObject*   SOMLINK somTP_Request_somPrintSelf(Request *somSelf);
  268. typedef somTP_Request_somPrintSelf *somTD_Request_somPrintSelf;
  269. typedef void   SOMLINK somTP_Request_somDumpSelf(Request *somSelf,
  270.         long level);
  271. typedef somTP_Request_somDumpSelf *somTD_Request_somDumpSelf;
  272. typedef void   SOMLINK somTP_Request_somDumpSelfInt(Request *somSelf,
  273.         long level);
  274. typedef somTP_Request_somDumpSelfInt *somTD_Request_somDumpSelfInt;
  275. }
  276.  
  277. #endif /* Request_API */
  278.  
  279.  
  280. /*
  281.  * -- This emitter believes that method thunks are unavailable,
  282.  * -- so somResolve will be called.
  283.  */
  284. #undef somresolve_
  285. #define somresolve_(obj,mToken) (somResolve(obj,mToken))
  286.  
  287. /*
  288.  * -- The C++ Wrapper Class for Request
  289.  */
  290. class Request : public SOMObject
  291. {
  292. public:
  293.  
  294. // Request::new creates the class object if necessary, and then uses somNewNoInit
  295. // to allocate memory and create the object. Initialization is in ctors.
  296. void *operator new(size_t)
  297. {
  298.    if (!_Request) RequestNewClass(Request_MajorVersion,Request_MinorVersion);
  299.    return (void*)
  300.       SOM_Resolve(_Request,SOMClass,somNewNoInit)
  301.          ((SOMClass *)((void*)_Request));
  302. }
  303.  
  304. // Request::delete uses somDestruct.
  305. void operator delete(void * obj)
  306. {
  307.    if (obj && *(void**)obj) {
  308.       SOM_Resolve(obj,SOMObject,somDestruct)
  309.          ((SOMObject*)obj, 1, 0);
  310.    }
  311. }
  312.  
  313. Request()
  314. {
  315.    if (*(void**)this != 
  316.        ((somParentMtabStructPtr)
  317.         (RequestCClassData.parentMtab))->mtab)
  318.       return;
  319.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  320. }
  321.  
  322. Request(Request* fromObj)
  323. {
  324.    if (*(void**)this != 
  325.        ((somParentMtabStructPtr)
  326.         (RequestCClassData.parentMtab))->mtab)
  327.       return;
  328.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  329. }
  330.  
  331. Request(const Request* fromObj)
  332. {
  333.    if (*(void**)this != 
  334.        ((somParentMtabStructPtr)
  335.         (RequestCClassData.parentMtab))->mtab)
  336.       return;
  337.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  338. }
  339.  
  340.  
  341. /* method: add_arg */
  342. ORBStatus   add_arg(Environment *ev,
  343.         Identifier name,
  344.         TypeCode arg_type,
  345.         void* value,
  346.         long len,
  347.         Flags arg_flags)
  348. {
  349.    return SOM_ResolveD(this,Request,Request,add_arg)
  350.     (this, ev,name,arg_type,value,len,arg_flags);
  351. }
  352.  
  353.  
  354. /* method: invoke */
  355. ORBStatus   invoke(Environment *ev,
  356.         Flags invoke_flags)
  357. {
  358.    return SOM_ResolveD(this,Request,Request,invoke)
  359.     (this, ev,invoke_flags);
  360. }
  361.  
  362.  
  363. /* method: send */
  364. ORBStatus   send(Environment *ev,
  365.         Flags invoke_flags)
  366. {
  367.    return SOM_ResolveD(this,Request,Request,send)
  368.     (this, ev,invoke_flags);
  369. }
  370.  
  371.  
  372. /* method: get_response */
  373. ORBStatus   get_response(Environment *ev,
  374.         Flags response_flags)
  375. {
  376.    return SOM_ResolveD(this,Request,Request,get_response)
  377.     (this, ev,response_flags);
  378. }
  379.  
  380.  
  381. /* method: destroy */
  382. ORBStatus   destroy(Environment *ev)
  383. {
  384.    return SOM_ResolveD(this,Request,Request,destroy)
  385.     (this, ev);
  386. }
  387.  
  388.  
  389. /*
  390.  * Reintroduce inherited methods
  391.  */
  392.  
  393. /* initializer method: somDefaultInit */
  394. void   somDefaultInit(somInitCtrl* ctrl)
  395. {
  396.    SOM_ResolveD(this,Request,SOMObject,somDefaultInit)
  397.     (this,ctrl);
  398. }
  399.  
  400.  
  401. /* method: somDestruct */
  402. void   somDestruct(octet doFree,
  403.         somDestructCtrl* ctrl)
  404. {
  405.    SOM_ResolveD(this,Request,SOMObject,somDestruct)
  406.     (this,doFree,ctrl);
  407. }
  408.  
  409.  
  410. /* initializer method: somDefaultCopyInit */
  411. void   somDefaultCopyInit(somInitCtrl* ctrl,
  412.         SOMObject* fromObj)
  413. {
  414.    SOM_ResolveD(this,Request,SOMObject,somDefaultCopyInit)
  415.     (this,ctrl,fromObj);
  416. }
  417.  
  418.  
  419. /* method: somDefaultAssign */
  420. Request*  somDefaultAssign(somAssignCtrl* ctrl,
  421.         SOMObject* fromObj)
  422. {
  423.    return SOM_ResolveD(this,Request,SOMObject,somDefaultAssign)
  424.     (this,ctrl,fromObj);
  425. }
  426.  
  427.  
  428. /* initializer method: somDefaultConstCopyInit */
  429. void   somDefaultConstCopyInit(somInitCtrl* ctrl,
  430.         SOMObject* fromObj)
  431. {
  432.    SOM_ResolveD(this,Request,SOMObject,somDefaultConstCopyInit)
  433.     (this,ctrl,fromObj);
  434. }
  435.  
  436.  
  437. /* initializer method: somDefaultVCopyInit */
  438. void   somDefaultVCopyInit(somInitCtrl* ctrl,
  439.         SOMObject* fromObj)
  440. {
  441.    SOM_ResolveD(this,Request,SOMObject,somDefaultVCopyInit)
  442.     (this,ctrl,fromObj);
  443. }
  444.  
  445.  
  446. /* initializer method: somDefaultConstVCopyInit */
  447. void   somDefaultConstVCopyInit(somInitCtrl* ctrl,
  448.         SOMObject* fromObj)
  449. {
  450.    SOM_ResolveD(this,Request,SOMObject,somDefaultConstVCopyInit)
  451.     (this,ctrl,fromObj);
  452. }
  453.  
  454.  
  455. /* method: somDefaultConstAssign */
  456. Request*  somDefaultConstAssign(somAssignCtrl* ctrl,
  457.         SOMObject* fromObj)
  458. {
  459.    return SOM_ResolveD(this,Request,SOMObject,somDefaultConstAssign)
  460.     (this,ctrl,fromObj);
  461. }
  462.  
  463.  
  464. /* method: somDefaultVAssign */
  465. Request*  somDefaultVAssign(somAssignCtrl* ctrl,
  466.         SOMObject* fromObj)
  467. {
  468.    return SOM_ResolveD(this,Request,SOMObject,somDefaultVAssign)
  469.     (this,ctrl,fromObj);
  470. }
  471.  
  472.  
  473. /* method: somDefaultConstVAssign */
  474. Request*  somDefaultConstVAssign(somAssignCtrl* ctrl,
  475.         SOMObject* fromObj)
  476. {
  477.    return SOM_ResolveD(this,Request,SOMObject,somDefaultConstVAssign)
  478.     (this,ctrl,fromObj);
  479. }
  480.  
  481.  
  482. /* method: somInit */
  483. void   somInit()
  484. {
  485.    SOM_ResolveD(this,Request,SOMObject,somInit)
  486.     (this);
  487. }
  488.  
  489.  
  490. /* method: somFree */
  491. void   somFree()
  492. {
  493.    SOM_ResolveD(this,Request,SOMObject,somFree)
  494.     (this);
  495. }
  496.  
  497.  
  498. /* method: somUninit */
  499. void   somUninit()
  500. {
  501.    SOM_ResolveD(this,Request,SOMObject,somUninit)
  502.     (this);
  503. }
  504.  
  505.  
  506. /* method: somGetClass */
  507. SOMClass*   somGetClass()
  508. {
  509.    return SOM_ResolveD(this,Request,SOMObject,somGetClass)
  510.     (this);
  511. }
  512.  
  513.  
  514. /* method: somGetClassName */
  515. string   somGetClassName()
  516. {
  517.    return SOM_ResolveD(this,Request,SOMObject,somGetClassName)
  518.     (this);
  519. }
  520.  
  521.  
  522. /* method: somGetSize */
  523. long   somGetSize()
  524. {
  525.    return SOM_ResolveD(this,Request,SOMObject,somGetSize)
  526.     (this);
  527. }
  528.  
  529.  
  530. /* method: somIsA */
  531. boolean   somIsA(SOMClass* aClassObj)
  532. {
  533.    return SOM_ResolveD(this,Request,SOMObject,somIsA)
  534.     (this,aClassObj);
  535. }
  536.  
  537.  
  538. /* method: somIsInstanceOf */
  539. boolean   somIsInstanceOf(SOMClass* aClassObj)
  540. {
  541.    return SOM_ResolveD(this,Request,SOMObject,somIsInstanceOf)
  542.     (this,aClassObj);
  543. }
  544.  
  545.  
  546. /* method: somRespondsTo */
  547. boolean   somRespondsTo(somId mId)
  548. {
  549.    return SOM_ResolveD(this,Request,SOMObject,somRespondsTo)
  550.     (this,mId);
  551. }
  552.  
  553.  
  554. /* va_list method: somDispatch */
  555. /* the va_list invocation form */
  556. boolean   Request_somDispatch(somToken* retValue,
  557.         somId methodId,
  558.         va_list ap)
  559. {
  560. return SOM_ResolveD(this,Request,SOMObject,somDispatch)
  561.     (this,retValue,methodId,ap);
  562. }
  563.  
  564. /* the varargs invocation form */
  565. boolean   somDispatch(somToken* retValue,
  566.         somId methodId,
  567.         ...)
  568. {
  569.    va_list ap;
  570.    va_start(ap, methodId);
  571.    boolean __somResult = 
  572.       SOM_ResolveD(this,Request,SOMObject,somDispatch)
  573.     (this,retValue,methodId,ap);
  574.    va_end(ap);
  575.    return __somResult;
  576. }
  577.  
  578.  
  579. /* va_list method: somClassDispatch */
  580. /* the va_list invocation form */
  581. boolean   Request_somClassDispatch(SOMClass* clsObj,
  582.         somToken* retValue,
  583.         somId methodId,
  584.         va_list ap)
  585. {
  586. return SOM_ResolveD(this,Request,SOMObject,somClassDispatch)
  587.     (this,clsObj,retValue,methodId,ap);
  588. }
  589.  
  590. /* the varargs invocation form */
  591. boolean   somClassDispatch(SOMClass* clsObj,
  592.         somToken* retValue,
  593.         somId methodId,
  594.         ...)
  595. {
  596.    va_list ap;
  597.    va_start(ap, methodId);
  598.    boolean __somResult = 
  599.       SOM_ResolveD(this,Request,SOMObject,somClassDispatch)
  600.     (this,clsObj,retValue,methodId,ap);
  601.    va_end(ap);
  602.    return __somResult;
  603. }
  604.  
  605.  
  606. /* method: somCastObj */
  607. boolean   somCastObj(SOMClass* cls)
  608. {
  609.    return SOM_ResolveD(this,Request,SOMObject,somCastObj)
  610.     (this,cls);
  611. }
  612.  
  613.  
  614. /* method: somResetObj */
  615. boolean   somResetObj()
  616. {
  617.    return SOM_ResolveD(this,Request,SOMObject,somResetObj)
  618.     (this);
  619. }
  620.  
  621.  
  622. /* method: somPrintSelf */
  623. SOMObject*   somPrintSelf()
  624. {
  625.    return SOM_ResolveD(this,Request,SOMObject,somPrintSelf)
  626.     (this);
  627. }
  628.  
  629.  
  630. /* method: somDumpSelf */
  631. void   somDumpSelf(long level)
  632. {
  633.    SOM_ResolveD(this,Request,SOMObject,somDumpSelf)
  634.     (this,level);
  635. }
  636.  
  637.  
  638. /* method: somDumpSelfInt */
  639. void   somDumpSelfInt(long level)
  640. {
  641.    SOM_ResolveD(this,Request,SOMObject,somDumpSelfInt)
  642.     (this,level);
  643. }
  644.  
  645.  
  646.  
  647. };   /* Request */
  648.  
  649.  
  650.  
  651. #endif       /* SOM_Request_xh */
  652.