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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: repostry.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emitxh: 2.47
  8.  */
  9.  
  10. #ifndef SOM_Repository_xh
  11. #define SOM_Repository_xh
  12.  
  13. class Repository;
  14.  
  15. /*
  16.  *  The Repository interface provides global access to the SOM
  17.  *  CORBA-compliant Interface Repository (IR).  To obtain an object
  18.  *  reference to an instance of Repository, use the RepositoryNew
  19.  *  function.
  20.  * 
  21.  *  See CORBA 1.1, 7.5.2, p.133
  22.  */
  23.  
  24. #define Repository_MajorVersion 2
  25. #define Repository_MinorVersion 3
  26.  
  27. /*
  28.  * Passthru lines: File: "C.xh", "before"
  29.  */
  30.  
  31.     #include <stdio.h>
  32.     #include <somtcnst.xh>
  33.     #include <somir.xh>
  34.     #include <containd.xh>
  35.  
  36.  
  37. /* C++ SOM defs */
  38. #include <somcls.xh>
  39. #include <somcm.xh>
  40.  
  41. /* C++ parent defs */
  42. #ifndef SOM_Container_xh
  43. #include <containr.xh>
  44. #endif
  45.  
  46. #ifndef Repository_API
  47. #define Repository_API
  48. /*
  49.  * -- The Class API
  50.  */
  51.  
  52. /*
  53.  * Start of bindings for IDL types
  54.  */
  55.  
  56. class SOMClass;
  57. class SOMObject;
  58. class Contained;
  59. typedef
  60. struct Repository_RepositoryDescription {
  61. Identifier name;
  62. string  id;
  63. string  defined_in;
  64. } Repository_RepositoryDescription;
  65. /*
  66.  *  The inherited describe_contents method returns an instance
  67.  *  of this (RepositoryDescription) structure in the value
  68.  *  member of the Description structure defined in the Container
  69.  *  interface.
  70.  */
  71.  
  72. typedef unsigned long Repository_irOpenErrorCodes;
  73. #define Repository_NOACCESS 1UL
  74. #define Repository_BADMAGICNUMBER 2UL
  75. #define Repository_MISSINGVERSIONINFO 3UL
  76. #define Repository_IOERROR 4UL
  77. #define Repository_VERSIONMISMATCH 5UL
  78. #define Repository_NOWRITEACCESS 6UL
  79. #define Repository_INDEXINCONSISTENT 7UL
  80. #define Repository_INDEXNOTPRESENT 8UL
  81. /*
  82.  *  @dcr13033
  83.  */
  84.  
  85. #define ex_Repository_irOpenError "::Repository::irOpenError"
  86. typedef
  87. struct Repository_irOpenError {
  88. Repository_irOpenErrorCodes errorCode;
  89. string  fileName;
  90. } Repository_irOpenError;
  91. /*
  92.  *  The irOpenError and associated irOpenErrorCodes are a
  93.  *  SOM-unique extension to the Interface Repository.  These
  94.  *  errors may be raised by the somNew when instantiating the
  95.  *  Repository object and can be found in the SOM global
  96.  *  Environment if the returned Repository object is NULL (meaning
  97.  *  no Repository object could be created). When the Repository
  98.  *  object is not NULL, use the queryException method to place any
  99.  *  exception info into a user-supplied Environment
  100.  *  (see queryException below).
  101.  */
  102.  
  103.  
  104. #ifndef SOM_DONT_USE_SHORT_NAMES
  105. #ifndef SOMTGD_RepositoryDescription
  106.     #ifdef RepositoryDescription
  107.         #undef RepositoryDescription
  108.         #define SOMTGD_RepositoryDescription 1
  109.     #else
  110.         #define RepositoryDescription Repository_RepositoryDescription
  111.     #endif /* RepositoryDescription */
  112. #endif /* SOMTGD_RepositoryDescription */
  113. #ifndef SOMTGD_irOpenErrorCodes
  114.     #ifdef irOpenErrorCodes
  115.         #undef irOpenErrorCodes
  116.         #define SOMTGD_irOpenErrorCodes 1
  117.     #else
  118.         #define irOpenErrorCodes Repository_irOpenErrorCodes
  119.     #endif /* irOpenErrorCodes */
  120. #endif /* SOMTGD_irOpenErrorCodes */
  121. #ifndef SOMTGD_ex_irOpenError
  122.     #ifdef ex_irOpenError
  123.         #undef ex_irOpenError
  124.         #define SOMTGD_ex_irOpenError 1
  125.     #else
  126.         #define ex_irOpenError ex_Repository_irOpenError
  127.     #endif /* ex_irOpenError */
  128. #endif /* SOMTGD_ex_irOpenError */
  129. #ifndef SOMTGD_irOpenError
  130.     #ifdef irOpenError
  131.         #undef irOpenError
  132.         #define SOMTGD_irOpenError 1
  133.     #else
  134.         #define irOpenError Repository_irOpenError
  135.     #endif /* irOpenError */
  136. #endif /* SOMTGD_irOpenError */
  137. #endif /* SOM_DONT_USE_SHORT_NAMES */
  138.  
  139. /*
  140.  * End of bindings for IDL types.
  141.  */
  142.  
  143. /* A procedure to create the Repository Class */
  144. SOMEXTERN SOMClass * SOMLINK RepositoryNewClass(
  145.         integer4 majorVersion,
  146.         integer4 minorVersion);
  147.  
  148. /* The API to the Repository class object, and the methods it introduces. */
  149. SOMEXTERN struct RepositoryClassDataStructure {
  150.     SOMClass *classObject;
  151.     somMToken lookup_id;
  152.     somMToken lookup_modifier;
  153.     somMToken release_cache;
  154.     somMToken reserved1;
  155.     somMToken reserved2;
  156.     somMToken reserved3;
  157.     somMToken queryException;
  158. } SOMDLINK RepositoryClassData;
  159. #define _Repository RepositoryClassData.classObject
  160.  
  161. /* The API to parentMtabs for Repository, and the instance data it introduces. */
  162. SOMEXTERN struct RepositoryCClassDataStructure {
  163.     somMethodTabs parentMtab;
  164.     somDToken              instanceDataToken;
  165. } SOMDLINK RepositoryCClassData;
  166.  
  167. /*
  168.  * -- Typedefs for Repository Method Procedures
  169.  */
  170. SOMEXTERN {
  171. typedef Contained*   SOMLINK somTP_Repository_lookup_id(Repository *somSelf, Environment *ev, 
  172.         string search_id);
  173. typedef somTP_Repository_lookup_id *somTD_Repository_lookup_id;
  174. typedef string   SOMLINK somTP_Repository_lookup_modifier(Repository *somSelf, Environment *ev, 
  175.         string name, 
  176.         string modifier);
  177. typedef somTP_Repository_lookup_modifier *somTD_Repository_lookup_modifier;
  178. typedef void   SOMLINK somTP_Repository_release_cache(Repository *somSelf, Environment *ev);
  179. typedef somTP_Repository_release_cache *somTD_Repository_release_cache;
  180. typedef boolean   SOMLINK somTP_Repository_queryException(Repository *somSelf, Environment *ev);
  181. typedef somTP_Repository_queryException *somTD_Repository_queryException;
  182.  
  183. /*
  184.  * -- Typedefs for Reintroduced Wrapper Methods
  185.  */
  186. typedef _IDL_SEQUENCE_Contained   SOMLINK somTP_Repository_contents(Repository *somSelf, Environment *ev, 
  187.         Container_InterfaceName limit_type, 
  188.         boolean exclude_inherited);
  189. typedef somTP_Repository_contents *somTD_Repository_contents;
  190. typedef _IDL_SEQUENCE_Contained   SOMLINK somTP_Repository_lookup_name(Repository *somSelf, Environment *ev, 
  191.         Identifier search_name, 
  192.         long levels_to_search, 
  193.         Container_InterfaceName limit_type, 
  194.         boolean exclude_inherited);
  195. typedef somTP_Repository_lookup_name *somTD_Repository_lookup_name;
  196. typedef _IDL_SEQUENCE_Container_ContainerDescription   SOMLINK somTP_Repository_describe_contents(Repository *somSelf, Environment *ev, 
  197.         Container_InterfaceName limit_type, 
  198.         boolean exclude_inherited, 
  199.         long max_returned_objs);
  200. typedef somTP_Repository_describe_contents *somTD_Repository_describe_contents;
  201. typedef void   SOMLINK somTP_Repository_somDefaultInit(Repository *somSelf, 
  202.         som3InitCtrl* ctrl);
  203. typedef somTP_Repository_somDefaultInit *somTD_Repository_somDefaultInit;
  204. typedef void   SOMLINK somTP_Repository_somDestruct(Repository *somSelf, 
  205.         octet doFree, 
  206.         som3DestructCtrl* ctrl);
  207. typedef somTP_Repository_somDestruct *somTD_Repository_somDestruct;
  208. typedef void   SOMLINK somTP_Repository_somDumpSelf(Repository *somSelf, 
  209.         long level);
  210. typedef somTP_Repository_somDumpSelf *somTD_Repository_somDumpSelf;
  211. typedef void   SOMLINK somTP_Repository_somDumpSelfInt(Repository *somSelf, 
  212.         long level);
  213. typedef somTP_Repository_somDumpSelfInt *somTD_Repository_somDumpSelfInt;
  214. typedef void   SOMLINK somTP_Repository_somDefaultCopyInit(Repository *somSelf, 
  215.         som3InitCtrl* ctrl, 
  216.         SOMObject* fromObj);
  217. typedef somTP_Repository_somDefaultCopyInit *somTD_Repository_somDefaultCopyInit;
  218. typedef Repository*   SOMLINK somTP_Repository_somDefaultAssign(Repository *somSelf, 
  219.         som3AssignCtrl* ctrl, 
  220.         SOMObject* fromObj);
  221. typedef somTP_Repository_somDefaultAssign *somTD_Repository_somDefaultAssign;
  222. typedef void   SOMLINK somTP_Repository_somDefaultConstCopyInit(Repository *somSelf, 
  223.         som3InitCtrl* ctrl, 
  224.         SOMObject* fromObj);
  225. typedef somTP_Repository_somDefaultConstCopyInit *somTD_Repository_somDefaultConstCopyInit;
  226. typedef void   SOMLINK somTP_Repository_somDefaultVCopyInit(Repository *somSelf, 
  227.         som3InitCtrl* ctrl, 
  228.         SOMObject* fromObj);
  229. typedef somTP_Repository_somDefaultVCopyInit *somTD_Repository_somDefaultVCopyInit;
  230. typedef void   SOMLINK somTP_Repository_somDefaultConstVCopyInit(Repository *somSelf, 
  231.         som3InitCtrl* ctrl, 
  232.         SOMObject* fromObj);
  233. typedef somTP_Repository_somDefaultConstVCopyInit *somTD_Repository_somDefaultConstVCopyInit;
  234. typedef Repository*   SOMLINK somTP_Repository_somDefaultConstAssign(Repository *somSelf, 
  235.         som3AssignCtrl* ctrl, 
  236.         SOMObject* fromObj);
  237. typedef somTP_Repository_somDefaultConstAssign *somTD_Repository_somDefaultConstAssign;
  238. typedef Repository*   SOMLINK somTP_Repository_somDefaultVAssign(Repository *somSelf, 
  239.         som3AssignCtrl* ctrl, 
  240.         SOMObject* fromObj);
  241. typedef somTP_Repository_somDefaultVAssign *somTD_Repository_somDefaultVAssign;
  242. typedef Repository*   SOMLINK somTP_Repository_somDefaultConstVAssign(Repository *somSelf, 
  243.         som3AssignCtrl* ctrl, 
  244.         SOMObject* fromObj);
  245. typedef somTP_Repository_somDefaultConstVAssign *somTD_Repository_somDefaultConstVAssign;
  246. typedef void   SOMLINK somTP_Repository_somInit(Repository *somSelf);
  247. typedef somTP_Repository_somInit *somTD_Repository_somInit;
  248. typedef void   SOMLINK somTP_Repository_somFree(Repository *somSelf);
  249. typedef somTP_Repository_somFree *somTD_Repository_somFree;
  250. typedef void   SOMLINK somTP_Repository_somUninit(Repository *somSelf);
  251. typedef somTP_Repository_somUninit *somTD_Repository_somUninit;
  252. typedef SOMClass*   SOMLINK somTP_Repository_somGetClass(Repository *somSelf);
  253. typedef somTP_Repository_somGetClass *somTD_Repository_somGetClass;
  254. typedef string   SOMLINK somTP_Repository_somGetClassName(Repository *somSelf);
  255. typedef somTP_Repository_somGetClassName *somTD_Repository_somGetClassName;
  256. typedef long   SOMLINK somTP_Repository_somGetSize(Repository *somSelf);
  257. typedef somTP_Repository_somGetSize *somTD_Repository_somGetSize;
  258. typedef boolean   SOMLINK somTP_Repository_somIsA(Repository *somSelf, 
  259.         SOMClass* aClassObj);
  260. typedef somTP_Repository_somIsA *somTD_Repository_somIsA;
  261. typedef boolean   SOMLINK somTP_Repository_somIsInstanceOf(Repository *somSelf, 
  262.         SOMClass* aClassObj);
  263. typedef somTP_Repository_somIsInstanceOf *somTD_Repository_somIsInstanceOf;
  264. typedef boolean   SOMLINK somTP_Repository_somRespondsTo(Repository *somSelf, 
  265.         somId mId);
  266. typedef somTP_Repository_somRespondsTo *somTD_Repository_somRespondsTo;
  267. typedef boolean   SOMLINK somTP_Repository_somDispatch(Repository *somSelf, 
  268.         somToken* retValue, 
  269.         somId methodId, 
  270.         va_list ap);
  271. typedef somTP_Repository_somDispatch *somTD_Repository_somDispatch;
  272. typedef boolean   SOMLINK somTP_Repository_somClassDispatch(Repository *somSelf, 
  273.         SOMClass* clsObj, 
  274.         somToken* retValue, 
  275.         somId methodId, 
  276.         va_list ap);
  277. typedef somTP_Repository_somClassDispatch *somTD_Repository_somClassDispatch;
  278. typedef boolean   SOMLINK somTP_Repository_somCastObj(Repository *somSelf, 
  279.         SOMClass* cls);
  280. typedef somTP_Repository_somCastObj *somTD_Repository_somCastObj;
  281. typedef boolean   SOMLINK somTP_Repository_somResetObj(Repository *somSelf);
  282. typedef somTP_Repository_somResetObj *somTD_Repository_somResetObj;
  283. typedef void   SOMLINK somTP_Repository_somDispatchV(Repository *somSelf, 
  284.         somId methodId, 
  285.         somId descriptor, 
  286.         va_list ap);
  287. typedef somTP_Repository_somDispatchV *somTD_Repository_somDispatchV;
  288. typedef long   SOMLINK somTP_Repository_somDispatchL(Repository *somSelf, 
  289.         somId methodId, 
  290.         somId descriptor, 
  291.         va_list ap);
  292. typedef somTP_Repository_somDispatchL *somTD_Repository_somDispatchL;
  293. typedef void*   SOMLINK somTP_Repository_somDispatchA(Repository *somSelf, 
  294.         somId methodId, 
  295.         somId descriptor, 
  296.         va_list ap);
  297. typedef somTP_Repository_somDispatchA *somTD_Repository_somDispatchA;
  298. typedef double   SOMLINK somTP_Repository_somDispatchD(Repository *somSelf, 
  299.         somId methodId, 
  300.         somId descriptor, 
  301.         va_list ap);
  302. typedef somTP_Repository_somDispatchD *somTD_Repository_somDispatchD;
  303. typedef SOMObject*   SOMLINK somTP_Repository_somPrintSelf(Repository *somSelf);
  304. typedef somTP_Repository_somPrintSelf *somTD_Repository_somPrintSelf;
  305. }
  306.  
  307. #endif /* Repository_API */
  308.  
  309.  
  310. /*
  311.  * -- This emitter treats Method Tokens as Thunks by default.
  312.  * -- Use the sc modifier "nothunks" to change this default
  313.  */
  314. #undef somresolve_
  315. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  316.  
  317. /*
  318.  * -- The C++ Wrapper Class for Repository
  319.  */
  320. class Repository : public Container
  321. {
  322. /*
  323.  *  The Repository interface provides global access to the SOM
  324.  *  CORBA-compliant Interface Repository (IR).  To obtain an object
  325.  *  reference to an instance of Repository, use the RepositoryNew
  326.  *  function.
  327.  * 
  328.  *  See CORBA 1.1, 7.5.2, p.133
  329.  */
  330. public:
  331.  
  332. // Repository::new creates the class object if necessary, and then uses somNewNoInit
  333. // to allocate memory and create the object. Initialization is in ctors.
  334. void *operator new(size_t)
  335. {
  336.    if (!_Repository) RepositoryNewClass(Repository_MajorVersion,Repository_MinorVersion);
  337.    return (void*)
  338.       SOM_Resolve(_Repository,SOMClass,somNewNoInit)
  339.          ((SOMClass *)((void*)_Repository));
  340. }
  341.  
  342. // Repository::delete uses somDestruct.
  343. void operator delete(void * obj)
  344. {
  345.    if (obj && *(void**)obj) {
  346.       SOM_Resolve(obj,SOMObject,somFree)
  347.          ((SOMObject*)obj);
  348.    }
  349. }
  350.  
  351. Repository& operator=(Repository& fromObj)
  352. {
  353.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  354.    return *this;
  355. }
  356.  
  357. Repository()
  358. {
  359.    if (*(void**)this != 
  360.        ((somParentMtabStructPtr)
  361.         (RepositoryCClassData.parentMtab))->mtab)
  362.       return;
  363.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  364. }
  365.  
  366. Repository(Repository* fromObj)
  367. {
  368.    if (*(void**)this != 
  369.        ((somParentMtabStructPtr)
  370.         (RepositoryCClassData.parentMtab))->mtab)
  371.       return;
  372.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  373. }
  374.  
  375. #ifdef __IBMCPP__
  376. #pragma info(nocnv,nopar)
  377. #endif
  378. Repository(const Repository* fromObj)
  379. {
  380.    if (*(void**)this != 
  381.        ((somParentMtabStructPtr)
  382.         (RepositoryCClassData.parentMtab))->mtab)
  383.       return;
  384.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  385. }
  386. #ifdef __IBMCPP__
  387. #pragma info(restore)
  388. #endif
  389.  
  390.  
  391. /* method: lookup_id */
  392. Contained*   lookup_id(Environment *ev, 
  393.         string search_id)
  394. {
  395. /*
  396.  *  Returns the object with a RepositoryId given by search_id.
  397.  */
  398.    return SOM_ResolveD(this,Repository,Repository,lookup_id)
  399.     (this, ev,search_id);
  400. }
  401.  
  402.  
  403. /* method: lookup_modifier */
  404. string   lookup_modifier(Environment *ev, 
  405.         string name, 
  406.         string modifier)
  407. {
  408. /*
  409.  *  [SOM-unique extension]
  410.  * 
  411.  *  Returns the value string associated with the given SOM modifier
  412.  *  for the object whose id is specified.  If the object does not
  413.  *  exist or does not possess the modifier, NULL (or zero) is returned.
  414.  *  If the modifier exists but does not have a value, a zero-length
  415.  *  value string is returned.
  416.  * 
  417.  *  You must free the returned string when finished with it (using
  418.  *  SOMFree).
  419.  */
  420.    return SOM_ResolveD(this,Repository,Repository,lookup_modifier)
  421.     (this, ev,name,modifier);
  422. }
  423.  
  424.  
  425. /* method: release_cache */
  426. void   release_cache(Environment *ev)
  427. {
  428. /*
  429.  *  [SOM-unique extension]
  430.  * 
  431.  *  This method releases all currently unreferenced Interface Repository
  432.  *  objects from the internal object cache.    This may release some storage
  433.  *  at the cost of slowing down (slightly) the next few lookup operations.
  434.  *  The internal cache will replenish itself (over time) with each
  435.  *  subsequent lookup operation.
  436.  */
  437.    SOM_ResolveD(this,Repository,Repository,release_cache)
  438.     (this, ev);
  439. }
  440.  
  441.  
  442. /* method: queryException */
  443. boolean   queryException(Environment *ev)
  444. {
  445. /*
  446.  *  [SOM-unique extension]
  447.  * 
  448.  *  This method returns TRUE if an exception condition was
  449.  *  raised during the creation of the Repository object, otherwise
  450.  *  it returns FALSE.  When the result is TRUE, the actual
  451.  *  exception info may be found in the Environment passed in to
  452.  *  the queryException operation.
  453.  */
  454.    return SOM_ResolveD(this,Repository,Repository,queryException)
  455.     (this, ev);
  456. }
  457.  
  458.  
  459. /*
  460.  * Reintroduce inherited methods
  461.  */
  462.  
  463. /* method: contents */
  464. _IDL_SEQUENCE_Contained   contents(Environment *ev, 
  465.         Container_InterfaceName limit_type, 
  466.         boolean exclude_inherited)
  467. {
  468. /*
  469.  *  Returns a list of objects contained by the receiving object.
  470.  *  This operation is used to navigate thru the hierarchy of objects.
  471.  *  Starting with the Repository object, use this operation to list
  472.  *  all of the objects in the Repository, then all of the objects
  473.  *  within the ModuleDef objects, then all of the objects in the
  474.  *  InterfaceDefs, etc.
  475.  * 
  476.  *  If restrict_type is set to "all", objects of all interface types
  477.  *  are returned, otherwise only objects of the requested interface type
  478.  *  will be returned.  If exclude_inherited is set to TRUE, inherited
  479.  *  objects, if any, will not be returned.
  480.  * 
  481.  *  You are responsible for freeing the contents of the returned
  482.  *  sequence when you are finished with it.    Use a code fragment
  483.  *  similar to the following to free it:
  484.  * 
  485.  *       if (containedSeq._length)
  486.  *           long i;
  487.  *           for(i=0; i<containedSeq._length; i++)
  488.  *         SOMObject_somFree(containedSeq._buffer[i]);
  489.  *           SOMFree (containedSeq._buffer);
  490.  */
  491.    return SOM_ResolveD(this,Repository,Container,contents)
  492.     (this, ev,limit_type,exclude_inherited);
  493. }
  494.  
  495.  
  496. /* method: lookup_name */
  497. _IDL_SEQUENCE_Contained   lookup_name(Environment *ev, 
  498.         Identifier search_name, 
  499.         long levels_to_search, 
  500.         Container_InterfaceName limit_type, 
  501.         boolean exclude_inherited)
  502. {
  503. /*
  504.  *  Locates an object by name within the receiving object, or within
  505.  *  objects contained in the receiving object.  Search_name specifies
  506.  *  the name of the object to be found.  Levels_to_search controls
  507.  *  whether the lookup is constrained to the receiving object or
  508.  *  whether it includes objects contained withing the receiving object.
  509.  *  (Set levels_to_search to -1 to search the receiver and all contained
  510.  *  objects, -- set it to 1 to search the receiver only.)  If
  511.  *  limit_type is set to "all", objects of all interface types
  512.  *  are returned, otherwise only objects of the requested interface type
  513.  *  will be returned.  Only the values "AttributeDef", "ConstantDef",
  514.  *  "ExceptionDef", "InterfaceDef", "ModuleDef", "ParameterDef",
  515.  *  "OperationDef", "TypeDef", or "all" may be specified for limit_type.
  516.  *  If exclude_inherited is set to TRUE, inherited objects will not be
  517.  *  included in the returned sequence.
  518.  * 
  519.  *  You are responsible for freeing the contents of the returned
  520.  *  sequence when you are finished with it.    Use a code fragment
  521.  *  similar to the following to free it:
  522.  * 
  523.  *       if (containedSeq._length)
  524.  *           long i;
  525.  *           for(i=0; i<containedSeq._length; i++)
  526.  *         SOMObject_somFree(containedSeq._buffer[i]);
  527.  *           SOMFree (containedSeq._buffer);
  528.  */
  529.    return SOM_ResolveD(this,Repository,Container,lookup_name)
  530.     (this, ev,search_name,levels_to_search,limit_type,exclude_inherited);
  531. }
  532.  
  533.  
  534. /* method: describe_contents */
  535. _IDL_SEQUENCE_Container_ContainerDescription   describe_contents(Environment *ev, 
  536.         Container_InterfaceName limit_type, 
  537.         boolean exclude_inherited, 
  538.         long max_returned_objs)
  539. {
  540. /*
  541.  *  Combines the "contents" operation and the "describe" operation.  For
  542.  *  each object returned by the contents operation, the description of
  543.  *  the object is returned by invoking its "describe" operation.
  544.  * 
  545.  *  Max_returned_objs can be used to limit the number of objects that can
  546.  *  be returned.  If max_returned_objs is set to -1, results for all
  547.  *  contained objects will be returned.
  548.  * 
  549.  *  Note: You should SOMFree result._buffer when you are done with it
  550.  *  as well as result._buffer[x].value._value !
  551.  */
  552.    return SOM_ResolveD(this,Repository,Container,describe_contents)
  553.     (this, ev,limit_type,exclude_inherited,max_returned_objs);
  554. }
  555.  
  556.  
  557. /* initializer method: somDefaultInit */
  558. void   somDefaultInit(som3InitCtrl* ctrl)
  559. {
  560.    SOM_ResolveD(this,Repository,SOMObject,somDefaultInit)
  561.     (this,ctrl);
  562. }
  563.  
  564.  
  565. /* method: somDestruct */
  566. void   somDestruct(octet doFree, 
  567.         som3DestructCtrl* ctrl)
  568. {
  569.    SOM_ResolveD(this,Repository,SOMObject,somDestruct)
  570.     (this,doFree,ctrl);
  571. }
  572.  
  573.  
  574. /* method: somDumpSelf */
  575. void   somDumpSelf(long level)
  576. {
  577.    SOM_ResolveD(this,Repository,SOMObject,somDumpSelf)
  578.     (this,level);
  579. }
  580.  
  581.  
  582. /* method: somDumpSelfInt */
  583. void   somDumpSelfInt(long level)
  584. {
  585.    SOM_ResolveD(this,Repository,SOMObject,somDumpSelfInt)
  586.     (this,level);
  587. }
  588.  
  589.  
  590. /* initializer method: somDefaultCopyInit */
  591. void   somDefaultCopyInit(som3InitCtrl* ctrl, 
  592.         SOMObject* fromObj)
  593. {
  594. /*
  595.  *  A default copy constructor. Use this to make copies of objects for
  596.  *  calling methods with "by-value" argument semantics.
  597.  */
  598.    SOM_ResolveD(this,Repository,SOMObject,somDefaultCopyInit)
  599.     (this,ctrl,fromObj);
  600. }
  601.  
  602.  
  603. /* method: somDefaultAssign */
  604. Repository*  somDefaultAssign(som3AssignCtrl* ctrl, 
  605.         SOMObject* fromObj)
  606. {
  607. /*
  608.  *  A default assignment operator. Use this to "assign" the state of one
  609.  *  object to another.
  610.  */
  611.    return SOM_ResolveD(this,Repository,SOMObject,somDefaultAssign)
  612.     (this,ctrl,fromObj);
  613. }
  614.  
  615.  
  616. /* initializer method: somDefaultConstCopyInit */
  617. void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
  618.         SOMObject* fromObj)
  619. {
  620. /*
  621.  *  A default copy constructor that uses a const fromObj.
  622.  */
  623.    SOM_ResolveD(this,Repository,SOMObject,somDefaultConstCopyInit)
  624.     (this,ctrl,fromObj);
  625. }
  626.  
  627.  
  628. /* initializer method: somDefaultVCopyInit */
  629. void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
  630.         SOMObject* fromObj)
  631. {
  632. /*
  633.  *  A default copy constructor that uses a volatile fromObj.
  634.  */
  635.    SOM_ResolveD(this,Repository,SOMObject,somDefaultVCopyInit)
  636.     (this,ctrl,fromObj);
  637. }
  638.  
  639.  
  640. /* initializer method: somDefaultConstVCopyInit */
  641. void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
  642.         SOMObject* fromObj)
  643. {
  644. /*
  645.  *  A default copy constructor that uses a const volatile fromObj.
  646.  */
  647.    SOM_ResolveD(this,Repository,SOMObject,somDefaultConstVCopyInit)
  648.     (this,ctrl,fromObj);
  649. }
  650.  
  651.  
  652. /* method: somDefaultConstAssign */
  653. Repository*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
  654.         SOMObject* fromObj)
  655. {
  656. /*
  657.  *  A default assignment operator that uses a const fromObj.
  658.  */
  659.    return SOM_ResolveD(this,Repository,SOMObject,somDefaultConstAssign)
  660.     (this,ctrl,fromObj);
  661. }
  662.  
  663.  
  664. /* method: somDefaultVAssign */
  665. Repository*  somDefaultVAssign(som3AssignCtrl* ctrl, 
  666.         SOMObject* fromObj)
  667. {
  668. /*
  669.  *  A default assignment operator that uses a volatile fromObj.
  670.  */
  671.    return SOM_ResolveD(this,Repository,SOMObject,somDefaultVAssign)
  672.     (this,ctrl,fromObj);
  673. }
  674.  
  675.  
  676. /* method: somDefaultConstVAssign */
  677. Repository*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
  678.         SOMObject* fromObj)
  679. {
  680. /*
  681.  *  A default assignment operator that uses a const volatile fromObj.
  682.  */
  683.    return SOM_ResolveD(this,Repository,SOMObject,somDefaultConstVAssign)
  684.     (this,ctrl,fromObj);
  685. }
  686.  
  687.  
  688. /* method: somInit */
  689. void   somInit()
  690. {
  691. /*
  692.  *  Obsolete but still supported. Override somDefaultInit instead of somInit.
  693.  */
  694.    SOM_ResolveD(this,Repository,SOMObject,somInit)
  695.     (this);
  696. }
  697.  
  698.  
  699. /* method: somFree */
  700. void   somFree()
  701. {
  702. /*
  703.  *  Use as directed by framework implementations.
  704.  */
  705.    SOM_ResolveD(this,Repository,SOMObject,somFree)
  706.     (this);
  707. }
  708.  
  709.  
  710. /* method: somUninit */
  711. void   somUninit()
  712. {
  713. /*
  714.  *  Obsolete but still supported. Override somDestruct instead of somUninit.
  715.  */
  716.    SOM_ResolveD(this,Repository,SOMObject,somUninit)
  717.     (this);
  718. }
  719.  
  720.  
  721. /* method: somGetClass */
  722. SOMClass*   somGetClass()
  723. {
  724. /*
  725.  *  Return the receiver's class.
  726.  */
  727.    return SOM_ResolveD(this,Repository,SOMObject,somGetClass)
  728.     (this);
  729. }
  730.  
  731.  
  732. /* method: somGetClassName */
  733. string   somGetClassName()
  734. {
  735. /*
  736.  *  Return the name of the receiver's class.
  737.  */
  738.    return SOM_ResolveD(this,Repository,SOMObject,somGetClassName)
  739.     (this);
  740. }
  741.  
  742.  
  743. /* method: somGetSize */
  744. long   somGetSize()
  745. {
  746. /*
  747.  *  Return the size of the receiver.
  748.  */
  749.    return SOM_ResolveD(this,Repository,SOMObject,somGetSize)
  750.     (this);
  751. }
  752.  
  753.  
  754. /* method: somIsA */
  755. boolean   somIsA(SOMClass* aClassObj)
  756. {
  757. /*
  758.  *  Returns 1 (true) if the receiver responds to methods
  759.  *  introduced by <aClassObj>, and 0 (false) otherwise.
  760.  */
  761.    return SOM_ResolveD(this,Repository,SOMObject,somIsA)
  762.     (this,aClassObj);
  763. }
  764.  
  765.  
  766. /* method: somIsInstanceOf */
  767. boolean   somIsInstanceOf(SOMClass* aClassObj)
  768. {
  769. /*
  770.  *  Returns 1 (true) if the receiver is an instance of
  771.  *  <aClassObj> and 0 (false) otherwise.
  772.  */
  773.    return SOM_ResolveD(this,Repository,SOMObject,somIsInstanceOf)
  774.     (this,aClassObj);
  775. }
  776.  
  777.  
  778. /* method: somRespondsTo */
  779. boolean   somRespondsTo(somId mId)
  780. {
  781. /*
  782.  *  Returns 1 (true) if the indicated method can be invoked
  783.  *  on the receiver and 0 (false) otherwise.
  784.  */
  785.    return SOM_ResolveD(this,Repository,SOMObject,somRespondsTo)
  786.     (this,mId);
  787. }
  788.  
  789.  
  790. /* va_list method: somDispatch */
  791.  
  792. /*
  793.  *  This method provides a generic, class-specific dispatch mechanism.
  794.  *  It accepts as input <retValue> a pointer to the memory area to be
  795.  *  loaded with the result of dispatching the method indicated by
  796.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  797.  *  on which the method is to be invoked as the first argument.
  798.  */
  799. /* the va_list invocation form */
  800. boolean   Repository_somDispatch(somToken* retValue, 
  801.         somId methodId, 
  802.         va_list ap)
  803. {return SOM_ResolveD(this,Repository,SOMObject,somDispatch)
  804.     (this,retValue,methodId,ap);
  805. }
  806.  
  807. /* the varargs invocation form */
  808. boolean   somDispatch(somToken* retValue, 
  809.         somId methodId, 
  810.         ...)
  811. {
  812. /*
  813.  *  This method provides a generic, class-specific dispatch mechanism.
  814.  *  It accepts as input <retValue> a pointer to the memory area to be
  815.  *  loaded with the result of dispatching the method indicated by
  816.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  817.  *  on which the method is to be invoked as the first argument.
  818.  */
  819.    va_list ap;
  820.    va_start(ap, methodId);
  821.    boolean __somResult = 
  822.       SOM_ResolveD(this,Repository,SOMObject,somDispatch)
  823.     (this,retValue,methodId,ap);
  824.    va_end(ap);
  825.    return __somResult;
  826. }
  827.  
  828.  
  829. /* va_list method: somClassDispatch */
  830.  
  831. /*
  832.  *  Like somDispatch, but method resolution for static methods is done
  833.  *  according to the clsObj instance method table.
  834.  */
  835. /* the va_list invocation form */
  836. boolean   Repository_somClassDispatch(SOMClass* clsObj, 
  837.         somToken* retValue, 
  838.         somId methodId, 
  839.         va_list ap)
  840. {return SOM_ResolveD(this,Repository,SOMObject,somClassDispatch)
  841.     (this,clsObj,retValue,methodId,ap);
  842. }
  843.  
  844. /* the varargs invocation form */
  845. boolean   somClassDispatch(SOMClass* clsObj, 
  846.         somToken* retValue, 
  847.         somId methodId, 
  848.         ...)
  849. {
  850. /*
  851.  *  Like somDispatch, but method resolution for static methods is done
  852.  *  according to the clsObj instance method table.
  853.  */
  854.    va_list ap;
  855.    va_start(ap, methodId);
  856.    boolean __somResult = 
  857.       SOM_ResolveD(this,Repository,SOMObject,somClassDispatch)
  858.     (this,clsObj,retValue,methodId,ap);
  859.    va_end(ap);
  860.    return __somResult;
  861. }
  862.  
  863.  
  864. /* method: somCastObj */
  865. boolean   somCastObj(SOMClass* cls)
  866. {
  867. /*
  868.  *  cast the receiving object to cls (which must be an ancestor of the
  869.  *  objects true class. Returns true on success.
  870.  */
  871.    return SOM_ResolveD(this,Repository,SOMObject,somCastObj)
  872.     (this,cls);
  873. }
  874.  
  875.  
  876. /* method: somResetObj */
  877. boolean   somResetObj()
  878. {
  879. /*
  880.  *  reset an object to its true class. Returns true always.
  881.  */
  882.    return SOM_ResolveD(this,Repository,SOMObject,somResetObj)
  883.     (this);
  884. }
  885.  
  886.  
  887. /* va_list method: somDispatchV */
  888.  
  889. /*
  890.  *  Obsolete. Use somDispatch instead.
  891.  */
  892. /* the va_list invocation form */
  893. void   Repository_somDispatchV(somId methodId, 
  894.         somId descriptor, 
  895.         va_list ap)
  896. {   SOM_ResolveD(this,Repository,SOMObject,somDispatchV)
  897.     (this,methodId,descriptor,ap);
  898. }
  899.  
  900. /* the varargs invocation form */
  901. void   somDispatchV(somId methodId, 
  902.         somId descriptor, 
  903.         ...)
  904. {
  905. /*
  906.  *  Obsolete. Use somDispatch instead.
  907.  */
  908.    va_list ap;
  909.    va_start(ap, descriptor);
  910.    SOM_ResolveD(this,Repository,SOMObject,somDispatchV)
  911.     (this,methodId,descriptor,ap);
  912.    va_end(ap);
  913. }
  914.  
  915.  
  916. /* va_list method: somDispatchL */
  917.  
  918. /*
  919.  *  Obsolete. Use somDispatch instead.
  920.  */
  921. /* the va_list invocation form */
  922. long   Repository_somDispatchL(somId methodId, 
  923.         somId descriptor, 
  924.         va_list ap)
  925. {return SOM_ResolveD(this,Repository,SOMObject,somDispatchL)
  926.     (this,methodId,descriptor,ap);
  927. }
  928.  
  929. /* the varargs invocation form */
  930. long   somDispatchL(somId methodId, 
  931.         somId descriptor, 
  932.         ...)
  933. {
  934. /*
  935.  *  Obsolete. Use somDispatch instead.
  936.  */
  937.    va_list ap;
  938.    va_start(ap, descriptor);
  939.    long __somResult = 
  940.       SOM_ResolveD(this,Repository,SOMObject,somDispatchL)
  941.     (this,methodId,descriptor,ap);
  942.    va_end(ap);
  943.    return __somResult;
  944. }
  945.  
  946.  
  947. /* va_list method: somDispatchA */
  948.  
  949. /*
  950.  *  Obsolete. Use somDispatch instead.
  951.  */
  952. /* the va_list invocation form */
  953. void*   Repository_somDispatchA(somId methodId, 
  954.         somId descriptor, 
  955.         va_list ap)
  956. {return SOM_ResolveD(this,Repository,SOMObject,somDispatchA)
  957.     (this,methodId,descriptor,ap);
  958. }
  959.  
  960. /* the varargs invocation form */
  961. void*   somDispatchA(somId methodId, 
  962.         somId descriptor, 
  963.         ...)
  964. {
  965. /*
  966.  *  Obsolete. Use somDispatch instead.
  967.  */
  968.    va_list ap;
  969.    va_start(ap, descriptor);
  970.    void* __somResult = 
  971.       SOM_ResolveD(this,Repository,SOMObject,somDispatchA)
  972.     (this,methodId,descriptor,ap);
  973.    va_end(ap);
  974.    return __somResult;
  975. }
  976.  
  977.  
  978. /* va_list method: somDispatchD */
  979.  
  980. /*
  981.  *  Obsolete. Use somDispatch instead.
  982.  */
  983. /* the va_list invocation form */
  984. double   Repository_somDispatchD(somId methodId, 
  985.         somId descriptor, 
  986.         va_list ap)
  987. {return SOM_ResolveD(this,Repository,SOMObject,somDispatchD)
  988.     (this,methodId,descriptor,ap);
  989. }
  990.  
  991. /* the varargs invocation form */
  992. double   somDispatchD(somId methodId, 
  993.         somId descriptor, 
  994.         ...)
  995. {
  996. /*
  997.  *  Obsolete. Use somDispatch instead.
  998.  */
  999.    va_list ap;
  1000.    va_start(ap, descriptor);
  1001.    double __somResult = 
  1002.       SOM_ResolveD(this,Repository,SOMObject,somDispatchD)
  1003.     (this,methodId,descriptor,ap);
  1004.    va_end(ap);
  1005.    return __somResult;
  1006. }
  1007.  
  1008.  
  1009. /* method: somPrintSelf */
  1010. SOMObject*   somPrintSelf()
  1011. {
  1012. /*
  1013.  *  Uses <SOMOutCharRoutine> to write a brief string with identifying
  1014.  *  information about this object.  The default implementation just gives
  1015.  *  the object's class name and its address in memory.
  1016.  *  <self> is returned.
  1017.  */
  1018.    return SOM_ResolveD(this,Repository,SOMObject,somPrintSelf)
  1019.     (this);
  1020. }
  1021.  
  1022.  
  1023.  
  1024. };   /* Repository */
  1025.  
  1026.  
  1027.  
  1028. #endif       /* SOM_Repository_xh */
  1029.