home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / som / include / operatdf.xh < prev    next >
Text File  |  1999-02-22  |  40KB  |  1,249 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: operatdf.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emitxh: 2.47
  8.  */
  9.  
  10. #ifndef SOM_OperationDef_xh
  11. #define SOM_OperationDef_xh
  12.  
  13. class OperationDef;
  14.  
  15. /*
  16.  *  This interface is used to access information associated with
  17.  *  operations defined in an IDL interface.
  18.  * 
  19.  *  See CORBA 1.1, 7.5.6, pp.135-136
  20.  */
  21.  
  22. #define OperationDef_MajorVersion 2
  23. #define OperationDef_MinorVersion 3
  24.  
  25. /*
  26.  * Passthru lines: File: "C.xh", "before"
  27.  */
  28.  
  29.     #include <somtcnst.xh>
  30.     #include <somir.xh>
  31.     #include <paramdef.xh>
  32.     #include <excptdef.xh>
  33.  
  34.     #define ContextIdentifier string
  35.     #define _IDL_SEQUENCE_ContextIdentifier _IDL_SEQUENCE_string
  36.  
  37.  
  38. /* C++ SOM defs */
  39. #include <somcls.xh>
  40. #include <somcm.xh>
  41.  
  42. /* C++ parent defs */
  43. #ifndef SOM_Contained_xh
  44. #include <containd.xh>
  45. #endif
  46. #ifndef SOM_Container_xh
  47. #include <containr.xh>
  48. #endif
  49.  
  50. #ifndef OperationDef_API
  51. #define OperationDef_API
  52. /*
  53.  * -- The Class API
  54.  */
  55.  
  56. /*
  57.  * Start of bindings for IDL types
  58.  */
  59.  
  60. class SOMClass;
  61. class SOMObject;
  62. class Container;
  63. typedef unsigned long OperationDef_OperationMode;
  64. #define OperationDef_NORMAL 1UL
  65. #define OperationDef_ONEWAY 2UL
  66. #ifndef _IDL_SEQUENCE_string_defined
  67. #define _IDL_SEQUENCE_string_defined
  68. typedef struct {
  69.     unsigned long _maximum;
  70.     unsigned long _length;
  71.     string *_buffer;
  72. } _IDL_SEQUENCE_string;
  73. #endif /* _IDL_SEQUENCE_string_defined */ 
  74. struct ParameterDef_ParameterDescription;
  75. #ifndef _IDL_SEQUENCE_ParameterDef_ParameterDescription_defined
  76. #define _IDL_SEQUENCE_ParameterDef_ParameterDescription_defined
  77. typedef struct {
  78.     unsigned long _maximum;
  79.     unsigned long _length;
  80.     struct ParameterDef_ParameterDescription *_buffer;
  81. } _IDL_SEQUENCE_ParameterDef_ParameterDescription;
  82. #endif /* _IDL_SEQUENCE_ParameterDef_ParameterDescription_defined */ 
  83. struct ExceptionDef_ExceptionDescription;
  84. #ifndef _IDL_SEQUENCE_ExceptionDef_ExceptionDescription_defined
  85. #define _IDL_SEQUENCE_ExceptionDef_ExceptionDescription_defined
  86. typedef struct {
  87.     unsigned long _maximum;
  88.     unsigned long _length;
  89.     struct ExceptionDef_ExceptionDescription *_buffer;
  90. } _IDL_SEQUENCE_ExceptionDef_ExceptionDescription;
  91. #endif /* _IDL_SEQUENCE_ExceptionDef_ExceptionDescription_defined */ 
  92. typedef
  93. struct OperationDef_OperationDescription {
  94. Identifier name;
  95. RepositoryId id;
  96. RepositoryId defined_in;
  97. TypeCode result;
  98. OperationDef_OperationMode mode;
  99. _IDL_SEQUENCE_string contexts;
  100. _IDL_SEQUENCE_ParameterDef_ParameterDescription parameter;
  101. _IDL_SEQUENCE_ExceptionDef_ExceptionDescription exceptions;
  102. } OperationDef_OperationDescription;
  103. /*
  104.  *  The inherited describe method returns an instance of this
  105.  *  (OperationDescription) structure in the "value" member of the
  106.  *  Description structure defined in the Contained interface.
  107.  *  The inherited describe_contents method in the Container
  108.  *  interface returns a sequence of these Description structures
  109.  *  each carrying a reference to an OperationDescription structure
  110.  *  in its "value" member.
  111.  */
  112.  
  113.  
  114. #ifndef SOM_DONT_USE_SHORT_NAMES
  115. #ifndef SOMTGD_OperationMode
  116.     #ifdef OperationMode
  117.         #undef OperationMode
  118.         #define SOMTGD_OperationMode 1
  119.     #else
  120.         #define OperationMode OperationDef_OperationMode
  121.     #endif /* OperationMode */
  122. #endif /* SOMTGD_OperationMode */
  123. #ifndef SOMTGD__IDL_SEQUENCE_ParameterDescription
  124.     #ifdef _IDL_SEQUENCE_ParameterDescription
  125.         #undef _IDL_SEQUENCE_ParameterDescription
  126.         #define SOMTGD__IDL_SEQUENCE_ParameterDescription 1
  127.     #else
  128.         #define _IDL_SEQUENCE_ParameterDescription _IDL_SEQUENCE_ParameterDef_ParameterDescription
  129.     #endif /* _IDL_SEQUENCE_ParameterDescription */
  130. #endif /* SOMTGD__IDL_SEQUENCE_ParameterDescription */
  131. #ifndef SOMTGD__IDL_SEQUENCE_ExceptionDescription
  132.     #ifdef _IDL_SEQUENCE_ExceptionDescription
  133.         #undef _IDL_SEQUENCE_ExceptionDescription
  134.         #define SOMTGD__IDL_SEQUENCE_ExceptionDescription 1
  135.     #else
  136.         #define _IDL_SEQUENCE_ExceptionDescription _IDL_SEQUENCE_ExceptionDef_ExceptionDescription
  137.     #endif /* _IDL_SEQUENCE_ExceptionDescription */
  138. #endif /* SOMTGD__IDL_SEQUENCE_ExceptionDescription */
  139. #ifndef SOMTGD_OperationDescription
  140.     #ifdef OperationDescription
  141.         #undef OperationDescription
  142.         #define SOMTGD_OperationDescription 1
  143.     #else
  144.         #define OperationDescription OperationDef_OperationDescription
  145.     #endif /* OperationDescription */
  146. #endif /* SOMTGD_OperationDescription */
  147. #endif /* SOM_DONT_USE_SHORT_NAMES */
  148.  
  149. /*
  150.  * End of bindings for IDL types.
  151.  */
  152.  
  153. /* A procedure to create the OperationDef Class */
  154. SOMEXTERN SOMClass * SOMLINK OperationDefNewClass(
  155.         integer4 majorVersion,
  156.         integer4 minorVersion);
  157.  
  158. /* The API to the OperationDef class object, and the methods it introduces. */
  159. SOMEXTERN struct OperationDefClassDataStructure {
  160.     SOMClass *classObject;
  161.     somMToken _get_result;
  162.     somMToken _set_result;
  163.     somMToken _get_mode;
  164.     somMToken _set_mode;
  165.     somMToken _get_contexts;
  166.     somMToken _set_contexts;
  167. } SOMDLINK OperationDefClassData;
  168. #define _OperationDef OperationDefClassData.classObject
  169.  
  170. /* The API to parentMtabs for OperationDef, and the instance data it introduces. */
  171. SOMEXTERN struct OperationDefCClassDataStructure {
  172.     somMethodTabs parentMtab;
  173.     somDToken              instanceDataToken;
  174. } SOMDLINK OperationDefCClassData;
  175.  
  176. /*
  177.  * -- Typedefs for OperationDef Method Procedures
  178.  */
  179. SOMEXTERN {
  180. typedef TypeCode   SOMLINK somTP_OperationDef__get_result(OperationDef *somSelf, Environment *ev);
  181. typedef somTP_OperationDef__get_result *somTD_OperationDef__get_result;
  182. typedef void   SOMLINK somTP_OperationDef__set_result(OperationDef *somSelf, Environment *ev, 
  183.         TypeCode result);
  184. typedef somTP_OperationDef__set_result *somTD_OperationDef__set_result;
  185. typedef OperationDef_OperationMode   SOMLINK somTP_OperationDef__get_mode(OperationDef *somSelf, Environment *ev);
  186. typedef somTP_OperationDef__get_mode *somTD_OperationDef__get_mode;
  187. typedef void   SOMLINK somTP_OperationDef__set_mode(OperationDef *somSelf, Environment *ev, 
  188.         OperationDef_OperationMode mode);
  189. typedef somTP_OperationDef__set_mode *somTD_OperationDef__set_mode;
  190. typedef _IDL_SEQUENCE_string   SOMLINK somTP_OperationDef__get_contexts(OperationDef *somSelf, Environment *ev);
  191. typedef somTP_OperationDef__get_contexts *somTD_OperationDef__get_contexts;
  192. typedef void   SOMLINK somTP_OperationDef__set_contexts(OperationDef *somSelf, Environment *ev, 
  193.         _IDL_SEQUENCE_string* contexts);
  194. typedef somTP_OperationDef__set_contexts *somTD_OperationDef__set_contexts;
  195.  
  196. /*
  197.  * -- Typedefs for Reintroduced Wrapper Methods
  198.  */
  199. typedef Identifier   SOMLINK somTP_OperationDef__get_name(OperationDef *somSelf, Environment *ev);
  200. typedef somTP_OperationDef__get_name *somTD_OperationDef__get_name;
  201. typedef void   SOMLINK somTP_OperationDef__set_name(OperationDef *somSelf, Environment *ev, 
  202.         Identifier name);
  203. typedef somTP_OperationDef__set_name *somTD_OperationDef__set_name;
  204. typedef RepositoryId   SOMLINK somTP_OperationDef__get_id(OperationDef *somSelf, Environment *ev);
  205. typedef somTP_OperationDef__get_id *somTD_OperationDef__get_id;
  206. typedef void   SOMLINK somTP_OperationDef__set_id(OperationDef *somSelf, Environment *ev, 
  207.         RepositoryId id);
  208. typedef somTP_OperationDef__set_id *somTD_OperationDef__set_id;
  209. typedef RepositoryId   SOMLINK somTP_OperationDef__get_defined_in(OperationDef *somSelf, Environment *ev);
  210. typedef somTP_OperationDef__get_defined_in *somTD_OperationDef__get_defined_in;
  211. typedef void   SOMLINK somTP_OperationDef__set_defined_in(OperationDef *somSelf, Environment *ev, 
  212.         RepositoryId defined_in);
  213. typedef somTP_OperationDef__set_defined_in *somTD_OperationDef__set_defined_in;
  214. typedef _IDL_SEQUENCE_somModifier   SOMLINK somTP_OperationDef__get_somModifiers(OperationDef *somSelf, Environment *ev);
  215. typedef somTP_OperationDef__get_somModifiers *somTD_OperationDef__get_somModifiers;
  216. typedef void   SOMLINK somTP_OperationDef__set_somModifiers(OperationDef *somSelf, Environment *ev, 
  217.         _IDL_SEQUENCE_somModifier* somModifiers);
  218. typedef somTP_OperationDef__set_somModifiers *somTD_OperationDef__set_somModifiers;
  219. typedef _IDL_SEQUENCE_Container   SOMLINK somTP_OperationDef_within(OperationDef *somSelf, Environment *ev);
  220. typedef somTP_OperationDef_within *somTD_OperationDef_within;
  221. typedef Contained_Description   SOMLINK somTP_OperationDef_describe(OperationDef *somSelf, Environment *ev);
  222. typedef somTP_OperationDef_describe *somTD_OperationDef_describe;
  223. typedef void   SOMLINK somTP_OperationDef_somFree(OperationDef *somSelf);
  224. typedef somTP_OperationDef_somFree *somTD_OperationDef_somFree;
  225. typedef void   SOMLINK somTP_OperationDef_somDefaultInit(OperationDef *somSelf, 
  226.         som3InitCtrl* ctrl);
  227. typedef somTP_OperationDef_somDefaultInit *somTD_OperationDef_somDefaultInit;
  228. typedef void   SOMLINK somTP_OperationDef_somDestruct(OperationDef *somSelf, 
  229.         octet doFree, 
  230.         som3DestructCtrl* ctrl);
  231. typedef somTP_OperationDef_somDestruct *somTD_OperationDef_somDestruct;
  232. typedef void   SOMLINK somTP_OperationDef_somDumpSelf(OperationDef *somSelf, 
  233.         long level);
  234. typedef somTP_OperationDef_somDumpSelf *somTD_OperationDef_somDumpSelf;
  235. typedef void   SOMLINK somTP_OperationDef_somDumpSelfInt(OperationDef *somSelf, 
  236.         long level);
  237. typedef somTP_OperationDef_somDumpSelfInt *somTD_OperationDef_somDumpSelfInt;
  238. typedef void   SOMLINK somTP_OperationDef_somDefaultCopyInit(OperationDef *somSelf, 
  239.         som3InitCtrl* ctrl, 
  240.         SOMObject* fromObj);
  241. typedef somTP_OperationDef_somDefaultCopyInit *somTD_OperationDef_somDefaultCopyInit;
  242. typedef OperationDef*   SOMLINK somTP_OperationDef_somDefaultAssign(OperationDef *somSelf, 
  243.         som3AssignCtrl* ctrl, 
  244.         SOMObject* fromObj);
  245. typedef somTP_OperationDef_somDefaultAssign *somTD_OperationDef_somDefaultAssign;
  246. typedef void   SOMLINK somTP_OperationDef_somDefaultConstCopyInit(OperationDef *somSelf, 
  247.         som3InitCtrl* ctrl, 
  248.         SOMObject* fromObj);
  249. typedef somTP_OperationDef_somDefaultConstCopyInit *somTD_OperationDef_somDefaultConstCopyInit;
  250. typedef void   SOMLINK somTP_OperationDef_somDefaultVCopyInit(OperationDef *somSelf, 
  251.         som3InitCtrl* ctrl, 
  252.         SOMObject* fromObj);
  253. typedef somTP_OperationDef_somDefaultVCopyInit *somTD_OperationDef_somDefaultVCopyInit;
  254. typedef void   SOMLINK somTP_OperationDef_somDefaultConstVCopyInit(OperationDef *somSelf, 
  255.         som3InitCtrl* ctrl, 
  256.         SOMObject* fromObj);
  257. typedef somTP_OperationDef_somDefaultConstVCopyInit *somTD_OperationDef_somDefaultConstVCopyInit;
  258. typedef OperationDef*   SOMLINK somTP_OperationDef_somDefaultConstAssign(OperationDef *somSelf, 
  259.         som3AssignCtrl* ctrl, 
  260.         SOMObject* fromObj);
  261. typedef somTP_OperationDef_somDefaultConstAssign *somTD_OperationDef_somDefaultConstAssign;
  262. typedef OperationDef*   SOMLINK somTP_OperationDef_somDefaultVAssign(OperationDef *somSelf, 
  263.         som3AssignCtrl* ctrl, 
  264.         SOMObject* fromObj);
  265. typedef somTP_OperationDef_somDefaultVAssign *somTD_OperationDef_somDefaultVAssign;
  266. typedef OperationDef*   SOMLINK somTP_OperationDef_somDefaultConstVAssign(OperationDef *somSelf, 
  267.         som3AssignCtrl* ctrl, 
  268.         SOMObject* fromObj);
  269. typedef somTP_OperationDef_somDefaultConstVAssign *somTD_OperationDef_somDefaultConstVAssign;
  270. typedef void   SOMLINK somTP_OperationDef_somInit(OperationDef *somSelf);
  271. typedef somTP_OperationDef_somInit *somTD_OperationDef_somInit;
  272. typedef void   SOMLINK somTP_OperationDef_somUninit(OperationDef *somSelf);
  273. typedef somTP_OperationDef_somUninit *somTD_OperationDef_somUninit;
  274. typedef SOMClass*   SOMLINK somTP_OperationDef_somGetClass(OperationDef *somSelf);
  275. typedef somTP_OperationDef_somGetClass *somTD_OperationDef_somGetClass;
  276. typedef string   SOMLINK somTP_OperationDef_somGetClassName(OperationDef *somSelf);
  277. typedef somTP_OperationDef_somGetClassName *somTD_OperationDef_somGetClassName;
  278. typedef long   SOMLINK somTP_OperationDef_somGetSize(OperationDef *somSelf);
  279. typedef somTP_OperationDef_somGetSize *somTD_OperationDef_somGetSize;
  280. typedef boolean   SOMLINK somTP_OperationDef_somIsA(OperationDef *somSelf, 
  281.         SOMClass* aClassObj);
  282. typedef somTP_OperationDef_somIsA *somTD_OperationDef_somIsA;
  283. typedef boolean   SOMLINK somTP_OperationDef_somIsInstanceOf(OperationDef *somSelf, 
  284.         SOMClass* aClassObj);
  285. typedef somTP_OperationDef_somIsInstanceOf *somTD_OperationDef_somIsInstanceOf;
  286. typedef boolean   SOMLINK somTP_OperationDef_somRespondsTo(OperationDef *somSelf, 
  287.         somId mId);
  288. typedef somTP_OperationDef_somRespondsTo *somTD_OperationDef_somRespondsTo;
  289. typedef boolean   SOMLINK somTP_OperationDef_somDispatch(OperationDef *somSelf, 
  290.         somToken* retValue, 
  291.         somId methodId, 
  292.         va_list ap);
  293. typedef somTP_OperationDef_somDispatch *somTD_OperationDef_somDispatch;
  294. typedef boolean   SOMLINK somTP_OperationDef_somClassDispatch(OperationDef *somSelf, 
  295.         SOMClass* clsObj, 
  296.         somToken* retValue, 
  297.         somId methodId, 
  298.         va_list ap);
  299. typedef somTP_OperationDef_somClassDispatch *somTD_OperationDef_somClassDispatch;
  300. typedef boolean   SOMLINK somTP_OperationDef_somCastObj(OperationDef *somSelf, 
  301.         SOMClass* cls);
  302. typedef somTP_OperationDef_somCastObj *somTD_OperationDef_somCastObj;
  303. typedef boolean   SOMLINK somTP_OperationDef_somResetObj(OperationDef *somSelf);
  304. typedef somTP_OperationDef_somResetObj *somTD_OperationDef_somResetObj;
  305. typedef void   SOMLINK somTP_OperationDef_somDispatchV(OperationDef *somSelf, 
  306.         somId methodId, 
  307.         somId descriptor, 
  308.         va_list ap);
  309. typedef somTP_OperationDef_somDispatchV *somTD_OperationDef_somDispatchV;
  310. typedef long   SOMLINK somTP_OperationDef_somDispatchL(OperationDef *somSelf, 
  311.         somId methodId, 
  312.         somId descriptor, 
  313.         va_list ap);
  314. typedef somTP_OperationDef_somDispatchL *somTD_OperationDef_somDispatchL;
  315. typedef void*   SOMLINK somTP_OperationDef_somDispatchA(OperationDef *somSelf, 
  316.         somId methodId, 
  317.         somId descriptor, 
  318.         va_list ap);
  319. typedef somTP_OperationDef_somDispatchA *somTD_OperationDef_somDispatchA;
  320. typedef double   SOMLINK somTP_OperationDef_somDispatchD(OperationDef *somSelf, 
  321.         somId methodId, 
  322.         somId descriptor, 
  323.         va_list ap);
  324. typedef somTP_OperationDef_somDispatchD *somTD_OperationDef_somDispatchD;
  325. typedef SOMObject*   SOMLINK somTP_OperationDef_somPrintSelf(OperationDef *somSelf);
  326. typedef somTP_OperationDef_somPrintSelf *somTD_OperationDef_somPrintSelf;
  327. typedef _IDL_SEQUENCE_Contained   SOMLINK somTP_OperationDef_contents(OperationDef *somSelf, Environment *ev, 
  328.         Container_InterfaceName limit_type, 
  329.         boolean exclude_inherited);
  330. typedef somTP_OperationDef_contents *somTD_OperationDef_contents;
  331. typedef _IDL_SEQUENCE_Contained   SOMLINK somTP_OperationDef_lookup_name(OperationDef *somSelf, Environment *ev, 
  332.         Identifier search_name, 
  333.         long levels_to_search, 
  334.         Container_InterfaceName limit_type, 
  335.         boolean exclude_inherited);
  336. typedef somTP_OperationDef_lookup_name *somTD_OperationDef_lookup_name;
  337. typedef _IDL_SEQUENCE_Container_ContainerDescription   SOMLINK somTP_OperationDef_describe_contents(OperationDef *somSelf, Environment *ev, 
  338.         Container_InterfaceName limit_type, 
  339.         boolean exclude_inherited, 
  340.         long max_returned_objs);
  341. typedef somTP_OperationDef_describe_contents *somTD_OperationDef_describe_contents;
  342. }
  343.  
  344. #endif /* OperationDef_API */
  345.  
  346.  
  347. /*
  348.  * -- This emitter treats Method Tokens as Thunks by default.
  349.  * -- Use the sc modifier "nothunks" to change this default
  350.  */
  351. #undef somresolve_
  352. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  353.  
  354. /*
  355.  * -- The C++ Wrapper Class for OperationDef
  356.  */
  357. class OperationDef : public Contained, public Container
  358. {
  359. /*
  360.  *  This interface is used to access information associated with
  361.  *  operations defined in an IDL interface.
  362.  * 
  363.  *  See CORBA 1.1, 7.5.6, pp.135-136
  364.  */
  365. public:
  366.  
  367. // OperationDef::new creates the class object if necessary, and then uses somNewNoInit
  368. // to allocate memory and create the object. Initialization is in ctors.
  369. void *operator new(size_t)
  370. {
  371.    if (!_OperationDef) OperationDefNewClass(OperationDef_MajorVersion,OperationDef_MinorVersion);
  372.    return (void*)
  373.       SOM_Resolve(_OperationDef,SOMClass,somNewNoInit)
  374.          ((SOMClass *)((void*)_OperationDef));
  375. }
  376.  
  377. // OperationDef::delete uses somDestruct.
  378. void operator delete(void * obj)
  379. {
  380.    if (obj && *(void**)obj) {
  381.       SOM_Resolve(obj,SOMObject,somFree)
  382.          ((SOMObject*)obj);
  383.    }
  384. }
  385.  
  386. OperationDef& operator=(OperationDef& fromObj)
  387. {
  388.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  389.    return *this;
  390. }
  391.  
  392. OperationDef()
  393. {
  394.    if (*(void**)this != 
  395.        ((somParentMtabStructPtr)
  396.         (OperationDefCClassData.parentMtab))->mtab)
  397.       return;
  398.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  399. }
  400.  
  401. OperationDef(OperationDef* fromObj)
  402. {
  403.    if (*(void**)this != 
  404.        ((somParentMtabStructPtr)
  405.         (OperationDefCClassData.parentMtab))->mtab)
  406.       return;
  407.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  408. }
  409.  
  410. #ifdef __IBMCPP__
  411. #pragma info(nocnv,nopar)
  412. #endif
  413. OperationDef(const OperationDef* fromObj)
  414. {
  415.    if (*(void**)this != 
  416.        ((somParentMtabStructPtr)
  417.         (OperationDefCClassData.parentMtab))->mtab)
  418.       return;
  419.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  420. }
  421. #ifdef __IBMCPP__
  422. #pragma info(restore)
  423. #endif
  424.  
  425.  
  426. /* method: _get_result */
  427. TypeCode   _get_result(Environment *ev)
  428. {
  429. /*
  430.  *  The TypeCode of the receiving object.  The memory used to hold
  431.  *  the TypeCode is contained in the receiving object, which retains
  432.  *  ownership.  Hence, do not free the returned TypeCode.  If you want
  433.  *  to obtain a separate copy, use the TypeCode_copy operation.
  434.  */
  435.    return SOM_ResolveD(this,OperationDef,OperationDef,_get_result)
  436.     (this, ev);
  437. }
  438.  
  439.  
  440. /* method: _set_result */
  441. void   _set_result(Environment *ev, 
  442.         TypeCode result)
  443. {
  444. /*
  445.  *  The TypeCode of the receiving object.  The memory used to hold
  446.  *  the TypeCode is contained in the receiving object, which retains
  447.  *  ownership.  Hence, do not free the returned TypeCode.  If you want
  448.  *  to obtain a separate copy, use the TypeCode_copy operation.
  449.  */
  450.    SOM_ResolveD(this,OperationDef,OperationDef,_set_result)
  451.     (this, ev,result);
  452. }
  453.  
  454.  
  455. /* method: _get_mode */
  456. OperationDef_OperationMode   _get_mode(Environment *ev)
  457. {
  458. /*
  459.  *  The OperationMode of the receiving object;
  460.  */
  461.    return SOM_ResolveD(this,OperationDef,OperationDef,_get_mode)
  462.     (this, ev);
  463. }
  464.  
  465.  
  466. /* method: _set_mode */
  467. void   _set_mode(Environment *ev, 
  468.         OperationDef_OperationMode mode)
  469. {
  470. /*
  471.  *  The OperationMode of the receiving object;
  472.  */
  473.    SOM_ResolveD(this,OperationDef,OperationDef,_set_mode)
  474.     (this, ev,mode);
  475. }
  476.  
  477.  
  478. /* method: _get_contexts */
  479. _IDL_SEQUENCE_string   _get_contexts(Environment *ev)
  480. {
  481. /*
  482.  *  The list of ContextIdentifiers associated with the
  483.  *  receiving object.
  484.  */
  485.    return SOM_ResolveD(this,OperationDef,OperationDef,_get_contexts)
  486.     (this, ev);
  487. }
  488.  
  489.  
  490. /* method: _set_contexts */
  491. void   _set_contexts(Environment *ev, 
  492.         _IDL_SEQUENCE_string* contexts)
  493. {
  494. /*
  495.  *  The list of ContextIdentifiers associated with the
  496.  *  receiving object.
  497.  */
  498.    SOM_ResolveD(this,OperationDef,OperationDef,_set_contexts)
  499.     (this, ev,contexts);
  500. }
  501.  
  502.  
  503. /*
  504.  * Reintroduce inherited methods
  505.  */
  506.  
  507. /* method: _get_name */
  508. Identifier   _get_name(Environment *ev)
  509. {
  510. /*
  511.  *  The value of the "name" field of the receiving object
  512.  * 
  513.  *  This is a simple name that indentifies the receiving object
  514.  *  within its containment hierarchy.  Outside of the containment
  515.  *  hierarchy this name is not necessarily unique, and may require
  516.  *  qualification by ModuleDef name, InterfaceDef name, etc.
  517.  */
  518.    return SOM_ResolveD(this,OperationDef,Contained,_get_name)
  519.     (this, ev);
  520. }
  521.  
  522.  
  523. /* method: _set_name */
  524. void   _set_name(Environment *ev, 
  525.         Identifier name)
  526. {
  527. /*
  528.  *  The value of the "name" field of the receiving object
  529.  * 
  530.  *  This is a simple name that indentifies the receiving object
  531.  *  within its containment hierarchy.  Outside of the containment
  532.  *  hierarchy this name is not necessarily unique, and may require
  533.  *  qualification by ModuleDef name, InterfaceDef name, etc.
  534.  */
  535.    SOM_ResolveD(this,OperationDef,Contained,_set_name)
  536.     (this, ev,name);
  537. }
  538.  
  539.  
  540. /* method: _get_id */
  541. RepositoryId   _get_id(Environment *ev)
  542. {
  543. /*
  544.  *  The value of the "id" field of the receiving object
  545.  * 
  546.  *  The "id" is a string that uniquely identifies any object in
  547.  *  the interface repository.  No qualification is needed for
  548.  *  an "id".  Notice that "RepositoryId"s have no relationship
  549.  *  to the SOM type "somId".
  550.  */
  551.    return SOM_ResolveD(this,OperationDef,Contained,_get_id)
  552.     (this, ev);
  553. }
  554.  
  555.  
  556. /* method: _set_id */
  557. void   _set_id(Environment *ev, 
  558.         RepositoryId id)
  559. {
  560. /*
  561.  *  The value of the "id" field of the receiving object
  562.  * 
  563.  *  The "id" is a string that uniquely identifies any object in
  564.  *  the interface repository.  No qualification is needed for
  565.  *  an "id".  Notice that "RepositoryId"s have no relationship
  566.  *  to the SOM type "somId".
  567.  */
  568.    SOM_ResolveD(this,OperationDef,Contained,_set_id)
  569.     (this, ev,id);
  570. }
  571.  
  572.  
  573. /* method: _get_defined_in */
  574. RepositoryId   _get_defined_in(Environment *ev)
  575. {
  576. /*
  577.  *  The value of the "defined_in" field of the receiving object
  578.  * 
  579.  *  This "id" uniquely identifies the container where the
  580.  *  receiving object is defined.  Objects that have global scope
  581.  *  and do not appear within any other objects are by default
  582.  *  placed in the "Repository" object.
  583.  */
  584.    return SOM_ResolveD(this,OperationDef,Contained,_get_defined_in)
  585.     (this, ev);
  586. }
  587.  
  588.  
  589. /* method: _set_defined_in */
  590. void   _set_defined_in(Environment *ev, 
  591.         RepositoryId defined_in)
  592. {
  593. /*
  594.  *  The value of the "defined_in" field of the receiving object
  595.  * 
  596.  *  This "id" uniquely identifies the container where the
  597.  *  receiving object is defined.  Objects that have global scope
  598.  *  and do not appear within any other objects are by default
  599.  *  placed in the "Repository" object.
  600.  */
  601.    SOM_ResolveD(this,OperationDef,Contained,_set_defined_in)
  602.     (this, ev,defined_in);
  603. }
  604.  
  605.  
  606. /* method: _get_somModifiers */
  607. _IDL_SEQUENCE_somModifier   _get_somModifiers(Environment *ev)
  608. {
  609. /*
  610.  *  [SOM-unique extension]
  611.  * 
  612.  *  The somModifiers attribute is a sequence containing all of
  613.  *  the "modifiers" attached to the corresponding IDL object in
  614.  *  the SOM-unique implementation section of the IDL file where
  615.  *  the receiving object was originally defined.
  616.  */
  617.    return SOM_ResolveD(this,OperationDef,Contained,_get_somModifiers)
  618.     (this, ev);
  619. }
  620.  
  621.  
  622. /* method: _set_somModifiers */
  623. void   _set_somModifiers(Environment *ev, 
  624.         _IDL_SEQUENCE_somModifier* somModifiers)
  625. {
  626. /*
  627.  *  [SOM-unique extension]
  628.  * 
  629.  *  The somModifiers attribute is a sequence containing all of
  630.  *  the "modifiers" attached to the corresponding IDL object in
  631.  *  the SOM-unique implementation section of the IDL file where
  632.  *  the receiving object was originally defined.
  633.  */
  634.    SOM_ResolveD(this,OperationDef,Contained,_set_somModifiers)
  635.     (this, ev,somModifiers);
  636. }
  637.  
  638.  
  639. /* method: within */
  640. _IDL_SEQUENCE_Container   within(Environment *ev)
  641. {
  642. /*
  643.  *  Returns a list of objects that contain the receiving object.
  644.  *  If the object is an interface or module, it can only be contained
  645.  *  by the object that defines it.  Other objects can be contained by
  646.  *  objects that define or inherit them.
  647.  * 
  648.  *  When you have finished using the sequence returned by this method
  649.  *  it is your responsibility to release the storage allocated for it.
  650.  *  To free the sequence, use a call similar to the following:
  651.  * 
  652.  *       if (seqname._length)
  653.  *           long i;
  654.  *           for(i=0; i<seqname._length; i++)
  655.  *         _somFree(seqname._buffer[i]);
  656.  *           SOMFree (seqname._buffer);
  657.  */
  658.    return SOM_ResolveD(this,OperationDef,Contained,within)
  659.     (this, ev);
  660. }
  661.  
  662.  
  663. /* method: describe */
  664. Contained_Description   describe(Environment *ev)
  665. {
  666. /*
  667.  *  Returns a structure containing all of the attributes defined in
  668.  *  the interface of the receiving object.
  669.  * 
  670.  *  Warning: this method returns pointers to things withing objects
  671.  *  (for example, name).  Don't use the somFree method to release
  672.  *  any of these objects while this information is still needed..
  673.  * 
  674.  *  When you have finished using the information in the returned
  675.  *  Description structure, it is your responsibility to release
  676.  *  the associated storage using a call similar to the following:
  677.  * 
  678.  *       if (desc.value._value)
  679.  *           SOMFree (desc.value._value);
  680.  */
  681.    return SOM_ResolveD(this,OperationDef,Contained,describe)
  682.     (this, ev);
  683. }
  684.  
  685.  
  686. /* method: somFree */
  687. void   somFree()
  688. {
  689.    SOM_ResolveD(this,OperationDef,SOMObject,somFree)
  690.     (this);
  691. }
  692.  
  693.  
  694. /* initializer method: somDefaultInit */
  695. void   somDefaultInit(som3InitCtrl* ctrl)
  696. {
  697.    SOM_ResolveD(this,OperationDef,SOMObject,somDefaultInit)
  698.     (this,ctrl);
  699. }
  700.  
  701.  
  702. /* method: somDestruct */
  703. void   somDestruct(octet doFree, 
  704.         som3DestructCtrl* ctrl)
  705. {
  706.    SOM_ResolveD(this,OperationDef,SOMObject,somDestruct)
  707.     (this,doFree,ctrl);
  708. }
  709.  
  710.  
  711. /* method: somDumpSelf */
  712. void   somDumpSelf(long level)
  713. {
  714.    SOM_ResolveD(this,OperationDef,SOMObject,somDumpSelf)
  715.     (this,level);
  716. }
  717.  
  718.  
  719. /* method: somDumpSelfInt */
  720. void   somDumpSelfInt(long level)
  721. {
  722.    SOM_ResolveD(this,OperationDef,SOMObject,somDumpSelfInt)
  723.     (this,level);
  724. }
  725.  
  726.  
  727. /* initializer method: somDefaultCopyInit */
  728. void   somDefaultCopyInit(som3InitCtrl* ctrl, 
  729.         SOMObject* fromObj)
  730. {
  731. /*
  732.  *  A default copy constructor. Use this to make copies of objects for
  733.  *  calling methods with "by-value" argument semantics.
  734.  */
  735.    SOM_ResolveD(this,OperationDef,SOMObject,somDefaultCopyInit)
  736.     (this,ctrl,fromObj);
  737. }
  738.  
  739.  
  740. /* method: somDefaultAssign */
  741. OperationDef*  somDefaultAssign(som3AssignCtrl* ctrl, 
  742.         SOMObject* fromObj)
  743. {
  744. /*
  745.  *  A default assignment operator. Use this to "assign" the state of one
  746.  *  object to another.
  747.  */
  748.    return SOM_ResolveD(this,OperationDef,SOMObject,somDefaultAssign)
  749.     (this,ctrl,fromObj);
  750. }
  751.  
  752.  
  753. /* initializer method: somDefaultConstCopyInit */
  754. void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
  755.         SOMObject* fromObj)
  756. {
  757. /*
  758.  *  A default copy constructor that uses a const fromObj.
  759.  */
  760.    SOM_ResolveD(this,OperationDef,SOMObject,somDefaultConstCopyInit)
  761.     (this,ctrl,fromObj);
  762. }
  763.  
  764.  
  765. /* initializer method: somDefaultVCopyInit */
  766. void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
  767.         SOMObject* fromObj)
  768. {
  769. /*
  770.  *  A default copy constructor that uses a volatile fromObj.
  771.  */
  772.    SOM_ResolveD(this,OperationDef,SOMObject,somDefaultVCopyInit)
  773.     (this,ctrl,fromObj);
  774. }
  775.  
  776.  
  777. /* initializer method: somDefaultConstVCopyInit */
  778. void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
  779.         SOMObject* fromObj)
  780. {
  781. /*
  782.  *  A default copy constructor that uses a const volatile fromObj.
  783.  */
  784.    SOM_ResolveD(this,OperationDef,SOMObject,somDefaultConstVCopyInit)
  785.     (this,ctrl,fromObj);
  786. }
  787.  
  788.  
  789. /* method: somDefaultConstAssign */
  790. OperationDef*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
  791.         SOMObject* fromObj)
  792. {
  793. /*
  794.  *  A default assignment operator that uses a const fromObj.
  795.  */
  796.    return SOM_ResolveD(this,OperationDef,SOMObject,somDefaultConstAssign)
  797.     (this,ctrl,fromObj);
  798. }
  799.  
  800.  
  801. /* method: somDefaultVAssign */
  802. OperationDef*  somDefaultVAssign(som3AssignCtrl* ctrl, 
  803.         SOMObject* fromObj)
  804. {
  805. /*
  806.  *  A default assignment operator that uses a volatile fromObj.
  807.  */
  808.    return SOM_ResolveD(this,OperationDef,SOMObject,somDefaultVAssign)
  809.     (this,ctrl,fromObj);
  810. }
  811.  
  812.  
  813. /* method: somDefaultConstVAssign */
  814. OperationDef*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
  815.         SOMObject* fromObj)
  816. {
  817. /*
  818.  *  A default assignment operator that uses a const volatile fromObj.
  819.  */
  820.    return SOM_ResolveD(this,OperationDef,SOMObject,somDefaultConstVAssign)
  821.     (this,ctrl,fromObj);
  822. }
  823.  
  824.  
  825. /* method: somInit */
  826. void   somInit()
  827. {
  828. /*
  829.  *  Obsolete but still supported. Override somDefaultInit instead of somInit.
  830.  */
  831.    SOM_ResolveD(this,OperationDef,SOMObject,somInit)
  832.     (this);
  833. }
  834.  
  835.  
  836. /* method: somUninit */
  837. void   somUninit()
  838. {
  839. /*
  840.  *  Obsolete but still supported. Override somDestruct instead of somUninit.
  841.  */
  842.    SOM_ResolveD(this,OperationDef,SOMObject,somUninit)
  843.     (this);
  844. }
  845.  
  846.  
  847. /* method: somGetClass */
  848. SOMClass*   somGetClass()
  849. {
  850. /*
  851.  *  Return the receiver's class.
  852.  */
  853.    return SOM_ResolveD(this,OperationDef,SOMObject,somGetClass)
  854.     (this);
  855. }
  856.  
  857.  
  858. /* method: somGetClassName */
  859. string   somGetClassName()
  860. {
  861. /*
  862.  *  Return the name of the receiver's class.
  863.  */
  864.    return SOM_ResolveD(this,OperationDef,SOMObject,somGetClassName)
  865.     (this);
  866. }
  867.  
  868.  
  869. /* method: somGetSize */
  870. long   somGetSize()
  871. {
  872. /*
  873.  *  Return the size of the receiver.
  874.  */
  875.    return SOM_ResolveD(this,OperationDef,SOMObject,somGetSize)
  876.     (this);
  877. }
  878.  
  879.  
  880. /* method: somIsA */
  881. boolean   somIsA(SOMClass* aClassObj)
  882. {
  883. /*
  884.  *  Returns 1 (true) if the receiver responds to methods
  885.  *  introduced by <aClassObj>, and 0 (false) otherwise.
  886.  */
  887.    return SOM_ResolveD(this,OperationDef,SOMObject,somIsA)
  888.     (this,aClassObj);
  889. }
  890.  
  891.  
  892. /* method: somIsInstanceOf */
  893. boolean   somIsInstanceOf(SOMClass* aClassObj)
  894. {
  895. /*
  896.  *  Returns 1 (true) if the receiver is an instance of
  897.  *  <aClassObj> and 0 (false) otherwise.
  898.  */
  899.    return SOM_ResolveD(this,OperationDef,SOMObject,somIsInstanceOf)
  900.     (this,aClassObj);
  901. }
  902.  
  903.  
  904. /* method: somRespondsTo */
  905. boolean   somRespondsTo(somId mId)
  906. {
  907. /*
  908.  *  Returns 1 (true) if the indicated method can be invoked
  909.  *  on the receiver and 0 (false) otherwise.
  910.  */
  911.    return SOM_ResolveD(this,OperationDef,SOMObject,somRespondsTo)
  912.     (this,mId);
  913. }
  914.  
  915.  
  916. /* va_list method: somDispatch */
  917.  
  918. /*
  919.  *  This method provides a generic, class-specific dispatch mechanism.
  920.  *  It accepts as input <retValue> a pointer to the memory area to be
  921.  *  loaded with the result of dispatching the method indicated by
  922.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  923.  *  on which the method is to be invoked as the first argument.
  924.  */
  925. /* the va_list invocation form */
  926. boolean   OperationDef_somDispatch(somToken* retValue, 
  927.         somId methodId, 
  928.         va_list ap)
  929. {return SOM_ResolveD(this,OperationDef,SOMObject,somDispatch)
  930.     (this,retValue,methodId,ap);
  931. }
  932.  
  933. /* the varargs invocation form */
  934. boolean   somDispatch(somToken* retValue, 
  935.         somId methodId, 
  936.         ...)
  937. {
  938. /*
  939.  *  This method provides a generic, class-specific dispatch mechanism.
  940.  *  It accepts as input <retValue> a pointer to the memory area to be
  941.  *  loaded with the result of dispatching the method indicated by
  942.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  943.  *  on which the method is to be invoked as the first argument.
  944.  */
  945.    va_list ap;
  946.    va_start(ap, methodId);
  947.    boolean __somResult = 
  948.       SOM_ResolveD(this,OperationDef,SOMObject,somDispatch)
  949.     (this,retValue,methodId,ap);
  950.    va_end(ap);
  951.    return __somResult;
  952. }
  953.  
  954.  
  955. /* va_list method: somClassDispatch */
  956.  
  957. /*
  958.  *  Like somDispatch, but method resolution for static methods is done
  959.  *  according to the clsObj instance method table.
  960.  */
  961. /* the va_list invocation form */
  962. boolean   OperationDef_somClassDispatch(SOMClass* clsObj, 
  963.         somToken* retValue, 
  964.         somId methodId, 
  965.         va_list ap)
  966. {return SOM_ResolveD(this,OperationDef,SOMObject,somClassDispatch)
  967.     (this,clsObj,retValue,methodId,ap);
  968. }
  969.  
  970. /* the varargs invocation form */
  971. boolean   somClassDispatch(SOMClass* clsObj, 
  972.         somToken* retValue, 
  973.         somId methodId, 
  974.         ...)
  975. {
  976. /*
  977.  *  Like somDispatch, but method resolution for static methods is done
  978.  *  according to the clsObj instance method table.
  979.  */
  980.    va_list ap;
  981.    va_start(ap, methodId);
  982.    boolean __somResult = 
  983.       SOM_ResolveD(this,OperationDef,SOMObject,somClassDispatch)
  984.     (this,clsObj,retValue,methodId,ap);
  985.    va_end(ap);
  986.    return __somResult;
  987. }
  988.  
  989.  
  990. /* method: somCastObj */
  991. boolean   somCastObj(SOMClass* cls)
  992. {
  993. /*
  994.  *  cast the receiving object to cls (which must be an ancestor of the
  995.  *  objects true class. Returns true on success.
  996.  */
  997.    return SOM_ResolveD(this,OperationDef,SOMObject,somCastObj)
  998.     (this,cls);
  999. }
  1000.  
  1001.  
  1002. /* method: somResetObj */
  1003. boolean   somResetObj()
  1004. {
  1005. /*
  1006.  *  reset an object to its true class. Returns true always.
  1007.  */
  1008.    return SOM_ResolveD(this,OperationDef,SOMObject,somResetObj)
  1009.     (this);
  1010. }
  1011.  
  1012.  
  1013. /* va_list method: somDispatchV */
  1014.  
  1015. /*
  1016.  *  Obsolete. Use somDispatch instead.
  1017.  */
  1018. /* the va_list invocation form */
  1019. void   OperationDef_somDispatchV(somId methodId, 
  1020.         somId descriptor, 
  1021.         va_list ap)
  1022. {   SOM_ResolveD(this,OperationDef,SOMObject,somDispatchV)
  1023.     (this,methodId,descriptor,ap);
  1024. }
  1025.  
  1026. /* the varargs invocation form */
  1027. void   somDispatchV(somId methodId, 
  1028.         somId descriptor, 
  1029.         ...)
  1030. {
  1031. /*
  1032.  *  Obsolete. Use somDispatch instead.
  1033.  */
  1034.    va_list ap;
  1035.    va_start(ap, descriptor);
  1036.    SOM_ResolveD(this,OperationDef,SOMObject,somDispatchV)
  1037.     (this,methodId,descriptor,ap);
  1038.    va_end(ap);
  1039. }
  1040.  
  1041.  
  1042. /* va_list method: somDispatchL */
  1043.  
  1044. /*
  1045.  *  Obsolete. Use somDispatch instead.
  1046.  */
  1047. /* the va_list invocation form */
  1048. long   OperationDef_somDispatchL(somId methodId, 
  1049.         somId descriptor, 
  1050.         va_list ap)
  1051. {return SOM_ResolveD(this,OperationDef,SOMObject,somDispatchL)
  1052.     (this,methodId,descriptor,ap);
  1053. }
  1054.  
  1055. /* the varargs invocation form */
  1056. long   somDispatchL(somId methodId, 
  1057.         somId descriptor, 
  1058.         ...)
  1059. {
  1060. /*
  1061.  *  Obsolete. Use somDispatch instead.
  1062.  */
  1063.    va_list ap;
  1064.    va_start(ap, descriptor);
  1065.    long __somResult = 
  1066.       SOM_ResolveD(this,OperationDef,SOMObject,somDispatchL)
  1067.     (this,methodId,descriptor,ap);
  1068.    va_end(ap);
  1069.    return __somResult;
  1070. }
  1071.  
  1072.  
  1073. /* va_list method: somDispatchA */
  1074.  
  1075. /*
  1076.  *  Obsolete. Use somDispatch instead.
  1077.  */
  1078. /* the va_list invocation form */
  1079. void*   OperationDef_somDispatchA(somId methodId, 
  1080.         somId descriptor, 
  1081.         va_list ap)
  1082. {return SOM_ResolveD(this,OperationDef,SOMObject,somDispatchA)
  1083.     (this,methodId,descriptor,ap);
  1084. }
  1085.  
  1086. /* the varargs invocation form */
  1087. void*   somDispatchA(somId methodId, 
  1088.         somId descriptor, 
  1089.         ...)
  1090. {
  1091. /*
  1092.  *  Obsolete. Use somDispatch instead.
  1093.  */
  1094.    va_list ap;
  1095.    va_start(ap, descriptor);
  1096.    void* __somResult = 
  1097.       SOM_ResolveD(this,OperationDef,SOMObject,somDispatchA)
  1098.     (this,methodId,descriptor,ap);
  1099.    va_end(ap);
  1100.    return __somResult;
  1101. }
  1102.  
  1103.  
  1104. /* va_list method: somDispatchD */
  1105.  
  1106. /*
  1107.  *  Obsolete. Use somDispatch instead.
  1108.  */
  1109. /* the va_list invocation form */
  1110. double   OperationDef_somDispatchD(somId methodId, 
  1111.         somId descriptor, 
  1112.         va_list ap)
  1113. {return SOM_ResolveD(this,OperationDef,SOMObject,somDispatchD)
  1114.     (this,methodId,descriptor,ap);
  1115. }
  1116.  
  1117. /* the varargs invocation form */
  1118. double   somDispatchD(somId methodId, 
  1119.         somId descriptor, 
  1120.         ...)
  1121. {
  1122. /*
  1123.  *  Obsolete. Use somDispatch instead.
  1124.  */
  1125.    va_list ap;
  1126.    va_start(ap, descriptor);
  1127.    double __somResult = 
  1128.       SOM_ResolveD(this,OperationDef,SOMObject,somDispatchD)
  1129.     (this,methodId,descriptor,ap);
  1130.    va_end(ap);
  1131.    return __somResult;
  1132. }
  1133.  
  1134.  
  1135. /* method: somPrintSelf */
  1136. SOMObject*   somPrintSelf()
  1137. {
  1138. /*
  1139.  *  Uses <SOMOutCharRoutine> to write a brief string with identifying
  1140.  *  information about this object.  The default implementation just gives
  1141.  *  the object's class name and its address in memory.
  1142.  *  <self> is returned.
  1143.  */
  1144.    return SOM_ResolveD(this,OperationDef,SOMObject,somPrintSelf)
  1145.     (this);
  1146. }
  1147.  
  1148.  
  1149. /* method: contents */
  1150. _IDL_SEQUENCE_Contained   contents(Environment *ev, 
  1151.         Container_InterfaceName limit_type, 
  1152.         boolean exclude_inherited)
  1153. {
  1154. /*
  1155.  *  Returns a list of objects contained by the receiving object.
  1156.  *  This operation is used to navigate thru the hierarchy of objects.
  1157.  *  Starting with the Repository object, use this operation to list
  1158.  *  all of the objects in the Repository, then all of the objects
  1159.  *  within the ModuleDef objects, then all of the objects in the
  1160.  *  InterfaceDefs, etc.
  1161.  * 
  1162.  *  If restrict_type is set to "all", objects of all interface types
  1163.  *  are returned, otherwise only objects of the requested interface type
  1164.  *  will be returned.  If exclude_inherited is set to TRUE, inherited
  1165.  *  objects, if any, will not be returned.
  1166.  * 
  1167.  *  You are responsible for freeing the contents of the returned
  1168.  *  sequence when you are finished with it.    Use a code fragment
  1169.  *  similar to the following to free it:
  1170.  * 
  1171.  *       if (containedSeq._length)
  1172.  *           long i;
  1173.  *           for(i=0; i<containedSeq._length; i++)
  1174.  *         SOMObject_somFree(containedSeq._buffer[i]);
  1175.  *           SOMFree (containedSeq._buffer);
  1176.  */
  1177.    return SOM_ResolveD(this,OperationDef,Container,contents)
  1178.     (this, ev,limit_type,exclude_inherited);
  1179. }
  1180.  
  1181.  
  1182. /* method: lookup_name */
  1183. _IDL_SEQUENCE_Contained   lookup_name(Environment *ev, 
  1184.         Identifier search_name, 
  1185.         long levels_to_search, 
  1186.         Container_InterfaceName limit_type, 
  1187.         boolean exclude_inherited)
  1188. {
  1189. /*
  1190.  *  Locates an object by name within the receiving object, or within
  1191.  *  objects contained in the receiving object.  Search_name specifies
  1192.  *  the name of the object to be found.  Levels_to_search controls
  1193.  *  whether the lookup is constrained to the receiving object or
  1194.  *  whether it includes objects contained withing the receiving object.
  1195.  *  (Set levels_to_search to -1 to search the receiver and all contained
  1196.  *  objects, -- set it to 1 to search the receiver only.)  If
  1197.  *  limit_type is set to "all", objects of all interface types
  1198.  *  are returned, otherwise only objects of the requested interface type
  1199.  *  will be returned.  Only the values "AttributeDef", "ConstantDef",
  1200.  *  "ExceptionDef", "InterfaceDef", "ModuleDef", "ParameterDef",
  1201.  *  "OperationDef", "TypeDef", or "all" may be specified for limit_type.
  1202.  *  If exclude_inherited is set to TRUE, inherited objects will not be
  1203.  *  included in the returned sequence.
  1204.  * 
  1205.  *  You are responsible for freeing the contents of the returned
  1206.  *  sequence when you are finished with it.    Use a code fragment
  1207.  *  similar to the following to free it:
  1208.  * 
  1209.  *       if (containedSeq._length)
  1210.  *           long i;
  1211.  *           for(i=0; i<containedSeq._length; i++)
  1212.  *         SOMObject_somFree(containedSeq._buffer[i]);
  1213.  *           SOMFree (containedSeq._buffer);
  1214.  */
  1215.    return SOM_ResolveD(this,OperationDef,Container,lookup_name)
  1216.     (this, ev,search_name,levels_to_search,limit_type,exclude_inherited);
  1217. }
  1218.  
  1219.  
  1220. /* method: describe_contents */
  1221. _IDL_SEQUENCE_Container_ContainerDescription   describe_contents(Environment *ev, 
  1222.         Container_InterfaceName limit_type, 
  1223.         boolean exclude_inherited, 
  1224.         long max_returned_objs)
  1225. {
  1226. /*
  1227.  *  Combines the "contents" operation and the "describe" operation.  For
  1228.  *  each object returned by the contents operation, the description of
  1229.  *  the object is returned by invoking its "describe" operation.
  1230.  * 
  1231.  *  Max_returned_objs can be used to limit the number of objects that can
  1232.  *  be returned.  If max_returned_objs is set to -1, results for all
  1233.  *  contained objects will be returned.
  1234.  * 
  1235.  *  Note: You should SOMFree result._buffer when you are done with it
  1236.  *  as well as result._buffer[x].value._value !
  1237.  */
  1238.    return SOM_ResolveD(this,OperationDef,Container,describe_contents)
  1239.     (this, ev,limit_type,exclude_inherited,max_returned_objs);
  1240. }
  1241.  
  1242.  
  1243.  
  1244. };   /* OperationDef */
  1245.  
  1246.  
  1247.  
  1248. #endif       /* SOM_OperationDef_xh */
  1249.