home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cset21v5.zip / TOOLKT21 / C / OS2H / SOMOBJ.H < prev    next >
C/C++ Source or Header  |  1993-04-22  |  11KB  |  319 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: somobj.h.
  5.  * Generated using:
  6.  *     SOM Precompiler spc: 1.22
  7.  *     SOM Emitter emith: 1.11
  8.  */
  9.  
  10. /*
  11.  *  SOMObject: System Object Model root class
  12.  *  Copyright (c) International Business Machines Corporation
  13.  *                1991, 1992
  14.  */
  15.  
  16.  
  17. #ifndef somobj_h
  18. #define somobj_h
  19.  
  20.  
  21. #include <som.h>
  22.  
  23. /*
  24.  * Define the class name as an object type
  25.  */
  26. #ifndef SOMObject
  27. #define SOMObject SOMAny
  28. #endif
  29.  
  30. #define SOMObject_MajorVersion 1
  31. #define SOMObject_MinorVersion 1
  32.  
  33. /*
  34.  * External name shortening if required
  35.  */
  36. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  37. #define SOMObjectNewClass somobc
  38. #pragma linkage(somobc, system)
  39. #define SOMObjectClassData somobd
  40. #define SOMObjectCClassData somobx
  41. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  42. /*--------------Migration------------*/
  43. #define SOMObject_classObj SOMObjectClassData.classObject
  44. #define _SOMObject SOMObject_classObj
  45.  
  46. /*
  47.  * New and Renew macros for SOMObject
  48.  */
  49. #define _SOMObjectNew() (_somNew(SOMObjectClassData.classObject))
  50. #define SOMObjectNew() \
  51.     ( SOMObjectClassData.classObject \
  52.         ? _SOMObjectNew() \
  53.         : ( SOMObjectNewClass(SOMObject_MajorVersion, SOMObject_MinorVersion), _SOMObjectNew() ) )
  54. #define SOMObjectRenew(buf) \
  55.     ( _somRenew(SOMObjectClassData.classObject, buf) )
  56.  
  57. /*
  58.  * New Method: somFree
  59.  */
  60. typedef void    SOMLINK somTP_SOMObject_somFree(SOMObject *somSelf);
  61. #pragma linkage(somTP_SOMObject_somFree, system)
  62. typedef somTP_SOMObject_somFree *somTD_SOMObject_somFree;
  63. #define somMD_SOMObject_somFree "----"
  64. #define SOMObject_somFree(somSelf) \
  65.     (SOM_Resolve(somSelf, SOMObject, somFree) \
  66.     (somSelf))
  67. #define _somFree SOMObject_somFree
  68.  
  69. /*
  70.  * New Method: somInit
  71.  */
  72. typedef void    SOMLINK somTP_SOMObject_somInit(SOMObject *somSelf);
  73. #pragma linkage(somTP_SOMObject_somInit, system)
  74. typedef somTP_SOMObject_somInit *somTD_SOMObject_somInit;
  75. #define somMD_SOMObject_somInit "----"
  76. #define SOMObject_somInit(somSelf) \
  77.     (SOM_Resolve(somSelf, SOMObject, somInit) \
  78.     (somSelf))
  79. #define _somInit SOMObject_somInit
  80.  
  81. /*
  82.  * New Method: somUninit
  83.  */
  84. typedef void    SOMLINK somTP_SOMObject_somUninit(SOMObject *somSelf);
  85. #pragma linkage(somTP_SOMObject_somUninit, system)
  86. typedef somTP_SOMObject_somUninit *somTD_SOMObject_somUninit;
  87. #define somMD_SOMObject_somUninit "----"
  88. #define SOMObject_somUninit(somSelf) \
  89.     (SOM_Resolve(somSelf, SOMObject, somUninit) \
  90.     (somSelf))
  91. #define _somUninit SOMObject_somUninit
  92.  
  93. /*
  94.  * New Method: somGetClass
  95.  */
  96. typedef SOMClass *   SOMLINK somTP_SOMObject_somGetClass(SOMObject *somSelf);
  97. #pragma linkage(somTP_SOMObject_somGetClass, system)
  98. typedef somTP_SOMObject_somGetClass *somTD_SOMObject_somGetClass;
  99. #define somMD_SOMObject_somGetClass "----"
  100. #define SOMObject_somGetClass(somSelf) \
  101.     (SOM_Resolve(somSelf, SOMObject, somGetClass) \
  102.     (somSelf))
  103. #define _somGetClass SOMObject_somGetClass
  104.  
  105. /*
  106.  * New Method: somGetClassName
  107.  */
  108. typedef zString    SOMLINK somTP_SOMObject_somGetClassName(SOMObject *somSelf);
  109. #pragma linkage(somTP_SOMObject_somGetClassName, system)
  110. typedef somTP_SOMObject_somGetClassName *somTD_SOMObject_somGetClassName;
  111. #define somMD_SOMObject_somGetClassName "----"
  112. #define SOMObject_somGetClassName(somSelf) \
  113.     (SOM_Resolve(somSelf, SOMObject, somGetClassName) \
  114.     (somSelf))
  115. #define _somGetClassName SOMObject_somGetClassName
  116.  
  117. /*
  118.  * New Method: somGetSize
  119.  */
  120. typedef integer4    SOMLINK somTP_SOMObject_somGetSize(SOMObject *somSelf);
  121. #pragma linkage(somTP_SOMObject_somGetSize, system)
  122. typedef somTP_SOMObject_somGetSize *somTD_SOMObject_somGetSize;
  123. #define somMD_SOMObject_somGetSize "----"
  124. #define SOMObject_somGetSize(somSelf) \
  125.     (SOM_Resolve(somSelf, SOMObject, somGetSize) \
  126.     (somSelf))
  127. #define _somGetSize SOMObject_somGetSize
  128.  
  129. /*
  130.  * New Method: somIsA
  131.  */
  132. typedef int    SOMLINK somTP_SOMObject_somIsA(SOMObject *somSelf,
  133.         SOMClass *aClassObj);
  134. #pragma linkage(somTP_SOMObject_somIsA, system)
  135. typedef somTP_SOMObject_somIsA *somTD_SOMObject_somIsA;
  136. #define somMD_SOMObject_somIsA "----"
  137. #define SOMObject_somIsA(somSelf,aClassObj) \
  138.     (SOM_Resolve(somSelf, SOMObject, somIsA) \
  139.     (somSelf,aClassObj))
  140. #define _somIsA SOMObject_somIsA
  141.  
  142. /*
  143.  * New Method: somIsInstanceOf
  144.  */
  145. typedef int    SOMLINK somTP_SOMObject_somIsInstanceOf(SOMObject *somSelf,
  146.         SOMClass *aClassObj);
  147. #pragma linkage(somTP_SOMObject_somIsInstanceOf, system)
  148. typedef somTP_SOMObject_somIsInstanceOf *somTD_SOMObject_somIsInstanceOf;
  149. #define somMD_SOMObject_somIsInstanceOf "----"
  150. #define SOMObject_somIsInstanceOf(somSelf,aClassObj) \
  151.     (SOM_Resolve(somSelf, SOMObject, somIsInstanceOf) \
  152.     (somSelf,aClassObj))
  153. #define _somIsInstanceOf SOMObject_somIsInstanceOf
  154.  
  155. /*
  156.  * New Method: somRespondsTo
  157.  */
  158. typedef int    SOMLINK somTP_SOMObject_somRespondsTo(SOMObject *somSelf,
  159.         IN somId mId);
  160. #pragma linkage(somTP_SOMObject_somRespondsTo, system)
  161. typedef somTP_SOMObject_somRespondsTo *somTD_SOMObject_somRespondsTo;
  162. #define somMD_SOMObject_somRespondsTo "----"
  163. #define SOMObject_somRespondsTo(somSelf,mId) \
  164.     (SOM_Resolve(somSelf, SOMObject, somRespondsTo) \
  165.     (somSelf,mId))
  166. #define _somRespondsTo SOMObject_somRespondsTo
  167.  
  168. /*
  169.  * New Method: somDispatchV
  170.  */
  171. typedef void    SOMLINK somTP_SOMObject_somDispatchV(SOMObject *somSelf,
  172.         INOUT somId methodId,
  173.         INOUT somId descriptor,
  174.         ...);
  175. #pragma linkage(somTP_SOMObject_somDispatchV, system)
  176. typedef somTP_SOMObject_somDispatchV *somTD_SOMObject_somDispatchV;
  177. #define somMD_SOMObject_somDispatchV "----"
  178. #define SOMObject_somDispatchV(somSelf,methodId,descriptor,ap) \
  179.     (SOM_Resolve(somSelf, SOMObject, somDispatchV) \
  180.     (somSelf,methodId,descriptor,ap))
  181. #define va_SOMObject_somDispatchV ((somTD_SOMObject_somDispatchV) SOMObjectCClassData.somDispatchV)
  182. #define va_somDispatchV va_SOMObject_somDispatchV
  183. #define _somDispatchV va_SOMObject_somDispatchV
  184.  
  185. /*
  186.  * New Method: somDispatchL
  187.  */
  188. typedef integer4    SOMLINK somTP_SOMObject_somDispatchL(SOMObject *somSelf,
  189.         INOUT somId methodId,
  190.         INOUT somId descriptor,
  191.         ...);
  192. #pragma linkage(somTP_SOMObject_somDispatchL, system)
  193. typedef somTP_SOMObject_somDispatchL *somTD_SOMObject_somDispatchL;
  194. #define somMD_SOMObject_somDispatchL "----"
  195. #define SOMObject_somDispatchL(somSelf,methodId,descriptor,ap) \
  196.     (SOM_Resolve(somSelf, SOMObject, somDispatchL) \
  197.     (somSelf,methodId,descriptor,ap))
  198. #define va_SOMObject_somDispatchL ((somTD_SOMObject_somDispatchL) SOMObjectCClassData.somDispatchL)
  199. #define va_somDispatchL va_SOMObject_somDispatchL
  200. #define _somDispatchL va_SOMObject_somDispatchL
  201.  
  202. /*
  203.  * New Method: somDispatchA
  204.  */
  205. typedef void *   SOMLINK somTP_SOMObject_somDispatchA(SOMObject *somSelf,
  206.         INOUT somId methodId,
  207.         INOUT somId descriptor,
  208.         ...);
  209. #pragma linkage(somTP_SOMObject_somDispatchA, system)
  210. typedef somTP_SOMObject_somDispatchA *somTD_SOMObject_somDispatchA;
  211. #define somMD_SOMObject_somDispatchA "----"
  212. #define SOMObject_somDispatchA(somSelf,methodId,descriptor,ap) \
  213.     (SOM_Resolve(somSelf, SOMObject, somDispatchA) \
  214.     (somSelf,methodId,descriptor,ap))
  215. #define va_SOMObject_somDispatchA ((somTD_SOMObject_somDispatchA) SOMObjectCClassData.somDispatchA)
  216. #define va_somDispatchA va_SOMObject_somDispatchA
  217. #define _somDispatchA va_SOMObject_somDispatchA
  218.  
  219. /*
  220.  * New Method: somDispatchD
  221.  */
  222. typedef float8    SOMLINK somTP_SOMObject_somDispatchD(SOMObject *somSelf,
  223.         INOUT somId methodId,
  224.         INOUT somId descriptor,
  225.         ...);
  226. #pragma linkage(somTP_SOMObject_somDispatchD, system)
  227. typedef somTP_SOMObject_somDispatchD *somTD_SOMObject_somDispatchD;
  228. #define somMD_SOMObject_somDispatchD "----"
  229. #define SOMObject_somDispatchD(somSelf,methodId,descriptor,ap) \
  230.     (SOM_Resolve(somSelf, SOMObject, somDispatchD) \
  231.     (somSelf,methodId,descriptor,ap))
  232. #define va_SOMObject_somDispatchD ((somTD_SOMObject_somDispatchD) SOMObjectCClassData.somDispatchD)
  233. #define va_somDispatchD va_SOMObject_somDispatchD
  234. #define _somDispatchD va_SOMObject_somDispatchD
  235.  
  236. /*
  237.  * New Method: somPrintSelf
  238.  */
  239. typedef SOMAny *   SOMLINK somTP_SOMObject_somPrintSelf(SOMObject *somSelf);
  240. #pragma linkage(somTP_SOMObject_somPrintSelf, system)
  241. typedef somTP_SOMObject_somPrintSelf *somTD_SOMObject_somPrintSelf;
  242. #define somMD_SOMObject_somPrintSelf "----"
  243. #define SOMObject_somPrintSelf(somSelf) \
  244.     (SOM_Resolve(somSelf, SOMObject, somPrintSelf) \
  245.     (somSelf))
  246. #define _somPrintSelf SOMObject_somPrintSelf
  247.  
  248. /*
  249.  * New Method: somDumpSelf
  250.  */
  251. typedef void    SOMLINK somTP_SOMObject_somDumpSelf(SOMObject *somSelf,
  252.         int level);
  253. #pragma linkage(somTP_SOMObject_somDumpSelf, system)
  254. typedef somTP_SOMObject_somDumpSelf *somTD_SOMObject_somDumpSelf;
  255. #define somMD_SOMObject_somDumpSelf "----"
  256. #define SOMObject_somDumpSelf(somSelf,level) \
  257.     (SOM_Resolve(somSelf, SOMObject, somDumpSelf) \
  258.     (somSelf,level))
  259. #define _somDumpSelf SOMObject_somDumpSelf
  260.  
  261. /*
  262.  * New Method: somDumpSelfInt
  263.  */
  264. typedef void    SOMLINK somTP_SOMObject_somDumpSelfInt(SOMObject *somSelf,
  265.         int level);
  266. #pragma linkage(somTP_SOMObject_somDumpSelfInt, system)
  267. typedef somTP_SOMObject_somDumpSelfInt *somTD_SOMObject_somDumpSelfInt;
  268. #define somMD_SOMObject_somDumpSelfInt "----"
  269. #define SOMObject_somDumpSelfInt(somSelf,level) \
  270.     (SOM_Resolve(somSelf, SOMObject, somDumpSelfInt) \
  271.     (somSelf,level))
  272. #define _somDumpSelfInt SOMObject_somDumpSelfInt
  273.  
  274. /*
  275.  * Declare the class creation procedure
  276.  */
  277. SOMEXTERN SOMAny * SOMLINK SOMObjectNewClass(integer4 scemajorVersion,
  278.         integer4 sceminorVersion);
  279. #pragma linkage(SOMObjectNewClass, system)
  280.  
  281. /*
  282.  * Declare the class data structure
  283.  */
  284. SOMEXTERN struct SOMObjectClassDataStructure {
  285.     SOMAny *classObject;
  286.     somMToken somInit;
  287.     somMToken somUninit;
  288.     somMToken somFree;
  289.     somMToken somMissingMethod;
  290.     somMToken somGetClassName;
  291.     somMToken somGetClass;
  292.     somMToken somIsA;
  293.     somMToken somRespondsTo;
  294.     somMToken somIsInstanceOf;
  295.     somMToken somGetSize;
  296.     somMToken somDumpSelf;
  297.     somMToken somDumpSelfInt;
  298.     somMToken somPrintSelf;
  299.     somMToken somFreeObj;
  300.     somMToken somDispatchV;
  301.     somMToken somDispatchL;
  302.     somMToken somDispatchA;
  303.     somMToken somDispatchD;
  304. } SOMObjectClassData;
  305.  
  306. /*
  307.  * Declare the C specific class data structure
  308.  */
  309. SOMEXTERN struct SOMObjectCClassDataStructure {
  310.     somMethodTab *parentMtab;
  311.     somDToken instanceDataToken;
  312.     somMethodProc *somDispatchV;
  313.     somMethodProc *somDispatchL;
  314.     somMethodProc *somDispatchA;
  315.     somMethodProc *somDispatchD;
  316. } SOMObjectCClassData;
  317.  
  318. #endif       /* somobj_h */
  319.