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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: pid.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_SOMPPersistentId_xh
  26. #define SOM_SOMPPersistentId_xh
  27.  
  28. class SOMPPersistentId;
  29.  
  30. /*
  31.  *  This is the class for a persistent ID.
  32.  * 
  33.  *  A persistent ID is a string of the form:
  34.  * 
  35.  *    IOGroupMgrClassname ':' RepositoryName ':' RepositoryOffset
  36.  * 
  37.  *  For the file system, an example of a persistent ID would be:
  38.  * 
  39.  *    "SOMPFSAIOGroupMgr:/u/otp/stuff/animals:0"
  40.  * 
  41.  *  where:
  42.  * 
  43.  *    SOMPFSAIOGroupMgr is the IO Group Mgr Class name
  44.  * 
  45.  *    /u/otp/stuff/animals is the Repository name (i.e. the file name)
  46.  * 
  47.  *    0 is the Repository offset (roughly, record number)
  48.  */
  49.  
  50. #define SOMPPersistentId_MajorVersion 2
  51. #define SOMPPersistentId_MinorVersion 1
  52.  
  53. /* C++ SOM defs */
  54. #include <somcls.xh>
  55. #include <somcm.xh>
  56.  
  57. /* C++ parent defs */
  58. #ifndef SOM_SOMUTStringId_xh
  59. #include <somsid.xh>
  60. #endif
  61.  
  62. #ifndef SOMPPersistentId_API
  63. #define SOMPPersistentId_API
  64. /*
  65.  * -- The Class API
  66.  */
  67.  
  68. /*
  69.  * Start of bindings for IDL types
  70.  */
  71.  
  72. class SOMClass;
  73. class SOMObject;
  74.  
  75. /*
  76.  * End of bindings for IDL types.
  77.  */
  78.  
  79. /* A procedure to create the SOMPPersistentId Class */
  80. SOMEXTERN SOMClass * SOMLINK SOMPPersistentIdNewClass(
  81.         integer4 majorVersion,
  82.         integer4 minorVersion);
  83.  
  84. /* The API to the SOMPPersistentId class object, and the methods it introduces. */
  85. SOMEXTERN struct SOMPPersistentIdClassDataStructure {
  86.     SOMClass *classObject;
  87.     somMToken sompSetIOGroupMgrClassName;
  88.     somMToken sompGetIOGroupMgrClassName;
  89.     somMToken sompGetIOGroupMgrClassNameLen;
  90.     somMToken sompSetIOGroupName;
  91.     somMToken sompGetIOGroupName;
  92.     somMToken sompGetIOGroupNameLen;
  93.     somMToken sompSetGroupOffset;
  94.     somMToken sompGetGroupOffset;
  95.     somMToken sompEqualsIOGroupName;
  96.     somMToken sompBuildIdString;
  97. } SOMDLINK SOMPPersistentIdClassData;
  98. #define _SOMPPersistentId SOMPPersistentIdClassData.classObject
  99.  
  100. /* The API to parentMtabs for SOMPPersistentId, and the instance data it introduces. */
  101. SOMEXTERN struct SOMPPersistentIdCClassDataStructure {
  102.     somMethodTabs parentMtab;
  103.     somDToken              instanceDataToken;
  104. } SOMDLINK SOMPPersistentIdCClassData;
  105.  
  106. /*
  107.  * -- Typedefs for SOMPPersistentId Method Procedures
  108.  */
  109. SOMEXTERN {
  110. typedef void   SOMLINK somTP_SOMPPersistentId_sompSetIOGroupMgrClassName(SOMPPersistentId *somSelf, Environment *ev, 
  111.         string newName);
  112. typedef somTP_SOMPPersistentId_sompSetIOGroupMgrClassName *somTD_SOMPPersistentId_sompSetIOGroupMgrClassName;
  113. typedef string   SOMLINK somTP_SOMPPersistentId_sompGetIOGroupMgrClassName(SOMPPersistentId *somSelf, Environment *ev, 
  114.         string toBuffer);
  115. typedef somTP_SOMPPersistentId_sompGetIOGroupMgrClassName *somTD_SOMPPersistentId_sompGetIOGroupMgrClassName;
  116. typedef short   SOMLINK somTP_SOMPPersistentId_sompGetIOGroupMgrClassNameLen(SOMPPersistentId *somSelf, Environment *ev);
  117. typedef somTP_SOMPPersistentId_sompGetIOGroupMgrClassNameLen *somTD_SOMPPersistentId_sompGetIOGroupMgrClassNameLen;
  118. typedef void   SOMLINK somTP_SOMPPersistentId_sompSetIOGroupName(SOMPPersistentId *somSelf, Environment *ev, 
  119.         string newName);
  120. typedef somTP_SOMPPersistentId_sompSetIOGroupName *somTD_SOMPPersistentId_sompSetIOGroupName;
  121. typedef string   SOMLINK somTP_SOMPPersistentId_sompGetIOGroupName(SOMPPersistentId *somSelf, Environment *ev, 
  122.         string toBuffer);
  123. typedef somTP_SOMPPersistentId_sompGetIOGroupName *somTD_SOMPPersistentId_sompGetIOGroupName;
  124. typedef short   SOMLINK somTP_SOMPPersistentId_sompGetIOGroupNameLen(SOMPPersistentId *somSelf, Environment *ev);
  125. typedef somTP_SOMPPersistentId_sompGetIOGroupNameLen *somTD_SOMPPersistentId_sompGetIOGroupNameLen;
  126. typedef void   SOMLINK somTP_SOMPPersistentId_sompSetGroupOffset(SOMPPersistentId *somSelf, Environment *ev, 
  127.         long offset);
  128. typedef somTP_SOMPPersistentId_sompSetGroupOffset *somTD_SOMPPersistentId_sompSetGroupOffset;
  129. typedef long   SOMLINK somTP_SOMPPersistentId_sompGetGroupOffset(SOMPPersistentId *somSelf, Environment *ev);
  130. typedef somTP_SOMPPersistentId_sompGetGroupOffset *somTD_SOMPPersistentId_sompGetGroupOffset;
  131. typedef boolean   SOMLINK somTP_SOMPPersistentId_sompEqualsIOGroupName(SOMPPersistentId *somSelf, Environment *ev, 
  132.         SOMPPersistentId* id);
  133. typedef somTP_SOMPPersistentId_sompEqualsIOGroupName *somTD_SOMPPersistentId_sompEqualsIOGroupName;
  134.  
  135. /*
  136.  * -- Typedefs for Reintroduced Wrapper Methods
  137.  */
  138. typedef long   SOMLINK somTP_SOMPPersistentId_somutSetIdString(SOMPPersistentId *somSelf, Environment *ev, 
  139.         string IdString);
  140. typedef somTP_SOMPPersistentId_somutSetIdString *somTD_SOMPPersistentId_somutSetIdString;
  141. typedef string   SOMLINK somTP_SOMPPersistentId_somutGetIdString(SOMPPersistentId *somSelf, Environment *ev, 
  142.         string toBuffer);
  143. typedef somTP_SOMPPersistentId_somutGetIdString *somTD_SOMPPersistentId_somutGetIdString;
  144. typedef long   SOMLINK somTP_SOMPPersistentId_somutGetIdStringLen(SOMPPersistentId *somSelf, Environment *ev);
  145. typedef somTP_SOMPPersistentId_somutGetIdStringLen *somTD_SOMPPersistentId_somutGetIdStringLen;
  146. typedef boolean   SOMLINK somTP_SOMPPersistentId_somutEqualsString(SOMPPersistentId *somSelf, Environment *ev, 
  147.         string IdString);
  148. typedef somTP_SOMPPersistentId_somutEqualsString *somTD_SOMPPersistentId_somutEqualsString;
  149. typedef short   SOMLINK somTP_SOMPPersistentId_somutCompareString(SOMPPersistentId *somSelf, Environment *ev, 
  150.         string IdString);
  151. typedef somTP_SOMPPersistentId_somutCompareString *somTD_SOMPPersistentId_somutCompareString;
  152. typedef void   SOMLINK somTP_SOMPPersistentId_somutSetIdId(SOMPPersistentId *somSelf, Environment *ev, 
  153.         SOMUTId* otherId);
  154. typedef somTP_SOMPPersistentId_somutSetIdId *somTD_SOMPPersistentId_somutSetIdId;
  155. typedef boolean   SOMLINK somTP_SOMPPersistentId_somutEqualsId(SOMPPersistentId *somSelf, Environment *ev, 
  156.         SOMUTId* otherId);
  157. typedef somTP_SOMPPersistentId_somutEqualsId *somTD_SOMPPersistentId_somutEqualsId;
  158. typedef short   SOMLINK somTP_SOMPPersistentId_somutCompareId(SOMPPersistentId *somSelf, Environment *ev, 
  159.         SOMUTId* otherId);
  160. typedef somTP_SOMPPersistentId_somutCompareId *somTD_SOMPPersistentId_somutCompareId;
  161. typedef unsigned long   SOMLINK somTP_SOMPPersistentId_somutHashId(SOMPPersistentId *somSelf, Environment *ev);
  162. typedef somTP_SOMPPersistentId_somutHashId *somTD_SOMPPersistentId_somutHashId;
  163. typedef void   SOMLINK somTP_SOMPPersistentId_somDefaultInit(SOMPPersistentId *somSelf, 
  164.         som3InitCtrl* ctrl);
  165. typedef somTP_SOMPPersistentId_somDefaultInit *somTD_SOMPPersistentId_somDefaultInit;
  166. typedef void   SOMLINK somTP_SOMPPersistentId_somDestruct(SOMPPersistentId *somSelf, 
  167.         octet doFree, 
  168.         som3DestructCtrl* ctrl);
  169. typedef somTP_SOMPPersistentId_somDestruct *somTD_SOMPPersistentId_somDestruct;
  170. typedef void   SOMLINK somTP_SOMPPersistentId_somDefaultCopyInit(SOMPPersistentId *somSelf, 
  171.         som3InitCtrl* ctrl, 
  172.         SOMObject* fromObj);
  173. typedef somTP_SOMPPersistentId_somDefaultCopyInit *somTD_SOMPPersistentId_somDefaultCopyInit;
  174. typedef SOMPPersistentId*   SOMLINK somTP_SOMPPersistentId_somDefaultAssign(SOMPPersistentId *somSelf, 
  175.         som3AssignCtrl* ctrl, 
  176.         SOMObject* fromObj);
  177. typedef somTP_SOMPPersistentId_somDefaultAssign *somTD_SOMPPersistentId_somDefaultAssign;
  178. typedef void   SOMLINK somTP_SOMPPersistentId_somDefaultConstCopyInit(SOMPPersistentId *somSelf, 
  179.         som3InitCtrl* ctrl, 
  180.         SOMObject* fromObj);
  181. typedef somTP_SOMPPersistentId_somDefaultConstCopyInit *somTD_SOMPPersistentId_somDefaultConstCopyInit;
  182. typedef void   SOMLINK somTP_SOMPPersistentId_somDefaultVCopyInit(SOMPPersistentId *somSelf, 
  183.         som3InitCtrl* ctrl, 
  184.         SOMObject* fromObj);
  185. typedef somTP_SOMPPersistentId_somDefaultVCopyInit *somTD_SOMPPersistentId_somDefaultVCopyInit;
  186. typedef void   SOMLINK somTP_SOMPPersistentId_somDefaultConstVCopyInit(SOMPPersistentId *somSelf, 
  187.         som3InitCtrl* ctrl, 
  188.         SOMObject* fromObj);
  189. typedef somTP_SOMPPersistentId_somDefaultConstVCopyInit *somTD_SOMPPersistentId_somDefaultConstVCopyInit;
  190. typedef SOMPPersistentId*   SOMLINK somTP_SOMPPersistentId_somDefaultConstAssign(SOMPPersistentId *somSelf, 
  191.         som3AssignCtrl* ctrl, 
  192.         SOMObject* fromObj);
  193. typedef somTP_SOMPPersistentId_somDefaultConstAssign *somTD_SOMPPersistentId_somDefaultConstAssign;
  194. typedef SOMPPersistentId*   SOMLINK somTP_SOMPPersistentId_somDefaultVAssign(SOMPPersistentId *somSelf, 
  195.         som3AssignCtrl* ctrl, 
  196.         SOMObject* fromObj);
  197. typedef somTP_SOMPPersistentId_somDefaultVAssign *somTD_SOMPPersistentId_somDefaultVAssign;
  198. typedef SOMPPersistentId*   SOMLINK somTP_SOMPPersistentId_somDefaultConstVAssign(SOMPPersistentId *somSelf, 
  199.         som3AssignCtrl* ctrl, 
  200.         SOMObject* fromObj);
  201. typedef somTP_SOMPPersistentId_somDefaultConstVAssign *somTD_SOMPPersistentId_somDefaultConstVAssign;
  202. typedef void   SOMLINK somTP_SOMPPersistentId_somInit(SOMPPersistentId *somSelf);
  203. typedef somTP_SOMPPersistentId_somInit *somTD_SOMPPersistentId_somInit;
  204. typedef void   SOMLINK somTP_SOMPPersistentId_somFree(SOMPPersistentId *somSelf);
  205. typedef somTP_SOMPPersistentId_somFree *somTD_SOMPPersistentId_somFree;
  206. typedef void   SOMLINK somTP_SOMPPersistentId_somUninit(SOMPPersistentId *somSelf);
  207. typedef somTP_SOMPPersistentId_somUninit *somTD_SOMPPersistentId_somUninit;
  208. typedef SOMClass*   SOMLINK somTP_SOMPPersistentId_somGetClass(SOMPPersistentId *somSelf);
  209. typedef somTP_SOMPPersistentId_somGetClass *somTD_SOMPPersistentId_somGetClass;
  210. typedef string   SOMLINK somTP_SOMPPersistentId_somGetClassName(SOMPPersistentId *somSelf);
  211. typedef somTP_SOMPPersistentId_somGetClassName *somTD_SOMPPersistentId_somGetClassName;
  212. typedef long   SOMLINK somTP_SOMPPersistentId_somGetSize(SOMPPersistentId *somSelf);
  213. typedef somTP_SOMPPersistentId_somGetSize *somTD_SOMPPersistentId_somGetSize;
  214. typedef boolean   SOMLINK somTP_SOMPPersistentId_somIsA(SOMPPersistentId *somSelf, 
  215.         SOMClass* aClassObj);
  216. typedef somTP_SOMPPersistentId_somIsA *somTD_SOMPPersistentId_somIsA;
  217. typedef boolean   SOMLINK somTP_SOMPPersistentId_somIsInstanceOf(SOMPPersistentId *somSelf, 
  218.         SOMClass* aClassObj);
  219. typedef somTP_SOMPPersistentId_somIsInstanceOf *somTD_SOMPPersistentId_somIsInstanceOf;
  220. typedef boolean   SOMLINK somTP_SOMPPersistentId_somRespondsTo(SOMPPersistentId *somSelf, 
  221.         somId mId);
  222. typedef somTP_SOMPPersistentId_somRespondsTo *somTD_SOMPPersistentId_somRespondsTo;
  223. typedef boolean   SOMLINK somTP_SOMPPersistentId_somDispatch(SOMPPersistentId *somSelf, 
  224.         somToken* retValue, 
  225.         somId methodId, 
  226.         va_list ap);
  227. typedef somTP_SOMPPersistentId_somDispatch *somTD_SOMPPersistentId_somDispatch;
  228. typedef boolean   SOMLINK somTP_SOMPPersistentId_somClassDispatch(SOMPPersistentId *somSelf, 
  229.         SOMClass* clsObj, 
  230.         somToken* retValue, 
  231.         somId methodId, 
  232.         va_list ap);
  233. typedef somTP_SOMPPersistentId_somClassDispatch *somTD_SOMPPersistentId_somClassDispatch;
  234. typedef boolean   SOMLINK somTP_SOMPPersistentId_somCastObj(SOMPPersistentId *somSelf, 
  235.         SOMClass* cls);
  236. typedef somTP_SOMPPersistentId_somCastObj *somTD_SOMPPersistentId_somCastObj;
  237. typedef boolean   SOMLINK somTP_SOMPPersistentId_somResetObj(SOMPPersistentId *somSelf);
  238. typedef somTP_SOMPPersistentId_somResetObj *somTD_SOMPPersistentId_somResetObj;
  239. typedef void   SOMLINK somTP_SOMPPersistentId_somDispatchV(SOMPPersistentId *somSelf, 
  240.         somId methodId, 
  241.         somId descriptor, 
  242.         va_list ap);
  243. typedef somTP_SOMPPersistentId_somDispatchV *somTD_SOMPPersistentId_somDispatchV;
  244. typedef long   SOMLINK somTP_SOMPPersistentId_somDispatchL(SOMPPersistentId *somSelf, 
  245.         somId methodId, 
  246.         somId descriptor, 
  247.         va_list ap);
  248. typedef somTP_SOMPPersistentId_somDispatchL *somTD_SOMPPersistentId_somDispatchL;
  249. typedef void*   SOMLINK somTP_SOMPPersistentId_somDispatchA(SOMPPersistentId *somSelf, 
  250.         somId methodId, 
  251.         somId descriptor, 
  252.         va_list ap);
  253. typedef somTP_SOMPPersistentId_somDispatchA *somTD_SOMPPersistentId_somDispatchA;
  254. typedef double   SOMLINK somTP_SOMPPersistentId_somDispatchD(SOMPPersistentId *somSelf, 
  255.         somId methodId, 
  256.         somId descriptor, 
  257.         va_list ap);
  258. typedef somTP_SOMPPersistentId_somDispatchD *somTD_SOMPPersistentId_somDispatchD;
  259. typedef SOMObject*   SOMLINK somTP_SOMPPersistentId_somPrintSelf(SOMPPersistentId *somSelf);
  260. typedef somTP_SOMPPersistentId_somPrintSelf *somTD_SOMPPersistentId_somPrintSelf;
  261. typedef void   SOMLINK somTP_SOMPPersistentId_somDumpSelf(SOMPPersistentId *somSelf, 
  262.         long level);
  263. typedef somTP_SOMPPersistentId_somDumpSelf *somTD_SOMPPersistentId_somDumpSelf;
  264. typedef void   SOMLINK somTP_SOMPPersistentId_somDumpSelfInt(SOMPPersistentId *somSelf, 
  265.         long level);
  266. typedef somTP_SOMPPersistentId_somDumpSelfInt *somTD_SOMPPersistentId_somDumpSelfInt;
  267. }
  268.  
  269. #endif /* SOMPPersistentId_API */
  270.  
  271.  
  272. /*
  273.  * -- This emitter treats Method Tokens as Thunks by default.
  274.  * -- Use the sc modifier "nothunks" to change this default
  275.  */
  276. #undef somresolve_
  277. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  278.  
  279. /*
  280.  * -- The C++ Wrapper Class for SOMPPersistentId
  281.  */
  282. class SOMPPersistentId : public SOMUTStringId
  283. {
  284. /*
  285.  *  This is the class for a persistent ID.
  286.  * 
  287.  *  A persistent ID is a string of the form:
  288.  * 
  289.  *    IOGroupMgrClassname ':' RepositoryName ':' RepositoryOffset
  290.  * 
  291.  *  For the file system, an example of a persistent ID would be:
  292.  * 
  293.  *    "SOMPFSAIOGroupMgr:/u/otp/stuff/animals:0"
  294.  * 
  295.  *  where:
  296.  * 
  297.  *    SOMPFSAIOGroupMgr is the IO Group Mgr Class name
  298.  * 
  299.  *    /u/otp/stuff/animals is the Repository name (i.e. the file name)
  300.  * 
  301.  *    0 is the Repository offset (roughly, record number)
  302.  */
  303. public:
  304.  
  305. // SOMPPersistentId::new creates the class object if necessary, and then uses somNewNoInit
  306. // to allocate memory and create the object. Initialization is in ctors.
  307. void *operator new(size_t)
  308. {
  309.    if (!_SOMPPersistentId) SOMPPersistentIdNewClass(SOMPPersistentId_MajorVersion,SOMPPersistentId_MinorVersion);
  310.    return (void*)
  311.       SOM_Resolve(_SOMPPersistentId,SOMClass,somNewNoInit)
  312.          ((SOMClass *)((void*)_SOMPPersistentId));
  313. }
  314.  
  315. // SOMPPersistentId::delete uses somDestruct.
  316. void operator delete(void * obj)
  317. {
  318.    if (obj && *(void**)obj) {
  319.       SOM_Resolve(obj,SOMObject,somFree)
  320.          ((SOMObject*)obj);
  321.    }
  322. }
  323.  
  324. SOMPPersistentId& operator=(SOMPPersistentId& fromObj)
  325. {
  326.    this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
  327.    return *this;
  328. }
  329.  
  330. SOMPPersistentId()
  331. {
  332.    if (*(void**)this != 
  333.        ((somParentMtabStructPtr)
  334.         (SOMPPersistentIdCClassData.parentMtab))->mtab)
  335.       return;
  336.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  337. }
  338.  
  339. SOMPPersistentId(SOMPPersistentId* fromObj)
  340. {
  341.    if (*(void**)this != 
  342.        ((somParentMtabStructPtr)
  343.         (SOMPPersistentIdCClassData.parentMtab))->mtab)
  344.       return;
  345.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  346. }
  347.  
  348. #ifdef __IBMCPP__
  349. #pragma info(nocnv,nopar)
  350. #endif
  351. SOMPPersistentId(const SOMPPersistentId* fromObj)
  352. {
  353.    if (*(void**)this != 
  354.        ((somParentMtabStructPtr)
  355.         (SOMPPersistentIdCClassData.parentMtab))->mtab)
  356.       return;
  357.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  358. }
  359. #ifdef __IBMCPP__
  360. #pragma info(restore)
  361. #endif
  362.  
  363.  
  364. /* method: sompSetIOGroupMgrClassName */
  365. void   sompSetIOGroupMgrClassName(Environment *ev, 
  366.         string newName)
  367. {
  368. /*
  369.  *  Sets the IO Group Manager Class portion of the ID.
  370.  */
  371.    SOM_ResolveD(this,SOMPPersistentId,SOMPPersistentId,sompSetIOGroupMgrClassName)
  372.     (this, ev,newName);
  373. }
  374.  
  375.  
  376. /* method: sompGetIOGroupMgrClassName */
  377. string   sompGetIOGroupMgrClassName(Environment *ev, 
  378.         string toBuffer)
  379. {
  380. /*
  381.  *  Gets the IO Group Manager Class portion of the ID.
  382.  */
  383.    return SOM_ResolveD(this,SOMPPersistentId,SOMPPersistentId,sompGetIOGroupMgrClassName)
  384.     (this, ev,toBuffer);
  385. }
  386.  
  387.  
  388. /* method: sompGetIOGroupMgrClassNameLen */
  389. short   sompGetIOGroupMgrClassNameLen(Environment *ev)
  390. {
  391. /*
  392.  *  Gets the length of the IO Group Manager Class portion of the ID.
  393.  */
  394.    return SOM_ResolveD(this,SOMPPersistentId,SOMPPersistentId,sompGetIOGroupMgrClassNameLen)
  395.     (this, ev);
  396. }
  397.  
  398.  
  399. /* method: sompSetIOGroupName */
  400. void   sompSetIOGroupName(Environment *ev, 
  401.         string newName)
  402. {
  403. /*
  404.  *  Sets the path & file portion of the ID.
  405.  */
  406.    SOM_ResolveD(this,SOMPPersistentId,SOMPPersistentId,sompSetIOGroupName)
  407.     (this, ev,newName);
  408. }
  409.  
  410.  
  411. /* method: sompGetIOGroupName */
  412. string   sompGetIOGroupName(Environment *ev, 
  413.         string toBuffer)
  414. {
  415. /*
  416.  *  Gets the path & file portion of the ID.
  417.  */
  418.    return SOM_ResolveD(this,SOMPPersistentId,SOMPPersistentId,sompGetIOGroupName)
  419.     (this, ev,toBuffer);
  420. }
  421.  
  422.  
  423. /* method: sompGetIOGroupNameLen */
  424. short   sompGetIOGroupNameLen(Environment *ev)
  425. {
  426. /*
  427.  *  Gets the length of the path & file portion of the ID.
  428.  */
  429.    return SOM_ResolveD(this,SOMPPersistentId,SOMPPersistentId,sompGetIOGroupNameLen)
  430.     (this, ev);
  431. }
  432.  
  433.  
  434. /* method: sompSetGroupOffset */
  435. void   sompSetGroupOffset(Environment *ev, 
  436.         long offset)
  437. {
  438. /*
  439.  *  Sets the offset portion of the ID.
  440.  */
  441.    SOM_ResolveD(this,SOMPPersistentId,SOMPPersistentId,sompSetGroupOffset)
  442.     (this, ev,offset);
  443. }
  444.  
  445.  
  446. /* method: sompGetGroupOffset */
  447. long   sompGetGroupOffset(Environment *ev)
  448. {
  449. /*
  450.  *  Gets the offset portion of the ID.
  451.  */
  452.    return SOM_ResolveD(this,SOMPPersistentId,SOMPPersistentId,sompGetGroupOffset)
  453.     (this, ev);
  454. }
  455.  
  456.  
  457. /* method: sompEqualsIOGroupName */
  458. boolean   sompEqualsIOGroupName(Environment *ev, 
  459.         SOMPPersistentId* id)
  460. {
  461. /*
  462.  *  Compare this object's file & path name the file & path name
  463.  *  part of the given ID. Return TRUE if they are equivalent.
  464.  */
  465.    return SOM_ResolveD(this,SOMPPersistentId,SOMPPersistentId,sompEqualsIOGroupName)
  466.     (this, ev,id);
  467. }
  468.  
  469.  
  470. /*
  471.  * Reintroduce inherited methods
  472.  */
  473.  
  474. /* method: somutSetIdString */
  475. long   somutSetIdString(Environment *ev, 
  476.         string IdString)
  477. {
  478. /*
  479.  *  Sets the ID to the given string.
  480.  *  Returns nonzero error code if given IdString is not syntactically correct.
  481.  */
  482.    return SOM_ResolveD(this,SOMPPersistentId,SOMUTStringId,somutSetIdString)
  483.     (this, ev,IdString);
  484. }
  485.  
  486.  
  487. /* method: somutGetIdString */
  488. string   somutGetIdString(Environment *ev, 
  489.         string toBuffer)
  490. {
  491. /*
  492.  *  Stores the ID as a string into the given buffer <toBuffer> and
  493.  *  returns the buffer <toBuffer>.
  494.  *  Use somutGetIdStringLen to determine appropriate <toBuffer> size.
  495.  */
  496.    return SOM_ResolveD(this,SOMPPersistentId,SOMUTStringId,somutGetIdString)
  497.     (this, ev,toBuffer);
  498. }
  499.  
  500.  
  501. /* method: somutGetIdStringLen */
  502. long   somutGetIdStringLen(Environment *ev)
  503. {
  504. /*
  505.  *  Returns the length of the ID string.
  506.  */
  507.    return SOM_ResolveD(this,SOMPPersistentId,SOMUTStringId,somutGetIdStringLen)
  508.     (this, ev);
  509. }
  510.  
  511.  
  512. /* method: somutEqualsString */
  513. boolean   somutEqualsString(Environment *ev, 
  514.         string IdString)
  515. {
  516. /*
  517.  *  Checks to see if this object's ID is equivalent to the given string.
  518.  *  Returns TRUE if the ID is equivalent to the string, FALSE otherwise.
  519.  */
  520.    return SOM_ResolveD(this,SOMPPersistentId,SOMUTStringId,somutEqualsString)
  521.     (this, ev,IdString);
  522. }
  523.  
  524.  
  525. /* method: somutCompareString */
  526. short   somutCompareString(Environment *ev, 
  527.         string IdString)
  528. {
  529. /*
  530.  *  Performs an ordered comparison with the given string.
  531.  *  If this ID < IdString -1 is returned.
  532.  *  If this ID = IdString  0 is returned.
  533.  *  If this ID > IdString  1 is returned.
  534.  */
  535.    return SOM_ResolveD(this,SOMPPersistentId,SOMUTStringId,somutCompareString)
  536.     (this, ev,IdString);
  537. }
  538.  
  539.  
  540. /* method: somutSetIdId */
  541. void   somutSetIdId(Environment *ev, 
  542.         SOMUTId* otherId)
  543. {
  544.    SOM_ResolveD(this,SOMPPersistentId,SOMUTId,somutSetIdId)
  545.     (this, ev,otherId);
  546. }
  547.  
  548.  
  549. /* method: somutEqualsId */
  550. boolean   somutEqualsId(Environment *ev, 
  551.         SOMUTId* otherId)
  552. {
  553.    return SOM_ResolveD(this,SOMPPersistentId,SOMUTId,somutEqualsId)
  554.     (this, ev,otherId);
  555. }
  556.  
  557.  
  558. /* method: somutCompareId */
  559. short   somutCompareId(Environment *ev, 
  560.         SOMUTId* otherId)
  561. {
  562.    return SOM_ResolveD(this,SOMPPersistentId,SOMUTId,somutCompareId)
  563.     (this, ev,otherId);
  564. }
  565.  
  566.  
  567. /* method: somutHashId */
  568. unsigned long   somutHashId(Environment *ev)
  569. {
  570.    return SOM_ResolveD(this,SOMPPersistentId,SOMUTId,somutHashId)
  571.     (this, ev);
  572. }
  573.  
  574.  
  575. /* initializer method: somDefaultInit */
  576. void   somDefaultInit(som3InitCtrl* ctrl)
  577. {
  578. /*
  579.  *  A default initializer for a SOM object. Passing a null ctrl
  580.  *  indicates to the receiver that its class is the class of the
  581.  *  object being initialized, whereby the initializer will determine
  582.  *  an appropriate control structure.
  583.  */
  584.    SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDefaultInit)
  585.     (this,ctrl);
  586. }
  587.  
  588.  
  589. /* method: somDestruct */
  590. void   somDestruct(octet doFree, 
  591.         som3DestructCtrl* ctrl)
  592. {
  593. /*
  594.  *  The default destructor for a SOM object. A nonzero <doFree>
  595.  *  indicates that the object storage should be freed by the
  596.  *  object's class (via somDeallocate) after uninitialization.
  597.  *  As with somDefaultInit, a null ctrl can be passed.
  598.  */
  599.    SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDestruct)
  600.     (this,doFree,ctrl);
  601. }
  602.  
  603.  
  604. /* initializer method: somDefaultCopyInit */
  605. void   somDefaultCopyInit(som3InitCtrl* ctrl, 
  606.         SOMObject* fromObj)
  607. {
  608. /*
  609.  *  A default copy constructor. Use this to make copies of objects for
  610.  *  calling methods with "by-value" argument semantics.
  611.  */
  612.    SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDefaultCopyInit)
  613.     (this,ctrl,fromObj);
  614. }
  615.  
  616.  
  617. /* method: somDefaultAssign */
  618. SOMPPersistentId*  somDefaultAssign(som3AssignCtrl* ctrl, 
  619.         SOMObject* fromObj)
  620. {
  621. /*
  622.  *  A default assignment operator. Use this to "assign" the state of one
  623.  *  object to another.
  624.  */
  625.    return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDefaultAssign)
  626.     (this,ctrl,fromObj);
  627. }
  628.  
  629.  
  630. /* initializer method: somDefaultConstCopyInit */
  631. void   somDefaultConstCopyInit(som3InitCtrl* ctrl, 
  632.         SOMObject* fromObj)
  633. {
  634. /*
  635.  *  A default copy constructor that uses a const fromObj.
  636.  */
  637.    SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDefaultConstCopyInit)
  638.     (this,ctrl,fromObj);
  639. }
  640.  
  641.  
  642. /* initializer method: somDefaultVCopyInit */
  643. void   somDefaultVCopyInit(som3InitCtrl* ctrl, 
  644.         SOMObject* fromObj)
  645. {
  646. /*
  647.  *  A default copy constructor that uses a volatile fromObj.
  648.  */
  649.    SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDefaultVCopyInit)
  650.     (this,ctrl,fromObj);
  651. }
  652.  
  653.  
  654. /* initializer method: somDefaultConstVCopyInit */
  655. void   somDefaultConstVCopyInit(som3InitCtrl* ctrl, 
  656.         SOMObject* fromObj)
  657. {
  658. /*
  659.  *  A default copy constructor that uses a const volatile fromObj.
  660.  */
  661.    SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDefaultConstVCopyInit)
  662.     (this,ctrl,fromObj);
  663. }
  664.  
  665.  
  666. /* method: somDefaultConstAssign */
  667. SOMPPersistentId*  somDefaultConstAssign(som3AssignCtrl* ctrl, 
  668.         SOMObject* fromObj)
  669. {
  670. /*
  671.  *  A default assignment operator that uses a const fromObj.
  672.  */
  673.    return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDefaultConstAssign)
  674.     (this,ctrl,fromObj);
  675. }
  676.  
  677.  
  678. /* method: somDefaultVAssign */
  679. SOMPPersistentId*  somDefaultVAssign(som3AssignCtrl* ctrl, 
  680.         SOMObject* fromObj)
  681. {
  682. /*
  683.  *  A default assignment operator that uses a volatile fromObj.
  684.  */
  685.    return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDefaultVAssign)
  686.     (this,ctrl,fromObj);
  687. }
  688.  
  689.  
  690. /* method: somDefaultConstVAssign */
  691. SOMPPersistentId*  somDefaultConstVAssign(som3AssignCtrl* ctrl, 
  692.         SOMObject* fromObj)
  693. {
  694. /*
  695.  *  A default assignment operator that uses a const volatile fromObj.
  696.  */
  697.    return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDefaultConstVAssign)
  698.     (this,ctrl,fromObj);
  699. }
  700.  
  701.  
  702. /* method: somInit */
  703. void   somInit()
  704. {
  705. /*
  706.  *  Obsolete but still supported. Override somDefaultInit instead of somInit.
  707.  */
  708.    SOM_ResolveD(this,SOMPPersistentId,SOMObject,somInit)
  709.     (this);
  710. }
  711.  
  712.  
  713. /* method: somFree */
  714. void   somFree()
  715. {
  716. /*
  717.  *  Use as directed by framework implementations.
  718.  */
  719.    SOM_ResolveD(this,SOMPPersistentId,SOMObject,somFree)
  720.     (this);
  721. }
  722.  
  723.  
  724. /* method: somUninit */
  725. void   somUninit()
  726. {
  727. /*
  728.  *  Obsolete but still supported. Override somDestruct instead of somUninit.
  729.  */
  730.    SOM_ResolveD(this,SOMPPersistentId,SOMObject,somUninit)
  731.     (this);
  732. }
  733.  
  734.  
  735. /* method: somGetClass */
  736. SOMClass*   somGetClass()
  737. {
  738. /*
  739.  *  Return the receiver's class.
  740.  */
  741.    return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somGetClass)
  742.     (this);
  743. }
  744.  
  745.  
  746. /* method: somGetClassName */
  747. string   somGetClassName()
  748. {
  749. /*
  750.  *  Return the name of the receiver's class.
  751.  */
  752.    return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somGetClassName)
  753.     (this);
  754. }
  755.  
  756.  
  757. /* method: somGetSize */
  758. long   somGetSize()
  759. {
  760. /*
  761.  *  Return the size of the receiver.
  762.  */
  763.    return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somGetSize)
  764.     (this);
  765. }
  766.  
  767.  
  768. /* method: somIsA */
  769. boolean   somIsA(SOMClass* aClassObj)
  770. {
  771. /*
  772.  *  Returns 1 (true) if the receiver responds to methods
  773.  *  introduced by <aClassObj>, and 0 (false) otherwise.
  774.  */
  775.    return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somIsA)
  776.     (this,aClassObj);
  777. }
  778.  
  779.  
  780. /* method: somIsInstanceOf */
  781. boolean   somIsInstanceOf(SOMClass* aClassObj)
  782. {
  783. /*
  784.  *  Returns 1 (true) if the receiver is an instance of
  785.  *  <aClassObj> and 0 (false) otherwise.
  786.  */
  787.    return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somIsInstanceOf)
  788.     (this,aClassObj);
  789. }
  790.  
  791.  
  792. /* method: somRespondsTo */
  793. boolean   somRespondsTo(somId mId)
  794. {
  795. /*
  796.  *  Returns 1 (true) if the indicated method can be invoked
  797.  *  on the receiver and 0 (false) otherwise.
  798.  */
  799.    return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somRespondsTo)
  800.     (this,mId);
  801. }
  802.  
  803.  
  804. /* va_list method: somDispatch */
  805.  
  806. /*
  807.  *  This method provides a generic, class-specific dispatch mechanism.
  808.  *  It accepts as input <retValue> a pointer to the memory area to be
  809.  *  loaded with the result of dispatching the method indicated by
  810.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  811.  *  on which the method is to be invoked as the first argument.
  812.  */
  813. /* the va_list invocation form */
  814. boolean   SOMPPersistentId_somDispatch(somToken* retValue, 
  815.         somId methodId, 
  816.         va_list ap)
  817. {return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDispatch)
  818.     (this,retValue,methodId,ap);
  819. }
  820.  
  821. /* the varargs invocation form */
  822. boolean   somDispatch(somToken* retValue, 
  823.         somId methodId, 
  824.         ...)
  825. {
  826. /*
  827.  *  This method provides a generic, class-specific dispatch mechanism.
  828.  *  It accepts as input <retValue> a pointer to the memory area to be
  829.  *  loaded with the result of dispatching the method indicated by
  830.  *  <methodId> using the arguments in <ap>. <ap> contains the object
  831.  *  on which the method is to be invoked as the first argument.
  832.  */
  833.    va_list ap;
  834.    va_start(ap, methodId);
  835.    boolean __somResult = 
  836.       SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDispatch)
  837.     (this,retValue,methodId,ap);
  838.    va_end(ap);
  839.    return __somResult;
  840. }
  841.  
  842.  
  843. /* va_list method: somClassDispatch */
  844.  
  845. /*
  846.  *  Like somDispatch, but method resolution for static methods is done
  847.  *  according to the clsObj instance method table.
  848.  */
  849. /* the va_list invocation form */
  850. boolean   SOMPPersistentId_somClassDispatch(SOMClass* clsObj, 
  851.         somToken* retValue, 
  852.         somId methodId, 
  853.         va_list ap)
  854. {return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somClassDispatch)
  855.     (this,clsObj,retValue,methodId,ap);
  856. }
  857.  
  858. /* the varargs invocation form */
  859. boolean   somClassDispatch(SOMClass* clsObj, 
  860.         somToken* retValue, 
  861.         somId methodId, 
  862.         ...)
  863. {
  864. /*
  865.  *  Like somDispatch, but method resolution for static methods is done
  866.  *  according to the clsObj instance method table.
  867.  */
  868.    va_list ap;
  869.    va_start(ap, methodId);
  870.    boolean __somResult = 
  871.       SOM_ResolveD(this,SOMPPersistentId,SOMObject,somClassDispatch)
  872.     (this,clsObj,retValue,methodId,ap);
  873.    va_end(ap);
  874.    return __somResult;
  875. }
  876.  
  877.  
  878. /* method: somCastObj */
  879. boolean   somCastObj(SOMClass* cls)
  880. {
  881. /*
  882.  *  cast the receiving object to cls (which must be an ancestor of the
  883.  *  objects true class. Returns true on success.
  884.  */
  885.    return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somCastObj)
  886.     (this,cls);
  887. }
  888.  
  889.  
  890. /* method: somResetObj */
  891. boolean   somResetObj()
  892. {
  893. /*
  894.  *  reset an object to its true class. Returns true always.
  895.  */
  896.    return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somResetObj)
  897.     (this);
  898. }
  899.  
  900.  
  901. /* va_list method: somDispatchV */
  902.  
  903. /*
  904.  *  Obsolete. Use somDispatch instead.
  905.  */
  906. /* the va_list invocation form */
  907. void   SOMPPersistentId_somDispatchV(somId methodId, 
  908.         somId descriptor, 
  909.         va_list ap)
  910. {   SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDispatchV)
  911.     (this,methodId,descriptor,ap);
  912. }
  913.  
  914. /* the varargs invocation form */
  915. void   somDispatchV(somId methodId, 
  916.         somId descriptor, 
  917.         ...)
  918. {
  919. /*
  920.  *  Obsolete. Use somDispatch instead.
  921.  */
  922.    va_list ap;
  923.    va_start(ap, descriptor);
  924.    SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDispatchV)
  925.     (this,methodId,descriptor,ap);
  926.    va_end(ap);
  927. }
  928.  
  929.  
  930. /* va_list method: somDispatchL */
  931.  
  932. /*
  933.  *  Obsolete. Use somDispatch instead.
  934.  */
  935. /* the va_list invocation form */
  936. long   SOMPPersistentId_somDispatchL(somId methodId, 
  937.         somId descriptor, 
  938.         va_list ap)
  939. {return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDispatchL)
  940.     (this,methodId,descriptor,ap);
  941. }
  942.  
  943. /* the varargs invocation form */
  944. long   somDispatchL(somId methodId, 
  945.         somId descriptor, 
  946.         ...)
  947. {
  948. /*
  949.  *  Obsolete. Use somDispatch instead.
  950.  */
  951.    va_list ap;
  952.    va_start(ap, descriptor);
  953.    long __somResult = 
  954.       SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDispatchL)
  955.     (this,methodId,descriptor,ap);
  956.    va_end(ap);
  957.    return __somResult;
  958. }
  959.  
  960.  
  961. /* va_list method: somDispatchA */
  962.  
  963. /*
  964.  *  Obsolete. Use somDispatch instead.
  965.  */
  966. /* the va_list invocation form */
  967. void*   SOMPPersistentId_somDispatchA(somId methodId, 
  968.         somId descriptor, 
  969.         va_list ap)
  970. {return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDispatchA)
  971.     (this,methodId,descriptor,ap);
  972. }
  973.  
  974. /* the varargs invocation form */
  975. void*   somDispatchA(somId methodId, 
  976.         somId descriptor, 
  977.         ...)
  978. {
  979. /*
  980.  *  Obsolete. Use somDispatch instead.
  981.  */
  982.    va_list ap;
  983.    va_start(ap, descriptor);
  984.    void* __somResult = 
  985.       SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDispatchA)
  986.     (this,methodId,descriptor,ap);
  987.    va_end(ap);
  988.    return __somResult;
  989. }
  990.  
  991.  
  992. /* va_list method: somDispatchD */
  993.  
  994. /*
  995.  *  Obsolete. Use somDispatch instead.
  996.  */
  997. /* the va_list invocation form */
  998. double   SOMPPersistentId_somDispatchD(somId methodId, 
  999.         somId descriptor, 
  1000.         va_list ap)
  1001. {return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDispatchD)
  1002.     (this,methodId,descriptor,ap);
  1003. }
  1004.  
  1005. /* the varargs invocation form */
  1006. double   somDispatchD(somId methodId, 
  1007.         somId descriptor, 
  1008.         ...)
  1009. {
  1010. /*
  1011.  *  Obsolete. Use somDispatch instead.
  1012.  */
  1013.    va_list ap;
  1014.    va_start(ap, descriptor);
  1015.    double __somResult = 
  1016.       SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDispatchD)
  1017.     (this,methodId,descriptor,ap);
  1018.    va_end(ap);
  1019.    return __somResult;
  1020. }
  1021.  
  1022.  
  1023. /* method: somPrintSelf */
  1024. SOMObject*   somPrintSelf()
  1025. {
  1026. /*
  1027.  *  Uses <SOMOutCharRoutine> to write a brief string with identifying
  1028.  *  information about this object.  The default implementation just gives
  1029.  *  the object's class name and its address in memory.
  1030.  *  <self> is returned.
  1031.  */
  1032.    return SOM_ResolveD(this,SOMPPersistentId,SOMObject,somPrintSelf)
  1033.     (this);
  1034. }
  1035.  
  1036.  
  1037. /* method: somDumpSelf */
  1038. void   somDumpSelf(long level)
  1039. {
  1040. /*
  1041.  *  Uses <SOMOutCharRoutine> to write a detailed description of this object
  1042.  *  and its current state.
  1043.  * 
  1044.  *  <level> indicates the nesting level for describing compound objects
  1045.  *  it must be greater than or equal to zero.  All lines in the
  1046.  *  description will be preceeded by <2*level> spaces.
  1047.  * 
  1048.  *  This routine only actually writes the data that concerns the object
  1049.  *  as a whole, such as class, and uses <somDumpSelfInt> to describe
  1050.  *  the object's current state.  This approach allows readable
  1051.  *  descriptions of compound objects to be constructed.
  1052.  * 
  1053.  *  Generally it is not necessary to override this method, if it is
  1054.  *  overriden it generally must be completely replaced.
  1055.  */
  1056.    SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDumpSelf)
  1057.     (this,level);
  1058. }
  1059.  
  1060.  
  1061. /* method: somDumpSelfInt */
  1062. void   somDumpSelfInt(long level)
  1063. {
  1064. /*
  1065.  *  Uses <SOMOutCharRoutine> to write in the current state of this object.
  1066.  *  Generally this method will need to be overridden.  When overriding
  1067.  *  it, begin by calling the parent class form of this method and then
  1068.  *  write in a description of your class's instance data. This will
  1069.  *  result in a description of all the object's instance data going
  1070.  *  from its root ancestor class to its specific class.
  1071.  */
  1072.    SOM_ResolveD(this,SOMPPersistentId,SOMObject,somDumpSelfInt)
  1073.     (this,level);
  1074. }
  1075.  
  1076.  
  1077.  
  1078. };   /* SOMPPersistentId */
  1079.  
  1080.  
  1081.  
  1082. #endif       /* SOM_SOMPPersistentId_xh */
  1083.