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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: snglicls.h.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emith: 2.47
  8.  */
  9.  
  10. /*
  11.  *    COMPONENT_NAME: somu
  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_SOMMSingleInstance_h
  26. #define SOM_SOMMSingleInstance_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 SOMMSingleInstance
  42. #define SOMMSingleInstance SOMObject
  43. #endif
  44. /*
  45.  *  This class is a metaclass for classes which wish to enforce a
  46.  *  single instance rule.  That is, classes which specify this class
  47.  *  as their metaclass will only be allowed to have a single instance.
  48.  * 
  49.  *  For example, if a class named dog specified this class as its
  50.  *  metaclass, only one dog object could be instantiated. Repeated
  51.  *  calls to _somNew on the dog class would simply return the same
  52.  *  dog repeatedly.
  53.  * 
  54.  *  There are two ways to retrieve the single intance of the using
  55.  *  class:
  56.  * 
  57.  *   1) Invoke sommGetSingleInstance on the class object of the using class.
  58.  *      This is the preferred way.
  59.  * 
  60.  *   2) Invoke somNew or somNewNoInit on the class object of the using class.
  61.  * 
  62.  */
  63. #include <somcls.h>
  64.  
  65. /*
  66.  * Start of bindings for IDL types
  67.  */
  68.  
  69. #ifndef SOMClass
  70.     #define SOMClass SOMObject
  71. #endif /* SOMClass */
  72.  
  73. /*
  74.  * End of bindings for IDL types.
  75.  */
  76.  
  77. #define SOMMSingleInstance_MajorVersion 2
  78. #define SOMMSingleInstance_MinorVersion 1
  79.  
  80. /*
  81.  * External name shortening if required
  82.  */
  83. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  84. #define SOMMSingleInstanceNewClass c
  85. #pragma linkage(c, system)
  86. #define SOMMSingleInstanceClassData d
  87. #define SOMMSingleInstanceCClassData x
  88. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  89. /*--------------Migration------------*/
  90. #define SOMMSingleInstance_classObj SOMMSingleInstanceClassData.classObject
  91. #define _SOMMSingleInstance SOMMSingleInstance_classObj
  92.  
  93. /*
  94.  * Declare the class creation procedure
  95.  */
  96. SOMEXTERN SOMClass * SOMLINK SOMMSingleInstanceNewClass(integer4 somtmajorVersion,
  97.         integer4 somtminorVersion);
  98. #pragma linkage(SOMMSingleInstanceNewClass, system)
  99.  
  100. /*
  101.  * Declare the class data structure
  102.  */
  103. SOMEXTERN struct SOMMSingleInstanceClassDataStructure {
  104.     SOMClass *classObject;
  105.     somMToken sommGetSingleInstance;
  106.     somMToken sommFreeSingleInstance;
  107. } SOMDLINK SOMMSingleInstanceClassData;
  108.  
  109. /*
  110.  * Declare the C specific class data structure
  111.  */
  112. SOMEXTERN struct SOMMSingleInstanceCClassDataStructure {
  113.     somMethodTabs parentMtab;
  114.     somDToken instanceDataToken;
  115. } SOMDLINK SOMMSingleInstanceCClassData;
  116.  
  117. /*
  118.  * New and Renew macros for SOMMSingleInstance
  119.  */
  120. #define SOMMSingleInstanceNew() \
  121.    ( _SOMMSingleInstance ? \
  122.     _somNew(_SOMMSingleInstance) \
  123.     : ( SOMMSingleInstanceNewClass(\
  124.         SOMMSingleInstance_MajorVersion, \
  125.         SOMMSingleInstance_MinorVersion),\
  126.        _somNew(_SOMMSingleInstance)))
  127. #define SOMMSingleInstanceRenew(buf) \
  128.    ( _SOMMSingleInstance ? \
  129.     _somRenew(_SOMMSingleInstance, buf) \
  130.     : ( SOMMSingleInstanceNewClass(\
  131.         SOMMSingleInstance_MajorVersion, \
  132.         SOMMSingleInstance_MinorVersion),\
  133.        _somRenew(_SOMMSingleInstance, buf)))
  134.  
  135. /*
  136.  * New Method: sommGetSingleInstance
  137.  */
  138. typedef SOMObject*   SOMLINK somTP_SOMMSingleInstance_sommGetSingleInstance(SOMMSingleInstance *somSelf, Environment *ev);
  139. #pragma linkage(somTP_SOMMSingleInstance_sommGetSingleInstance, system)
  140. typedef somTP_SOMMSingleInstance_sommGetSingleInstance *somTD_SOMMSingleInstance_sommGetSingleInstance;
  141. /*
  142.  *  Returns the single instance of the using class.
  143.  *  If there isn't one, then it creates one first with somNew.
  144.  */
  145. #define somMD_SOMMSingleInstance_sommGetSingleInstance "::SOMMSingleInstance::sommGetSingleInstance"
  146. #define SOMMSingleInstance_sommGetSingleInstance(somSelf,ev) \
  147.     (SOM_Resolve(somSelf, SOMMSingleInstance, sommGetSingleInstance) \
  148.     (somSelf,ev))
  149. #ifndef SOMGD_sommGetSingleInstance
  150.     #if (defined(_sommGetSingleInstance) || defined(__sommGetSingleInstance))
  151.         #undef _sommGetSingleInstance
  152.         #undef __sommGetSingleInstance
  153.         #define SOMGD_sommGetSingleInstance 1
  154.     #else
  155.         #define _sommGetSingleInstance SOMMSingleInstance_sommGetSingleInstance
  156.     #endif /* _sommGetSingleInstance */
  157. #endif /* SOMGD_sommGetSingleInstance */
  158.  
  159. /*
  160.  * New Method: sommFreeSingleInstance
  161.  */
  162. typedef void   SOMLINK somTP_SOMMSingleInstance_sommFreeSingleInstance(SOMMSingleInstance *somSelf, Environment *ev);
  163. #pragma linkage(somTP_SOMMSingleInstance_sommFreeSingleInstance, system)
  164. typedef somTP_SOMMSingleInstance_sommFreeSingleInstance *somTD_SOMMSingleInstance_sommFreeSingleInstance;
  165. /*
  166.  *  If there isn't one, then the method does nothing.
  167.  *  Frees single instance of the class
  168.  */
  169. #define somMD_SOMMSingleInstance_sommFreeSingleInstance "::SOMMSingleInstance::sommFreeSingleInstance"
  170. #define SOMMSingleInstance_sommFreeSingleInstance(somSelf,ev) \
  171.     (SOM_Resolve(somSelf, SOMMSingleInstance, sommFreeSingleInstance) \
  172.     (somSelf,ev))
  173. #ifndef SOMGD_sommFreeSingleInstance
  174.     #if (defined(_sommFreeSingleInstance) || defined(__sommFreeSingleInstance))
  175.         #undef _sommFreeSingleInstance
  176.         #undef __sommFreeSingleInstance
  177.         #define SOMGD_sommFreeSingleInstance 1
  178.     #else
  179.         #define _sommFreeSingleInstance SOMMSingleInstance_sommFreeSingleInstance
  180.     #endif /* _sommFreeSingleInstance */
  181. #endif /* SOMGD_sommFreeSingleInstance */
  182. #ifndef SOM_DONT_USE_INHERITED_MACROS
  183. #define SOMMSingleInstance__get_somDataAlignment SOMClass__get_somDataAlignment
  184. #define SOMMSingleInstance__get_somInstanceDataOffsets SOMClass__get_somInstanceDataOffsets
  185. #define SOMMSingleInstance__get_somDirectInitClasses SOMClass__get_somDirectInitClasses
  186. #define SOMMSingleInstance_somNew SOMClass_somNew
  187. #define SOMMSingleInstance_somNewNoInit SOMClass_somNewNoInit
  188. #define SOMMSingleInstance_somRenew SOMClass_somRenew
  189. #define SOMMSingleInstance_somRenewNoInit SOMClass_somRenewNoInit
  190. #define SOMMSingleInstance_somRenewNoZero SOMClass_somRenewNoZero
  191. #define SOMMSingleInstance_somRenewNoInitNoZero SOMClass_somRenewNoInitNoZero
  192. #define SOMMSingleInstance_somAllocate SOMClass_somAllocate
  193. #define SOMMSingleInstance_somDeallocate SOMClass_somDeallocate
  194. #define SOMMSingleInstance_somInitClass SOMClass_somInitClass
  195. #define SOMMSingleInstance_somInitMIClass SOMClass_somInitMIClass
  196. #define SOMMSingleInstance_somAddStaticMethod SOMClass_somAddStaticMethod
  197. #define SOMMSingleInstance_somAddDynamicMethod SOMClass_somAddDynamicMethod
  198. #define SOMMSingleInstance_somOverrideSMethod SOMClass_somOverrideSMethod
  199. #define SOMMSingleInstance_somClassReady SOMClass_somClassReady
  200. #define SOMMSingleInstance_somGetApplyStub SOMClass_somGetApplyStub
  201. #define SOMMSingleInstance_somGetClassData SOMClass_somGetClassData
  202. #define SOMMSingleInstance_somSetClassData SOMClass_somSetClassData
  203. #define SOMMSingleInstance_somGetClassMtab SOMClass_somGetClassMtab
  204. #define SOMMSingleInstance_somGetInstanceOffset SOMClass_somGetInstanceOffset
  205. #define SOMMSingleInstance_somGetInstancePartSize SOMClass_somGetInstancePartSize
  206. #define SOMMSingleInstance_somGetInstanceSize SOMClass_somGetInstanceSize
  207. #define SOMMSingleInstance_somGetInstanceToken SOMClass_somGetInstanceToken
  208. #define SOMMSingleInstance_somGetMemberToken SOMClass_somGetMemberToken
  209. #define SOMMSingleInstance_somGetMethodData SOMClass_somGetMethodData
  210. #define SOMMSingleInstance_somGetRdStub SOMClass_somGetRdStub
  211. #define SOMMSingleInstance_somGetMethodDescriptor SOMClass_somGetMethodDescriptor
  212. #define SOMMSingleInstance_somGetMethodIndex SOMClass_somGetMethodIndex
  213. #define SOMMSingleInstance_somGetMethodToken SOMClass_somGetMethodToken
  214. #define SOMMSingleInstance_somGetName SOMClass_somGetName
  215. #define SOMMSingleInstance_somGetNthMethodData SOMClass_somGetNthMethodData
  216. #define SOMMSingleInstance_somGetNthMethodInfo SOMClass_somGetNthMethodInfo
  217. #define SOMMSingleInstance_somGetNumMethods SOMClass_somGetNumMethods
  218. #define SOMMSingleInstance_somGetNumStaticMethods SOMClass_somGetNumStaticMethods
  219. #define SOMMSingleInstance_somGetParent SOMClass_somGetParent
  220. #define SOMMSingleInstance_somGetParents SOMClass_somGetParents
  221. #define SOMMSingleInstance_somGetVersionNumbers SOMClass_somGetVersionNumbers
  222. #define SOMMSingleInstance_somFindMethod SOMClass_somFindMethod
  223. #define SOMMSingleInstance_somFindMethodOk SOMClass_somFindMethodOk
  224. #define SOMMSingleInstance_somFindSMethod SOMClass_somFindSMethod
  225. #define SOMMSingleInstance_somFindSMethodOk SOMClass_somFindSMethodOk
  226. #define SOMMSingleInstance_somLookupMethod SOMClass_somLookupMethod
  227. #define SOMMSingleInstance_somCheckVersion SOMClass_somCheckVersion
  228. #define SOMMSingleInstance_somDescendedFrom SOMClass_somDescendedFrom
  229. #define SOMMSingleInstance_somSupportsMethod SOMClass_somSupportsMethod
  230. #define SOMMSingleInstance_somDefinedMethod SOMClass_somDefinedMethod
  231. #define SOMMSingleInstance_somOverrideMtab SOMClass_somOverrideMtab
  232. #define SOMMSingleInstance_somDefaultInit SOMObject_somDefaultInit
  233. #define SOMMSingleInstance_somDestruct SOMObject_somDestruct
  234. #define SOMMSingleInstance_somDefaultCopyInit SOMObject_somDefaultCopyInit
  235. #define SOMMSingleInstance_somDefaultAssign SOMObject_somDefaultAssign
  236. #define SOMMSingleInstance_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  237. #define SOMMSingleInstance_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  238. #define SOMMSingleInstance_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  239. #define SOMMSingleInstance_somDefaultConstAssign SOMObject_somDefaultConstAssign
  240. #define SOMMSingleInstance_somDefaultVAssign SOMObject_somDefaultVAssign
  241. #define SOMMSingleInstance_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  242. #define SOMMSingleInstance_somInit SOMObject_somInit
  243. #define SOMMSingleInstance_somFree SOMObject_somFree
  244. #define SOMMSingleInstance_somUninit SOMObject_somUninit
  245. #define SOMMSingleInstance_somGetClass SOMObject_somGetClass
  246. #define SOMMSingleInstance_somGetClassName SOMObject_somGetClassName
  247. #define SOMMSingleInstance_somGetSize SOMObject_somGetSize
  248. #define SOMMSingleInstance_somIsA SOMObject_somIsA
  249. #define SOMMSingleInstance_somIsInstanceOf SOMObject_somIsInstanceOf
  250. #define SOMMSingleInstance_somRespondsTo SOMObject_somRespondsTo
  251. #define SOMMSingleInstance_somDispatch SOMObject_somDispatch
  252. #define SOMMSingleInstance_somClassDispatch SOMObject_somClassDispatch
  253. #define SOMMSingleInstance_somCastObj SOMObject_somCastObj
  254. #define SOMMSingleInstance_somResetObj SOMObject_somResetObj
  255. #define SOMMSingleInstance_somDispatchV SOMObject_somDispatchV
  256. #define SOMMSingleInstance_somDispatchL SOMObject_somDispatchL
  257. #define SOMMSingleInstance_somDispatchA SOMObject_somDispatchA
  258. #define SOMMSingleInstance_somDispatchD SOMObject_somDispatchD
  259. #define SOMMSingleInstance_somPrintSelf SOMObject_somPrintSelf
  260. #define SOMMSingleInstance_somDumpSelf SOMObject_somDumpSelf
  261. #define SOMMSingleInstance_somDumpSelfInt SOMObject_somDumpSelfInt
  262. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  263.  
  264. #endif       /* SOM_SOMMSingleInstance_h */
  265.