home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / som / include / po.h < prev    next >
C/C++ Source or Header  |  1999-02-22  |  46KB  |  1,045 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: po.h.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emith: 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_SOMPPersistentObject_h
  26. #define SOM_SOMPPersistentObject_h
  27.  
  28.  
  29. #include <som.h>
  30.  
  31. /*
  32.  * -- This emitter treats Method Tokens as Thunks by default.
  33.  * -- Use the sc modifier "nothunks" to change this default
  34.  */
  35. #undef somresolve_
  36. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  37.  
  38. /*
  39.  * Define the class name as an object type
  40.  */
  41. #ifndef SOMPPersistentObject
  42. #define SOMPPersistentObject SOMObject
  43. #endif
  44. /*
  45.  *                    PERSISTENT OBJECT METACLASS
  46.  * 
  47.  */
  48. #include <somobj.h>
  49.  
  50. /*
  51.  * Start of bindings for IDL types
  52.  */
  53.  
  54. #ifndef SOMClass
  55.     #define SOMClass SOMObject
  56. #endif /* SOMClass */
  57. #ifndef SOMPIdAssigner
  58.     #define SOMPIdAssigner SOMObject
  59. #endif /* SOMPIdAssigner */
  60. #ifndef SOMPEncoderDecoderAbstract
  61.     #define SOMPEncoderDecoderAbstract SOMObject
  62. #endif /* SOMPEncoderDecoderAbstract */
  63. #ifndef SOMPIOGroup
  64.     #define SOMPIOGroup SOMObject
  65. #endif /* SOMPIOGroup */
  66. #ifndef SOMPPersistentId
  67.     #define SOMPPersistentId SOMObject
  68. #endif /* SOMPPersistentId */
  69. #ifndef M_SOMPPersistentObject
  70.     #define M_SOMPPersistentObject SOMObject
  71. #endif /* M_SOMPPersistentObject */
  72. #define SOMPPersistentObject_SOMP_STATE_UNDEFINED 32768 /* 0x8000 */
  73. #define SOMPPersistentObject_SOMP_STATE_UNSTABLE 16384 /* 0x4000 */
  74. #define SOMPPersistentObject_SOMP_STATE_STABLE 4096 /* 0x1000 */
  75. #define SOMPPersistentObject_SOMP_STATE_DIRTY 2048 /* 0x0800 */
  76. #define SOMPPersistentObject_SOMP_STATE_COMPACT 1024 /* 0x0400 */
  77.  
  78. #ifndef SOM_DONT_USE_SHORT_NAMES
  79. #ifndef SOMTGD_SOMP_STATE_UNDEFINED
  80.     #ifdef SOMP_STATE_UNDEFINED
  81.         #undef SOMP_STATE_UNDEFINED
  82.         #define SOMTGD_SOMP_STATE_UNDEFINED 1
  83.     #else
  84.         #define SOMP_STATE_UNDEFINED SOMPPersistentObject_SOMP_STATE_UNDEFINED
  85.     #endif /* SOMP_STATE_UNDEFINED */
  86. #endif /* SOMTGD_SOMP_STATE_UNDEFINED */
  87. #ifndef SOMTGD_SOMP_STATE_UNSTABLE
  88.     #ifdef SOMP_STATE_UNSTABLE
  89.         #undef SOMP_STATE_UNSTABLE
  90.         #define SOMTGD_SOMP_STATE_UNSTABLE 1
  91.     #else
  92.         #define SOMP_STATE_UNSTABLE SOMPPersistentObject_SOMP_STATE_UNSTABLE
  93.     #endif /* SOMP_STATE_UNSTABLE */
  94. #endif /* SOMTGD_SOMP_STATE_UNSTABLE */
  95. #ifndef SOMTGD_SOMP_STATE_STABLE
  96.     #ifdef SOMP_STATE_STABLE
  97.         #undef SOMP_STATE_STABLE
  98.         #define SOMTGD_SOMP_STATE_STABLE 1
  99.     #else
  100.         #define SOMP_STATE_STABLE SOMPPersistentObject_SOMP_STATE_STABLE
  101.     #endif /* SOMP_STATE_STABLE */
  102. #endif /* SOMTGD_SOMP_STATE_STABLE */
  103. #ifndef SOMTGD_SOMP_STATE_DIRTY
  104.     #ifdef SOMP_STATE_DIRTY
  105.         #undef SOMP_STATE_DIRTY
  106.         #define SOMTGD_SOMP_STATE_DIRTY 1
  107.     #else
  108.         #define SOMP_STATE_DIRTY SOMPPersistentObject_SOMP_STATE_DIRTY
  109.     #endif /* SOMP_STATE_DIRTY */
  110. #endif /* SOMTGD_SOMP_STATE_DIRTY */
  111. #ifndef SOMTGD_SOMP_STATE_COMPACT
  112.     #ifdef SOMP_STATE_COMPACT
  113.         #undef SOMP_STATE_COMPACT
  114.         #define SOMTGD_SOMP_STATE_COMPACT 1
  115.     #else
  116.         #define SOMP_STATE_COMPACT SOMPPersistentObject_SOMP_STATE_COMPACT
  117.     #endif /* SOMP_STATE_COMPACT */
  118. #endif /* SOMTGD_SOMP_STATE_COMPACT */
  119. #endif /* SOM_DONT_USE_SHORT_NAMES */
  120.  
  121. /*
  122.  * End of bindings for IDL types.
  123.  */
  124.  
  125. #define SOMPPersistentObject_MajorVersion 2
  126. #define SOMPPersistentObject_MinorVersion 1
  127.  
  128. /*
  129.  * External name shortening if required
  130.  */
  131. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  132. #define SOMPPersistentObjectNewClass c
  133. #pragma linkage(c, system)
  134. #define SOMPPersistentObjectClassData d
  135. #define SOMPPersistentObjectCClassData x
  136. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  137. /*--------------Migration------------*/
  138. #define SOMPPersistentObject_classObj SOMPPersistentObjectClassData.classObject
  139. #define _SOMPPersistentObject SOMPPersistentObject_classObj
  140.  
  141. /*
  142.  * Declare the class creation procedure
  143.  */
  144. SOMEXTERN SOMClass * SOMLINK SOMPPersistentObjectNewClass(integer4 somtmajorVersion,
  145.         integer4 somtminorVersion);
  146. #pragma linkage(SOMPPersistentObjectNewClass, system)
  147.  
  148. /*
  149.  * Declare the class data structure
  150.  */
  151. SOMEXTERN struct SOMPPersistentObjectClassDataStructure {
  152.     SOMClass *classObject;
  153.     somMToken sompInitNextAvail;
  154.     somMToken sompInitNearObject;
  155.     somMToken sompInitGivenId;
  156.     somMToken sompGetPersistentId;
  157.     somMToken sompGetPersistentIdString;
  158.     somMToken sompSetEncoderDecoderName;
  159.     somMToken sompGetEncoderDecoderName;
  160.     somMToken sompRegisterPersistentPointer;
  161.     somMToken sompUnRegisterPersistentPointer;
  162.     somMToken sompPersistentPointerCount;
  163.     somMToken sompGetNthPersistentPointer;
  164.     somMToken sompEquals;
  165.     somMToken sompPassivate;
  166.     somMToken sompActivated;
  167.     somMToken sompGetRelativeIdString;
  168.     somMToken sompUnInitIOGroup;
  169.     somMToken sompSetDirty;
  170.     somMToken sompMarkForCompaction;
  171.     somMToken sompSetState;
  172.     somMToken sompCheckState;
  173.     somMToken sompClearState;
  174.     somMToken sompInitIOGroup;
  175.     somMToken sompGetEncoderDecoder;
  176.     somMToken sompFreeEncoderDecoder;
  177.     somMToken sompGetIOGroup;
  178.     somMToken sompSetIOGroup;
  179.     somMToken sompGetStoredLength;
  180.     somMToken sompSetStoredLength;
  181.     somMToken sompGetMIOffset;
  182.     somMToken sompSetMIOffset;
  183.     somMToken sompIsDirty;
  184.     somMToken sompGetDirty;
  185. } SOMDLINK SOMPPersistentObjectClassData;
  186.  
  187. /*
  188.  * Declare the C specific class data structure
  189.  */
  190. SOMEXTERN struct SOMPPersistentObjectCClassDataStructure {
  191.     somMethodTabs parentMtab;
  192.     somDToken instanceDataToken;
  193. } SOMDLINK SOMPPersistentObjectCClassData;
  194.  
  195. /*
  196.  * New and Renew macros for SOMPPersistentObject
  197.  */
  198. #define SOMPPersistentObjectNew() \
  199.    ( _SOMPPersistentObject ? \
  200.     _somNew(_SOMPPersistentObject) \
  201.     : ( SOMPPersistentObjectNewClass(\
  202.         SOMPPersistentObject_MajorVersion, \
  203.         SOMPPersistentObject_MinorVersion),\
  204.        _somNew(_SOMPPersistentObject)))
  205. #define SOMPPersistentObjectRenew(buf) \
  206.    ( _SOMPPersistentObject ? \
  207.     _somRenew(_SOMPPersistentObject, buf) \
  208.     : ( SOMPPersistentObjectNewClass(\
  209.         SOMPPersistentObject_MajorVersion, \
  210.         SOMPPersistentObject_MinorVersion),\
  211.        _somRenew(_SOMPPersistentObject, buf)))
  212.  
  213. /*
  214.  * Override method: somDumpSelfInt
  215.  */
  216. #define SOMPPersistentObject_somDumpSelfInt(somSelf,level) \
  217.     SOMObject_somDumpSelfInt(somSelf,level)
  218.  
  219. /*
  220.  * Override method: somInit
  221.  */
  222. #define SOMPPersistentObject_somInit(somSelf) \
  223.     SOMObject_somInit(somSelf)
  224.  
  225. /*
  226.  * Override method: somUninit
  227.  */
  228. #define SOMPPersistentObject_somUninit(somSelf) \
  229.     SOMObject_somUninit(somSelf)
  230.  
  231. /*
  232.  * New Method: sompInitNextAvail
  233.  */
  234. typedef void   SOMLINK somTP_SOMPPersistentObject_sompInitNextAvail(SOMPPersistentObject *somSelf, Environment *ev, 
  235.         SOMPIdAssigner* thisAssigner);
  236. #pragma linkage(somTP_SOMPPersistentObject_sompInitNextAvail, system)
  237. typedef somTP_SOMPPersistentObject_sompInitNextAvail *somTD_SOMPPersistentObject_sompInitNextAvail;
  238. #define somMD_SOMPPersistentObject_sompInitNextAvail "::SOMPPersistentObject::sompInitNextAvail"
  239. #define SOMPPersistentObject_sompInitNextAvail(somSelf,ev,thisAssigner) \
  240.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompInitNextAvail) \
  241.     (somSelf,ev,thisAssigner))
  242. #ifndef SOMGD_sompInitNextAvail
  243.     #if (defined(_sompInitNextAvail) || defined(__sompInitNextAvail))
  244.         #undef _sompInitNextAvail
  245.         #undef __sompInitNextAvail
  246.         #define SOMGD_sompInitNextAvail 1
  247.     #else
  248.         #define _sompInitNextAvail SOMPPersistentObject_sompInitNextAvail
  249.     #endif /* _sompInitNextAvail */
  250. #endif /* SOMGD_sompInitNextAvail */
  251.  
  252. /*
  253.  * New Method: sompInitNearObject
  254.  */
  255. typedef void   SOMLINK somTP_SOMPPersistentObject_sompInitNearObject(SOMPPersistentObject *somSelf, Environment *ev, 
  256.         SOMPPersistentObject* nearObject);
  257. #pragma linkage(somTP_SOMPPersistentObject_sompInitNearObject, system)
  258. typedef somTP_SOMPPersistentObject_sompInitNearObject *somTD_SOMPPersistentObject_sompInitNearObject;
  259. #define somMD_SOMPPersistentObject_sompInitNearObject "::SOMPPersistentObject::sompInitNearObject"
  260. #define SOMPPersistentObject_sompInitNearObject(somSelf,ev,nearObject) \
  261.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompInitNearObject) \
  262.     (somSelf,ev,nearObject))
  263. #ifndef SOMGD_sompInitNearObject
  264.     #if (defined(_sompInitNearObject) || defined(__sompInitNearObject))
  265.         #undef _sompInitNearObject
  266.         #undef __sompInitNearObject
  267.         #define SOMGD_sompInitNearObject 1
  268.     #else
  269.         #define _sompInitNearObject SOMPPersistentObject_sompInitNearObject
  270.     #endif /* _sompInitNearObject */
  271. #endif /* SOMGD_sompInitNearObject */
  272.  
  273. /*
  274.  * New Method: sompInitGivenId
  275.  */
  276. typedef void   SOMLINK somTP_SOMPPersistentObject_sompInitGivenId(SOMPPersistentObject *somSelf, Environment *ev, 
  277.         SOMPPersistentId* thisId);
  278. #pragma linkage(somTP_SOMPPersistentObject_sompInitGivenId, system)
  279. typedef somTP_SOMPPersistentObject_sompInitGivenId *somTD_SOMPPersistentObject_sompInitGivenId;
  280. #define somMD_SOMPPersistentObject_sompInitGivenId "::SOMPPersistentObject::sompInitGivenId"
  281. #define SOMPPersistentObject_sompInitGivenId(somSelf,ev,thisId) \
  282.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompInitGivenId) \
  283.     (somSelf,ev,thisId))
  284. #ifndef SOMGD_sompInitGivenId
  285.     #if (defined(_sompInitGivenId) || defined(__sompInitGivenId))
  286.         #undef _sompInitGivenId
  287.         #undef __sompInitGivenId
  288.         #define SOMGD_sompInitGivenId 1
  289.     #else
  290.         #define _sompInitGivenId SOMPPersistentObject_sompInitGivenId
  291.     #endif /* _sompInitGivenId */
  292. #endif /* SOMGD_sompInitGivenId */
  293.  
  294. /*
  295.  * New Method: sompGetPersistentId
  296.  */
  297. typedef SOMPPersistentId*   SOMLINK somTP_SOMPPersistentObject_sompGetPersistentId(SOMPPersistentObject *somSelf, Environment *ev);
  298. #pragma linkage(somTP_SOMPPersistentObject_sompGetPersistentId, system)
  299. typedef somTP_SOMPPersistentObject_sompGetPersistentId *somTD_SOMPPersistentObject_sompGetPersistentId;
  300. #define somMD_SOMPPersistentObject_sompGetPersistentId "::SOMPPersistentObject::sompGetPersistentId"
  301. #define SOMPPersistentObject_sompGetPersistentId(somSelf,ev) \
  302.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompGetPersistentId) \
  303.     (somSelf,ev))
  304. #ifndef SOMGD_sompGetPersistentId
  305.     #if (defined(_sompGetPersistentId) || defined(__sompGetPersistentId))
  306.         #undef _sompGetPersistentId
  307.         #undef __sompGetPersistentId
  308.         #define SOMGD_sompGetPersistentId 1
  309.     #else
  310.         #define _sompGetPersistentId SOMPPersistentObject_sompGetPersistentId
  311.     #endif /* _sompGetPersistentId */
  312. #endif /* SOMGD_sompGetPersistentId */
  313.  
  314. /*
  315.  * New Method: sompGetPersistentIdString
  316.  */
  317. typedef string   SOMLINK somTP_SOMPPersistentObject_sompGetPersistentIdString(SOMPPersistentObject *somSelf, Environment *ev, 
  318.         string outBuff);
  319. #pragma linkage(somTP_SOMPPersistentObject_sompGetPersistentIdString, system)
  320. typedef somTP_SOMPPersistentObject_sompGetPersistentIdString *somTD_SOMPPersistentObject_sompGetPersistentIdString;
  321. /*
  322.  *  Get persistent ID. Returns string representation of persistent ID.
  323.  *  Puts the fully-qualified persistent object ID in the caller-supplied
  324.  *  buffer.  (The caller must allocate the memory for the buffer, and
  325.  *  is also responsible for freeing it when appropriate.)
  326.  */
  327. #define somMD_SOMPPersistentObject_sompGetPersistentIdString "::SOMPPersistentObject::sompGetPersistentIdString"
  328. #define SOMPPersistentObject_sompGetPersistentIdString(somSelf,ev,outBuff) \
  329.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompGetPersistentIdString) \
  330.     (somSelf,ev,outBuff))
  331. #ifndef SOMGD_sompGetPersistentIdString
  332.     #if (defined(_sompGetPersistentIdString) || defined(__sompGetPersistentIdString))
  333.         #undef _sompGetPersistentIdString
  334.         #undef __sompGetPersistentIdString
  335.         #define SOMGD_sompGetPersistentIdString 1
  336.     #else
  337.         #define _sompGetPersistentIdString SOMPPersistentObject_sompGetPersistentIdString
  338.     #endif /* _sompGetPersistentIdString */
  339. #endif /* SOMGD_sompGetPersistentIdString */
  340.  
  341. /*
  342.  * New Method: sompSetEncoderDecoderName
  343.  */
  344. typedef void   SOMLINK somTP_SOMPPersistentObject_sompSetEncoderDecoderName(SOMPPersistentObject *somSelf, Environment *ev, 
  345.         string myName);
  346. #pragma linkage(somTP_SOMPPersistentObject_sompSetEncoderDecoderName, system)
  347. typedef somTP_SOMPPersistentObject_sompSetEncoderDecoderName *somTD_SOMPPersistentObject_sompSetEncoderDecoderName;
  348. /*
  349.  *  Set the class name of the EncoderDecoder.
  350.  *  If this method is not called, the encoder/decoder class name is the
  351.  *  one returned by the class object.
  352.  */
  353. #define somMD_SOMPPersistentObject_sompSetEncoderDecoderName "::SOMPPersistentObject::sompSetEncoderDecoderName"
  354. #define SOMPPersistentObject_sompSetEncoderDecoderName(somSelf,ev,myName) \
  355.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompSetEncoderDecoderName) \
  356.     (somSelf,ev,myName))
  357. #ifndef SOMGD_sompSetEncoderDecoderName
  358.     #if (defined(_sompSetEncoderDecoderName) || defined(__sompSetEncoderDecoderName))
  359.         #undef _sompSetEncoderDecoderName
  360.         #undef __sompSetEncoderDecoderName
  361.         #define SOMGD_sompSetEncoderDecoderName 1
  362.     #else
  363.         #define _sompSetEncoderDecoderName SOMPPersistentObject_sompSetEncoderDecoderName
  364.     #endif /* _sompSetEncoderDecoderName */
  365. #endif /* SOMGD_sompSetEncoderDecoderName */
  366.  
  367. /*
  368.  * New Method: sompGetEncoderDecoderName
  369.  */
  370. typedef string   SOMLINK somTP_SOMPPersistentObject_sompGetEncoderDecoderName(SOMPPersistentObject *somSelf, Environment *ev);
  371. #pragma linkage(somTP_SOMPPersistentObject_sompGetEncoderDecoderName, system)
  372. typedef somTP_SOMPPersistentObject_sompGetEncoderDecoderName *somTD_SOMPPersistentObject_sompGetEncoderDecoderName;
  373. /*
  374.  *  Get the class name of the EncoderDecoder
  375.  */
  376. #define somMD_SOMPPersistentObject_sompGetEncoderDecoderName "::SOMPPersistentObject::sompGetEncoderDecoderName"
  377. #define SOMPPersistentObject_sompGetEncoderDecoderName(somSelf,ev) \
  378.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompGetEncoderDecoderName) \
  379.     (somSelf,ev))
  380. #ifndef SOMGD_sompGetEncoderDecoderName
  381.     #if (defined(_sompGetEncoderDecoderName) || defined(__sompGetEncoderDecoderName))
  382.         #undef _sompGetEncoderDecoderName
  383.         #undef __sompGetEncoderDecoderName
  384.         #define SOMGD_sompGetEncoderDecoderName 1
  385.     #else
  386.         #define _sompGetEncoderDecoderName SOMPPersistentObject_sompGetEncoderDecoderName
  387.     #endif /* _sompGetEncoderDecoderName */
  388. #endif /* SOMGD_sompGetEncoderDecoderName */
  389.  
  390. /*
  391.  * New Method: sompEquals
  392.  */
  393. typedef boolean   SOMLINK somTP_SOMPPersistentObject_sompEquals(SOMPPersistentObject *somSelf, Environment *ev, 
  394.         SOMPPersistentId* otherId);
  395. #pragma linkage(somTP_SOMPPersistentObject_sompEquals, system)
  396. typedef somTP_SOMPPersistentObject_sompEquals *somTD_SOMPPersistentObject_sompEquals;
  397. /*
  398.  *  Checks to see if this object's ID is equivalent to the given ID.
  399.  *  Returns TRUE if the ID's are equivalent, FALSE otherwise.
  400.  */
  401. #define somMD_SOMPPersistentObject_sompEquals "::SOMPPersistentObject::sompEquals"
  402. #define SOMPPersistentObject_sompEquals(somSelf,ev,otherId) \
  403.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompEquals) \
  404.     (somSelf,ev,otherId))
  405. #ifndef SOMGD_sompEquals
  406.     #if (defined(_sompEquals) || defined(__sompEquals))
  407.         #undef _sompEquals
  408.         #undef __sompEquals
  409.         #define SOMGD_sompEquals 1
  410.     #else
  411.         #define _sompEquals SOMPPersistentObject_sompEquals
  412.     #endif /* _sompEquals */
  413. #endif /* SOMGD_sompEquals */
  414.  
  415. /*
  416.  * New Method: sompPassivate
  417.  */
  418. typedef void   SOMLINK somTP_SOMPPersistentObject_sompPassivate(SOMPPersistentObject *somSelf, Environment *ev);
  419. #pragma linkage(somTP_SOMPPersistentObject_sompPassivate, system)
  420. typedef somTP_SOMPPersistentObject_sompPassivate *somTD_SOMPPersistentObject_sompPassivate;
  421. /*
  422.  *  This method is called by the persistence framework just prior
  423.  *  to saving a persistent object.  It provides a means for a
  424.  *  client to tidy up any data necessary in the persistent object
  425.  *  (or its embedded objects) before the save operation is
  426.  *  completed.  This method does nothing if not overridden by the
  427.  *  client.
  428.  */
  429. #define somMD_SOMPPersistentObject_sompPassivate "::SOMPPersistentObject::sompPassivate"
  430. #define SOMPPersistentObject_sompPassivate(somSelf,ev) \
  431.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompPassivate) \
  432.     (somSelf,ev))
  433. #ifndef SOMGD_sompPassivate
  434.     #if (defined(_sompPassivate) || defined(__sompPassivate))
  435.         #undef _sompPassivate
  436.         #undef __sompPassivate
  437.         #define SOMGD_sompPassivate 1
  438.     #else
  439.         #define _sompPassivate SOMPPersistentObject_sompPassivate
  440.     #endif /* _sompPassivate */
  441. #endif /* SOMGD_sompPassivate */
  442.  
  443. /*
  444.  * New Method: sompActivated
  445.  */
  446. typedef void   SOMLINK somTP_SOMPPersistentObject_sompActivated(SOMPPersistentObject *somSelf, Environment *ev);
  447. #pragma linkage(somTP_SOMPPersistentObject_sompActivated, system)
  448. typedef somTP_SOMPPersistentObject_sompActivated *somTD_SOMPPersistentObject_sompActivated;
  449. /*
  450.  *  This method is called by the persistence framework after a
  451.  *  persistent object is restored.  It provides a means for a client
  452.  *  to perform any initializations prior to the use of the persistent
  453.  *  object. That is, make the object useable. If not overridden, this
  454.  *  method sets the state of the object to POSTATE_STABLE.
  455.  */
  456. #define somMD_SOMPPersistentObject_sompActivated "::SOMPPersistentObject::sompActivated"
  457. #define SOMPPersistentObject_sompActivated(somSelf,ev) \
  458.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompActivated) \
  459.     (somSelf,ev))
  460. #ifndef SOMGD_sompActivated
  461.     #if (defined(_sompActivated) || defined(__sompActivated))
  462.         #undef _sompActivated
  463.         #undef __sompActivated
  464.         #define SOMGD_sompActivated 1
  465.     #else
  466.         #define _sompActivated SOMPPersistentObject_sompActivated
  467.     #endif /* _sompActivated */
  468. #endif /* SOMGD_sompActivated */
  469.  
  470. /*
  471.  * New Method: sompGetRelativeIdString
  472.  */
  473. typedef string   SOMLINK somTP_SOMPPersistentObject_sompGetRelativeIdString(SOMPPersistentObject *somSelf, Environment *ev, 
  474.         SOMObject* ifNearThisObject, 
  475.         string relativeIdString);
  476. #pragma linkage(somTP_SOMPPersistentObject_sompGetRelativeIdString, system)
  477. typedef somTP_SOMPPersistentObject_sompGetRelativeIdString *somTD_SOMPPersistentObject_sompGetRelativeIdString;
  478. /*
  479.  *  if the persistent object is in the same IOGroup as <ifNearThisObject>,
  480.  *  places an Id string of the form:
  481.  * 
  482.  *             <IOGroupMgrClassName>:$RELATIVE:<offset>
  483.  * 
  484.  *  in relativeIdString, else places a fully-qualified Id of the form:
  485.  * 
  486.  *             <IOGroupMgrClassName>:<path/filename>:<offset>
  487.  * 
  488.  *  in relativeIdString.  Returns pointer to relativeIdString through the
  489.  *  operation name.  Note: the caller must allocate relativeIdString prior
  490.  *  to invoking the operation.
  491.  */
  492. #define somMD_SOMPPersistentObject_sompGetRelativeIdString "::SOMPPersistentObject::sompGetRelativeIdString"
  493. #define SOMPPersistentObject_sompGetRelativeIdString(somSelf,ev,ifNearThisObject,relativeIdString) \
  494.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompGetRelativeIdString) \
  495.     (somSelf,ev,ifNearThisObject,relativeIdString))
  496. #ifndef SOMGD_sompGetRelativeIdString
  497.     #if (defined(_sompGetRelativeIdString) || defined(__sompGetRelativeIdString))
  498.         #undef _sompGetRelativeIdString
  499.         #undef __sompGetRelativeIdString
  500.         #define SOMGD_sompGetRelativeIdString 1
  501.     #else
  502.         #define _sompGetRelativeIdString SOMPPersistentObject_sompGetRelativeIdString
  503.     #endif /* _sompGetRelativeIdString */
  504. #endif /* SOMGD_sompGetRelativeIdString */
  505.  
  506. /*
  507.  * New Method: sompInitIOGroup
  508.  */
  509. typedef SOMPIOGroup*   SOMLINK somTP_SOMPPersistentObject_sompInitIOGroup(SOMPPersistentObject *somSelf, Environment *ev, 
  510.         SOMObject* nearPersistentObj);
  511. #pragma linkage(somTP_SOMPPersistentObject_sompInitIOGroup, system)
  512. typedef somTP_SOMPPersistentObject_sompInitIOGroup *somTD_SOMPPersistentObject_sompInitIOGroup;
  513. /*
  514.  *  Initialize the IO group for this object. (Used at InitPersistentID time)
  515.  *  Each persistent object is a member of an I/O Group. An I/O Group
  516.  *  can consist of one or more persistent objects.
  517.  * 
  518.  *  The I/O Group in which this persistent object is a member is
  519.  *  determined by the "nearPersistentObj" argument.
  520.  *  If given nearPersistentObj is NULL, a new IOGroup may be instantiated.
  521.  *  Otherwise, nearPersistentObj is expected to be a persistent object with
  522.  *  an existing IOGroup. This object is made a member of the
  523.  *  nearPersistentObj I/O Group.
  524.  * 
  525.  *  An I/O Group offset is assigned by this method. This offset may
  526.  *  be returned via sompGetPersistentOffset on the ID of this object.
  527.  */
  528. #define somMD_SOMPPersistentObject_sompInitIOGroup "::SOMPPersistentObject::sompInitIOGroup"
  529. #define SOMPPersistentObject_sompInitIOGroup(somSelf,ev,nearPersistentObj) \
  530.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompInitIOGroup) \
  531.     (somSelf,ev,nearPersistentObj))
  532. #ifndef SOMGD_sompInitIOGroup
  533.     #if (defined(_sompInitIOGroup) || defined(__sompInitIOGroup))
  534.         #undef _sompInitIOGroup
  535.         #undef __sompInitIOGroup
  536.         #define SOMGD_sompInitIOGroup 1
  537.     #else
  538.         #define _sompInitIOGroup SOMPPersistentObject_sompInitIOGroup
  539.     #endif /* _sompInitIOGroup */
  540. #endif /* SOMGD_sompInitIOGroup */
  541.  
  542. /*
  543.  * New Method: sompSetDirty
  544.  */
  545. typedef void   SOMLINK somTP_SOMPPersistentObject_sompSetDirty(SOMPPersistentObject *somSelf, Environment *ev);
  546. #pragma linkage(somTP_SOMPPersistentObject_sompSetDirty, system)
  547. typedef somTP_SOMPPersistentObject_sompSetDirty *somTD_SOMPPersistentObject_sompSetDirty;
  548. /*
  549.  *  Sets the state of an object to dirty.  Front method for SetState.
  550.  */
  551. #define somMD_SOMPPersistentObject_sompSetDirty "::SOMPPersistentObject::sompSetDirty"
  552. #define SOMPPersistentObject_sompSetDirty(somSelf,ev) \
  553.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompSetDirty) \
  554.     (somSelf,ev))
  555. #ifndef SOMGD_sompSetDirty
  556.     #if (defined(_sompSetDirty) || defined(__sompSetDirty))
  557.         #undef _sompSetDirty
  558.         #undef __sompSetDirty
  559.         #define SOMGD_sompSetDirty 1
  560.     #else
  561.         #define _sompSetDirty SOMPPersistentObject_sompSetDirty
  562.     #endif /* _sompSetDirty */
  563. #endif /* SOMGD_sompSetDirty */
  564.  
  565. /*
  566.  * New Method: sompIsDirty
  567.  */
  568. typedef boolean   SOMLINK somTP_SOMPPersistentObject_sompIsDirty(SOMPPersistentObject *somSelf, Environment *ev);
  569. #pragma linkage(somTP_SOMPPersistentObject_sompIsDirty, system)
  570. typedef somTP_SOMPPersistentObject_sompIsDirty *somTD_SOMPPersistentObject_sompIsDirty;
  571. /*
  572.  *  This is used for optimization.  The default always returns TRUE.  Optimized
  573.  *  persistent objects can override this to return sompGetDirty(), and then
  574.  *  be sure to invoke sompSetDirty() whenever the object is updated.
  575.  */
  576. #define somMD_SOMPPersistentObject_sompIsDirty "::SOMPPersistentObject::sompIsDirty"
  577. #define SOMPPersistentObject_sompIsDirty(somSelf,ev) \
  578.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompIsDirty) \
  579.     (somSelf,ev))
  580. #ifndef SOMGD_sompIsDirty
  581.     #if (defined(_sompIsDirty) || defined(__sompIsDirty))
  582.         #undef _sompIsDirty
  583.         #undef __sompIsDirty
  584.         #define SOMGD_sompIsDirty 1
  585.     #else
  586.         #define _sompIsDirty SOMPPersistentObject_sompIsDirty
  587.     #endif /* _sompIsDirty */
  588. #endif /* SOMGD_sompIsDirty */
  589.  
  590. /*
  591.  * New Method: sompGetDirty
  592.  */
  593. typedef boolean   SOMLINK somTP_SOMPPersistentObject_sompGetDirty(SOMPPersistentObject *somSelf, Environment *ev);
  594. #pragma linkage(somTP_SOMPPersistentObject_sompGetDirty, system)
  595. typedef somTP_SOMPPersistentObject_sompGetDirty *somTD_SOMPPersistentObject_sompGetDirty;
  596. /*
  597.  *  This returns TRUE if the dirty bit is set, FALSE otherwise.
  598.  */
  599. #define somMD_SOMPPersistentObject_sompGetDirty "::SOMPPersistentObject::sompGetDirty"
  600. #define SOMPPersistentObject_sompGetDirty(somSelf,ev) \
  601.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompGetDirty) \
  602.     (somSelf,ev))
  603. #ifndef SOMGD_sompGetDirty
  604.     #if (defined(_sompGetDirty) || defined(__sompGetDirty))
  605.         #undef _sompGetDirty
  606.         #undef __sompGetDirty
  607.         #define SOMGD_sompGetDirty 1
  608.     #else
  609.         #define _sompGetDirty SOMPPersistentObject_sompGetDirty
  610.     #endif /* _sompGetDirty */
  611. #endif /* SOMGD_sompGetDirty */
  612.  
  613. /*
  614.  * New Method: sompMarkForCompaction
  615.  */
  616. typedef void   SOMLINK somTP_SOMPPersistentObject_sompMarkForCompaction(SOMPPersistentObject *somSelf, Environment *ev);
  617. #pragma linkage(somTP_SOMPPersistentObject_sompMarkForCompaction, system)
  618. typedef somTP_SOMPPersistentObject_sompMarkForCompaction *somTD_SOMPPersistentObject_sompMarkForCompaction;
  619. /*
  620.  *  Note to the Persistence Framework that the next time this object is
  621.  *  saved, the entire IO Group should be compacted, if possible.
  622.  */
  623. #define somMD_SOMPPersistentObject_sompMarkForCompaction "::SOMPPersistentObject::sompMarkForCompaction"
  624. #define SOMPPersistentObject_sompMarkForCompaction(somSelf,ev) \
  625.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompMarkForCompaction) \
  626.     (somSelf,ev))
  627. #ifndef SOMGD_sompMarkForCompaction
  628.     #if (defined(_sompMarkForCompaction) || defined(__sompMarkForCompaction))
  629.         #undef _sompMarkForCompaction
  630.         #undef __sompMarkForCompaction
  631.         #define SOMGD_sompMarkForCompaction 1
  632.     #else
  633.         #define _sompMarkForCompaction SOMPPersistentObject_sompMarkForCompaction
  634.     #endif /* _sompMarkForCompaction */
  635. #endif /* SOMGD_sompMarkForCompaction */
  636.  
  637. /*
  638.  * New Method: sompSetState
  639.  */
  640. typedef void   SOMLINK somTP_SOMPPersistentObject_sompSetState(SOMPPersistentObject *somSelf, Environment *ev, 
  641.         unsigned short state);
  642. #pragma linkage(somTP_SOMPPersistentObject_sompSetState, system)
  643. typedef somTP_SOMPPersistentObject_sompSetState *somTD_SOMPPersistentObject_sompSetState;
  644. /*
  645.  *  Sets specified state.
  646.  *  See po.csc for a description of the possible states.
  647.  */
  648. #define somMD_SOMPPersistentObject_sompSetState "::SOMPPersistentObject::sompSetState"
  649. #define SOMPPersistentObject_sompSetState(somSelf,ev,state) \
  650.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompSetState) \
  651.     (somSelf,ev,state))
  652. #ifndef SOMGD_sompSetState
  653.     #if (defined(_sompSetState) || defined(__sompSetState))
  654.         #undef _sompSetState
  655.         #undef __sompSetState
  656.         #define SOMGD_sompSetState 1
  657.     #else
  658.         #define _sompSetState SOMPPersistentObject_sompSetState
  659.     #endif /* _sompSetState */
  660. #endif /* SOMGD_sompSetState */
  661.  
  662. /*
  663.  * New Method: sompCheckState
  664.  */
  665. typedef boolean   SOMLINK somTP_SOMPPersistentObject_sompCheckState(SOMPPersistentObject *somSelf, Environment *ev, 
  666.         unsigned short state);
  667. #pragma linkage(somTP_SOMPPersistentObject_sompCheckState, system)
  668. typedef somTP_SOMPPersistentObject_sompCheckState *somTD_SOMPPersistentObject_sompCheckState;
  669. /*
  670.  *  Returns TRUE if given state is true for this object.
  671.  *  See po.csc for a description of the possible states.
  672.  */
  673. #define somMD_SOMPPersistentObject_sompCheckState "::SOMPPersistentObject::sompCheckState"
  674. #define SOMPPersistentObject_sompCheckState(somSelf,ev,state) \
  675.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompCheckState) \
  676.     (somSelf,ev,state))
  677. #ifndef SOMGD_sompCheckState
  678.     #if (defined(_sompCheckState) || defined(__sompCheckState))
  679.         #undef _sompCheckState
  680.         #undef __sompCheckState
  681.         #define SOMGD_sompCheckState 1
  682.     #else
  683.         #define _sompCheckState SOMPPersistentObject_sompCheckState
  684.     #endif /* _sompCheckState */
  685. #endif /* SOMGD_sompCheckState */
  686.  
  687. /*
  688.  * New Method: sompClearState
  689.  */
  690. typedef void   SOMLINK somTP_SOMPPersistentObject_sompClearState(SOMPPersistentObject *somSelf, Environment *ev, 
  691.         unsigned short state);
  692. #pragma linkage(somTP_SOMPPersistentObject_sompClearState, system)
  693. typedef somTP_SOMPPersistentObject_sompClearState *somTD_SOMPPersistentObject_sompClearState;
  694. /*
  695.  *  Clears specified state.
  696.  */
  697. #define somMD_SOMPPersistentObject_sompClearState "::SOMPPersistentObject::sompClearState"
  698. #define SOMPPersistentObject_sompClearState(somSelf,ev,state) \
  699.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompClearState) \
  700.     (somSelf,ev,state))
  701. #ifndef SOMGD_sompClearState
  702.     #if (defined(_sompClearState) || defined(__sompClearState))
  703.         #undef _sompClearState
  704.         #undef __sompClearState
  705.         #define SOMGD_sompClearState 1
  706.     #else
  707.         #define _sompClearState SOMPPersistentObject_sompClearState
  708.     #endif /* _sompClearState */
  709. #endif /* SOMGD_sompClearState */
  710.  
  711. /*
  712.  * New Method: sompGetEncoderDecoder
  713.  */
  714. typedef SOMPEncoderDecoderAbstract*   SOMLINK somTP_SOMPPersistentObject_sompGetEncoderDecoder(SOMPPersistentObject *somSelf, Environment *ev);
  715. #pragma linkage(somTP_SOMPPersistentObject_sompGetEncoderDecoder, system)
  716. typedef somTP_SOMPPersistentObject_sompGetEncoderDecoder *somTD_SOMPPersistentObject_sompGetEncoderDecoder;
  717. /*
  718.  *  If an Encoder/Decoder has not already been instantiated, one
  719.  *  is instantiated. A pointer to the encoder/decoder is
  720.  *  returned. NULL is returned if this object's encoder/decoder
  721.  *  cannot be instantiated.  This method should only be used by the IO Group
  722.  *  Mgr class.
  723.  */
  724. #define somMD_SOMPPersistentObject_sompGetEncoderDecoder "::SOMPPersistentObject::sompGetEncoderDecoder"
  725. #define SOMPPersistentObject_sompGetEncoderDecoder(somSelf,ev) \
  726.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompGetEncoderDecoder) \
  727.     (somSelf,ev))
  728. #ifndef SOMGD_sompGetEncoderDecoder
  729.     #if (defined(_sompGetEncoderDecoder) || defined(__sompGetEncoderDecoder))
  730.         #undef _sompGetEncoderDecoder
  731.         #undef __sompGetEncoderDecoder
  732.         #define SOMGD_sompGetEncoderDecoder 1
  733.     #else
  734.         #define _sompGetEncoderDecoder SOMPPersistentObject_sompGetEncoderDecoder
  735.     #endif /* _sompGetEncoderDecoder */
  736. #endif /* SOMGD_sompGetEncoderDecoder */
  737.  
  738. /*
  739.  * New Method: sompFreeEncoderDecoder
  740.  */
  741. typedef void   SOMLINK somTP_SOMPPersistentObject_sompFreeEncoderDecoder(SOMPPersistentObject *somSelf, Environment *ev);
  742. #pragma linkage(somTP_SOMPPersistentObject_sompFreeEncoderDecoder, system)
  743. typedef somTP_SOMPPersistentObject_sompFreeEncoderDecoder *somTD_SOMPPersistentObject_sompFreeEncoderDecoder;
  744. /*
  745.  *  Free this object's encoder/decoder. This method should only be used
  746.  *  by the IO Group Manager class.
  747.  */
  748. #define somMD_SOMPPersistentObject_sompFreeEncoderDecoder "::SOMPPersistentObject::sompFreeEncoderDecoder"
  749. #define SOMPPersistentObject_sompFreeEncoderDecoder(somSelf,ev) \
  750.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompFreeEncoderDecoder) \
  751.     (somSelf,ev))
  752. #ifndef SOMGD_sompFreeEncoderDecoder
  753.     #if (defined(_sompFreeEncoderDecoder) || defined(__sompFreeEncoderDecoder))
  754.         #undef _sompFreeEncoderDecoder
  755.         #undef __sompFreeEncoderDecoder
  756.         #define SOMGD_sompFreeEncoderDecoder 1
  757.     #else
  758.         #define _sompFreeEncoderDecoder SOMPPersistentObject_sompFreeEncoderDecoder
  759.     #endif /* _sompFreeEncoderDecoder */
  760. #endif /* SOMGD_sompFreeEncoderDecoder */
  761.  
  762. /*
  763.  * New Method: sompGetIOGroup
  764.  */
  765. typedef SOMPIOGroup*   SOMLINK somTP_SOMPPersistentObject_sompGetIOGroup(SOMPPersistentObject *somSelf, Environment *ev);
  766. #pragma linkage(somTP_SOMPPersistentObject_sompGetIOGroup, system)
  767. typedef somTP_SOMPPersistentObject_sompGetIOGroup *somTD_SOMPPersistentObject_sompGetIOGroup;
  768. /*
  769.  *  Get a pointer to the IOGroup collection object for this object.
  770.  *  Within the returned collection are this object and any objects
  771.  *  initialized near it (with sompInitNearObject). This method is intended
  772.  *  to be use by IO Group Mgr implementors.
  773.  */
  774. #define somMD_SOMPPersistentObject_sompGetIOGroup "::SOMPPersistentObject::sompGetIOGroup"
  775. #define SOMPPersistentObject_sompGetIOGroup(somSelf,ev) \
  776.     (SOM_Resolve(somSelf, SOMPPersistentObject, sompGetIOGroup) \
  777.     (somSelf,ev))
  778. #ifndef SOMGD_sompGetIOGroup
  779.     #if (defined(_sompGetIOGroup) || defined(__sompGetIOGroup))
  780.         #undef _sompGetIOGroup
  781.         #undef __sompGetIOGroup
  782.         #define SOMGD_sompGetIOGroup 1
  783.     #else
  784.         #define _sompGetIOGroup SOMPPersistentObject_sompGetIOGroup
  785.     #endif /* _sompGetIOGroup */
  786. #endif /* SOMGD_sompGetIOGroup */
  787. #ifndef SOM_DONT_USE_INHERITED_MACROS
  788. #define SOMPPersistentObject_somDefaultInit SOMObject_somDefaultInit
  789. #define SOMPPersistentObject_somDestruct SOMObject_somDestruct
  790. #define SOMPPersistentObject_somDefaultCopyInit SOMObject_somDefaultCopyInit
  791. #define SOMPPersistentObject_somDefaultAssign SOMObject_somDefaultAssign
  792. #define SOMPPersistentObject_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  793. #define SOMPPersistentObject_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  794. #define SOMPPersistentObject_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  795. #define SOMPPersistentObject_somDefaultConstAssign SOMObject_somDefaultConstAssign
  796. #define SOMPPersistentObject_somDefaultVAssign SOMObject_somDefaultVAssign
  797. #define SOMPPersistentObject_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  798. #define SOMPPersistentObject_somFree SOMObject_somFree
  799. #define SOMPPersistentObject_somGetClass SOMObject_somGetClass
  800. #define SOMPPersistentObject_somGetClassName SOMObject_somGetClassName
  801. #define SOMPPersistentObject_somGetSize SOMObject_somGetSize
  802. #define SOMPPersistentObject_somIsA SOMObject_somIsA
  803. #define SOMPPersistentObject_somIsInstanceOf SOMObject_somIsInstanceOf
  804. #define SOMPPersistentObject_somRespondsTo SOMObject_somRespondsTo
  805. #define SOMPPersistentObject_somDispatch SOMObject_somDispatch
  806. #define SOMPPersistentObject_somClassDispatch SOMObject_somClassDispatch
  807. #define SOMPPersistentObject_somCastObj SOMObject_somCastObj
  808. #define SOMPPersistentObject_somResetObj SOMObject_somResetObj
  809. #define SOMPPersistentObject_somDispatchV SOMObject_somDispatchV
  810. #define SOMPPersistentObject_somDispatchL SOMObject_somDispatchL
  811. #define SOMPPersistentObject_somDispatchA SOMObject_somDispatchA
  812. #define SOMPPersistentObject_somDispatchD SOMObject_somDispatchD
  813. #define SOMPPersistentObject_somPrintSelf SOMObject_somPrintSelf
  814. #define SOMPPersistentObject_somDumpSelf SOMObject_somDumpSelf
  815. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  816.  
  817. #endif       /* SOM_SOMPPersistentObject_h */
  818.  
  819. #ifndef SOM_M_SOMPPersistentObject_h
  820. #define SOM_M_SOMPPersistentObject_h
  821.  
  822.  
  823. #include <som.h>
  824.  
  825. /*
  826.  * -- This emitter treats Method Tokens as Thunks by default.
  827.  * -- Use the sc modifier "nothunks" to change this default
  828.  */
  829. #undef somresolve_
  830. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  831.  
  832. /*
  833.  * Define the class name as an object type
  834.  */
  835. #ifndef M_SOMPPersistentObject
  836. #define M_SOMPPersistentObject SOMObject
  837. #endif
  838. #include <somcls.h>
  839.  
  840. /*
  841.  * Start of bindings for IDL types
  842.  */
  843.  
  844.  
  845. /*
  846.  * End of bindings for IDL types.
  847.  */
  848.  
  849. #define M_SOMPPersistentObject_MajorVersion 2
  850. #define M_SOMPPersistentObject_MinorVersion 1
  851.  
  852. /*
  853.  * External name shortening if required
  854.  */
  855. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  856. #define M_SOMPPersistentObjectNewClass c
  857. #pragma linkage(c, system)
  858. #define M_SOMPPersistentObjectClassData d
  859. #define M_SOMPPersistentObjectCClassData x
  860. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  861. /*--------------Migration------------*/
  862. #define M_SOMPPersistentObject_classObj M_SOMPPersistentObjectClassData.classObject
  863. #define _M_SOMPPersistentObject M_SOMPPersistentObject_classObj
  864.  
  865. /*
  866.  * Declare the class creation procedure
  867.  */
  868. SOMEXTERN SOMClass * SOMLINK M_SOMPPersistentObjectNewClass(integer4 somtmajorVersion,
  869.         integer4 somtminorVersion);
  870. #pragma linkage(M_SOMPPersistentObjectNewClass, system)
  871.  
  872. /*
  873.  * Declare the class data structure
  874.  */
  875. SOMEXTERN struct M_SOMPPersistentObjectClassDataStructure {
  876.     SOMClass *classObject;
  877.     somMToken sompRegisterEDPair;
  878.     somMToken sompGetTotalEDPairs;
  879.     somMToken sompGetNthEDPair;
  880.     somMToken sompGetNthEDPairObj;
  881.     somMToken sompSetClassLevelEncoderDecoderName;
  882.     somMToken sompGetClassLevelEncoderDecoderName;
  883. } SOMDLINK M_SOMPPersistentObjectClassData;
  884.  
  885. /*
  886.  * Declare the C specific class data structure
  887.  */
  888. SOMEXTERN struct M_SOMPPersistentObjectCClassDataStructure {
  889.     somMethodTabs parentMtab;
  890.     somDToken instanceDataToken;
  891. } SOMDLINK M_SOMPPersistentObjectCClassData;
  892.  
  893. /*
  894.  * New and Renew macros for M_SOMPPersistentObject
  895.  */
  896. #define M_SOMPPersistentObjectNew() \
  897.    ( _M_SOMPPersistentObject ? \
  898.     _somNew(_M_SOMPPersistentObject) \
  899.     : ( M_SOMPPersistentObjectNewClass(\
  900.         M_SOMPPersistentObject_MajorVersion, \
  901.         M_SOMPPersistentObject_MinorVersion),\
  902.        _somNew(_M_SOMPPersistentObject)))
  903. #define M_SOMPPersistentObjectRenew(buf) \
  904.    ( _M_SOMPPersistentObject ? \
  905.     _somRenew(_M_SOMPPersistentObject, buf) \
  906.     : ( M_SOMPPersistentObjectNewClass(\
  907.         M_SOMPPersistentObject_MajorVersion, \
  908.         M_SOMPPersistentObject_MinorVersion),\
  909.        _somRenew(_M_SOMPPersistentObject, buf)))
  910.  
  911. /*
  912.  * Override method: somInit
  913.  */
  914. #define M_SOMPPersistentObject_somInit(somSelf) \
  915.     SOMObject_somInit(somSelf)
  916.  
  917. /*
  918.  * New Method: sompSetClassLevelEncoderDecoderName
  919.  */
  920. typedef void   SOMLINK somTP_M_SOMPPersistentObject_sompSetClassLevelEncoderDecoderName(M_SOMPPersistentObject *somSelf, Environment *ev, 
  921.         string myName);
  922. #pragma linkage(somTP_M_SOMPPersistentObject_sompSetClassLevelEncoderDecoderName, system)
  923. typedef somTP_M_SOMPPersistentObject_sompSetClassLevelEncoderDecoderName *somTD_M_SOMPPersistentObject_sompSetClassLevelEncoderDecoderName;
  924. /*
  925.  *  Set Encoder/Decoder name at the class level
  926.  */
  927. #define somMD_M_SOMPPersistentObject_sompSetClassLevelEncoderDecoderName "::M_SOMPPersistentObject::sompSetClassLevelEncoderDecoderName"
  928. #define M_SOMPPersistentObject_sompSetClassLevelEncoderDecoderName(somSelf,ev,myName) \
  929.     (SOM_Resolve(somSelf, M_SOMPPersistentObject, sompSetClassLevelEncoderDecoderName) \
  930.     (somSelf,ev,myName))
  931. #ifndef SOMGD_sompSetClassLevelEncoderDecoderName
  932.     #if (defined(_sompSetClassLevelEncoderDecoderName) || defined(__sompSetClassLevelEncoderDecoderName))
  933.         #undef _sompSetClassLevelEncoderDecoderName
  934.         #undef __sompSetClassLevelEncoderDecoderName
  935.         #define SOMGD_sompSetClassLevelEncoderDecoderName 1
  936.     #else
  937.         #define _sompSetClassLevelEncoderDecoderName M_SOMPPersistentObject_sompSetClassLevelEncoderDecoderName
  938.     #endif /* _sompSetClassLevelEncoderDecoderName */
  939. #endif /* SOMGD_sompSetClassLevelEncoderDecoderName */
  940.  
  941. /*
  942.  * New Method: sompGetClassLevelEncoderDecoderName
  943.  */
  944. typedef string   SOMLINK somTP_M_SOMPPersistentObject_sompGetClassLevelEncoderDecoderName(M_SOMPPersistentObject *somSelf, Environment *ev);
  945. #pragma linkage(somTP_M_SOMPPersistentObject_sompGetClassLevelEncoderDecoderName, system)
  946. typedef somTP_M_SOMPPersistentObject_sompGetClassLevelEncoderDecoderName *somTD_M_SOMPPersistentObject_sompGetClassLevelEncoderDecoderName;
  947. /*
  948.  *  Get class level Encoder/Decoder name.
  949.  */
  950. #define somMD_M_SOMPPersistentObject_sompGetClassLevelEncoderDecoderName "::M_SOMPPersistentObject::sompGetClassLevelEncoderDecoderName"
  951. #define M_SOMPPersistentObject_sompGetClassLevelEncoderDecoderName(somSelf,ev) \
  952.     (SOM_Resolve(somSelf, M_SOMPPersistentObject, sompGetClassLevelEncoderDecoderName) \
  953.     (somSelf,ev))
  954. #ifndef SOMGD_sompGetClassLevelEncoderDecoderName
  955.     #if (defined(_sompGetClassLevelEncoderDecoderName) || defined(__sompGetClassLevelEncoderDecoderName))
  956.         #undef _sompGetClassLevelEncoderDecoderName
  957.         #undef __sompGetClassLevelEncoderDecoderName
  958.         #define SOMGD_sompGetClassLevelEncoderDecoderName 1
  959.     #else
  960.         #define _sompGetClassLevelEncoderDecoderName M_SOMPPersistentObject_sompGetClassLevelEncoderDecoderName
  961.     #endif /* _sompGetClassLevelEncoderDecoderName */
  962. #endif /* SOMGD_sompGetClassLevelEncoderDecoderName */
  963. #ifndef SOM_DONT_USE_INHERITED_MACROS
  964. #define M_SOMPPersistentObject__get_somDataAlignment SOMClass__get_somDataAlignment
  965. #define M_SOMPPersistentObject__get_somInstanceDataOffsets SOMClass__get_somInstanceDataOffsets
  966. #define M_SOMPPersistentObject__get_somDirectInitClasses SOMClass__get_somDirectInitClasses
  967. #define M_SOMPPersistentObject_somNew SOMClass_somNew
  968. #define M_SOMPPersistentObject_somNewNoInit SOMClass_somNewNoInit
  969. #define M_SOMPPersistentObject_somRenew SOMClass_somRenew
  970. #define M_SOMPPersistentObject_somRenewNoInit SOMClass_somRenewNoInit
  971. #define M_SOMPPersistentObject_somRenewNoZero SOMClass_somRenewNoZero
  972. #define M_SOMPPersistentObject_somRenewNoInitNoZero SOMClass_somRenewNoInitNoZero
  973. #define M_SOMPPersistentObject_somAllocate SOMClass_somAllocate
  974. #define M_SOMPPersistentObject_somDeallocate SOMClass_somDeallocate
  975. #define M_SOMPPersistentObject_somInitClass SOMClass_somInitClass
  976. #define M_SOMPPersistentObject_somInitMIClass SOMClass_somInitMIClass
  977. #define M_SOMPPersistentObject_somAddStaticMethod SOMClass_somAddStaticMethod
  978. #define M_SOMPPersistentObject_somAddDynamicMethod SOMClass_somAddDynamicMethod
  979. #define M_SOMPPersistentObject_somOverrideSMethod SOMClass_somOverrideSMethod
  980. #define M_SOMPPersistentObject_somClassReady SOMClass_somClassReady
  981. #define M_SOMPPersistentObject_somGetApplyStub SOMClass_somGetApplyStub
  982. #define M_SOMPPersistentObject_somGetClassData SOMClass_somGetClassData
  983. #define M_SOMPPersistentObject_somSetClassData SOMClass_somSetClassData
  984. #define M_SOMPPersistentObject_somGetClassMtab SOMClass_somGetClassMtab
  985. #define M_SOMPPersistentObject_somGetInstanceOffset SOMClass_somGetInstanceOffset
  986. #define M_SOMPPersistentObject_somGetInstancePartSize SOMClass_somGetInstancePartSize
  987. #define M_SOMPPersistentObject_somGetInstanceSize SOMClass_somGetInstanceSize
  988. #define M_SOMPPersistentObject_somGetInstanceToken SOMClass_somGetInstanceToken
  989. #define M_SOMPPersistentObject_somGetMemberToken SOMClass_somGetMemberToken
  990. #define M_SOMPPersistentObject_somGetMethodData SOMClass_somGetMethodData
  991. #define M_SOMPPersistentObject_somGetRdStub SOMClass_somGetRdStub
  992. #define M_SOMPPersistentObject_somGetMethodDescriptor SOMClass_somGetMethodDescriptor
  993. #define M_SOMPPersistentObject_somGetMethodIndex SOMClass_somGetMethodIndex
  994. #define M_SOMPPersistentObject_somGetMethodToken SOMClass_somGetMethodToken
  995. #define M_SOMPPersistentObject_somGetName SOMClass_somGetName
  996. #define M_SOMPPersistentObject_somGetNthMethodData SOMClass_somGetNthMethodData
  997. #define M_SOMPPersistentObject_somGetNthMethodInfo SOMClass_somGetNthMethodInfo
  998. #define M_SOMPPersistentObject_somGetNumMethods SOMClass_somGetNumMethods
  999. #define M_SOMPPersistentObject_somGetNumStaticMethods SOMClass_somGetNumStaticMethods
  1000. #define M_SOMPPersistentObject_somGetParent SOMClass_somGetParent
  1001. #define M_SOMPPersistentObject_somGetParents SOMClass_somGetParents
  1002. #define M_SOMPPersistentObject_somGetVersionNumbers SOMClass_somGetVersionNumbers
  1003. #define M_SOMPPersistentObject_somFindMethod SOMClass_somFindMethod
  1004. #define M_SOMPPersistentObject_somFindMethodOk SOMClass_somFindMethodOk
  1005. #define M_SOMPPersistentObject_somFindSMethod SOMClass_somFindSMethod
  1006. #define M_SOMPPersistentObject_somFindSMethodOk SOMClass_somFindSMethodOk
  1007. #define M_SOMPPersistentObject_somLookupMethod SOMClass_somLookupMethod
  1008. #define M_SOMPPersistentObject_somCheckVersion SOMClass_somCheckVersion
  1009. #define M_SOMPPersistentObject_somDescendedFrom SOMClass_somDescendedFrom
  1010. #define M_SOMPPersistentObject_somSupportsMethod SOMClass_somSupportsMethod
  1011. #define M_SOMPPersistentObject_somDefinedMethod SOMClass_somDefinedMethod
  1012. #define M_SOMPPersistentObject_somOverrideMtab SOMClass_somOverrideMtab
  1013. #define M_SOMPPersistentObject_somDefaultInit SOMObject_somDefaultInit
  1014. #define M_SOMPPersistentObject_somDestruct SOMObject_somDestruct
  1015. #define M_SOMPPersistentObject_somDefaultCopyInit SOMObject_somDefaultCopyInit
  1016. #define M_SOMPPersistentObject_somDefaultAssign SOMObject_somDefaultAssign
  1017. #define M_SOMPPersistentObject_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  1018. #define M_SOMPPersistentObject_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  1019. #define M_SOMPPersistentObject_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  1020. #define M_SOMPPersistentObject_somDefaultConstAssign SOMObject_somDefaultConstAssign
  1021. #define M_SOMPPersistentObject_somDefaultVAssign SOMObject_somDefaultVAssign
  1022. #define M_SOMPPersistentObject_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  1023. #define M_SOMPPersistentObject_somFree SOMObject_somFree
  1024. #define M_SOMPPersistentObject_somUninit SOMObject_somUninit
  1025. #define M_SOMPPersistentObject_somGetClass SOMObject_somGetClass
  1026. #define M_SOMPPersistentObject_somGetClassName SOMObject_somGetClassName
  1027. #define M_SOMPPersistentObject_somGetSize SOMObject_somGetSize
  1028. #define M_SOMPPersistentObject_somIsA SOMObject_somIsA
  1029. #define M_SOMPPersistentObject_somIsInstanceOf SOMObject_somIsInstanceOf
  1030. #define M_SOMPPersistentObject_somRespondsTo SOMObject_somRespondsTo
  1031. #define M_SOMPPersistentObject_somDispatch SOMObject_somDispatch
  1032. #define M_SOMPPersistentObject_somClassDispatch SOMObject_somClassDispatch
  1033. #define M_SOMPPersistentObject_somCastObj SOMObject_somCastObj
  1034. #define M_SOMPPersistentObject_somResetObj SOMObject_somResetObj
  1035. #define M_SOMPPersistentObject_somDispatchV SOMObject_somDispatchV
  1036. #define M_SOMPPersistentObject_somDispatchL SOMObject_somDispatchL
  1037. #define M_SOMPPersistentObject_somDispatchA SOMObject_somDispatchA
  1038. #define M_SOMPPersistentObject_somDispatchD SOMObject_somDispatchD
  1039. #define M_SOMPPersistentObject_somPrintSelf SOMObject_somPrintSelf
  1040. #define M_SOMPPersistentObject_somDumpSelf SOMObject_somDumpSelf
  1041. #define M_SOMPPersistentObject_somDumpSelfInt SOMObject_somDumpSelfInt
  1042. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  1043.  
  1044. #endif       /* SOM_M_SOMPPersistentObject_h */
  1045.