home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / spersist.xh < prev    next >
Encoding:
Text File  |  1996-02-23  |  54.7 KB  |  1,828 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: g:\daxnt\INCLUDE\spersist.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: Development
  7.  *     SOM Emitter emitxh.dll: Development
  8.  */
  9.  
  10. /*
  11.  * 
  12.  * 
  13.  *     Licensed Materials - Property of IBM
  14.  * 
  15.  *     5622-880   5801-AAR
  16.  * 
  17.  *     (c) Copyright IBM Corp 1991, 1996.
  18.  * 
  19.  */
  20.  
  21.  
  22. #ifndef SOM_POFactory_xh
  23. #define SOM_POFactory_xh
  24.  
  25. class POFactory;
  26.  
  27. #define POFactory_MajorVersion 0
  28. #define POFactory_MinorVersion 0
  29.  
  30. /*
  31.  * Passthru lines: File: "C.xh", "before"
  32.  */
  33. #ifndef __TOS_WIN__                         
  34.  #ifndef __NO_DEFAULT_LIBS__                
  35.    #pragma library("SOMTK.LIB")           
  36.    #ifdef __IMPORTLIB__                     
  37.       #pragma library("CPPOAI3I.LIB")     
  38.    #else                                    
  39.       #pragma library("CPPOAI3.LIB")      
  40.    #endif                                   
  41.  #endif                                     
  42. #else                                       
  43.  #ifndef __NO_DEFAULT_LIBS__                
  44.    #pragma library("SOMTK.LIB")           
  45.    #ifdef __IMPORTLIB__                     
  46.       #pragma library("CPPWAI3I.LIB")     
  47.    #else                                    
  48.       #pragma library("CPPWAI3.LIB")      
  49.    #endif                                   
  50.  #endif                                     
  51. #endif                                      
  52.  
  53. /* C++ SOM defs */
  54. #include <somcls.xh>
  55. #include <somcm.xh>
  56.  
  57. /* C++ parent defs */
  58. #ifndef SOM_SOMClass_xh
  59. #include <somcls.xh>
  60. #endif
  61.  
  62. #ifndef POFactory_API
  63. #define POFactory_API
  64. /*
  65.  * -- The Class API
  66.  */
  67.  
  68. /*
  69.  * Start of user-defined types:
  70.  */
  71. class SOMClass;
  72. class SOMObject;
  73. #define DAX_ADD_READONLY 101 /* 101 */
  74. #define DAX_ADD_SQLERR 102 /* 102 */
  75. #define DAX_UPD_READONLY 103 /* 103 */
  76. #define DAX_UPD_SQLERR 104 /* 104 */
  77. #define DAX_DEL_READONLY 105 /* 105 */
  78. #define DAX_DEL_SQLERR 106 /* 106 */
  79. #define DAX_RET_SQLERR 107 /* 107 */
  80. #define DAX_REF_SQLERR 108 /* 108 */
  81. #define DAX_SEL_SQLERR 109 /* 109 */
  82. #define DAX_ADD_NONNULL 110 /* 110 */
  83. #define DAX_NUL_NONNULL 111 /* 111 */
  84. #define DAX_DFT_READONLY 112 /* 112 */
  85. #define DAX_SYS_LOCK 113 /* 113 */
  86. #define DAX_ADD_NULL_DATAID 114 /* 114 */
  87. #define DAX_UPD_NULL_DATAID 115 /* 115 */
  88. #define DAX_RET_NULL_DATAID 116 /* 116 */
  89. #define DAX_DEL_NULL_DATAID 117 /* 117 */
  90. #define DAX_ATTR_INVLEN 118 /* 118 */
  91. #define DAX_ATTR_INVDATA 119 /* 119 */
  92. #define DAX_RET_NORETRIEVE 120 /* 120 */
  93. #define DAX_UPD_MULTROWS 121 /* 121 */
  94. #define DAX_DEL_MULTROWS 122 /* 122 */
  95. #define DAX_OUT_OF_MEMORY 123 /* 123 */
  96. #define DAX_MSG_MAX_CONNECTIONS_REACHED 1209 /* 1209 */
  97. #define DAX_MSG_NO_CONNECT_TRANSACT_ACTIVE 1210 /* 1210 */
  98. #define DAX_MSG_MAX_CONNECTIONS_TO_DB_REACHED 1211 /* 1211 */
  99. #define DAX_MSG_CONNECTION_IN_USE 1212 /* 1212 */
  100. #define DAX_MSG_NO_DISCONNECT_CONNECTION_NOT_FOUND 1213 /* 1213 */
  101. #define DAX_MSG_COMMIT_ERROR 1216 /* 1216 */
  102. #define DAX_MSG_ROLLBACK_ERROR 1217 /* 1217 */
  103. #define DAX_MSG_CONNECT_ERROR 1219 /* 1219 */
  104. #define DAX_MSG_DISCONNECT_ERROR 1221 /* 1221 */
  105. #define DAX_MSG_CONNECT_NOT_OPEN 1222 /* 1222 */
  106. #define DAX_MSG_LOGON_ERROR 1223 /* 1223 */
  107. #define DAX_MSG_LOGOFF_ERROR 1224 /* 1224 */
  108. #define DAX_MSG_USERID_NOT_SPECIFIED 1225 /* 1225 */
  109. #define DAX_MSG_PASSWORD_NOT_SPECIFIED 1226 /* 1226 */
  110. #define DAX_MSG_INCORRECT_USERID_OR_PASSWORD 1227 /* 1227 */
  111. #define DAX_MSG_LOGON_IN_PROGRESS 1228 /* 1228 */
  112. #define DAX_MSG_INVALID_REMOTE_TYPE 1229 /* 1229 */
  113. #define DAX_MSG_EXECUTE_IMMEDIATE_ERROR 1243 /* 1243 */
  114. #define DAX_MSG_ONLY_ONE_CONNECTION_ALLOWED 1244 /* 1244 */
  115. #define DAX_MSG_OBJECT_NOT_FOUND_OR_NOT_INSERTED 1248 /* 1248 */
  116. #define DAX_MSG_OBJECT_NOT_UNIQUE 1249 /* 1249 */
  117. #define DAX_MSG_ERROR_IN_SQLERROR 1250 /* 1250 */
  118. #define DAX_MSG_ADD_NOT_IMPLEMENTED 1251 /* 1251 */
  119. #define DAX_MSG_UPDATE_NOT_IMPLEMENTED 1252 /* 1252 */
  120. #define DAX_MSG_DEL_NOT_IMPLEMENTED 1253 /* 1253 */
  121. #define DAX_MSG_RETRIEVE_NOT_IMPLEMENTED 1254 /* 1254 */
  122. #define DAX_MSG_DEFAULT_READONLY 1255 /* 1255 */
  123. #define DAX_MSG_RETRIEVEALL_NOT_IMPLEMENTED 1256 /* 1256 */
  124. #define DAX_MSG_SQLERROR 1260 /* 1260 */
  125. #define DAX_MSG_SELECT_NOT_IMPLEMENTED 1261 /* 1261 */
  126. #define DAX_MSG_DATASTORE_CONNECTION_NOT_SUPPLIED 1262 /* 1262 */
  127. #define DAX_MSG_LOCK_ERROR 1263 /* 1263 */
  128. class DatastoreBase;
  129. class PersistentObject;
  130. #ifndef _IDL_SEQUENCE_PersistentObject_defined
  131. #define _IDL_SEQUENCE_PersistentObject_defined
  132. typedef struct {
  133.     unsigned long _maximum;
  134.     unsigned long _length;
  135.     PersistentObject **_buffer;
  136. } _IDL_SEQUENCE_PersistentObject;
  137. #endif /* _IDL_SEQUENCE_PersistentObject_defined */ 
  138.  
  139. #ifndef SOM_DONT_USE_SHORT_NAMES
  140. #endif /* SOM_DONT_USE_SHORT_NAMES */
  141.  
  142. /*
  143.  * End of user-defined types.
  144.  */
  145.  
  146. /*
  147.  * -- POFactory is a metaclass for PersistentObject. Make sure PersistentObject is known.
  148.  */
  149. class PersistentObject;
  150.  
  151.  
  152. /* A procedure to create the POFactory Class */
  153. SOMEXTERN
  154. #if (defined(SOM_Module_spersist_Source) || defined(POFactory_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_POFactory))
  155. WIN32_DLLEXPORT
  156. #else
  157. WIN32_DLLIMPORT
  158. #endif
  159. SOMClass * SOMLINK POFactoryNewClass(
  160.         integer4,
  161.         integer4 );
  162.  
  163. /* The API to the POFactory class object, and the methods it introduces. */
  164. SOMEXTERN struct POFactoryClassDataStructure {
  165.     SOMClass *classObject;
  166.     somMToken retrieveAll;
  167.     somMToken select;
  168. }
  169. #if !(defined(SOM_Module_spersist_Source) || defined(POFactory_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_POFactory))
  170. WIN32_DLLIMPORT
  171. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  172. WIN32_DLLEXPORT
  173. #endif
  174. SOMDLINK POFactoryClassData;
  175. #define _POFactory POFactoryClassData.classObject
  176.  
  177. /* The API to parentMtabs for POFactory, and the instance data it introduces. */
  178. SOMEXTERN struct POFactoryCClassDataStructure {
  179.     somMethodTabs parentMtab;
  180.     somDToken              instanceDataToken;
  181. }
  182. #if !(defined(SOM_Module_spersist_Source) || defined(POFactory_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_POFactory))
  183. WIN32_DLLIMPORT
  184. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  185. WIN32_DLLEXPORT
  186. #endif
  187. SOMDLINK POFactoryCClassData;
  188.  
  189. /*
  190.  * -- Typedefs for POFactory Method Procedures
  191.  */
  192. extern "C" {
  193. typedef _IDL_SEQUENCE_PersistentObject   SOMLINK somTP_POFactory_retrieveAll(POFactory *somSelf, Environment *ev);
  194. typedef somTP_POFactory_retrieveAll *somTD_POFactory_retrieveAll;
  195. typedef _IDL_SEQUENCE_PersistentObject   SOMLINK somTP_POFactory_select(POFactory *somSelf, Environment *ev,
  196.         string clause);
  197. typedef somTP_POFactory_select *somTD_POFactory_select;
  198.  
  199. /*
  200.  * -- Typedefs for Reintroduced Wrapper Methods
  201.  */
  202. typedef long   SOMLINK somTP_POFactory__get_somDataAlignment(POFactory *somSelf);
  203. typedef somTP_POFactory__get_somDataAlignment *somTD_POFactory__get_somDataAlignment;
  204. typedef SOMClass_somOffsets   SOMLINK somTP_POFactory__get_somInstanceDataOffsets(POFactory *somSelf);
  205. typedef somTP_POFactory__get_somInstanceDataOffsets *somTD_POFactory__get_somInstanceDataOffsets;
  206. typedef SOMClass_SOMClassSequence   SOMLINK somTP_POFactory__get_somDirectInitClasses(POFactory *somSelf);
  207. typedef somTP_POFactory__get_somDirectInitClasses *somTD_POFactory__get_somDirectInitClasses;
  208. typedef void   SOMLINK somTP_POFactory__set_somDirectInitClasses(POFactory *somSelf,
  209.         SOMClass_SOMClassSequence* somDirectInitClasses);
  210. typedef somTP_POFactory__set_somDirectInitClasses *somTD_POFactory__set_somDirectInitClasses;
  211. typedef PersistentObject*   SOMLINK somTP_POFactory_somNew(POFactory *somSelf);
  212. typedef somTP_POFactory_somNew *somTD_POFactory_somNew;
  213. typedef SOMObject*   SOMLINK somTP_POFactory_somNewNoInit(POFactory *somSelf);
  214. typedef somTP_POFactory_somNewNoInit *somTD_POFactory_somNewNoInit;
  215. typedef SOMObject*   SOMLINK somTP_POFactory_somRenew(POFactory *somSelf,
  216.         void* obj);
  217. typedef somTP_POFactory_somRenew *somTD_POFactory_somRenew;
  218. typedef SOMObject*   SOMLINK somTP_POFactory_somRenewNoInit(POFactory *somSelf,
  219.         void* obj);
  220. typedef somTP_POFactory_somRenewNoInit *somTD_POFactory_somRenewNoInit;
  221. typedef SOMObject*   SOMLINK somTP_POFactory_somRenewNoZero(POFactory *somSelf,
  222.         void* obj);
  223. typedef somTP_POFactory_somRenewNoZero *somTD_POFactory_somRenewNoZero;
  224. typedef SOMObject*   SOMLINK somTP_POFactory_somRenewNoInitNoZero(POFactory *somSelf,
  225.         void* obj);
  226. typedef somTP_POFactory_somRenewNoInitNoZero *somTD_POFactory_somRenewNoInitNoZero;
  227. typedef string   SOMLINK somTP_POFactory_somAllocate(POFactory *somSelf,
  228.         long size);
  229. typedef somTP_POFactory_somAllocate *somTD_POFactory_somAllocate;
  230. typedef void   SOMLINK somTP_POFactory_somDeallocate(POFactory *somSelf,
  231.         string memptr);
  232. typedef somTP_POFactory_somDeallocate *somTD_POFactory_somDeallocate;
  233. typedef somMethodProc*   SOMLINK somTP_POFactory__get_somClassAllocate(POFactory *somSelf);
  234. typedef somTP_POFactory__get_somClassAllocate *somTD_POFactory__get_somClassAllocate;
  235. typedef somMethodProc*   SOMLINK somTP_POFactory__get_somClassDeallocate(POFactory *somSelf);
  236. typedef somTP_POFactory__get_somClassDeallocate *somTD_POFactory__get_somClassDeallocate;
  237. typedef somBooleanVector   SOMLINK somTP_POFactory_somGetInstanceInitMask(POFactory *somSelf,
  238.         somInitCtrl* ctrl);
  239. typedef somTP_POFactory_somGetInstanceInitMask *somTD_POFactory_somGetInstanceInitMask;
  240. typedef somBooleanVector   SOMLINK somTP_POFactory_somGetInstanceDestructionMask(POFactory *somSelf,
  241.         somDestructCtrl* ctrl);
  242. typedef somTP_POFactory_somGetInstanceDestructionMask *somTD_POFactory_somGetInstanceDestructionMask;
  243. typedef somBooleanVector   SOMLINK somTP_POFactory_somGetInstanceAssignmentMask(POFactory *somSelf,
  244.         somAssignCtrl* ctrl);
  245. typedef somTP_POFactory_somGetInstanceAssignmentMask *somTD_POFactory_somGetInstanceAssignmentMask;
  246. typedef void   SOMLINK somTP_POFactory_somInitClass(POFactory *somSelf,
  247.         string className,
  248.         SOMClass* parentClass,
  249.         long dataSize,
  250.         long maxStaticMethods,
  251.         long majorVersion,
  252.         long minorVersion);
  253. typedef somTP_POFactory_somInitClass *somTD_POFactory_somInitClass;
  254. typedef void   SOMLINK somTP_POFactory_somInitMIClass(POFactory *somSelf,
  255.         long inherit_vars,
  256.         string className,
  257.         SOMClass_SOMClassSequence* parentClasses,
  258.         long dataSize,
  259.         long dataAlignment,
  260.         long maxStaticMethods,
  261.         long majorVersion,
  262.         long minorVersion);
  263. typedef somTP_POFactory_somInitMIClass *somTD_POFactory_somInitMIClass;
  264. typedef somMToken   SOMLINK somTP_POFactory_somAddStaticMethod(POFactory *somSelf,
  265.         somId methodId,
  266.         somId methodDescriptor,
  267.         somMethodPtr method,
  268.         somMethodPtr redispatchStub,
  269.         somMethodPtr applyStub);
  270. typedef somTP_POFactory_somAddStaticMethod *somTD_POFactory_somAddStaticMethod;
  271. typedef void   SOMLINK somTP_POFactory_somAddDynamicMethod(POFactory *somSelf,
  272.         somId methodId,
  273.         somId methodDescriptor,
  274.         somMethodPtr method,
  275.         somMethodPtr applyStub);
  276. typedef somTP_POFactory_somAddDynamicMethod *somTD_POFactory_somAddDynamicMethod;
  277. typedef void   SOMLINK somTP_POFactory_somOverrideSMethod(POFactory *somSelf,
  278.         somId methodId,
  279.         somMethodPtr method);
  280. typedef somTP_POFactory_somOverrideSMethod *somTD_POFactory_somOverrideSMethod;
  281. typedef void   SOMLINK somTP_POFactory_somClassReady(POFactory *somSelf);
  282. typedef somTP_POFactory_somClassReady *somTD_POFactory_somClassReady;
  283. typedef somClassDataStructure*   SOMLINK somTP_POFactory_somGetClassData(POFactory *somSelf);
  284. typedef somTP_POFactory_somGetClassData *somTD_POFactory_somGetClassData;
  285. typedef void   SOMLINK somTP_POFactory_somSetClassData(POFactory *somSelf,
  286.         somClassDataStructure* cds);
  287. typedef somTP_POFactory_somSetClassData *somTD_POFactory_somSetClassData;
  288. typedef somMethodTab*   SOMLINK somTP_POFactory_somGetClassMtab(POFactory *somSelf);
  289. typedef somTP_POFactory_somGetClassMtab *somTD_POFactory_somGetClassMtab;
  290. typedef long   SOMLINK somTP_POFactory_somGetInstanceOffset(POFactory *somSelf);
  291. typedef somTP_POFactory_somGetInstanceOffset *somTD_POFactory_somGetInstanceOffset;
  292. typedef long   SOMLINK somTP_POFactory_somGetInstancePartSize(POFactory *somSelf);
  293. typedef somTP_POFactory_somGetInstancePartSize *somTD_POFactory_somGetInstancePartSize;
  294. typedef long   SOMLINK somTP_POFactory_somGetInstanceSize(POFactory *somSelf);
  295. typedef somTP_POFactory_somGetInstanceSize *somTD_POFactory_somGetInstanceSize;
  296. typedef somDToken   SOMLINK somTP_POFactory_somGetInstanceToken(POFactory *somSelf);
  297. typedef somTP_POFactory_somGetInstanceToken *somTD_POFactory_somGetInstanceToken;
  298. typedef somDToken   SOMLINK somTP_POFactory_somGetMemberToken(POFactory *somSelf,
  299.         long memberOffset,
  300.         somDToken instanceToken);
  301. typedef somTP_POFactory_somGetMemberToken *somTD_POFactory_somGetMemberToken;
  302. typedef boolean   SOMLINK somTP_POFactory_somGetMethodData(POFactory *somSelf,
  303.         somId methodId,
  304.         somMethodData* md);
  305. typedef somTP_POFactory_somGetMethodData *somTD_POFactory_somGetMethodData;
  306. typedef somMethodProc*   SOMLINK somTP_POFactory_somGetRdStub(POFactory *somSelf,
  307.         somId methodId);
  308. typedef somTP_POFactory_somGetRdStub *somTD_POFactory_somGetRdStub;
  309. typedef somId   SOMLINK somTP_POFactory_somGetMethodDescriptor(POFactory *somSelf,
  310.         somId methodId);
  311. typedef somTP_POFactory_somGetMethodDescriptor *somTD_POFactory_somGetMethodDescriptor;
  312. typedef long   SOMLINK somTP_POFactory_somGetMethodIndex(POFactory *somSelf,
  313.         somId id);
  314. typedef somTP_POFactory_somGetMethodIndex *somTD_POFactory_somGetMethodIndex;
  315. typedef somMToken   SOMLINK somTP_POFactory_somGetMethodToken(POFactory *somSelf,
  316.         somId methodId);
  317. typedef somTP_POFactory_somGetMethodToken *somTD_POFactory_somGetMethodToken;
  318. typedef string   SOMLINK somTP_POFactory_somGetName(POFactory *somSelf);
  319. typedef somTP_POFactory_somGetName *somTD_POFactory_somGetName;
  320. typedef boolean   SOMLINK somTP_POFactory_somGetNthMethodData(POFactory *somSelf,
  321.         long n,
  322.         somMethodData* md);
  323. typedef somTP_POFactory_somGetNthMethodData *somTD_POFactory_somGetNthMethodData;
  324. typedef somId   SOMLINK somTP_POFactory_somGetNthMethodInfo(POFactory *somSelf,
  325.         long n,
  326.         somId* descriptor);
  327. typedef somTP_POFactory_somGetNthMethodInfo *somTD_POFactory_somGetNthMethodInfo;
  328. typedef long   SOMLINK somTP_POFactory_somGetNumMethods(POFactory *somSelf);
  329. typedef somTP_POFactory_somGetNumMethods *somTD_POFactory_somGetNumMethods;
  330. typedef long   SOMLINK somTP_POFactory_somGetNumStaticMethods(POFactory *somSelf);
  331. typedef somTP_POFactory_somGetNumStaticMethods *somTD_POFactory_somGetNumStaticMethods;
  332. typedef SOMClass*   SOMLINK somTP_POFactory_somGetParent(POFactory *somSelf);
  333. typedef somTP_POFactory_somGetParent *somTD_POFactory_somGetParent;
  334. typedef SOMClass_SOMClassSequence   SOMLINK somTP_POFactory_somGetParents(POFactory *somSelf);
  335. typedef somTP_POFactory_somGetParents *somTD_POFactory_somGetParents;
  336. typedef somMethodTabs   SOMLINK somTP_POFactory_somGetPClsMtab(POFactory *somSelf);
  337. typedef somTP_POFactory_somGetPClsMtab *somTD_POFactory_somGetPClsMtab;
  338. typedef somMethodTabs   SOMLINK somTP_POFactory_somGetPClsMtabs(POFactory *somSelf);
  339. typedef somTP_POFactory_somGetPClsMtabs *somTD_POFactory_somGetPClsMtabs;
  340. typedef void   SOMLINK somTP_POFactory_somGetVersionNumbers(POFactory *somSelf,
  341.         long* majorVersion,
  342.         long* minorVersion);
  343. typedef somTP_POFactory_somGetVersionNumbers *somTD_POFactory_somGetVersionNumbers;
  344. typedef boolean   SOMLINK somTP_POFactory_somSetMethodDescriptor(POFactory *somSelf,
  345.         somId methodId,
  346.         somId descriptor);
  347. typedef somTP_POFactory_somSetMethodDescriptor *somTD_POFactory_somSetMethodDescriptor;
  348. typedef boolean   SOMLINK somTP_POFactory_somFindMethod(POFactory *somSelf,
  349.         somId methodId,
  350.         somMethodPtr* m);
  351. typedef somTP_POFactory_somFindMethod *somTD_POFactory_somFindMethod;
  352. typedef boolean   SOMLINK somTP_POFactory_somFindMethodOk(POFactory *somSelf,
  353.         somId methodId,
  354.         somMethodPtr* m);
  355. typedef somTP_POFactory_somFindMethodOk *somTD_POFactory_somFindMethodOk;
  356. typedef somMethodPtr   SOMLINK somTP_POFactory_somFindSMethod(POFactory *somSelf,
  357.         somId methodId);
  358. typedef somTP_POFactory_somFindSMethod *somTD_POFactory_somFindSMethod;
  359. typedef somMethodPtr   SOMLINK somTP_POFactory_somFindSMethodOk(POFactory *somSelf,
  360.         somId methodId);
  361. typedef somTP_POFactory_somFindSMethodOk *somTD_POFactory_somFindSMethodOk;
  362. typedef somMethodPtr   SOMLINK somTP_POFactory_somLookupMethod(POFactory *somSelf,
  363.         somId methodId);
  364. typedef somTP_POFactory_somLookupMethod *somTD_POFactory_somLookupMethod;
  365. typedef boolean   SOMLINK somTP_POFactory_somCheckVersion(POFactory *somSelf,
  366.         long majorVersion,
  367.         long minorVersion);
  368. typedef somTP_POFactory_somCheckVersion *somTD_POFactory_somCheckVersion;
  369. typedef boolean   SOMLINK somTP_POFactory_somDescendedFrom(POFactory *somSelf,
  370.         SOMClass* aClassObj);
  371. typedef somTP_POFactory_somDescendedFrom *somTD_POFactory_somDescendedFrom;
  372. typedef boolean   SOMLINK somTP_POFactory_somSupportsMethod(POFactory *somSelf,
  373.         somId mId);
  374. typedef somTP_POFactory_somSupportsMethod *somTD_POFactory_somSupportsMethod;
  375. typedef somMethodPtr   SOMLINK somTP_POFactory_somDefinedMethod(POFactory *somSelf,
  376.         somMToken method);
  377. typedef somTP_POFactory_somDefinedMethod *somTD_POFactory_somDefinedMethod;
  378. typedef void   SOMLINK somTP_POFactory_somOverrideMtab(POFactory *somSelf);
  379. typedef somTP_POFactory_somOverrideMtab *somTD_POFactory_somOverrideMtab;
  380. typedef void   SOMLINK somTP_POFactory_somDefaultInit(POFactory *somSelf,
  381.         somInitCtrl* ctrl);
  382. typedef somTP_POFactory_somDefaultInit *somTD_POFactory_somDefaultInit;
  383. typedef void   SOMLINK somTP_POFactory_somDestruct(POFactory *somSelf,
  384.         octet doFree,
  385.         somDestructCtrl* ctrl);
  386. typedef somTP_POFactory_somDestruct *somTD_POFactory_somDestruct;
  387. typedef void   SOMLINK somTP_POFactory_somDefaultCopyInit(POFactory *somSelf,
  388.         somInitCtrl* ctrl,
  389.         SOMObject* fromObj);
  390. typedef somTP_POFactory_somDefaultCopyInit *somTD_POFactory_somDefaultCopyInit;
  391. typedef POFactory*   SOMLINK somTP_POFactory_somDefaultAssign(POFactory *somSelf,
  392.         somAssignCtrl* ctrl,
  393.         SOMObject* fromObj);
  394. typedef somTP_POFactory_somDefaultAssign *somTD_POFactory_somDefaultAssign;
  395. typedef void   SOMLINK somTP_POFactory_somDefaultConstCopyInit(POFactory *somSelf,
  396.         somInitCtrl* ctrl,
  397.         SOMObject* fromObj);
  398. typedef somTP_POFactory_somDefaultConstCopyInit *somTD_POFactory_somDefaultConstCopyInit;
  399. typedef void   SOMLINK somTP_POFactory_somDefaultVCopyInit(POFactory *somSelf,
  400.         somInitCtrl* ctrl,
  401.         SOMObject* fromObj);
  402. typedef somTP_POFactory_somDefaultVCopyInit *somTD_POFactory_somDefaultVCopyInit;
  403. typedef void   SOMLINK somTP_POFactory_somDefaultConstVCopyInit(POFactory *somSelf,
  404.         somInitCtrl* ctrl,
  405.         SOMObject* fromObj);
  406. typedef somTP_POFactory_somDefaultConstVCopyInit *somTD_POFactory_somDefaultConstVCopyInit;
  407. typedef POFactory*   SOMLINK somTP_POFactory_somDefaultConstAssign(POFactory *somSelf,
  408.         somAssignCtrl* ctrl,
  409.         SOMObject* fromObj);
  410. typedef somTP_POFactory_somDefaultConstAssign *somTD_POFactory_somDefaultConstAssign;
  411. typedef POFactory*   SOMLINK somTP_POFactory_somDefaultVAssign(POFactory *somSelf,
  412.         somAssignCtrl* ctrl,
  413.         SOMObject* fromObj);
  414. typedef somTP_POFactory_somDefaultVAssign *somTD_POFactory_somDefaultVAssign;
  415. typedef POFactory*   SOMLINK somTP_POFactory_somDefaultConstVAssign(POFactory *somSelf,
  416.         somAssignCtrl* ctrl,
  417.         SOMObject* fromObj);
  418. typedef somTP_POFactory_somDefaultConstVAssign *somTD_POFactory_somDefaultConstVAssign;
  419. typedef void   SOMLINK somTP_POFactory_somInit(POFactory *somSelf);
  420. typedef somTP_POFactory_somInit *somTD_POFactory_somInit;
  421. typedef void   SOMLINK somTP_POFactory_somFree(POFactory *somSelf);
  422. typedef somTP_POFactory_somFree *somTD_POFactory_somFree;
  423. typedef void   SOMLINK somTP_POFactory_somUninit(POFactory *somSelf);
  424. typedef somTP_POFactory_somUninit *somTD_POFactory_somUninit;
  425. typedef SOMClass*   SOMLINK somTP_POFactory_somGetClass(POFactory *somSelf);
  426. typedef somTP_POFactory_somGetClass *somTD_POFactory_somGetClass;
  427. typedef string   SOMLINK somTP_POFactory_somGetClassName(POFactory *somSelf);
  428. typedef somTP_POFactory_somGetClassName *somTD_POFactory_somGetClassName;
  429. typedef long   SOMLINK somTP_POFactory_somGetSize(POFactory *somSelf);
  430. typedef somTP_POFactory_somGetSize *somTD_POFactory_somGetSize;
  431. typedef boolean   SOMLINK somTP_POFactory_somIsA(POFactory *somSelf,
  432.         SOMClass* aClassObj);
  433. typedef somTP_POFactory_somIsA *somTD_POFactory_somIsA;
  434. typedef boolean   SOMLINK somTP_POFactory_somIsInstanceOf(POFactory *somSelf,
  435.         SOMClass* aClassObj);
  436. typedef somTP_POFactory_somIsInstanceOf *somTD_POFactory_somIsInstanceOf;
  437. typedef boolean   SOMLINK somTP_POFactory_somRespondsTo(POFactory *somSelf,
  438.         somId mId);
  439. typedef somTP_POFactory_somRespondsTo *somTD_POFactory_somRespondsTo;
  440. typedef boolean   SOMLINK somTP_POFactory_somDispatch(POFactory *somSelf,
  441.         somToken* retValue,
  442.         somId methodId,
  443.         va_list ap);
  444. typedef somTP_POFactory_somDispatch *somTD_POFactory_somDispatch;
  445. typedef boolean   SOMLINK somTP_POFactory_somClassDispatch(POFactory *somSelf,
  446.         SOMClass* clsObj,
  447.         somToken* retValue,
  448.         somId methodId,
  449.         va_list ap);
  450. typedef somTP_POFactory_somClassDispatch *somTD_POFactory_somClassDispatch;
  451. typedef boolean   SOMLINK somTP_POFactory_somCastObj(POFactory *somSelf,
  452.         SOMClass* cls);
  453. typedef somTP_POFactory_somCastObj *somTD_POFactory_somCastObj;
  454. typedef boolean   SOMLINK somTP_POFactory_somResetObj(POFactory *somSelf);
  455. typedef somTP_POFactory_somResetObj *somTD_POFactory_somResetObj;
  456. typedef SOMObject*   SOMLINK somTP_POFactory_somPrintSelf(POFactory *somSelf);
  457. typedef somTP_POFactory_somPrintSelf *somTD_POFactory_somPrintSelf;
  458. typedef void   SOMLINK somTP_POFactory_somDumpSelf(POFactory *somSelf,
  459.         long level);
  460. typedef somTP_POFactory_somDumpSelf *somTD_POFactory_somDumpSelf;
  461. typedef void   SOMLINK somTP_POFactory_somDumpSelfInt(POFactory *somSelf,
  462.         long level);
  463. typedef somTP_POFactory_somDumpSelfInt *somTD_POFactory_somDumpSelfInt;
  464. }
  465.  
  466. #endif /* POFactory_API */
  467.  
  468.  
  469. /*
  470.  * -- This emitter believes that method thunks are unavailable,
  471.  * -- so somResolve will be called.
  472.  */
  473. #undef somresolve_
  474. #define somresolve_(obj,mToken) (somResolve(obj,mToken))
  475.  
  476. /*
  477.  * -- The C++ Wrapper Class for POFactory
  478.  */
  479. class POFactory : public SOMClass
  480. {
  481. public:
  482.  
  483. // POFactory::new creates the class object if necessary, and then uses somNewNoInit
  484. // to allocate memory and create the object. Initialization is in ctors.
  485. void *operator new(size_t)
  486. {
  487.    if (!_POFactory) POFactoryNewClass(POFactory_MajorVersion,POFactory_MinorVersion);
  488.    return (void*)
  489.       SOM_Resolve(_POFactory,SOMClass,somNewNoInit)
  490.          ((SOMClass *)((void*)_POFactory));
  491. }
  492.  
  493. // POFactory::delete uses somDestruct.
  494. void operator delete(void * obj)
  495. {
  496.    if (obj && *(void**)obj) {
  497.       SOM_Resolve(obj,SOMObject,somDestruct)
  498.          ((SOMObject*)obj, 1, 0);
  499.    }
  500. }
  501.  
  502. POFactory()
  503. {
  504.    if (*(void**)this != 
  505.        ((somParentMtabStructPtr)
  506.         (POFactoryCClassData.parentMtab))->mtab)
  507.       return;
  508.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  509. }
  510.  
  511. POFactory(POFactory* fromObj)
  512. {
  513.    if (*(void**)this != 
  514.        ((somParentMtabStructPtr)
  515.         (POFactoryCClassData.parentMtab))->mtab)
  516.       return;
  517.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  518. }
  519.  
  520. POFactory(const POFactory* fromObj)
  521. {
  522.    if (*(void**)this != 
  523.        ((somParentMtabStructPtr)
  524.         (POFactoryCClassData.parentMtab))->mtab)
  525.       return;
  526.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  527. }
  528.  
  529.  
  530. /* method: retrieveAll */
  531. _IDL_SEQUENCE_PersistentObject   retrieveAll(Environment *ev)
  532. {
  533.    return SOM_ResolveD(this,POFactory,POFactory,retrieveAll)
  534.     (this, ev);
  535. }
  536.  
  537.  
  538. /* method: select */
  539. _IDL_SEQUENCE_PersistentObject   select(Environment *ev,
  540.         string clause)
  541. {
  542.    return SOM_ResolveD(this,POFactory,POFactory,select)
  543.     (this, ev,clause);
  544. }
  545.  
  546.  
  547. /*
  548.  * Reintroduce inherited methods
  549.  */
  550.  
  551. /* method: _get_somDataAlignment */
  552. long   _get_somDataAlignment()
  553. {
  554.    return SOM_ResolveD(this,POFactory,SOMClass,_get_somDataAlignment)
  555.     (this);
  556. }
  557.  
  558.  
  559. /* nonstatic method: _get_somInstanceDataOffsets */
  560. SOMClass_somOffsets   _get_somInstanceDataOffsets()
  561. {
  562.    return SOM_ResolveD(this,POFactory,SOMClass,_get_somInstanceDataOffsets)
  563.     (this);
  564. }
  565.  
  566.  
  567. /* nonstatic method: _get_somDirectInitClasses */
  568. SOMClass_SOMClassSequence   _get_somDirectInitClasses()
  569. {
  570.    return SOM_ResolveD(this,POFactory,SOMClass,_get_somDirectInitClasses)
  571.     (this);
  572. }
  573.  
  574.  
  575. /* nonstatic method: _set_somDirectInitClasses */
  576. void   _set_somDirectInitClasses(SOMClass_SOMClassSequence* somDirectInitClasses)
  577. {
  578.    SOM_ResolveD(this,POFactory,SOMClass,_set_somDirectInitClasses)
  579.     (this,somDirectInitClasses);
  580. }
  581.  
  582.  
  583. /* method: somNew */
  584. PersistentObject*  somNew()
  585. {
  586.    return SOM_ResolveD(this,POFactory,SOMClass,somNew)
  587.     (this);
  588. }
  589.  
  590.  
  591. /* method: somNewNoInit */
  592. SOMObject*   somNewNoInit()
  593. {
  594.    return SOM_ResolveD(this,POFactory,SOMClass,somNewNoInit)
  595.     (this);
  596. }
  597.  
  598.  
  599. /* method: somRenew */
  600. SOMObject*   somRenew(void* obj)
  601. {
  602.    return SOM_ResolveD(this,POFactory,SOMClass,somRenew)
  603.     (this,obj);
  604. }
  605.  
  606.  
  607. /* method: somRenewNoInit */
  608. SOMObject*   somRenewNoInit(void* obj)
  609. {
  610.    return SOM_ResolveD(this,POFactory,SOMClass,somRenewNoInit)
  611.     (this,obj);
  612. }
  613.  
  614.  
  615. /* method: somRenewNoZero */
  616. SOMObject*   somRenewNoZero(void* obj)
  617. {
  618.    return SOM_ResolveD(this,POFactory,SOMClass,somRenewNoZero)
  619.     (this,obj);
  620. }
  621.  
  622.  
  623. /* method: somRenewNoInitNoZero */
  624. SOMObject*   somRenewNoInitNoZero(void* obj)
  625. {
  626.    return SOM_ResolveD(this,POFactory,SOMClass,somRenewNoInitNoZero)
  627.     (this,obj);
  628. }
  629.  
  630.  
  631. /* nonstatic method: somAllocate */
  632. string   somAllocate(long size)
  633. {
  634.    return SOM_ResolveD(this,POFactory,SOMClass,somAllocate)
  635.     (this,size);
  636. }
  637.  
  638.  
  639. /* nonstatic method: somDeallocate */
  640. void   somDeallocate(string memptr)
  641. {
  642.    SOM_ResolveD(this,POFactory,SOMClass,somDeallocate)
  643.     (this,memptr);
  644. }
  645.  
  646.  
  647. /* nonstatic method: _get_somClassAllocate */
  648. somMethodProc*   _get_somClassAllocate()
  649. {
  650.    return SOM_ResolveD(this,POFactory,SOMClass,_get_somClassAllocate)
  651.     (this);
  652. }
  653.  
  654.  
  655. /* nonstatic method: _get_somClassDeallocate */
  656. somMethodProc*   _get_somClassDeallocate()
  657. {
  658.    return SOM_ResolveD(this,POFactory,SOMClass,_get_somClassDeallocate)
  659.     (this);
  660. }
  661.  
  662.  
  663. /* method: somGetInstanceInitMask */
  664. somBooleanVector   somGetInstanceInitMask(somInitCtrl* ctrl)
  665. {
  666.    return SOM_ResolveD(this,POFactory,SOMClass,somGetInstanceInitMask)
  667.     (this,ctrl);
  668. }
  669.  
  670.  
  671. /* method: somGetInstanceDestructionMask */
  672. somBooleanVector   somGetInstanceDestructionMask(somDestructCtrl* ctrl)
  673. {
  674.    return SOM_ResolveD(this,POFactory,SOMClass,somGetInstanceDestructionMask)
  675.     (this,ctrl);
  676. }
  677.  
  678.  
  679. /* method: somGetInstanceAssignmentMask */
  680. somBooleanVector   somGetInstanceAssignmentMask(somAssignCtrl* ctrl)
  681. {
  682.    return SOM_ResolveD(this,POFactory,SOMClass,somGetInstanceAssignmentMask)
  683.     (this,ctrl);
  684. }
  685.  
  686.  
  687. /* method: somInitClass */
  688. void   somInitClass(string className,
  689.         SOMClass* parentClass,
  690.         long dataSize,
  691.         long maxStaticMethods,
  692.         long majorVersion,
  693.         long minorVersion)
  694. {
  695.    SOM_ResolveD(this,POFactory,SOMClass,somInitClass)
  696.     (this,className,parentClass,dataSize,maxStaticMethods,majorVersion,minorVersion);
  697. }
  698.  
  699.  
  700. /* method: somInitMIClass */
  701. void   somInitMIClass(long inherit_vars,
  702.         string className,
  703.         SOMClass_SOMClassSequence* parentClasses,
  704.         long dataSize,
  705.         long dataAlignment,
  706.         long maxStaticMethods,
  707.         long majorVersion,
  708.         long minorVersion)
  709. {
  710.    SOM_ResolveD(this,POFactory,SOMClass,somInitMIClass)
  711.     (this,inherit_vars,className,parentClasses,dataSize,dataAlignment,maxStaticMethods,majorVersion,minorVersion);
  712. }
  713.  
  714.  
  715. /* method: somAddStaticMethod */
  716. somMToken   somAddStaticMethod(somId methodId,
  717.         somId methodDescriptor,
  718.         somMethodPtr method,
  719.         somMethodPtr redispatchStub,
  720.         somMethodPtr applyStub)
  721. {
  722.    return SOM_ResolveD(this,POFactory,SOMClass,somAddStaticMethod)
  723.     (this,methodId,methodDescriptor,method,redispatchStub,applyStub);
  724. }
  725.  
  726.  
  727. /* method: somAddDynamicMethod */
  728. void   somAddDynamicMethod(somId methodId,
  729.         somId methodDescriptor,
  730.         somMethodPtr method,
  731.         somMethodPtr applyStub)
  732. {
  733.    SOM_ResolveD(this,POFactory,SOMClass,somAddDynamicMethod)
  734.     (this,methodId,methodDescriptor,method,applyStub);
  735. }
  736.  
  737.  
  738. /* method: somOverrideSMethod */
  739. void   somOverrideSMethod(somId methodId,
  740.         somMethodPtr method)
  741. {
  742.    SOM_ResolveD(this,POFactory,SOMClass,somOverrideSMethod)
  743.     (this,methodId,method);
  744. }
  745.  
  746.  
  747. /* method: somClassReady */
  748. void   somClassReady()
  749. {
  750.    SOM_ResolveD(this,POFactory,SOMClass,somClassReady)
  751.     (this);
  752. }
  753.  
  754.  
  755. /* method: somGetClassData */
  756. somClassDataStructure*   somGetClassData()
  757. {
  758.    return SOM_ResolveD(this,POFactory,SOMClass,somGetClassData)
  759.     (this);
  760. }
  761.  
  762.  
  763. /* method: somSetClassData */
  764. void   somSetClassData(somClassDataStructure* cds)
  765. {
  766.    SOM_ResolveD(this,POFactory,SOMClass,somSetClassData)
  767.     (this,cds);
  768. }
  769.  
  770.  
  771. /* method: somGetClassMtab */
  772. somMethodTab*   somGetClassMtab()
  773. {
  774.    return SOM_ResolveD(this,POFactory,SOMClass,somGetClassMtab)
  775.     (this);
  776. }
  777.  
  778.  
  779. /* method: somGetInstanceOffset */
  780. long   somGetInstanceOffset()
  781. {
  782.    return SOM_ResolveD(this,POFactory,SOMClass,somGetInstanceOffset)
  783.     (this);
  784. }
  785.  
  786.  
  787. /* method: somGetInstancePartSize */
  788. long   somGetInstancePartSize()
  789. {
  790.    return SOM_ResolveD(this,POFactory,SOMClass,somGetInstancePartSize)
  791.     (this);
  792. }
  793.  
  794.  
  795. /* method: somGetInstanceSize */
  796. long   somGetInstanceSize()
  797. {
  798.    return SOM_ResolveD(this,POFactory,SOMClass,somGetInstanceSize)
  799.     (this);
  800. }
  801.  
  802.  
  803. /* method: somGetInstanceToken */
  804. somDToken   somGetInstanceToken()
  805. {
  806.    return SOM_ResolveD(this,POFactory,SOMClass,somGetInstanceToken)
  807.     (this);
  808. }
  809.  
  810.  
  811. /* method: somGetMemberToken */
  812. somDToken   somGetMemberToken(long memberOffset,
  813.         somDToken instanceToken)
  814. {
  815.    return SOM_ResolveD(this,POFactory,SOMClass,somGetMemberToken)
  816.     (this,memberOffset,instanceToken);
  817. }
  818.  
  819.  
  820. /* method: somGetMethodData */
  821. boolean   somGetMethodData(somId methodId,
  822.         somMethodData* md)
  823. {
  824.    return SOM_ResolveD(this,POFactory,SOMClass,somGetMethodData)
  825.     (this,methodId,md);
  826. }
  827.  
  828.  
  829. /* method: somGetRdStub */
  830. somMethodProc*   somGetRdStub(somId methodId)
  831. {
  832.    return SOM_ResolveD(this,POFactory,SOMClass,somGetRdStub)
  833.     (this,methodId);
  834. }
  835.  
  836.  
  837. /* method: somGetMethodDescriptor */
  838. somId   somGetMethodDescriptor(somId methodId)
  839. {
  840.    return SOM_ResolveD(this,POFactory,SOMClass,somGetMethodDescriptor)
  841.     (this,methodId);
  842. }
  843.  
  844.  
  845. /* method: somGetMethodIndex */
  846. long   somGetMethodIndex(somId id)
  847. {
  848.    return SOM_ResolveD(this,POFactory,SOMClass,somGetMethodIndex)
  849.     (this,id);
  850. }
  851.  
  852.  
  853. /* method: somGetMethodToken */
  854. somMToken   somGetMethodToken(somId methodId)
  855. {
  856.    return SOM_ResolveD(this,POFactory,SOMClass,somGetMethodToken)
  857.     (this,methodId);
  858. }
  859.  
  860.  
  861. /* method: somGetName */
  862. string   somGetName()
  863. {
  864.    return SOM_ResolveD(this,POFactory,SOMClass,somGetName)
  865.     (this);
  866. }
  867.  
  868.  
  869. /* method: somGetNthMethodData */
  870. boolean   somGetNthMethodData(long n,
  871.         somMethodData* md)
  872. {
  873.    return SOM_ResolveD(this,POFactory,SOMClass,somGetNthMethodData)
  874.     (this,n,md);
  875. }
  876.  
  877.  
  878. /* method: somGetNthMethodInfo */
  879. somId   somGetNthMethodInfo(long n,
  880.         somId* descriptor)
  881. {
  882.    return SOM_ResolveD(this,POFactory,SOMClass,somGetNthMethodInfo)
  883.     (this,n,descriptor);
  884. }
  885.  
  886.  
  887. /* method: somGetNumMethods */
  888. long   somGetNumMethods()
  889. {
  890.    return SOM_ResolveD(this,POFactory,SOMClass,somGetNumMethods)
  891.     (this);
  892. }
  893.  
  894.  
  895. /* method: somGetNumStaticMethods */
  896. long   somGetNumStaticMethods()
  897. {
  898.    return SOM_ResolveD(this,POFactory,SOMClass,somGetNumStaticMethods)
  899.     (this);
  900. }
  901.  
  902.  
  903. /* method: somGetParent */
  904. SOMClass*   somGetParent()
  905. {
  906.    return SOM_ResolveD(this,POFactory,SOMClass,somGetParent)
  907.     (this);
  908. }
  909.  
  910.  
  911. /* method: somGetParents */
  912. SOMClass_SOMClassSequence   somGetParents()
  913. {
  914.    return SOM_ResolveD(this,POFactory,SOMClass,somGetParents)
  915.     (this);
  916. }
  917.  
  918.  
  919. /* method: somGetPClsMtab */
  920. somMethodTabs   somGetPClsMtab()
  921. {
  922.    return SOM_ResolveD(this,POFactory,SOMClass,somGetPClsMtab)
  923.     (this);
  924. }
  925.  
  926.  
  927. /* method: somGetPClsMtabs */
  928. somMethodTabs   somGetPClsMtabs()
  929. {
  930.    return SOM_ResolveD(this,POFactory,SOMClass,somGetPClsMtabs)
  931.     (this);
  932. }
  933.  
  934.  
  935. /* method: somGetVersionNumbers */
  936. void   somGetVersionNumbers(long* majorVersion,
  937.         long* minorVersion)
  938. {
  939.    SOM_ResolveD(this,POFactory,SOMClass,somGetVersionNumbers)
  940.     (this,majorVersion,minorVersion);
  941. }
  942.  
  943.  
  944. /* method: somSetMethodDescriptor */
  945. boolean   somSetMethodDescriptor(somId methodId,
  946.         somId descriptor)
  947. {
  948.    return SOM_ResolveD(this,POFactory,SOMClass,somSetMethodDescriptor)
  949.     (this,methodId,descriptor);
  950. }
  951.  
  952.  
  953. /* method: somFindMethod */
  954. boolean   somFindMethod(somId methodId,
  955.         somMethodPtr* m)
  956. {
  957.    return SOM_ResolveD(this,POFactory,SOMClass,somFindMethod)
  958.     (this,methodId,m);
  959. }
  960.  
  961.  
  962. /* method: somFindMethodOk */
  963. boolean   somFindMethodOk(somId methodId,
  964.         somMethodPtr* m)
  965. {
  966.    return SOM_ResolveD(this,POFactory,SOMClass,somFindMethodOk)
  967.     (this,methodId,m);
  968. }
  969.  
  970.  
  971. /* method: somFindSMethod */
  972. somMethodPtr   somFindSMethod(somId methodId)
  973. {
  974.    return SOM_ResolveD(this,POFactory,SOMClass,somFindSMethod)
  975.     (this,methodId);
  976. }
  977.  
  978.  
  979. /* method: somFindSMethodOk */
  980. somMethodPtr   somFindSMethodOk(somId methodId)
  981. {
  982.    return SOM_ResolveD(this,POFactory,SOMClass,somFindSMethodOk)
  983.     (this,methodId);
  984. }
  985.  
  986.  
  987. /* method: somLookupMethod */
  988. somMethodPtr   somLookupMethod(somId methodId)
  989. {
  990.    return SOM_ResolveD(this,POFactory,SOMClass,somLookupMethod)
  991.     (this,methodId);
  992. }
  993.  
  994.  
  995. /* method: somCheckVersion */
  996. boolean   somCheckVersion(long majorVersion,
  997.         long minorVersion)
  998. {
  999.    return SOM_ResolveD(this,POFactory,SOMClass,somCheckVersion)
  1000.     (this,majorVersion,minorVersion);
  1001. }
  1002.  
  1003.  
  1004. /* method: somDescendedFrom */
  1005. boolean   somDescendedFrom(SOMClass* aClassObj)
  1006. {
  1007.    return SOM_ResolveD(this,POFactory,SOMClass,somDescendedFrom)
  1008.     (this,aClassObj);
  1009. }
  1010.  
  1011.  
  1012. /* method: somSupportsMethod */
  1013. boolean   somSupportsMethod(somId mId)
  1014. {
  1015.    return SOM_ResolveD(this,POFactory,SOMClass,somSupportsMethod)
  1016.     (this,mId);
  1017. }
  1018.  
  1019.  
  1020. /* method: somDefinedMethod */
  1021. somMethodPtr   somDefinedMethod(somMToken method)
  1022. {
  1023.    return SOM_ResolveD(this,POFactory,SOMClass,somDefinedMethod)
  1024.     (this,method);
  1025. }
  1026.  
  1027.  
  1028. /* method: somOverrideMtab */
  1029. void   somOverrideMtab()
  1030. {
  1031.    SOM_ResolveD(this,POFactory,SOMClass,somOverrideMtab)
  1032.     (this);
  1033. }
  1034.  
  1035.  
  1036. /* initializer method: somDefaultInit */
  1037. void   somDefaultInit(somInitCtrl* ctrl)
  1038. {
  1039.    SOM_ResolveD(this,POFactory,SOMObject,somDefaultInit)
  1040.     (this,ctrl);
  1041. }
  1042.  
  1043.  
  1044. /* method: somDestruct */
  1045. void   somDestruct(octet doFree,
  1046.         somDestructCtrl* ctrl)
  1047. {
  1048.    SOM_ResolveD(this,POFactory,SOMObject,somDestruct)
  1049.     (this,doFree,ctrl);
  1050. }
  1051.  
  1052.  
  1053. /* initializer method: somDefaultCopyInit */
  1054. void   somDefaultCopyInit(somInitCtrl* ctrl,
  1055.         SOMObject* fromObj)
  1056. {
  1057.    SOM_ResolveD(this,POFactory,SOMObject,somDefaultCopyInit)
  1058.     (this,ctrl,fromObj);
  1059. }
  1060.  
  1061.  
  1062. /* method: somDefaultAssign */
  1063. POFactory*  somDefaultAssign(somAssignCtrl* ctrl,
  1064.         SOMObject* fromObj)
  1065. {
  1066.    return SOM_ResolveD(this,POFactory,SOMObject,somDefaultAssign)
  1067.     (this,ctrl,fromObj);
  1068. }
  1069.  
  1070.  
  1071. /* initializer method: somDefaultConstCopyInit */
  1072. void   somDefaultConstCopyInit(somInitCtrl* ctrl,
  1073.         SOMObject* fromObj)
  1074. {
  1075.    SOM_ResolveD(this,POFactory,SOMObject,somDefaultConstCopyInit)
  1076.     (this,ctrl,fromObj);
  1077. }
  1078.  
  1079.  
  1080. /* initializer method: somDefaultVCopyInit */
  1081. void   somDefaultVCopyInit(somInitCtrl* ctrl,
  1082.         SOMObject* fromObj)
  1083. {
  1084.    SOM_ResolveD(this,POFactory,SOMObject,somDefaultVCopyInit)
  1085.     (this,ctrl,fromObj);
  1086. }
  1087.  
  1088.  
  1089. /* initializer method: somDefaultConstVCopyInit */
  1090. void   somDefaultConstVCopyInit(somInitCtrl* ctrl,
  1091.         SOMObject* fromObj)
  1092. {
  1093.    SOM_ResolveD(this,POFactory,SOMObject,somDefaultConstVCopyInit)
  1094.     (this,ctrl,fromObj);
  1095. }
  1096.  
  1097.  
  1098. /* method: somDefaultConstAssign */
  1099. POFactory*  somDefaultConstAssign(somAssignCtrl* ctrl,
  1100.         SOMObject* fromObj)
  1101. {
  1102.    return SOM_ResolveD(this,POFactory,SOMObject,somDefaultConstAssign)
  1103.     (this,ctrl,fromObj);
  1104. }
  1105.  
  1106.  
  1107. /* method: somDefaultVAssign */
  1108. POFactory*  somDefaultVAssign(somAssignCtrl* ctrl,
  1109.         SOMObject* fromObj)
  1110. {
  1111.    return SOM_ResolveD(this,POFactory,SOMObject,somDefaultVAssign)
  1112.     (this,ctrl,fromObj);
  1113. }
  1114.  
  1115.  
  1116. /* method: somDefaultConstVAssign */
  1117. POFactory*  somDefaultConstVAssign(somAssignCtrl* ctrl,
  1118.         SOMObject* fromObj)
  1119. {
  1120.    return SOM_ResolveD(this,POFactory,SOMObject,somDefaultConstVAssign)
  1121.     (this,ctrl,fromObj);
  1122. }
  1123.  
  1124.  
  1125. /* method: somInit */
  1126. void   somInit()
  1127. {
  1128.    SOM_ResolveD(this,POFactory,SOMObject,somInit)
  1129.     (this);
  1130. }
  1131.  
  1132.  
  1133. /* method: somFree */
  1134. void   somFree()
  1135. {
  1136.    SOM_ResolveD(this,POFactory,SOMObject,somFree)
  1137.     (this);
  1138. }
  1139.  
  1140.  
  1141. /* method: somUninit */
  1142. void   somUninit()
  1143. {
  1144.    SOM_ResolveD(this,POFactory,SOMObject,somUninit)
  1145.     (this);
  1146. }
  1147.  
  1148.  
  1149. /* method: somGetClass */
  1150. SOMClass*   somGetClass()
  1151. {
  1152.    return SOM_ResolveD(this,POFactory,SOMObject,somGetClass)
  1153.     (this);
  1154. }
  1155.  
  1156.  
  1157. /* method: somGetClassName */
  1158. string   somGetClassName()
  1159. {
  1160.    return SOM_ResolveD(this,POFactory,SOMObject,somGetClassName)
  1161.     (this);
  1162. }
  1163.  
  1164.  
  1165. /* method: somGetSize */
  1166. long   somGetSize()
  1167. {
  1168.    return SOM_ResolveD(this,POFactory,SOMObject,somGetSize)
  1169.     (this);
  1170. }
  1171.  
  1172.  
  1173. /* method: somIsA */
  1174. boolean   somIsA(SOMClass* aClassObj)
  1175. {
  1176.    return SOM_ResolveD(this,POFactory,SOMObject,somIsA)
  1177.     (this,aClassObj);
  1178. }
  1179.  
  1180.  
  1181. /* method: somIsInstanceOf */
  1182. boolean   somIsInstanceOf(SOMClass* aClassObj)
  1183. {
  1184.    return SOM_ResolveD(this,POFactory,SOMObject,somIsInstanceOf)
  1185.     (this,aClassObj);
  1186. }
  1187.  
  1188.  
  1189. /* method: somRespondsTo */
  1190. boolean   somRespondsTo(somId mId)
  1191. {
  1192.    return SOM_ResolveD(this,POFactory,SOMObject,somRespondsTo)
  1193.     (this,mId);
  1194. }
  1195.  
  1196.  
  1197. /* va_list method: somDispatch */
  1198. /* the va_list invocation form */
  1199. boolean   POFactory_somDispatch(somToken* retValue,
  1200.         somId methodId,
  1201.         va_list ap)
  1202. {
  1203. return SOM_ResolveD(this,POFactory,SOMObject,somDispatch)
  1204.     (this,retValue,methodId,ap);
  1205. }
  1206.  
  1207. /* the varargs invocation form */
  1208. boolean   somDispatch(somToken* retValue,
  1209.         somId methodId,
  1210.         ...)
  1211. {
  1212.    va_list ap;
  1213.    va_start(ap, methodId);
  1214.    boolean __somResult = 
  1215.       SOM_ResolveD(this,POFactory,SOMObject,somDispatch)
  1216.     (this,retValue,methodId,ap);
  1217.    va_end(ap);
  1218.    return __somResult;
  1219. }
  1220.  
  1221.  
  1222. /* va_list method: somClassDispatch */
  1223. /* the va_list invocation form */
  1224. boolean   POFactory_somClassDispatch(SOMClass* clsObj,
  1225.         somToken* retValue,
  1226.         somId methodId,
  1227.         va_list ap)
  1228. {
  1229. return SOM_ResolveD(this,POFactory,SOMObject,somClassDispatch)
  1230.     (this,clsObj,retValue,methodId,ap);
  1231. }
  1232.  
  1233. /* the varargs invocation form */
  1234. boolean   somClassDispatch(SOMClass* clsObj,
  1235.         somToken* retValue,
  1236.         somId methodId,
  1237.         ...)
  1238. {
  1239.    va_list ap;
  1240.    va_start(ap, methodId);
  1241.    boolean __somResult = 
  1242.       SOM_ResolveD(this,POFactory,SOMObject,somClassDispatch)
  1243.     (this,clsObj,retValue,methodId,ap);
  1244.    va_end(ap);
  1245.    return __somResult;
  1246. }
  1247.  
  1248.  
  1249. /* method: somCastObj */
  1250. boolean   somCastObj(SOMClass* cls)
  1251. {
  1252.    return SOM_ResolveD(this,POFactory,SOMObject,somCastObj)
  1253.     (this,cls);
  1254. }
  1255.  
  1256.  
  1257. /* method: somResetObj */
  1258. boolean   somResetObj()
  1259. {
  1260.    return SOM_ResolveD(this,POFactory,SOMObject,somResetObj)
  1261.     (this);
  1262. }
  1263.  
  1264.  
  1265. /* method: somPrintSelf */
  1266. SOMObject*   somPrintSelf()
  1267. {
  1268.    return SOM_ResolveD(this,POFactory,SOMObject,somPrintSelf)
  1269.     (this);
  1270. }
  1271.  
  1272.  
  1273. /* method: somDumpSelf */
  1274. void   somDumpSelf(long level)
  1275. {
  1276.    SOM_ResolveD(this,POFactory,SOMObject,somDumpSelf)
  1277.     (this,level);
  1278. }
  1279.  
  1280.  
  1281. /* method: somDumpSelfInt */
  1282. void   somDumpSelfInt(long level)
  1283. {
  1284.    SOM_ResolveD(this,POFactory,SOMObject,somDumpSelfInt)
  1285.     (this,level);
  1286. }
  1287.  
  1288.  
  1289.  
  1290. };   /* POFactory */
  1291.  
  1292.  
  1293.  
  1294. #endif       /* SOM_POFactory_xh */
  1295.  
  1296. #ifndef SOM_PersistentObject_xh
  1297. #define SOM_PersistentObject_xh
  1298.  
  1299. class PersistentObject;
  1300.  
  1301. #define PersistentObject_MajorVersion 0
  1302. #define PersistentObject_MinorVersion 0
  1303.  
  1304. /* C++ SOM defs */
  1305. #include <somcls.xh>
  1306. #include <somcm.xh>
  1307.  
  1308. /* C++ parent defs */
  1309. #ifndef SOM_SOMObject_xh
  1310. #include <somobj.xh>
  1311. #endif
  1312.  
  1313. #ifndef PersistentObject_API
  1314. #define PersistentObject_API
  1315. /*
  1316.  * -- The Class API
  1317.  */
  1318.  
  1319. /*
  1320.  * Start of user-defined types:
  1321.  */
  1322.  
  1323. /*
  1324.  * End of user-defined types.
  1325.  */
  1326.  
  1327. /* A procedure to create the PersistentObject Class */
  1328. class POFactory;
  1329. SOMEXTERN
  1330. #if (defined(SOM_Module_spersist_Source) || defined(PersistentObject_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_PersistentObject))
  1331. WIN32_DLLEXPORT
  1332. #else
  1333. WIN32_DLLIMPORT
  1334. #endif
  1335. POFactory * SOMLINK PersistentObjectNewClass(
  1336.         integer4,
  1337.         integer4 );
  1338.  
  1339. /* The API to the PersistentObject class object, and the methods it introduces. */
  1340. SOMEXTERN struct PersistentObjectClassDataStructure {
  1341.     POFactory *classObject;
  1342.     somMToken add;
  1343.     somMToken update;
  1344.     somMToken del;
  1345.     somMToken retrieve;
  1346. }
  1347. #if !(defined(SOM_Module_spersist_Source) || defined(PersistentObject_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_PersistentObject))
  1348. WIN32_DLLIMPORT
  1349. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  1350. WIN32_DLLEXPORT
  1351. #endif
  1352. SOMDLINK PersistentObjectClassData;
  1353. #define _PersistentObject PersistentObjectClassData.classObject
  1354.  
  1355. /* The API to parentMtabs for PersistentObject, and the instance data it introduces. */
  1356. SOMEXTERN struct PersistentObjectCClassDataStructure {
  1357.     somMethodTabs parentMtab;
  1358.     somDToken              instanceDataToken;
  1359. }
  1360. #if !(defined(SOM_Module_spersist_Source) || defined(PersistentObject_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_PersistentObject))
  1361. WIN32_DLLIMPORT
  1362. #elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
  1363. WIN32_DLLEXPORT
  1364. #endif
  1365. SOMDLINK PersistentObjectCClassData;
  1366.  
  1367. /*
  1368.  * -- Typedefs for PersistentObject Method Procedures
  1369.  */
  1370. extern "C" {
  1371. typedef void   SOMLINK somTP_PersistentObject_add(PersistentObject *somSelf, Environment *ev);
  1372. typedef somTP_PersistentObject_add *somTD_PersistentObject_add;
  1373. typedef void   SOMLINK somTP_PersistentObject_update(PersistentObject *somSelf, Environment *ev);
  1374. typedef somTP_PersistentObject_update *somTD_PersistentObject_update;
  1375. typedef void   SOMLINK somTP_PersistentObject_del(PersistentObject *somSelf, Environment *ev);
  1376. typedef somTP_PersistentObject_del *somTD_PersistentObject_del;
  1377. typedef void   SOMLINK somTP_PersistentObject_retrieve(PersistentObject *somSelf, Environment *ev);
  1378. typedef somTP_PersistentObject_retrieve *somTD_PersistentObject_retrieve;
  1379.  
  1380. /*
  1381.  * -- Typedefs for Reintroduced Wrapper Methods
  1382.  */
  1383. typedef void   SOMLINK somTP_PersistentObject_somDefaultInit(PersistentObject *somSelf,
  1384.         somInitCtrl* ctrl);
  1385. typedef somTP_PersistentObject_somDefaultInit *somTD_PersistentObject_somDefaultInit;
  1386. typedef void   SOMLINK somTP_PersistentObject_somDestruct(PersistentObject *somSelf,
  1387.         octet doFree,
  1388.         somDestructCtrl* ctrl);
  1389. typedef somTP_PersistentObject_somDestruct *somTD_PersistentObject_somDestruct;
  1390. typedef void   SOMLINK somTP_PersistentObject_somDefaultCopyInit(PersistentObject *somSelf,
  1391.         somInitCtrl* ctrl,
  1392.         SOMObject* fromObj);
  1393. typedef somTP_PersistentObject_somDefaultCopyInit *somTD_PersistentObject_somDefaultCopyInit;
  1394. typedef PersistentObject*   SOMLINK somTP_PersistentObject_somDefaultAssign(PersistentObject *somSelf,
  1395.         somAssignCtrl* ctrl,
  1396.         SOMObject* fromObj);
  1397. typedef somTP_PersistentObject_somDefaultAssign *somTD_PersistentObject_somDefaultAssign;
  1398. typedef void   SOMLINK somTP_PersistentObject_somDefaultConstCopyInit(PersistentObject *somSelf,
  1399.         somInitCtrl* ctrl,
  1400.         SOMObject* fromObj);
  1401. typedef somTP_PersistentObject_somDefaultConstCopyInit *somTD_PersistentObject_somDefaultConstCopyInit;
  1402. typedef void   SOMLINK somTP_PersistentObject_somDefaultVCopyInit(PersistentObject *somSelf,
  1403.         somInitCtrl* ctrl,
  1404.         SOMObject* fromObj);
  1405. typedef somTP_PersistentObject_somDefaultVCopyInit *somTD_PersistentObject_somDefaultVCopyInit;
  1406. typedef void   SOMLINK somTP_PersistentObject_somDefaultConstVCopyInit(PersistentObject *somSelf,
  1407.         somInitCtrl* ctrl,
  1408.         SOMObject* fromObj);
  1409. typedef somTP_PersistentObject_somDefaultConstVCopyInit *somTD_PersistentObject_somDefaultConstVCopyInit;
  1410. typedef PersistentObject*   SOMLINK somTP_PersistentObject_somDefaultConstAssign(PersistentObject *somSelf,
  1411.         somAssignCtrl* ctrl,
  1412.         SOMObject* fromObj);
  1413. typedef somTP_PersistentObject_somDefaultConstAssign *somTD_PersistentObject_somDefaultConstAssign;
  1414. typedef PersistentObject*   SOMLINK somTP_PersistentObject_somDefaultVAssign(PersistentObject *somSelf,
  1415.         somAssignCtrl* ctrl,
  1416.         SOMObject* fromObj);
  1417. typedef somTP_PersistentObject_somDefaultVAssign *somTD_PersistentObject_somDefaultVAssign;
  1418. typedef PersistentObject*   SOMLINK somTP_PersistentObject_somDefaultConstVAssign(PersistentObject *somSelf,
  1419.         somAssignCtrl* ctrl,
  1420.         SOMObject* fromObj);
  1421. typedef somTP_PersistentObject_somDefaultConstVAssign *somTD_PersistentObject_somDefaultConstVAssign;
  1422. typedef void   SOMLINK somTP_PersistentObject_somInit(PersistentObject *somSelf);
  1423. typedef somTP_PersistentObject_somInit *somTD_PersistentObject_somInit;
  1424. typedef void   SOMLINK somTP_PersistentObject_somFree(PersistentObject *somSelf);
  1425. typedef somTP_PersistentObject_somFree *somTD_PersistentObject_somFree;
  1426. typedef void   SOMLINK somTP_PersistentObject_somUninit(PersistentObject *somSelf);
  1427. typedef somTP_PersistentObject_somUninit *somTD_PersistentObject_somUninit;
  1428. typedef POFactory*   SOMLINK somTP_PersistentObject_somGetClass(PersistentObject *somSelf);
  1429. typedef somTP_PersistentObject_somGetClass *somTD_PersistentObject_somGetClass;
  1430. typedef string   SOMLINK somTP_PersistentObject_somGetClassName(PersistentObject *somSelf);
  1431. typedef somTP_PersistentObject_somGetClassName *somTD_PersistentObject_somGetClassName;
  1432. typedef long   SOMLINK somTP_PersistentObject_somGetSize(PersistentObject *somSelf);
  1433. typedef somTP_PersistentObject_somGetSize *somTD_PersistentObject_somGetSize;
  1434. typedef boolean   SOMLINK somTP_PersistentObject_somIsA(PersistentObject *somSelf,
  1435.         SOMClass* aClassObj);
  1436. typedef somTP_PersistentObject_somIsA *somTD_PersistentObject_somIsA;
  1437. typedef boolean   SOMLINK somTP_PersistentObject_somIsInstanceOf(PersistentObject *somSelf,
  1438.         SOMClass* aClassObj);
  1439. typedef somTP_PersistentObject_somIsInstanceOf *somTD_PersistentObject_somIsInstanceOf;
  1440. typedef boolean   SOMLINK somTP_PersistentObject_somRespondsTo(PersistentObject *somSelf,
  1441.         somId mId);
  1442. typedef somTP_PersistentObject_somRespondsTo *somTD_PersistentObject_somRespondsTo;
  1443. typedef boolean   SOMLINK somTP_PersistentObject_somDispatch(PersistentObject *somSelf,
  1444.         somToken* retValue,
  1445.         somId methodId,
  1446.         va_list ap);
  1447. typedef somTP_PersistentObject_somDispatch *somTD_PersistentObject_somDispatch;
  1448. typedef boolean   SOMLINK somTP_PersistentObject_somClassDispatch(PersistentObject *somSelf,
  1449.         SOMClass* clsObj,
  1450.         somToken* retValue,
  1451.         somId methodId,
  1452.         va_list ap);
  1453. typedef somTP_PersistentObject_somClassDispatch *somTD_PersistentObject_somClassDispatch;
  1454. typedef boolean   SOMLINK somTP_PersistentObject_somCastObj(PersistentObject *somSelf,
  1455.         SOMClass* cls);
  1456. typedef somTP_PersistentObject_somCastObj *somTD_PersistentObject_somCastObj;
  1457. typedef boolean   SOMLINK somTP_PersistentObject_somResetObj(PersistentObject *somSelf);
  1458. typedef somTP_PersistentObject_somResetObj *somTD_PersistentObject_somResetObj;
  1459. typedef SOMObject*   SOMLINK somTP_PersistentObject_somPrintSelf(PersistentObject *somSelf);
  1460. typedef somTP_PersistentObject_somPrintSelf *somTD_PersistentObject_somPrintSelf;
  1461. typedef void   SOMLINK somTP_PersistentObject_somDumpSelf(PersistentObject *somSelf,
  1462.         long level);
  1463. typedef somTP_PersistentObject_somDumpSelf *somTD_PersistentObject_somDumpSelf;
  1464. typedef void   SOMLINK somTP_PersistentObject_somDumpSelfInt(PersistentObject *somSelf,
  1465.         long level);
  1466. typedef somTP_PersistentObject_somDumpSelfInt *somTD_PersistentObject_somDumpSelfInt;
  1467. }
  1468.  
  1469. #endif /* PersistentObject_API */
  1470.  
  1471.  
  1472. /*
  1473.  * -- This emitter believes that method thunks are unavailable,
  1474.  * -- so somResolve will be called.
  1475.  */
  1476. #undef somresolve_
  1477. #define somresolve_(obj,mToken) (somResolve(obj,mToken))
  1478.  
  1479. /*
  1480.  * -- The C++ Wrapper Class for PersistentObject
  1481.  */
  1482. class PersistentObject : public SOMObject
  1483. {
  1484. public:
  1485.  
  1486. // PersistentObject::new creates the class object if necessary, and then uses somNewNoInit
  1487. // to allocate memory and create the object. Initialization is in ctors.
  1488. void *operator new(size_t)
  1489. {
  1490.    if (!_PersistentObject) PersistentObjectNewClass(PersistentObject_MajorVersion,PersistentObject_MinorVersion);
  1491.    return (void*)
  1492.       SOM_Resolve(_PersistentObject,SOMClass,somNewNoInit)
  1493.          ((SOMClass *)((void*)_PersistentObject));
  1494. }
  1495.  
  1496. // PersistentObject::delete uses somDestruct.
  1497. void operator delete(void * obj)
  1498. {
  1499.    if (obj && *(void**)obj) {
  1500.       SOM_Resolve(obj,SOMObject,somDestruct)
  1501.          ((SOMObject*)obj, 1, 0);
  1502.    }
  1503. }
  1504.  
  1505. PersistentObject()
  1506. {
  1507.    if (*(void**)this != 
  1508.        ((somParentMtabStructPtr)
  1509.         (PersistentObjectCClassData.parentMtab))->mtab)
  1510.       return;
  1511.    ((SOMObject*)((void*)this))->somDefaultInit(0);
  1512. }
  1513.  
  1514. PersistentObject(PersistentObject* fromObj)
  1515. {
  1516.    if (*(void**)this != 
  1517.        ((somParentMtabStructPtr)
  1518.         (PersistentObjectCClassData.parentMtab))->mtab)
  1519.       return;
  1520.    ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
  1521. }
  1522.  
  1523. PersistentObject(const PersistentObject* fromObj)
  1524. {
  1525.    if (*(void**)this != 
  1526.        ((somParentMtabStructPtr)
  1527.         (PersistentObjectCClassData.parentMtab))->mtab)
  1528.       return;
  1529.    ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
  1530. }
  1531.  
  1532.  
  1533. /* method: add */
  1534. void   add(Environment *ev)
  1535. {
  1536.    SOM_ResolveD(this,PersistentObject,PersistentObject,add)
  1537.     (this, ev);
  1538. }
  1539.  
  1540.  
  1541. /* method: update */
  1542. void   update(Environment *ev)
  1543. {
  1544.    SOM_ResolveD(this,PersistentObject,PersistentObject,update)
  1545.     (this, ev);
  1546. }
  1547.  
  1548.  
  1549. /* method: del */
  1550. void   del(Environment *ev)
  1551. {
  1552.    SOM_ResolveD(this,PersistentObject,PersistentObject,del)
  1553.     (this, ev);
  1554. }
  1555.  
  1556.  
  1557. /* method: retrieve */
  1558. void   retrieve(Environment *ev)
  1559. {
  1560.    SOM_ResolveD(this,PersistentObject,PersistentObject,retrieve)
  1561.     (this, ev);
  1562. }
  1563.  
  1564.  
  1565. /*
  1566.  * Reintroduce inherited methods
  1567.  */
  1568.  
  1569. /* initializer method: somDefaultInit */
  1570. void   somDefaultInit(somInitCtrl* ctrl)
  1571. {
  1572.    SOM_ResolveD(this,PersistentObject,SOMObject,somDefaultInit)
  1573.     (this,ctrl);
  1574. }
  1575.  
  1576.  
  1577. /* method: somDestruct */
  1578. void   somDestruct(octet doFree,
  1579.         somDestructCtrl* ctrl)
  1580. {
  1581.    SOM_ResolveD(this,PersistentObject,SOMObject,somDestruct)
  1582.     (this,doFree,ctrl);
  1583. }
  1584.  
  1585.  
  1586. /* initializer method: somDefaultCopyInit */
  1587. void   somDefaultCopyInit(somInitCtrl* ctrl,
  1588.         SOMObject* fromObj)
  1589. {
  1590.    SOM_ResolveD(this,PersistentObject,SOMObject,somDefaultCopyInit)
  1591.     (this,ctrl,fromObj);
  1592. }
  1593.  
  1594.  
  1595. /* method: somDefaultAssign */
  1596. PersistentObject*  somDefaultAssign(somAssignCtrl* ctrl,
  1597.         SOMObject* fromObj)
  1598. {
  1599.    return SOM_ResolveD(this,PersistentObject,SOMObject,somDefaultAssign)
  1600.     (this,ctrl,fromObj);
  1601. }
  1602.  
  1603.  
  1604. /* initializer method: somDefaultConstCopyInit */
  1605. void   somDefaultConstCopyInit(somInitCtrl* ctrl,
  1606.         SOMObject* fromObj)
  1607. {
  1608.    SOM_ResolveD(this,PersistentObject,SOMObject,somDefaultConstCopyInit)
  1609.     (this,ctrl,fromObj);
  1610. }
  1611.  
  1612.  
  1613. /* initializer method: somDefaultVCopyInit */
  1614. void   somDefaultVCopyInit(somInitCtrl* ctrl,
  1615.         SOMObject* fromObj)
  1616. {
  1617.    SOM_ResolveD(this,PersistentObject,SOMObject,somDefaultVCopyInit)
  1618.     (this,ctrl,fromObj);
  1619. }
  1620.  
  1621.  
  1622. /* initializer method: somDefaultConstVCopyInit */
  1623. void   somDefaultConstVCopyInit(somInitCtrl* ctrl,
  1624.         SOMObject* fromObj)
  1625. {
  1626.    SOM_ResolveD(this,PersistentObject,SOMObject,somDefaultConstVCopyInit)
  1627.     (this,ctrl,fromObj);
  1628. }
  1629.  
  1630.  
  1631. /* method: somDefaultConstAssign */
  1632. PersistentObject*  somDefaultConstAssign(somAssignCtrl* ctrl,
  1633.         SOMObject* fromObj)
  1634. {
  1635.    return SOM_ResolveD(this,PersistentObject,SOMObject,somDefaultConstAssign)
  1636.     (this,ctrl,fromObj);
  1637. }
  1638.  
  1639.  
  1640. /* method: somDefaultVAssign */
  1641. PersistentObject*  somDefaultVAssign(somAssignCtrl* ctrl,
  1642.         SOMObject* fromObj)
  1643. {
  1644.    return SOM_ResolveD(this,PersistentObject,SOMObject,somDefaultVAssign)
  1645.     (this,ctrl,fromObj);
  1646. }
  1647.  
  1648.  
  1649. /* method: somDefaultConstVAssign */
  1650. PersistentObject*  somDefaultConstVAssign(somAssignCtrl* ctrl,
  1651.         SOMObject* fromObj)
  1652. {
  1653.    return SOM_ResolveD(this,PersistentObject,SOMObject,somDefaultConstVAssign)
  1654.     (this,ctrl,fromObj);
  1655. }
  1656.  
  1657.  
  1658. /* method: somInit */
  1659. void   somInit()
  1660. {
  1661.    SOM_ResolveD(this,PersistentObject,SOMObject,somInit)
  1662.     (this);
  1663. }
  1664.  
  1665.  
  1666. /* method: somFree */
  1667. void   somFree()
  1668. {
  1669.    SOM_ResolveD(this,PersistentObject,SOMObject,somFree)
  1670.     (this);
  1671. }
  1672.  
  1673.  
  1674. /* method: somUninit */
  1675. void   somUninit()
  1676. {
  1677.    SOM_ResolveD(this,PersistentObject,SOMObject,somUninit)
  1678.     (this);
  1679. }
  1680.  
  1681.  
  1682. /* method: somGetClass */
  1683. POFactory*  somGetClass()
  1684. {
  1685.    return SOM_ResolveD(this,PersistentObject,SOMObject,somGetClass)
  1686.     (this);
  1687. }
  1688.  
  1689.  
  1690. /* method: somGetClassName */
  1691. string   somGetClassName()
  1692. {
  1693.    return SOM_ResolveD(this,PersistentObject,SOMObject,somGetClassName)
  1694.     (this);
  1695. }
  1696.  
  1697.  
  1698. /* method: somGetSize */
  1699. long   somGetSize()
  1700. {
  1701.    return SOM_ResolveD(this,PersistentObject,SOMObject,somGetSize)
  1702.     (this);
  1703. }
  1704.  
  1705.  
  1706. /* method: somIsA */
  1707. boolean   somIsA(SOMClass* aClassObj)
  1708. {
  1709.    return SOM_ResolveD(this,PersistentObject,SOMObject,somIsA)
  1710.     (this,aClassObj);
  1711. }
  1712.  
  1713.  
  1714. /* method: somIsInstanceOf */
  1715. boolean   somIsInstanceOf(SOMClass* aClassObj)
  1716. {
  1717.    return SOM_ResolveD(this,PersistentObject,SOMObject,somIsInstanceOf)
  1718.     (this,aClassObj);
  1719. }
  1720.  
  1721.  
  1722. /* method: somRespondsTo */
  1723. boolean   somRespondsTo(somId mId)
  1724. {
  1725.    return SOM_ResolveD(this,PersistentObject,SOMObject,somRespondsTo)
  1726.     (this,mId);
  1727. }
  1728.  
  1729.  
  1730. /* va_list method: somDispatch */
  1731. /* the va_list invocation form */
  1732. boolean   PersistentObject_somDispatch(somToken* retValue,
  1733.         somId methodId,
  1734.         va_list ap)
  1735. {
  1736. return SOM_ResolveD(this,PersistentObject,SOMObject,somDispatch)
  1737.     (this,retValue,methodId,ap);
  1738. }
  1739.  
  1740. /* the varargs invocation form */
  1741. boolean   somDispatch(somToken* retValue,
  1742.         somId methodId,
  1743.         ...)
  1744. {
  1745.    va_list ap;
  1746.    va_start(ap, methodId);
  1747.    boolean __somResult = 
  1748.       SOM_ResolveD(this,PersistentObject,SOMObject,somDispatch)
  1749.     (this,retValue,methodId,ap);
  1750.    va_end(ap);
  1751.    return __somResult;
  1752. }
  1753.  
  1754.  
  1755. /* va_list method: somClassDispatch */
  1756. /* the va_list invocation form */
  1757. boolean   PersistentObject_somClassDispatch(SOMClass* clsObj,
  1758.         somToken* retValue,
  1759.         somId methodId,
  1760.         va_list ap)
  1761. {
  1762. return SOM_ResolveD(this,PersistentObject,SOMObject,somClassDispatch)
  1763.     (this,clsObj,retValue,methodId,ap);
  1764. }
  1765.  
  1766. /* the varargs invocation form */
  1767. boolean   somClassDispatch(SOMClass* clsObj,
  1768.         somToken* retValue,
  1769.         somId methodId,
  1770.         ...)
  1771. {
  1772.    va_list ap;
  1773.    va_start(ap, methodId);
  1774.    boolean __somResult = 
  1775.       SOM_ResolveD(this,PersistentObject,SOMObject,somClassDispatch)
  1776.     (this,clsObj,retValue,methodId,ap);
  1777.    va_end(ap);
  1778.    return __somResult;
  1779. }
  1780.  
  1781.  
  1782. /* method: somCastObj */
  1783. boolean   somCastObj(SOMClass* cls)
  1784. {
  1785.    return SOM_ResolveD(this,PersistentObject,SOMObject,somCastObj)
  1786.     (this,cls);
  1787. }
  1788.  
  1789.  
  1790. /* method: somResetObj */
  1791. boolean   somResetObj()
  1792. {
  1793.    return SOM_ResolveD(this,PersistentObject,SOMObject,somResetObj)
  1794.     (this);
  1795. }
  1796.  
  1797.  
  1798. /* method: somPrintSelf */
  1799. SOMObject*   somPrintSelf()
  1800. {
  1801.    return SOM_ResolveD(this,PersistentObject,SOMObject,somPrintSelf)
  1802.     (this);
  1803. }
  1804.  
  1805.  
  1806. /* method: somDumpSelf */
  1807. void   somDumpSelf(long level)
  1808. {
  1809.    SOM_ResolveD(this,PersistentObject,SOMObject,somDumpSelf)
  1810.     (this,level);
  1811. }
  1812.  
  1813.  
  1814. /* method: somDumpSelfInt */
  1815. void   somDumpSelfInt(long level)
  1816. {
  1817.    SOM_ResolveD(this,PersistentObject,SOMObject,somDumpSelfInt)
  1818.     (this,level);
  1819. }
  1820.  
  1821.  
  1822.  
  1823. };   /* PersistentObject */
  1824.  
  1825.  
  1826.  
  1827. #endif       /* SOM_PersistentObject_xh */
  1828.