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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: h:\somnt\include\CNTXT.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 specification for CORBA Context Object.
  24.  */
  25.  
  26.  
  27. #ifndef SOM_Context_xh
  28. #define SOM_Context_xh
  29.  
  30. class Context;
  31.  
  32. #define Context_MajorVersion 2
  33. #define Context_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 Context_API
  45. #define Context_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. class NVList;
  57.  
  58. /*
  59.  * End of user-defined types.
  60.  */
  61.  
  62. /*
  63.  * Passthru lines: File: "C.xh", "after"
  64.  */
  65.  
  66. /*
  67.  * Context flags
  68.  */
  69. #define CTX_DELETE_DESCENDENTS      0x00000200
  70. #define CTX_RESTRICT_SCOPE          0x00000400
  71.  
  72.  
  73. /* A procedure to create the Context Class */
  74. SOMEXTERN
  75. #if (defined(SOM_Module_CNTXT_Source) || defined(Context_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_Context))
  76. WIN32_DLLEXPORT
  77. #else
  78. WIN32_DLLIMPORT
  79. #endif
  80. SOMClass * SOMLINK ContextNewClass(
  81.         integer4,
  82.         integer4 );
  83.  
  84. /* The API to the Context class object, and the methods it introduces. */
  85. SOMEXTERN struct ContextClassDataStructure {
  86.     SOMClass *classObject;
  87.     somMToken set_one_value;
  88.     somMToken set_values;
  89.     somMToken get_values;
  90.     somMToken delete_values;
  91.     somMToken create_child;
  92.     somMToken destroy;
  93.     somMToken _get_context_name;
  94.     somMToken _set_context_name;
  95.     somMToken _get_context_parent;
  96.     somMToken _set_context_parent;
  97.     somMToken _get_properties;
  98.     somMToken _set_properties;
  99. }
  100. #if !(defined(SOM_Module_CNTXT_Source) || defined(Context_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_Context))
  101. WIN32_DLLIMPORT
  102. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  103. WIN32_DLLEXPORT
  104. #endif
  105. SOMDLINK ContextClassData;
  106. #define _Context ContextClassData.classObject
  107.  
  108. /* The API to parentMtabs for Context, and the instance data it introduces. */
  109. SOMEXTERN struct ContextCClassDataStructure {
  110.     somMethodTabs parentMtab;
  111.     somDToken              instanceDataToken;
  112. }
  113. #if !(defined(SOM_Module_CNTXT_Source) || defined(Context_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_Context))
  114. WIN32_DLLIMPORT
  115. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  116. WIN32_DLLEXPORT
  117. #endif
  118. SOMDLINK ContextCClassData;
  119.  
  120. /*
  121.  * -- Typedefs for Context Method Procedures
  122.  */
  123. extern "C" {
  124. typedef ORBStatus   SOMLINK somTP_Context_set_one_value(Context *somSelf, Environment *ev,
  125.         Identifier prop_name,
  126.         string value);
  127. typedef somTP_Context_set_one_value *somTD_Context_set_one_value;
  128. typedef ORBStatus   SOMLINK somTP_Context_set_values(Context *somSelf, Environment *ev,
  129.         NVList* values);
  130. typedef somTP_Context_set_values *somTD_Context_set_values;
  131. typedef ORBStatus   SOMLINK somTP_Context_get_values(Context *somSelf, Environment *ev,
  132.         Identifier start_scope,
  133.         Flags op_flags,
  134.         Identifier prop_name,
  135.         NVList** values);
  136. typedef somTP_Context_get_values *somTD_Context_get_values;
  137. typedef ORBStatus   SOMLINK somTP_Context_delete_values(Context *somSelf, Environment *ev,
  138.         Identifier prop_name);
  139. typedef somTP_Context_delete_values *somTD_Context_delete_values;
  140. typedef ORBStatus   SOMLINK somTP_Context_create_child(Context *somSelf, Environment *ev,
  141.         Identifier ctx_name,
  142.         Context** child_ctx);
  143. typedef somTP_Context_create_child *somTD_Context_create_child;
  144. typedef ORBStatus   SOMLINK somTP_Context_destroy(Context *somSelf, Environment *ev,
  145.         Flags flags);
  146. typedef somTP_Context_destroy *somTD_Context_destroy;
  147.  
  148. /*
  149.  * -- Typedefs for Reintroduced Wrapper Methods
  150.  */
  151. typedef void   SOMLINK somTP_Context_somDefaultInit(Context *somSelf,
  152.         somInitCtrl* ctrl);
  153. typedef somTP_Context_somDefaultInit *somTD_Context_somDefaultInit;
  154. typedef void   SOMLINK somTP_Context_somDestruct(Context *somSelf,
  155.         octet doFree,
  156.         somDestructCtrl* ctrl);
  157. typedef somTP_Context_somDestruct *somTD_Context_somDestruct;
  158. typedef void   SOMLINK somTP_Context_somDefaultCopyInit(Context *somSelf,
  159.         somInitCtrl* ctrl,
  160.         SOMObject* fromObj);
  161. typedef somTP_Context_somDefaultCopyInit *somTD_Context_somDefaultCopyInit;
  162. typedef Context*   SOMLINK somTP_Context_somDefaultAssign(Context *somSelf,
  163.         somAssignCtrl* ctrl,
  164.         SOMObject* fromObj);
  165. typedef somTP_Context_somDefaultAssign *somTD_Context_somDefaultAssign;
  166. typedef void   SOMLINK somTP_Context_somDefaultConstCopyInit(Context *somSelf,
  167.         somInitCtrl* ctrl,
  168.         SOMObject* fromObj);
  169. typedef somTP_Context_somDefaultConstCopyInit *somTD_Context_somDefaultConstCopyInit;
  170. typedef void   SOMLINK somTP_Context_somDefaultVCopyInit(Context *somSelf,
  171.         somInitCtrl* ctrl,
  172.         SOMObject* fromObj);
  173. typedef somTP_Context_somDefaultVCopyInit *somTD_Context_somDefaultVCopyInit;
  174. typedef void   SOMLINK somTP_Context_somDefaultConstVCopyInit(Context *somSelf,
  175.         somInitCtrl* ctrl,
  176.         SOMObject* fromObj);
  177. typedef somTP_Context_somDefaultConstVCopyInit *somTD_Context_somDefaultConstVCopyInit;
  178. typedef Context*   SOMLINK somTP_Context_somDefaultConstAssign(Context *somSelf,
  179.         somAssignCtrl* ctrl,
  180.         SOMObject* fromObj);
  181. typedef somTP_Context_somDefaultConstAssign *somTD_Context_somDefaultConstAssign;
  182. typedef Context*   SOMLINK somTP_Context_somDefaultVAssign(Context *somSelf,
  183.         somAssignCtrl* ctrl,
  184.         SOMObject* fromObj);
  185. typedef somTP_Context_somDefaultVAssign *somTD_Context_somDefaultVAssign;
  186. typedef Context*   SOMLINK somTP_Context_somDefaultConstVAssign(Context *somSelf,
  187.         somAssignCtrl* ctrl,
  188.         SOMObject* fromObj);
  189. typedef somTP_Context_somDefaultConstVAssign *somTD_Context_somDefaultConstVAssign;
  190. typedef void   SOMLINK somTP_Context_somInit(Context *somSelf);
  191. typedef somTP_Context_somInit *somTD_Context_somInit;
  192. typedef void   SOMLINK somTP_Context_somFree(Context *somSelf);
  193. typedef somTP_Context_somFree *somTD_Context_somFree;
  194. typedef void   SOMLINK somTP_Context_somUninit(Context *somSelf);
  195. typedef somTP_Context_somUninit *somTD_Context_somUninit;
  196. typedef SOMClass*   SOMLINK somTP_Context_somGetClass(Context *somSelf);
  197. typedef somTP_Context_somGetClass *somTD_Context_somGetClass;
  198. typedef string   SOMLINK somTP_Context_somGetClassName(Context *somSelf);
  199. typedef somTP_Context_somGetClassName *somTD_Context_somGetClassName;
  200. typedef long   SOMLINK somTP_Context_somGetSize(Context *somSelf);
  201. typedef somTP_Context_somGetSize *somTD_Context_somGetSize;
  202. typedef boolean   SOMLINK somTP_Context_somIsA(Context *somSelf,
  203.         SOMClass* aClassObj);
  204. typedef somTP_Context_somIsA *somTD_Context_somIsA;
  205. typedef boolean   SOMLINK somTP_Context_somIsInstanceOf(Context *somSelf,
  206.         SOMClass* aClassObj);
  207. typedef somTP_Context_somIsInstanceOf *somTD_Context_somIsInstanceOf;
  208. typedef boolean   SOMLINK somTP_Context_somRespondsTo(Context *somSelf,
  209.         somId mId);
  210. typedef somTP_Context_somRespondsTo *somTD_Context_somRespondsTo;
  211. typedef boolean   SOMLINK somTP_Context_somDispatch(Context *somSelf,
  212.         somToken* retValue,
  213.         somId methodId,
  214.         va_list ap);
  215. typedef somTP_Context_somDispatch *somTD_Context_somDispatch;
  216. typedef boolean   SOMLINK somTP_Context_somClassDispatch(Context *somSelf,
  217.         SOMClass* clsObj,
  218.         somToken* retValue,
  219.         somId methodId,
  220.         va_list ap);
  221. typedef somTP_Context_somClassDispatch *somTD_Context_somClassDispatch;
  222. typedef boolean   SOMLINK somTP_Context_somCastObj(Context *somSelf,
  223.         SOMClass* cls);
  224. typedef somTP_Context_somCastObj *somTD_Context_somCastObj;
  225. typedef boolean   SOMLINK somTP_Context_somResetObj(Context *somSelf);
  226. typedef somTP_Context_somResetObj *somTD_Context_somResetObj;
  227. typedef SOMObject*   SOMLINK somTP_Context_somPrintSelf(Context *somSelf);
  228. typedef somTP_Context_somPrintSelf *somTD_Context_somPrintSelf;
  229. typedef void   SOMLINK somTP_Context_somDumpSelf(Context *somSelf,
  230.         long level);
  231. typedef somTP_Context_somDumpSelf *somTD_Context_somDumpSelf;
  232. typedef void   SOMLINK somTP_Context_somDumpSelfInt(Context *somSelf,
  233.         long level);
  234. typedef somTP_Context_somDumpSelfInt *somTD_Context_somDumpSelfInt;
  235. }
  236.  
  237. #endif /* Context_API */
  238.  
  239.  
  240. /*
  241.  * -- This emitter believes that method thunks are unavailable,
  242.  * -- so somResolve will be called.
  243.  */
  244. #undef somresolve_
  245. #define somresolve_(obj,mToken) (somResolve(obj,mToken))
  246.  
  247. /*
  248.  * -- The C++ Wrapper Class for Context
  249.  */
  250. class Context : public SOMObject
  251. {
  252. public:
  253.  
  254. // Context::new creates the class object if necessary, and then uses somNewNoInit
  255. // to allocate memory and create the object. Initialization is in ctors.
  256. void *operator new(size_t)
  257. {
  258.    if (!_Context) ContextNewClass(Context_MajorVersion,Context_MinorVersion);
  259.    return (void*)
  260.       SOM_Resolve(_Context,SOMClass,somNewNoInit)
  261.          ((SOMClass *)((void*)_Context));
  262. }
  263.  
  264. // Context::delete uses somDestruct.
  265. void operator delete(void * obj)
  266. {
  267.    if (obj && *(void**)obj) {
  268.       SOM_Resolve(obj,SOMObject,somDestruct)
  269.          ((SOMObject*)obj, 1, 0);
  270.    }
  271. }
  272.  
  273. Context()
  274. {
  275.    if (*(void**)this != 
  276.        ((somParentMtabStructPtr)
  277.         (ContextCClassData.parentMtab))->mtab)
  278.       return;
  279.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  280. }
  281.  
  282. Context(Context* fromObj)
  283. {
  284.    if (*(void**)this != 
  285.        ((somParentMtabStructPtr)
  286.         (ContextCClassData.parentMtab))->mtab)
  287.       return;
  288.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  289. }
  290.  
  291. Context(const Context* fromObj)
  292. {
  293.    if (*(void**)this != 
  294.        ((somParentMtabStructPtr)
  295.         (ContextCClassData.parentMtab))->mtab)
  296.       return;
  297.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  298. }
  299.  
  300.  
  301. /* method: set_one_value */
  302. ORBStatus   set_one_value(Environment *ev,
  303.         Identifier prop_name,
  304.         string value)
  305. {
  306.    return SOM_ResolveD(this,Context,Context,set_one_value)
  307.     (this, ev,prop_name,value);
  308. }
  309.  
  310.  
  311. /* method: set_values */
  312. ORBStatus   set_values(Environment *ev,
  313.         NVList* values)
  314. {
  315.    return SOM_ResolveD(this,Context,Context,set_values)
  316.     (this, ev,values);
  317. }
  318.  
  319.  
  320. /* method: get_values */
  321. ORBStatus   get_values(Environment *ev,
  322.         Identifier start_scope,
  323.         Flags op_flags,
  324.         Identifier prop_name,
  325.         NVList** values)
  326. {
  327.    return SOM_ResolveD(this,Context,Context,get_values)
  328.     (this, ev,start_scope,op_flags,prop_name,values);
  329. }
  330.  
  331.  
  332. /* method: delete_values */
  333. ORBStatus   delete_values(Environment *ev,
  334.         Identifier prop_name)
  335. {
  336.    return SOM_ResolveD(this,Context,Context,delete_values)
  337.     (this, ev,prop_name);
  338. }
  339.  
  340.  
  341. /* method: create_child */
  342. ORBStatus   create_child(Environment *ev,
  343.         Identifier ctx_name,
  344.         Context** child_ctx)
  345. {
  346.    return SOM_ResolveD(this,Context,Context,create_child)
  347.     (this, ev,ctx_name,child_ctx);
  348. }
  349.  
  350.  
  351. /* method: destroy */
  352. ORBStatus   destroy(Environment *ev,
  353.         Flags flags)
  354. {
  355.    return SOM_ResolveD(this,Context,Context,destroy)
  356.     (this, ev,flags);
  357. }
  358.  
  359.  
  360. /*
  361.  * Reintroduce inherited methods
  362.  */
  363.  
  364. /* initializer method: somDefaultInit */
  365. void   somDefaultInit(somInitCtrl* ctrl)
  366. {
  367.    SOM_ResolveD(this,Context,SOMObject,somDefaultInit)
  368.     (this,ctrl);
  369. }
  370.  
  371.  
  372. /* method: somDestruct */
  373. void   somDestruct(octet doFree,
  374.         somDestructCtrl* ctrl)
  375. {
  376.    SOM_ResolveD(this,Context,SOMObject,somDestruct)
  377.     (this,doFree,ctrl);
  378. }
  379.  
  380.  
  381. /* initializer method: somDefaultCopyInit */
  382. void   somDefaultCopyInit(somInitCtrl* ctrl,
  383.         SOMObject* fromObj)
  384. {
  385.    SOM_ResolveD(this,Context,SOMObject,somDefaultCopyInit)
  386.     (this,ctrl,fromObj);
  387. }
  388.  
  389.  
  390. /* method: somDefaultAssign */
  391. Context*  somDefaultAssign(somAssignCtrl* ctrl,
  392.         SOMObject* fromObj)
  393. {
  394.    return SOM_ResolveD(this,Context,SOMObject,somDefaultAssign)
  395.     (this,ctrl,fromObj);
  396. }
  397.  
  398.  
  399. /* initializer method: somDefaultConstCopyInit */
  400. void   somDefaultConstCopyInit(somInitCtrl* ctrl,
  401.         SOMObject* fromObj)
  402. {
  403.    SOM_ResolveD(this,Context,SOMObject,somDefaultConstCopyInit)
  404.     (this,ctrl,fromObj);
  405. }
  406.  
  407.  
  408. /* initializer method: somDefaultVCopyInit */
  409. void   somDefaultVCopyInit(somInitCtrl* ctrl,
  410.         SOMObject* fromObj)
  411. {
  412.    SOM_ResolveD(this,Context,SOMObject,somDefaultVCopyInit)
  413.     (this,ctrl,fromObj);
  414. }
  415.  
  416.  
  417. /* initializer method: somDefaultConstVCopyInit */
  418. void   somDefaultConstVCopyInit(somInitCtrl* ctrl,
  419.         SOMObject* fromObj)
  420. {
  421.    SOM_ResolveD(this,Context,SOMObject,somDefaultConstVCopyInit)
  422.     (this,ctrl,fromObj);
  423. }
  424.  
  425.  
  426. /* method: somDefaultConstAssign */
  427. Context*  somDefaultConstAssign(somAssignCtrl* ctrl,
  428.         SOMObject* fromObj)
  429. {
  430.    return SOM_ResolveD(this,Context,SOMObject,somDefaultConstAssign)
  431.     (this,ctrl,fromObj);
  432. }
  433.  
  434.  
  435. /* method: somDefaultVAssign */
  436. Context*  somDefaultVAssign(somAssignCtrl* ctrl,
  437.         SOMObject* fromObj)
  438. {
  439.    return SOM_ResolveD(this,Context,SOMObject,somDefaultVAssign)
  440.     (this,ctrl,fromObj);
  441. }
  442.  
  443.  
  444. /* method: somDefaultConstVAssign */
  445. Context*  somDefaultConstVAssign(somAssignCtrl* ctrl,
  446.         SOMObject* fromObj)
  447. {
  448.    return SOM_ResolveD(this,Context,SOMObject,somDefaultConstVAssign)
  449.     (this,ctrl,fromObj);
  450. }
  451.  
  452.  
  453. /* method: somInit */
  454. void   somInit()
  455. {
  456.    SOM_ResolveD(this,Context,SOMObject,somInit)
  457.     (this);
  458. }
  459.  
  460.  
  461. /* method: somFree */
  462. void   somFree()
  463. {
  464.    SOM_ResolveD(this,Context,SOMObject,somFree)
  465.     (this);
  466. }
  467.  
  468.  
  469. /* method: somUninit */
  470. void   somUninit()
  471. {
  472.    SOM_ResolveD(this,Context,SOMObject,somUninit)
  473.     (this);
  474. }
  475.  
  476.  
  477. /* method: somGetClass */
  478. SOMClass*   somGetClass()
  479. {
  480.    return SOM_ResolveD(this,Context,SOMObject,somGetClass)
  481.     (this);
  482. }
  483.  
  484.  
  485. /* method: somGetClassName */
  486. string   somGetClassName()
  487. {
  488.    return SOM_ResolveD(this,Context,SOMObject,somGetClassName)
  489.     (this);
  490. }
  491.  
  492.  
  493. /* method: somGetSize */
  494. long   somGetSize()
  495. {
  496.    return SOM_ResolveD(this,Context,SOMObject,somGetSize)
  497.     (this);
  498. }
  499.  
  500.  
  501. /* method: somIsA */
  502. boolean   somIsA(SOMClass* aClassObj)
  503. {
  504.    return SOM_ResolveD(this,Context,SOMObject,somIsA)
  505.     (this,aClassObj);
  506. }
  507.  
  508.  
  509. /* method: somIsInstanceOf */
  510. boolean   somIsInstanceOf(SOMClass* aClassObj)
  511. {
  512.    return SOM_ResolveD(this,Context,SOMObject,somIsInstanceOf)
  513.     (this,aClassObj);
  514. }
  515.  
  516.  
  517. /* method: somRespondsTo */
  518. boolean   somRespondsTo(somId mId)
  519. {
  520.    return SOM_ResolveD(this,Context,SOMObject,somRespondsTo)
  521.     (this,mId);
  522. }
  523.  
  524.  
  525. /* va_list method: somDispatch */
  526. /* the va_list invocation form */
  527. boolean   Context_somDispatch(somToken* retValue,
  528.         somId methodId,
  529.         va_list ap)
  530. {
  531. return SOM_ResolveD(this,Context,SOMObject,somDispatch)
  532.     (this,retValue,methodId,ap);
  533. }
  534.  
  535. /* the varargs invocation form */
  536. boolean   somDispatch(somToken* retValue,
  537.         somId methodId,
  538.         ...)
  539. {
  540.    va_list ap;
  541.    va_start(ap, methodId);
  542.    boolean __somResult = 
  543.       SOM_ResolveD(this,Context,SOMObject,somDispatch)
  544.     (this,retValue,methodId,ap);
  545.    va_end(ap);
  546.    return __somResult;
  547. }
  548.  
  549.  
  550. /* va_list method: somClassDispatch */
  551. /* the va_list invocation form */
  552. boolean   Context_somClassDispatch(SOMClass* clsObj,
  553.         somToken* retValue,
  554.         somId methodId,
  555.         va_list ap)
  556. {
  557. return SOM_ResolveD(this,Context,SOMObject,somClassDispatch)
  558.     (this,clsObj,retValue,methodId,ap);
  559. }
  560.  
  561. /* the varargs invocation form */
  562. boolean   somClassDispatch(SOMClass* clsObj,
  563.         somToken* retValue,
  564.         somId methodId,
  565.         ...)
  566. {
  567.    va_list ap;
  568.    va_start(ap, methodId);
  569.    boolean __somResult = 
  570.       SOM_ResolveD(this,Context,SOMObject,somClassDispatch)
  571.     (this,clsObj,retValue,methodId,ap);
  572.    va_end(ap);
  573.    return __somResult;
  574. }
  575.  
  576.  
  577. /* method: somCastObj */
  578. boolean   somCastObj(SOMClass* cls)
  579. {
  580.    return SOM_ResolveD(this,Context,SOMObject,somCastObj)
  581.     (this,cls);
  582. }
  583.  
  584.  
  585. /* method: somResetObj */
  586. boolean   somResetObj()
  587. {
  588.    return SOM_ResolveD(this,Context,SOMObject,somResetObj)
  589.     (this);
  590. }
  591.  
  592.  
  593. /* method: somPrintSelf */
  594. SOMObject*   somPrintSelf()
  595. {
  596.    return SOM_ResolveD(this,Context,SOMObject,somPrintSelf)
  597.     (this);
  598. }
  599.  
  600.  
  601. /* method: somDumpSelf */
  602. void   somDumpSelf(long level)
  603. {
  604.    SOM_ResolveD(this,Context,SOMObject,somDumpSelf)
  605.     (this,level);
  606. }
  607.  
  608.  
  609. /* method: somDumpSelfInt */
  610. void   somDumpSelfInt(long level)
  611. {
  612.    SOM_ResolveD(this,Context,SOMObject,somDumpSelfInt)
  613.     (this,level);
  614. }
  615.  
  616.  
  617.  
  618. };   /* Context */
  619.  
  620.  
  621.  
  622. #endif       /* SOM_Context_xh */
  623.