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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: linear.h.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emith: 2.47
  8.  */
  9.  
  10. /*
  11.  *    COMPONENT_NAME: somr
  12.  * 
  13.  *    ORIGINS: 27
  14.  * 
  15.  * 
  16.  *    10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
  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_SOMRLinearizable_h
  26. #define SOM_SOMRLinearizable_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 SOMRLinearizable
  42. #define SOMRLinearizable SOMObject
  43. #endif
  44. /*
  45.  * This is a mixin class which defines the property "linearizable".
  46.  * Any object that supports the two methods "somrGetState" and
  47.  * "somrSetState" is linearizable.  This is an abstract base class
  48.  * and hence any derived class MUST OVERRIDE these two methods.
  49.  */
  50. #include <somobj.h>
  51.  
  52. /*
  53.  * Start of bindings for IDL types
  54.  */
  55.  
  56. #ifndef SOMClass
  57.     #define SOMClass SOMObject
  58. #endif /* SOMClass */
  59.  
  60. /*
  61.  * End of bindings for IDL types.
  62.  */
  63.  
  64. #define SOMRLinearizable_MajorVersion 2
  65. #define SOMRLinearizable_MinorVersion 1
  66.  
  67. /*
  68.  * External name shortening if required
  69.  */
  70. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  71. #define SOMRLinearizableNewClass c
  72. #pragma linkage(c, system)
  73. #define SOMRLinearizableClassData d
  74. #define SOMRLinearizableCClassData x
  75. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  76. /*--------------Migration------------*/
  77. #define SOMRLinearizable_classObj SOMRLinearizableClassData.classObject
  78. #define _SOMRLinearizable SOMRLinearizable_classObj
  79.  
  80. /*
  81.  * Declare the class creation procedure
  82.  */
  83. SOMEXTERN SOMClass * SOMLINK SOMRLinearizableNewClass(integer4 somtmajorVersion,
  84.         integer4 somtminorVersion);
  85. #pragma linkage(SOMRLinearizableNewClass, system)
  86.  
  87. /*
  88.  * Declare the class data structure
  89.  */
  90. SOMEXTERN struct SOMRLinearizableClassDataStructure {
  91.     SOMClass *classObject;
  92.     somMToken somrGetState;
  93.     somMToken somrSetState;
  94. } SOMDLINK SOMRLinearizableClassData;
  95.  
  96. /*
  97.  * Declare the C specific class data structure
  98.  */
  99. SOMEXTERN struct SOMRLinearizableCClassDataStructure {
  100.     somMethodTabs parentMtab;
  101.     somDToken instanceDataToken;
  102. } SOMDLINK SOMRLinearizableCClassData;
  103.  
  104. /*
  105.  * New and Renew macros for SOMRLinearizable
  106.  */
  107. #define SOMRLinearizableNew() \
  108.    ( _SOMRLinearizable ? \
  109.     _somNew(_SOMRLinearizable) \
  110.     : ( SOMRLinearizableNewClass(\
  111.         SOMRLinearizable_MajorVersion, \
  112.         SOMRLinearizable_MinorVersion),\
  113.        _somNew(_SOMRLinearizable)))
  114. #define SOMRLinearizableRenew(buf) \
  115.    ( _SOMRLinearizable ? \
  116.     _somRenew(_SOMRLinearizable, buf) \
  117.     : ( SOMRLinearizableNewClass(\
  118.         SOMRLinearizable_MajorVersion, \
  119.         SOMRLinearizable_MinorVersion),\
  120.        _somRenew(_SOMRLinearizable, buf)))
  121.  
  122. /*
  123.  * New Method: somrGetState
  124.  */
  125. typedef void   SOMLINK somTP_SOMRLinearizable_somrGetState(SOMRLinearizable *somSelf, Environment *ev, 
  126.         string* buf);
  127. #pragma linkage(somTP_SOMRLinearizable_somrGetState, system)
  128. typedef somTP_SOMRLinearizable_somrGetState *somTD_SOMRLinearizable_somrGetState;
  129. /*
  130.  *  Converts its internal state into a linear string and returns a
  131.  *  pointer to the string (the length of the string is in the
  132.  *  first sizeof(int) bytes of this string).   The implementer of this
  133.  *  method should allocate the necessary memory for the string.
  134.  *  The OWNERSHIP of this string is transferred to the caller of this method.
  135.  */
  136. #define somMD_SOMRLinearizable_somrGetState "::SOMRLinearizable::somrGetState"
  137. #define SOMRLinearizable_somrGetState(somSelf,ev,buf) \
  138.     (SOM_Resolve(somSelf, SOMRLinearizable, somrGetState) \
  139.     (somSelf,ev,buf))
  140. #ifndef SOMGD_somrGetState
  141.     #if (defined(_somrGetState) || defined(__somrGetState))
  142.         #undef _somrGetState
  143.         #undef __somrGetState
  144.         #define SOMGD_somrGetState 1
  145.     #else
  146.         #define _somrGetState SOMRLinearizable_somrGetState
  147.     #endif /* _somrGetState */
  148. #endif /* SOMGD_somrGetState */
  149.  
  150. /*
  151.  * New Method: somrSetState
  152.  */
  153. typedef void   SOMLINK somTP_SOMRLinearizable_somrSetState(SOMRLinearizable *somSelf, Environment *ev, 
  154.         string buf);
  155. #pragma linkage(somTP_SOMRLinearizable_somrSetState, system)
  156. typedef somTP_SOMRLinearizable_somrSetState *somTD_SOMRLinearizable_somrSetState;
  157. /*
  158.  *  The reverse of Get State. It converts the given linear string into
  159.  *  its internal state.  The ownership of buf stays with the caller.
  160.  */
  161. #define somMD_SOMRLinearizable_somrSetState "::SOMRLinearizable::somrSetState"
  162. #define SOMRLinearizable_somrSetState(somSelf,ev,buf) \
  163.     (SOM_Resolve(somSelf, SOMRLinearizable, somrSetState) \
  164.     (somSelf,ev,buf))
  165. #ifndef SOMGD_somrSetState
  166.     #if (defined(_somrSetState) || defined(__somrSetState))
  167.         #undef _somrSetState
  168.         #undef __somrSetState
  169.         #define SOMGD_somrSetState 1
  170.     #else
  171.         #define _somrSetState SOMRLinearizable_somrSetState
  172.     #endif /* _somrSetState */
  173. #endif /* SOMGD_somrSetState */
  174. #ifndef SOM_DONT_USE_INHERITED_MACROS
  175. #define SOMRLinearizable_somDefaultInit SOMObject_somDefaultInit
  176. #define SOMRLinearizable_somDestruct SOMObject_somDestruct
  177. #define SOMRLinearizable_somDefaultCopyInit SOMObject_somDefaultCopyInit
  178. #define SOMRLinearizable_somDefaultAssign SOMObject_somDefaultAssign
  179. #define SOMRLinearizable_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  180. #define SOMRLinearizable_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  181. #define SOMRLinearizable_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  182. #define SOMRLinearizable_somDefaultConstAssign SOMObject_somDefaultConstAssign
  183. #define SOMRLinearizable_somDefaultVAssign SOMObject_somDefaultVAssign
  184. #define SOMRLinearizable_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  185. #define SOMRLinearizable_somInit SOMObject_somInit
  186. #define SOMRLinearizable_somFree SOMObject_somFree
  187. #define SOMRLinearizable_somUninit SOMObject_somUninit
  188. #define SOMRLinearizable_somGetClass SOMObject_somGetClass
  189. #define SOMRLinearizable_somGetClassName SOMObject_somGetClassName
  190. #define SOMRLinearizable_somGetSize SOMObject_somGetSize
  191. #define SOMRLinearizable_somIsA SOMObject_somIsA
  192. #define SOMRLinearizable_somIsInstanceOf SOMObject_somIsInstanceOf
  193. #define SOMRLinearizable_somRespondsTo SOMObject_somRespondsTo
  194. #define SOMRLinearizable_somDispatch SOMObject_somDispatch
  195. #define SOMRLinearizable_somClassDispatch SOMObject_somClassDispatch
  196. #define SOMRLinearizable_somCastObj SOMObject_somCastObj
  197. #define SOMRLinearizable_somResetObj SOMObject_somResetObj
  198. #define SOMRLinearizable_somDispatchV SOMObject_somDispatchV
  199. #define SOMRLinearizable_somDispatchL SOMObject_somDispatchL
  200. #define SOMRLinearizable_somDispatchA SOMObject_somDispatchA
  201. #define SOMRLinearizable_somDispatchD SOMObject_somDispatchD
  202. #define SOMRLinearizable_somPrintSelf SOMObject_somPrintSelf
  203. #define SOMRLinearizable_somDumpSelf SOMObject_somDumpSelf
  204. #define SOMRLinearizable_somDumpSelfInt SOMObject_somDumpSelfInt
  205. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  206.  
  207. #endif       /* SOM_SOMRLinearizable_h */
  208.