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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: objset.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emitxh: 2.47
  8.  */
  9.  
  10. /*
  11.  *    COMPONENT_NAME: somp
  12.  * 
  13.  *    ORIGINS: 27
  14.  * 
  15.  * 
  16.  *     25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1994,1996
  17.  *    All Rights Reserved
  18.  *    Licensed Materials - Property of IBM
  19.  *    US Government Users Restricted Rights - Use, duplication or
  20.  *    disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  21.  * 
  22.  */
  23.  
  24.  
  25. #ifndef SOM_SOMPObjectSet_xh
  26. #define SOM_SOMPObjectSet_xh
  27.  
  28. class SOMPObjectSet;
  29.  
  30. /*
  31.  *  This class is an abstact definition for a set of objects
  32.  *  and the operations which can be performed on the set.
  33.  */
  34.  
  35. #define SOMPObjectSet_MajorVersion 2
  36. #define SOMPObjectSet_MinorVersion 1
  37.  
  38. /* C++ SOM defs */
  39. #include <somcls.xh>
  40. #include <somcm.xh>
  41.  
  42. /* C++ parent defs */
  43. #ifndef SOM_SOMObject_xh
  44. #include <somobj.xh>
  45. #endif
  46.  
  47. #ifndef SOMPObjectSet_API
  48. #define SOMPObjectSet_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 SOMBuf;
  60. class SOMPPersistentId;
  61.  
  62. /*
  63.  * End of bindings for IDL types.
  64.  */
  65.  
  66. /* A procedure to create the SOMPObjectSet Class */
  67. SOMEXTERN SOMClass * SOMLINK SOMPObjectSetNewClass(
  68.         integer4 majorVersion,
  69.         integer4 minorVersion);
  70.  
  71. /* The API to the SOMPObjectSet class object, and the methods it introduces. */
  72. SOMEXTERN struct SOMPObjectSetClassDataStructure {
  73.     SOMClass *classObject;
  74.     somMToken sompSetGetNth;
  75.     somMToken sompFindByID;
  76.     somMToken sompFindByAddress;
  77.     somMToken sompAddToSet;
  78.     somMToken sompSetDeleteNth;
  79.     somMToken sompGetSetSize;
  80.     somMToken sompObjEqualsID;
  81. } SOMDLINK SOMPObjectSetClassData;
  82. #define _SOMPObjectSet SOMPObjectSetClassData.classObject
  83.  
  84. /* The API to parentMtabs for SOMPObjectSet, and the instance data it introduces. */
  85. SOMEXTERN struct SOMPObjectSetCClassDataStructure {
  86.     somMethodTabs parentMtab;
  87.     somDToken              instanceDataToken;
  88. } SOMDLINK SOMPObjectSetCClassData;
  89.  
  90. /*
  91.  * -- Typedefs for SOMPObjectSet Method Procedures
  92.  */
  93. SOMEXTERN {
  94. typedef SOMObject*   SOMLINK somTP_SOMPObjectSet_sompSetGetNth(SOMPObjectSet *somSelf, Environment *ev, 
  95.         unsigned long n);
  96. typedef somTP_SOMPObjectSet_sompSetGetNth *somTD_SOMPObjectSet_sompSetGetNth;
  97. typedef SOMObject*   SOMLINK somTP_SOMPObjectSet_sompFindByID(SOMPObjectSet *somSelf, Environment *ev, 
  98.         SOMPPersistentId* lookfor);
  99. typedef somTP_SOMPObjectSet_sompFindByID *somTD_SOMPObjectSet_sompFindByID;
  100. typedef long   SOMLINK somTP_SOMPObjectSet_sompFindByAddress(SOMPObjectSet *somSelf, Environment *ev, 
  101.         SOMObject* lookfor);
  102. typedef somTP_SOMPObjectSet_sompFindByAddress *somTD_SOMPObjectSet_sompFindByAddress;
  103. typedef void   SOMLINK somTP_SOMPObjectSet_sompAddToSet(SOMPObjectSet *somSelf, Environment *ev, 
  104.         SOMObject* thisObject);
  105. typedef somTP_SOMPObjectSet_sompAddToSet *somTD_SOMPObjectSet_sompAddToSet;
  106. typedef void   SOMLINK somTP_SOMPObjectSet_sompSetDeleteNth(SOMPObjectSet *somSelf, Environment *ev, 
  107.         unsigned long n);
  108. typedef somTP_SOMPObjectSet_sompSetDeleteNth *somTD_SOMPObjectSet_sompSetDeleteNth;
  109. typedef long   SOMLINK somTP_SOMPObjectSet_sompGetSetSize(SOMPObjectSet *somSelf, Environment *ev);
  110. typedef somTP_SOMPObjectSet_sompGetSetSize *somTD_SOMPObjectSet_sompGetSetSize;
  111. typedef boolean   SOMLINK somTP_SOMPObjectSet_sompObjEqualsID(SOMPObjectSet *somSelf, Environment *ev, 
  112.         SOMObject* cmpObj, 
  113.         SOMPPersistentId* lookfor);
  114. typedef somTP_SOMPObjectSet_sompObjEqualsID *somTD_SOMPObjectSet_sompObjEqualsID;
  115.  
  116. /*
  117.  * -- Typedefs for Reintroduced Wrapper Methods
  118.  */
  119. typedef void   SOMLINK somTP_SOMPObjectSet_somDefaultInit(SOMPObjectSet *somSelf, 
  120.         som3InitCtrl* ctrl);
  121. typedef somTP_SOMPObjectSet_somDefaultInit *somTD_SOMPObjectSet_somDefaultInit;
  122. typedef void   SOMLINK somTP_SOMPObjectSet_somDestruct(SOMPObjectSet *somSelf, 
  123.         octet doFree, 
  124.         som3DestructCtrl* ctrl);
  125. typedef somTP_SOMPObjectSet_somDestruct *somTD_SOMPObjectSet_somDestruct;
  126. typedef void   SOMLINK somTP_SOMPObjectSet_somDefaultCopyInit(SOMPObjectSet *somSelf, 
  127.         som3InitCtrl* ctrl, 
  128.         SOMObject* fromObj);
  129. typedef somTP_SOMPObjectSet_somDefaultCopyInit *somTD_SOMPObjectSet_somDefaultCopyInit;
  130. typedef SOMPObjectSet*   SOMLINK somTP_SOMPObjectSet_somDefaultAssign(SOMPObjectSet *somSelf, 
  131.         som3AssignCtrl* ctrl, 
  132.         SOMObject* fromObj);
  133. typedef somTP_SOMPObjectSet_somDefaultAssign *somTD_SOMPObjectSet_somDefaultAssign;
  134. typedef void   SOMLINK somTP_SOMPObjectSet_somDefaultConstCopyInit(SOMPObjectSet *somSelf, 
  135.         som3InitCtrl* ctrl, 
  136.         SOMObject* fromObj);
  137. typedef somTP_SOMPObjectSet_somDefaultConstCopyInit *somTD_SOMPObjectSet_somDefaultConstCopyInit;
  138. typedef void   SOMLINK somTP_SOMPObjectSet_somDefaultVCopyInit(SOMPObjectSet *somSelf, 
  139.         som3InitCtrl* ctrl, 
  140.         SOMObject* fromObj);
  141. typedef somTP_SOMPObjectSet_somDefaultVCopyInit *somTD_SOMPObjectSet_somDefaultVCopyInit;
  142. typedef void   SOMLINK somTP_SOMPObjectSet_somDefaultConstVCopyInit(SOMPObjectSet *somSelf, 
  143.         som3InitCtrl* ctrl, 
  144.         SOMObject* fromObj);
  145. typedef somTP_SOMPObjectSet_somDefaultConstVCopyInit *somTD_SOMPObjectSet_somDefaultConstVCopyInit;
  146. typedef SOMPObjectSet*   SOMLINK somTP_SOMPObjectSet_somDefaultConstAssign(SOMPObjectSet *somSelf, 
  147.         som3AssignCtrl* ctrl, 
  148.         SOMObject* fromObj);
  149. typedef somTP_SOMPObjectSet_somDefaultConstAssign *somTD_SOMPObjectSet_somDefaultConstAssign;
  150. typedef SOMPObjectSet*   SOMLINK somTP_SOMPObjectSet_somDefaultVAssign(SOMPObjectSet *somSelf, 
  151.         som3AssignCtrl* ctrl, 
  152.         SOMObject* fromObj);
  153. typedef somTP_SOMPObjectSet_somDefaultVAssign *somTD_SOMPObjectSet_somDefaultVAssign;
  154. typedef SOMPObjectSet*   SOMLINK somTP_SOMPObjectSet_somDefaultConstVAssign(SOMPObjectSet *somSelf, 
  155.         som3AssignCtrl* ctrl, 
  156.         SOMObject* fromObj);
  157. typedef somTP_SOMPObjectSet_somDefaultConstVAssign *somTD_SOMPObjectSet_somDefaultConstVAssign;
  158. typedef void   SOMLINK somTP_SOMPObjectSet_somInit(SOMPObjectSet *somSelf);
  159. typedef somTP_SOMPObjectSet_somInit *somTD_SOMPObjectSet_somInit;
  160. typedef void   SOMLINK somTP_SOMPObjectSet_somFree(SOMPObjectSet *somSelf);
  161. typedef somTP_SOMPObjectSet_somFree *somTD_SOMPObjectSet_somFree;
  162. typedef void   SOMLINK somTP_SOMPObjectSet_somUninit(SOMPObjectSet *somSelf);
  163. typedef somTP_SOMPObjectSet_somUninit *somTD_SOMPObjectSet_somUninit;
  164. typedef SOMClass*   SOMLINK somTP_SOMPObjectSet_somGetClass(SOMPObjectSet *somSelf);
  165. typedef somTP_SOMPObjectSet_somGetClass *somTD_SOMPObjectSet_somGetClass;
  166. typedef string   SOMLINK somTP_SOMPObjectSet_somGetClassName(SOMPObjectSet *somSelf);
  167. typedef somTP_SOMPObjectSet_somGetClassName *somTD_SOMPObjectSet_somGetClassName;
  168. typedef long   SOMLINK somTP_SOMPObjectSet_somGetSize(SOMPObjectSet *somSelf);
  169. typedef somTP_SOMPObjectSet_somGetSize *somTD_SOMPObjectSet_somGetSize;
  170. typedef boolean   SOMLINK somTP_SOMPObjectSet_somIsA(SOMPObjectSet *somSelf, 
  171.         SOMClass* aClassObj);
  172. typedef somTP_SOMPObjectSet_somIsA *somTD_SOMPObjectSet_somIsA;
  173. typedef boolean   SOMLINK somTP_SOMPObjectSet_somIsInstanceOf(SOMPObjectSet *somSelf, 
  174.         SOMClass* aClassObj);
  175. typedef somTP_SOMPObjectSet_somIsInstanceOf *somTD_SOMPObjectSet_somIsInstanceOf;
  176. typedef boolean   SOMLINK somTP_SOMPObjectSet_somRespondsTo(SOMPObjectSet *somSelf, 
  177.         somId mId);
  178. typedef somTP_SOMPObjectSet_somRespondsTo *somTD_SOMPObjectSet_somRespondsTo;
  179. typedef boolean   SOMLINK somTP_SOMPObjectSet_somDispatch(SOMPObjectSet *somSelf, 
  180.         somToken* retValue, 
  181.         somId methodId, 
  182.         va_list ap);
  183. typedef somTP_SOMPObjectSet_somDispatch *somTD_SOMPObjectSet_somDispatch;
  184. typedef boolean   SOMLINK somTP_SOMPObjectSet_somClassDispatch(SOMPObjectSet *somSelf, 
  185.         SOMClass* clsObj, 
  186.         somToken* retValue, 
  187.         somId methodId, 
  188.         va_list ap);
  189. typedef somTP_SOMPObjectSet_somClassDispatch *somTD_SOMPObjectSet_somClassDispatch;
  190. typedef boolean   SOMLINK somTP_SOMPObjectSet_somCastObj(SOMPObjectSet *somSelf, 
  191.         SOMClass* cls);
  192. typedef somTP_SOMPObjectSet_somCastObj *somTD_SOMPObjectSet_somCastObj;
  193. typedef boolean   SOMLINK somTP_SOMPObjectSet_somResetObj(SOMPObjectSet *somSelf);
  194. typedef somTP_SOMPObjectSet_somResetObj *somTD_SOMPObjectSet_somResetObj;
  195. typedef void   SOMLINK somTP_SOMPObjectSet_somDispatchV(SOMPObjectSet *somSelf, 
  196.         somId methodId, 
  197.         somId descriptor, 
  198.         va_list ap);
  199. typedef somTP_SOMPObjectSet_somDispatchV *somTD_SOMPObjectSet_somDispatchV;
  200. typedef long   SOMLINK somTP_SOMPObjectSet_somDispatchL(SOMPObjectSet *somSelf, 
  201.         somId methodId, 
  202.         somId descriptor, 
  203.         va_list ap);
  204. typedef somTP_SOMPObjectSet_somDispatchL *somTD_SOMPObjectSet_somDispatchL;
  205. typedef void*   SOMLINK somTP_SOMPObjectSet_somDispatchA(SOMPObjectSet *somSelf, 
  206.         somId methodId, 
  207.         somId descriptor, 
  208.         va_list ap);
  209. typedef somTP_SOMPObjectSet_somDispatchA *somTD_SOMPObjectSet_somDispatchA;
  210. typedef double   SOMLINK somTP_SOMPObjectSet_somDispatchD(SOMPObjectSet *somSelf, 
  211.         somId methodId, 
  212.         somId descriptor, 
  213.         va_list ap);
  214. typedef somTP_SOMPObjectSet_somDispatchD *somTD_SOMPObjectSet_somDispatchD;
  215. typedef SOMObject*   SOMLINK somTP_SOMPObjectSet_somPrintSelf(SOMPObjectSet *somSelf);
  216. typedef somTP_SOMPObjectSet_somPrintSelf *somTD_SOMPObjectSet_somPrintSelf;
  217. typedef void   SOMLINK somTP_SOMPObjectSet_somDumpSelf(SOMPObjectSet *somSelf, 
  218.         long level);
  219. typedef somTP_SOMPObjectSet_somDumpSelf *somTD_SOMPObjectSet_somDumpSelf;
  220. typedef void   SOMLINK somTP_SOMPObjectSet_somDumpSelfInt(SOMPObjectSet *somSelf, 
  221.         long level);
  222. typedef somTP_SOMPObjectSet_somDumpSelfInt *somTD_SOMPObjectSet_somDumpSelfInt;
  223. }
  224.  
  225. #endif /* SOMPObjectSet_API */
  226.  
  227.  
  228. /*
  229.  * -- This emitter treats Method Tokens as Thunks by default.
  230.  * -- Use the sc modifier "nothunks" to change this default
  231.  */
  232. #undef somresolve_
  233. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  234.  
  235. /*
  236.  * -- The C++ Wrapper Class for SOMPObjectSet
  237.  */
  238. class SOMPObjectSet : public SOMObject
  239. {
  240. /*
  241.  *  This class is an abstact definition for a set of objects
  242.  *  and the operations which can be performed on the set.
  243.  */
  244. public:
  245.  
  246. // SOMPObjectSet::new creates the class object if necessary, and then uses somNewNoInit
  247. // to allocate memory and create the object. Initialization is in ctors.
  248. void *operator new(size_t)
  249. {
  250.    if (!_SOMPObjectSet) SOMPObjectSetNewClass(SOMPObjectSet_MajorVersion,SOMPObjectSet_MinorVersion);
  251.    return (void*)
  252.       SOM_Resolve(_SOMPObjectSet,SOMClass,somNewNoInit)
  253.          ((SOMClass *)((void*)_SOMPObjectSet));
  254. }
  255.  
  256. // SOMPObjectSet::delete uses somDestruct.
  257. void operator delete(void * obj)
  258. {
  259.    if (obj && *(void**)obj) {
  260.       SOM_Resolve(obj,SOMObject,somFree)
  261.          ((SOMObject*)obj);
  262.    }
  263. }
  264.  
  265. SOMPObjectSet& operator=(SOMPObjectSet& fromObj)
  266. {
  267.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  268.    return *this;
  269. }
  270.  
  271. SOMPObjectSet()
  272. {
  273.    if (*(void**)this != 
  274.        ((somParentMtabStructPtr)
  275.         (SOMPObjectSetCClassData.parentMtab))->mtab)
  276.       return;
  277.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  278. }
  279.  
  280. SOMPObjectSet(SOMPObjectSet* fromObj)
  281. {
  282.    if (*(void**)this != 
  283.        ((somParentMtabStructPtr)
  284.         (SOMPObjectSetCClassData.parentMtab))->mtab)
  285.       return;
  286.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  287. }
  288.  
  289. #ifdef __IBMCPP__
  290. #pragma info(nocnv,nopar)
  291. #endif
  292. SOMPObjectSet(const SOMPObjectSet* fromObj)
  293. {
  294.    if (*(void**)this != 
  295.        ((somParentMtabStructPtr)
  296.         (SOMPObjectSetCClassData.parentMtab))->mtab)
  297.       return;
  298.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  299. }
  300. #ifdef __IBMCPP__
  301. #pragma info(restore)
  302. #endif
  303.  
  304.  
  305. /* method: sompSetGetNth */
  306. SOMObject*   sompSetGetNth(Environment *ev, 
  307.         unsigned long n)
  308. {
  309. /*
  310.  *  Return the nth object from the set.
  311.  */
  312.    return SOM_ResolveD(this,SOMPObjectSet,SOMPObjectSet,sompSetGetNth)
  313.     (this, ev,n);
  314. }
  315.  
  316.  
  317. /* method: sompFindByID */
  318. SOMObject*   sompFindByID(Environment *ev, 
  319.         SOMPPersistentId* lookfor)
  320. {
  321. /*
  322.  *  Return the object with the ID given by <lookfor>. The true type of the
  323.  *  ID passed depends on the objects in the set. (All the objects in the
  324.  *  set are expected to be of the same type.)
  325.  */
  326.    return SOM_ResolveD(this,SOMPObjectSet,SOMPObjectSet,sompFindByID)
  327.     (this, ev,lookfor);
  328. }
  329.  
  330.  
  331. /* method: sompFindByAddress */
  332. long   sompFindByAddress(Environment *ev, 
  333.         SOMObject* lookfor)
  334. {
  335. /*
  336.  *  Returns the position in the set of the "lookfor" object or
  337.  *  -1 if the object was not found.
  338.  */
  339.    return SOM_ResolveD(this,SOMPObjectSet,SOMPObjectSet,sompFindByAddress)
  340.     (this, ev,lookfor);
  341. }
  342.  
  343.  
  344. /* method: sompAddToSet */
  345. void   sompAddToSet(Environment *ev, 
  346.         SOMObject* thisObject)
  347. {
  348. /*
  349.  *  Add an object to the set.
  350.  */
  351.    SOM_ResolveD(this,SOMPObjectSet,SOMPObjectSet,sompAddToSet)
  352.     (this, ev,thisObject);
  353. }
  354.  
  355.  
  356. /* method: sompSetDeleteNth */
  357. void   sompSetDeleteNth(Environment *ev, 
  358.         unsigned long n)
  359. {
  360. /*
  361.  *  Delete the nth object from the set.
  362.  */
  363.    SOM_ResolveD(this,SOMPObjectSet,SOMPObjectSet,sompSetDeleteNth)
  364.     (this, ev,n);
  365. }
  366.  
  367.  
  368. /* method: sompGetSetSize */
  369. long   sompGetSetSize(Environment *ev)
  370. {
  371. /*
  372.  *  Returns the set size.
  373.  */
  374.    return SOM_ResolveD(this,SOMPObjectSet,SOMPObjectSet,sompGetSetSize)
  375.     (this, ev);
  376. }
  377.  
  378.  
  379. /* method: sompObjEqualsID */
  380. boolean   sompObjEqualsID(Environment *ev, 
  381.         SOMObject* cmpObj, 
  382.         SOMPPersistentId* lookfor)
  383. {
  384. /*
  385.  *  Returns TRUE if the given object <cmpObj> has the given
  386.  *  ID <lookfor>. Override this to make the appropriate
  387.  *  comparison for the objects in the set.
  388.  */
  389.    return SOM_ResolveD(this,SOMPObjectSet,SOMPObjectSet,sompObjEqualsID)
  390.     (this, ev,cmpObj,lookfor);
  391. }
  392.  
  393.  
  394. /*
  395.  * Reintroduce inherited methods
  396.  */
  397.  
  398. /* initializer method: somDefaultInit */
  399. void   somDefaultInit(som3InitCtrl* ctrl)
  400. {
  401. /*
  402.  *  A default initializer for a SOM object. Passing a null ctrl
  403.  *  indicates to the receiver that its class is the class of the
  404.  *  object being initialized, whereby the initializer will determine
  405.  *  an appropriate control structure.
  406.  */
  407.    SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDefaultInit)
  408.     (this,ctrl);
  409. }
  410.  
  411.  
  412. /* method: somDestruct */
  413. void   somDestruct(octet doFree, 
  414.         som3DestructCtrl* ctrl)
  415. {
  416. /*
  417.  *  The default destructor for a SOM object. A nonzero <doFree>
  418.  *  indicates that the object storage should be freed by the
  419.  *  object's class (via somDeallocate) after uninitialization.
  420.  *  As with somDefaultInit, a null ctrl can be passed.
  421.  */
  422.    SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDestruct)
  423.     (this,doFree,ctrl);
  424. }
  425.  
  426.  
  427. /* initializer method: somDefaultCopyInit */
  428. void   somDefaultCopyInit(som3InitCtrl* ctrl, 
  429.         SOMObject* fromObj)
  430. {
  431. /*
  432.  *  A default copy constructor. Use this to make copies of objects for
  433.  *  calling methods with "by-value" argument semantics.
  434.  */
  435.    SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDefaultCopyInit)
  436.     (this,ctrl,fromObj);
  437. }
  438.  
  439.  
  440. /* method: somDefaultAssign */
  441. SOMPObjectSet*  somDefaultAssign(som3AssignCtrl* ctrl, 
  442.         SOMObject* fromObj)
  443. {
  444. /*
  445.  *  A default assignment operator. Use this to "assign" the state of one
  446.  *  object to another.
  447.  */
  448.    return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDefaultAssign)
  449.     (this,ctrl,fromObj);
  450. }
  451.  
  452.  
  453. /* initializer method: somDefaultConstCopyInit */
  454. void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
  455.         SOMObject* fromObj)
  456. {
  457. /*
  458.  *  A default copy constructor that uses a const fromObj.
  459.  */
  460.    SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDefaultConstCopyInit)
  461.     (this,ctrl,fromObj);
  462. }
  463.  
  464.  
  465. /* initializer method: somDefaultVCopyInit */
  466. void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
  467.         SOMObject* fromObj)
  468. {
  469. /*
  470.  *  A default copy constructor that uses a volatile fromObj.
  471.  */
  472.    SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDefaultVCopyInit)
  473.     (this,ctrl,fromObj);
  474. }
  475.  
  476.  
  477. /* initializer method: somDefaultConstVCopyInit */
  478. void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
  479.         SOMObject* fromObj)
  480. {
  481. /*
  482.  *  A default copy constructor that uses a const volatile fromObj.
  483.  */
  484.    SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDefaultConstVCopyInit)
  485.     (this,ctrl,fromObj);
  486. }
  487.  
  488.  
  489. /* method: somDefaultConstAssign */
  490. SOMPObjectSet*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
  491.         SOMObject* fromObj)
  492. {
  493. /*
  494.  *  A default assignment operator that uses a const fromObj.
  495.  */
  496.    return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDefaultConstAssign)
  497.     (this,ctrl,fromObj);
  498. }
  499.  
  500.  
  501. /* method: somDefaultVAssign */
  502. SOMPObjectSet*  somDefaultVAssign(som3AssignCtrl* ctrl, 
  503.         SOMObject* fromObj)
  504. {
  505. /*
  506.  *  A default assignment operator that uses a volatile fromObj.
  507.  */
  508.    return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDefaultVAssign)
  509.     (this,ctrl,fromObj);
  510. }
  511.  
  512.  
  513. /* method: somDefaultConstVAssign */
  514. SOMPObjectSet*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
  515.         SOMObject* fromObj)
  516. {
  517. /*
  518.  *  A default assignment operator that uses a const volatile fromObj.
  519.  */
  520.    return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDefaultConstVAssign)
  521.     (this,ctrl,fromObj);
  522. }
  523.  
  524.  
  525. /* method: somInit */
  526. void   somInit()
  527. {
  528. /*
  529.  *  Obsolete but still supported. Override somDefaultInit instead of somInit.
  530.  */
  531.    SOM_ResolveD(this,SOMPObjectSet,SOMObject,somInit)
  532.     (this);
  533. }
  534.  
  535.  
  536. /* method: somFree */
  537. void   somFree()
  538. {
  539. /*
  540.  *  Use as directed by framework implementations.
  541.  */
  542.    SOM_ResolveD(this,SOMPObjectSet,SOMObject,somFree)
  543.     (this);
  544. }
  545.  
  546.  
  547. /* method: somUninit */
  548. void   somUninit()
  549. {
  550. /*
  551.  *  Obsolete but still supported. Override somDestruct instead of somUninit.
  552.  */
  553.    SOM_ResolveD(this,SOMPObjectSet,SOMObject,somUninit)
  554.     (this);
  555. }
  556.  
  557.  
  558. /* method: somGetClass */
  559. SOMClass*   somGetClass()
  560. {
  561. /*
  562.  *  Return the receiver's class.
  563.  */
  564.    return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somGetClass)
  565.     (this);
  566. }
  567.  
  568.  
  569. /* method: somGetClassName */
  570. string   somGetClassName()
  571. {
  572. /*
  573.  *  Return the name of the receiver's class.
  574.  */
  575.    return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somGetClassName)
  576.     (this);
  577. }
  578.  
  579.  
  580. /* method: somGetSize */
  581. long   somGetSize()
  582. {
  583. /*
  584.  *  Return the size of the receiver.
  585.  */
  586.    return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somGetSize)
  587.     (this);
  588. }
  589.  
  590.  
  591. /* method: somIsA */
  592. boolean   somIsA(SOMClass* aClassObj)
  593. {
  594. /*
  595.  *  Returns 1 (true) if the receiver responds to methods
  596.  *  introduced by <aClassObj>, and 0 (false) otherwise.
  597.  */
  598.    return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somIsA)
  599.     (this,aClassObj);
  600. }
  601.  
  602.  
  603. /* method: somIsInstanceOf */
  604. boolean   somIsInstanceOf(SOMClass* aClassObj)
  605. {
  606. /*
  607.  *  Returns 1 (true) if the receiver is an instance of
  608.  *  <aClassObj> and 0 (false) otherwise.
  609.  */
  610.    return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somIsInstanceOf)
  611.     (this,aClassObj);
  612. }
  613.  
  614.  
  615. /* method: somRespondsTo */
  616. boolean   somRespondsTo(somId mId)
  617. {
  618. /*
  619.  *  Returns 1 (true) if the indicated method can be invoked
  620.  *  on the receiver and 0 (false) otherwise.
  621.  */
  622.    return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somRespondsTo)
  623.     (this,mId);
  624. }
  625.  
  626.  
  627. /* va_list method: somDispatch */
  628.  
  629. /*
  630.  *  This method provides a generic, class-specific dispatch mechanism.
  631.  *  It accepts as input <retValue> a pointer to the memory area to be
  632.  *  loaded with the result of dispatching the method indicated by
  633.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  634.  *  on which the method is to be invoked as the first argument.
  635.  */
  636. /* the va_list invocation form */
  637. boolean   SOMPObjectSet_somDispatch(somToken* retValue, 
  638.         somId methodId, 
  639.         va_list ap)
  640. {return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDispatch)
  641.     (this,retValue,methodId,ap);
  642. }
  643.  
  644. /* the varargs invocation form */
  645. boolean   somDispatch(somToken* retValue, 
  646.         somId methodId, 
  647.         ...)
  648. {
  649. /*
  650.  *  This method provides a generic, class-specific dispatch mechanism.
  651.  *  It accepts as input <retValue> a pointer to the memory area to be
  652.  *  loaded with the result of dispatching the method indicated by
  653.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  654.  *  on which the method is to be invoked as the first argument.
  655.  */
  656.    va_list ap;
  657.    va_start(ap, methodId);
  658.    boolean __somResult = 
  659.       SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDispatch)
  660.     (this,retValue,methodId,ap);
  661.    va_end(ap);
  662.    return __somResult;
  663. }
  664.  
  665.  
  666. /* va_list method: somClassDispatch */
  667.  
  668. /*
  669.  *  Like somDispatch, but method resolution for static methods is done
  670.  *  according to the clsObj instance method table.
  671.  */
  672. /* the va_list invocation form */
  673. boolean   SOMPObjectSet_somClassDispatch(SOMClass* clsObj, 
  674.         somToken* retValue, 
  675.         somId methodId, 
  676.         va_list ap)
  677. {return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somClassDispatch)
  678.     (this,clsObj,retValue,methodId,ap);
  679. }
  680.  
  681. /* the varargs invocation form */
  682. boolean   somClassDispatch(SOMClass* clsObj, 
  683.         somToken* retValue, 
  684.         somId methodId, 
  685.         ...)
  686. {
  687. /*
  688.  *  Like somDispatch, but method resolution for static methods is done
  689.  *  according to the clsObj instance method table.
  690.  */
  691.    va_list ap;
  692.    va_start(ap, methodId);
  693.    boolean __somResult = 
  694.       SOM_ResolveD(this,SOMPObjectSet,SOMObject,somClassDispatch)
  695.     (this,clsObj,retValue,methodId,ap);
  696.    va_end(ap);
  697.    return __somResult;
  698. }
  699.  
  700.  
  701. /* method: somCastObj */
  702. boolean   somCastObj(SOMClass* cls)
  703. {
  704. /*
  705.  *  cast the receiving object to cls (which must be an ancestor of the
  706.  *  objects true class. Returns true on success.
  707.  */
  708.    return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somCastObj)
  709.     (this,cls);
  710. }
  711.  
  712.  
  713. /* method: somResetObj */
  714. boolean   somResetObj()
  715. {
  716. /*
  717.  *  reset an object to its true class. Returns true always.
  718.  */
  719.    return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somResetObj)
  720.     (this);
  721. }
  722.  
  723.  
  724. /* va_list method: somDispatchV */
  725.  
  726. /*
  727.  *  Obsolete. Use somDispatch instead.
  728.  */
  729. /* the va_list invocation form */
  730. void   SOMPObjectSet_somDispatchV(somId methodId, 
  731.         somId descriptor, 
  732.         va_list ap)
  733. {   SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDispatchV)
  734.     (this,methodId,descriptor,ap);
  735. }
  736.  
  737. /* the varargs invocation form */
  738. void   somDispatchV(somId methodId, 
  739.         somId descriptor, 
  740.         ...)
  741. {
  742. /*
  743.  *  Obsolete. Use somDispatch instead.
  744.  */
  745.    va_list ap;
  746.    va_start(ap, descriptor);
  747.    SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDispatchV)
  748.     (this,methodId,descriptor,ap);
  749.    va_end(ap);
  750. }
  751.  
  752.  
  753. /* va_list method: somDispatchL */
  754.  
  755. /*
  756.  *  Obsolete. Use somDispatch instead.
  757.  */
  758. /* the va_list invocation form */
  759. long   SOMPObjectSet_somDispatchL(somId methodId, 
  760.         somId descriptor, 
  761.         va_list ap)
  762. {return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDispatchL)
  763.     (this,methodId,descriptor,ap);
  764. }
  765.  
  766. /* the varargs invocation form */
  767. long   somDispatchL(somId methodId, 
  768.         somId descriptor, 
  769.         ...)
  770. {
  771. /*
  772.  *  Obsolete. Use somDispatch instead.
  773.  */
  774.    va_list ap;
  775.    va_start(ap, descriptor);
  776.    long __somResult = 
  777.       SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDispatchL)
  778.     (this,methodId,descriptor,ap);
  779.    va_end(ap);
  780.    return __somResult;
  781. }
  782.  
  783.  
  784. /* va_list method: somDispatchA */
  785.  
  786. /*
  787.  *  Obsolete. Use somDispatch instead.
  788.  */
  789. /* the va_list invocation form */
  790. void*   SOMPObjectSet_somDispatchA(somId methodId, 
  791.         somId descriptor, 
  792.         va_list ap)
  793. {return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDispatchA)
  794.     (this,methodId,descriptor,ap);
  795. }
  796.  
  797. /* the varargs invocation form */
  798. void*   somDispatchA(somId methodId, 
  799.         somId descriptor, 
  800.         ...)
  801. {
  802. /*
  803.  *  Obsolete. Use somDispatch instead.
  804.  */
  805.    va_list ap;
  806.    va_start(ap, descriptor);
  807.    void* __somResult = 
  808.       SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDispatchA)
  809.     (this,methodId,descriptor,ap);
  810.    va_end(ap);
  811.    return __somResult;
  812. }
  813.  
  814.  
  815. /* va_list method: somDispatchD */
  816.  
  817. /*
  818.  *  Obsolete. Use somDispatch instead.
  819.  */
  820. /* the va_list invocation form */
  821. double   SOMPObjectSet_somDispatchD(somId methodId, 
  822.         somId descriptor, 
  823.         va_list ap)
  824. {return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDispatchD)
  825.     (this,methodId,descriptor,ap);
  826. }
  827.  
  828. /* the varargs invocation form */
  829. double   somDispatchD(somId methodId, 
  830.         somId descriptor, 
  831.         ...)
  832. {
  833. /*
  834.  *  Obsolete. Use somDispatch instead.
  835.  */
  836.    va_list ap;
  837.    va_start(ap, descriptor);
  838.    double __somResult = 
  839.       SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDispatchD)
  840.     (this,methodId,descriptor,ap);
  841.    va_end(ap);
  842.    return __somResult;
  843. }
  844.  
  845.  
  846. /* method: somPrintSelf */
  847. SOMObject*   somPrintSelf()
  848. {
  849. /*
  850.  *  Uses <SOMOutCharRoutine> to write a brief string with identifying
  851.  *  information about this object.  The default implementation just gives
  852.  *  the object's class name and its address in memory.
  853.  *  <self> is returned.
  854.  */
  855.    return SOM_ResolveD(this,SOMPObjectSet,SOMObject,somPrintSelf)
  856.     (this);
  857. }
  858.  
  859.  
  860. /* method: somDumpSelf */
  861. void   somDumpSelf(long level)
  862. {
  863. /*
  864.  *  Uses <SOMOutCharRoutine> to write a detailed description of this object
  865.  *  and its current state.
  866.  * 
  867.  *  <level> indicates the nesting level for describing compound objects
  868.  *  it must be greater than or equal to zero.  All lines in the
  869.  *  description will be preceeded by <2*level> spaces.
  870.  * 
  871.  *  This routine only actually writes the data that concerns the object
  872.  *  as a whole, such as class, and uses <somDumpSelfInt> to describe
  873.  *  the object's current state.  This approach allows readable
  874.  *  descriptions of compound objects to be constructed.
  875.  * 
  876.  *  Generally it is not necessary to override this method, if it is
  877.  *  overriden it generally must be completely replaced.
  878.  */
  879.    SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDumpSelf)
  880.     (this,level);
  881. }
  882.  
  883.  
  884. /* method: somDumpSelfInt */
  885. void   somDumpSelfInt(long level)
  886. {
  887. /*
  888.  *  Uses <SOMOutCharRoutine> to write in the current state of this object.
  889.  *  Generally this method will need to be overridden.  When overriding
  890.  *  it, begin by calling the parent class form of this method and then
  891.  *  write in a description of your class's instance data. This will
  892.  *  result in a description of all the object's instance data going
  893.  *  from its root ancestor class to its specific class.
  894.  */
  895.    SOM_ResolveD(this,SOMPObjectSet,SOMObject,somDumpSelfInt)
  896.     (this,level);
  897. }
  898.  
  899.  
  900.  
  901. };   /* SOMPObjectSet */
  902.  
  903.  
  904.  
  905. #endif       /* SOM_SOMPObjectSet_xh */
  906.