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

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