home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / om.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-22  |  10.0 KB  |  283 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: h:\somnt\include\OM.h.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: Development
  7.  *     SOM Emitter emith.dll: Development
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *    COMPONENT_NAME: somd
  13.  * 
  14.  *    ORIGINS: 27
  15.  * 
  16.  * 
  17.  *    10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
  18.  *    All Rights Reserved
  19.  *    Licensed Materials - Property of IBM
  20.  *    US Government Users Restricted Rights - Use, duplication or
  21.  *    disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  22.  * 
  23.  * 
  24.  *    IDL interface spec for generic Object Manager.
  25.  * 
  26.  *    The Object Manager (abstract) class provides a uniform abstraction
  27.  *    for various sorts of object managers.  Object Request Brokers, persistent
  28.  *    storage managers, and OODBMSs are examples of object managers.
  29.  * 
  30.  *    This is an abstract base class, which defines the "core" interface for
  31.  *    an object manager.  The basic groups of methods are:
  32.  * 
  33.  *      - object creation (basic)
  34.  *      - object identification & location/activation
  35.  *      - object release & destruction
  36.  * 
  37.  *    If a desired object cannot be mapped into the client's address space, the
  38.  *    object manager is responsible for building a local "proxy" for the remote
  39.  *    object.  The client invokes methods on the proxy, and the proxy should
  40.  *    redispatch the requests to the remote object in an appropriate and
  41.  *    transparent way.
  42.  * 
  43.  *    NOTE: Since this is only intended to be an abstract base class, there
  44.  *    is no underlying implementation, and ObjectMgr objects should not actually
  45.  *    be instantiated.
  46.  * 
  47.  */
  48.  
  49.  
  50. #ifndef SOM_ObjectMgr_h
  51. #define SOM_ObjectMgr_h
  52.  
  53.  
  54. #include <som.h>
  55.  
  56. /*
  57.  * -- This emitter treats Method Tokens as Thunks by default.
  58.  * -- Use the sc modifier "nothunks" to change this default
  59.  */
  60. #undef somresolve_
  61. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  62.  
  63. /*
  64.  * Define the class name as an object type
  65.  */
  66. #ifndef ObjectMgr
  67. #define ObjectMgr SOMObject
  68. #endif
  69. #include <somobj.h>
  70.  
  71. /*
  72.  * Start of user-defined types:
  73.  */
  74. #ifndef SOMClass
  75.     #define SOMClass SOMObject
  76. #endif /* SOMClass */
  77. #ifndef Container
  78.     #define Container SOMObject
  79. #endif /* Container */
  80.  
  81. /*
  82.  * End of user-defined types.
  83.  */
  84.  
  85. #define ObjectMgr_MajorVersion 2
  86. #define ObjectMgr_MinorVersion 1
  87.  
  88. /*
  89.  * External name shortening if required
  90.  */
  91. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  92. #define ObjectMgrNewClass c
  93. #define ObjectMgrClassData d
  94. #define ObjectMgrCClassData x
  95. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  96.  
  97. /*
  98.  * Include the meta class file
  99.  */
  100. #include <snglicls.h>
  101. /*--------------Migration------------*/
  102. #define ObjectMgr_classObj ObjectMgrClassData.classObject
  103. #define _ObjectMgr ObjectMgr_classObj
  104.  
  105. /*
  106.  * Declare the class creation procedure
  107.  */
  108. SOMEXTERN
  109. #if (defined(SOM_Module_OM_Source) || defined(ObjectMgr_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ObjectMgr))
  110. WIN32_DLLEXPORT
  111. #else
  112. WIN32_DLLIMPORT
  113. #endif
  114. SOMClass * SOMLINK ObjectMgrNewClass(integer4 somntmajorVersion,
  115.         integer4 somntminorVersion);
  116.  
  117. /*
  118.  * Declare the class data structure
  119.  */
  120. SOMEXTERN struct ObjectMgrClassDataStructure {
  121.     SOMClass *classObject;
  122.     somMToken somdNewObject;
  123.     somMToken somdGetIdFromObject;
  124.     somMToken somdGetObjectFromId;
  125.     somMToken somdReleaseObject;
  126.     somMToken somdDestroyObject;
  127. #if (defined(SOM_Module_OM_Source) || defined(ObjectMgr_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ObjectMgr))
  128. } WIN32_DLLEXPORT SOMDLINK ObjectMgrClassData;
  129. #else
  130. } WIN32_DLLIMPORT SOMDLINK ObjectMgrClassData;
  131. #endif
  132.  
  133. /*
  134.  * Declare the C specific class data structure
  135.  */
  136. SOMEXTERN struct ObjectMgrCClassDataStructure {
  137.     somMethodTabs parentMtab;
  138.     somDToken instanceDataToken;
  139. #if (defined(SOM_Module_OM_Source) || defined(ObjectMgr_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ObjectMgr))
  140. } WIN32_DLLEXPORT SOMDLINK ObjectMgrCClassData;
  141. #else
  142. } WIN32_DLLIMPORT SOMDLINK ObjectMgrCClassData;
  143. #endif
  144.  
  145. /*
  146.  * New and Renew macros for ObjectMgr
  147.  */
  148. #define ObjectMgrNew() \
  149.    (_somNew(_ObjectMgr ? _ObjectMgr : ObjectMgrNewClass(ObjectMgr_MajorVersion, ObjectMgr_MinorVersion)))
  150. #define ObjectMgrRenew(buf) \
  151.    (_somRenew(_ObjectMgr ? _ObjectMgr : ObjectMgrNewClass(ObjectMgr_MajorVersion, ObjectMgr_MinorVersion), buf))
  152.  
  153. /*
  154.  * New Method: somdNewObject
  155.  */
  156. typedef SOMObject*   SOMLINK somTP_ObjectMgr_somdNewObject(ObjectMgr *somSelf, Environment *ev,
  157.         Identifier objclass,
  158.         string hints);
  159. typedef somTP_ObjectMgr_somdNewObject *somTD_ObjectMgr_somdNewObject;
  160. #define somMD_ObjectMgr_somdNewObject "::ObjectMgr::somdNewObject"
  161. #define ObjectMgr_somdNewObject(somSelf,ev,objclass,hints) \
  162.     (SOM_Resolve(somSelf, ObjectMgr, somdNewObject) \
  163.     (somSelf,ev,objclass,hints))
  164. #ifndef SOMGD_somdNewObject
  165.     #if (defined(_somdNewObject) || defined(__somdNewObject))
  166.         #undef _somdNewObject
  167.         #undef __somdNewObject
  168.         #define SOMGD_somdNewObject 1
  169.     #else
  170.         #define _somdNewObject ObjectMgr_somdNewObject
  171.     #endif /* _somdNewObject */
  172. #endif /* SOMGD_somdNewObject */
  173.  
  174. /*
  175.  * New Method: somdGetIdFromObject
  176.  */
  177. typedef string   SOMLINK somTP_ObjectMgr_somdGetIdFromObject(ObjectMgr *somSelf, Environment *ev,
  178.         SOMObject* obj);
  179. typedef somTP_ObjectMgr_somdGetIdFromObject *somTD_ObjectMgr_somdGetIdFromObject;
  180. #define somMD_ObjectMgr_somdGetIdFromObject "::ObjectMgr::somdGetIdFromObject"
  181. #define ObjectMgr_somdGetIdFromObject(somSelf,ev,obj) \
  182.     (SOM_Resolve(somSelf, ObjectMgr, somdGetIdFromObject) \
  183.     (somSelf,ev,obj))
  184. #ifndef SOMGD_somdGetIdFromObject
  185.     #if (defined(_somdGetIdFromObject) || defined(__somdGetIdFromObject))
  186.         #undef _somdGetIdFromObject
  187.         #undef __somdGetIdFromObject
  188.         #define SOMGD_somdGetIdFromObject 1
  189.     #else
  190.         #define _somdGetIdFromObject ObjectMgr_somdGetIdFromObject
  191.     #endif /* _somdGetIdFromObject */
  192. #endif /* SOMGD_somdGetIdFromObject */
  193.  
  194. /*
  195.  * New Method: somdGetObjectFromId
  196.  */
  197. typedef SOMObject*   SOMLINK somTP_ObjectMgr_somdGetObjectFromId(ObjectMgr *somSelf, Environment *ev,
  198.         string id);
  199. typedef somTP_ObjectMgr_somdGetObjectFromId *somTD_ObjectMgr_somdGetObjectFromId;
  200. #define somMD_ObjectMgr_somdGetObjectFromId "::ObjectMgr::somdGetObjectFromId"
  201. #define ObjectMgr_somdGetObjectFromId(somSelf,ev,id) \
  202.     (SOM_Resolve(somSelf, ObjectMgr, somdGetObjectFromId) \
  203.     (somSelf,ev,id))
  204. #ifndef SOMGD_somdGetObjectFromId
  205.     #if (defined(_somdGetObjectFromId) || defined(__somdGetObjectFromId))
  206.         #undef _somdGetObjectFromId
  207.         #undef __somdGetObjectFromId
  208.         #define SOMGD_somdGetObjectFromId 1
  209.     #else
  210.         #define _somdGetObjectFromId ObjectMgr_somdGetObjectFromId
  211.     #endif /* _somdGetObjectFromId */
  212. #endif /* SOMGD_somdGetObjectFromId */
  213.  
  214. /*
  215.  * New Method: somdReleaseObject
  216.  */
  217. typedef void   SOMLINK somTP_ObjectMgr_somdReleaseObject(ObjectMgr *somSelf, Environment *ev,
  218.         SOMObject* obj);
  219. typedef somTP_ObjectMgr_somdReleaseObject *somTD_ObjectMgr_somdReleaseObject;
  220. #define somMD_ObjectMgr_somdReleaseObject "::ObjectMgr::somdReleaseObject"
  221. #define ObjectMgr_somdReleaseObject(somSelf,ev,obj) \
  222.     (SOM_Resolve(somSelf, ObjectMgr, somdReleaseObject) \
  223.     (somSelf,ev,obj))
  224. #ifndef SOMGD_somdReleaseObject
  225.     #if (defined(_somdReleaseObject) || defined(__somdReleaseObject))
  226.         #undef _somdReleaseObject
  227.         #undef __somdReleaseObject
  228.         #define SOMGD_somdReleaseObject 1
  229.     #else
  230.         #define _somdReleaseObject ObjectMgr_somdReleaseObject
  231.     #endif /* _somdReleaseObject */
  232. #endif /* SOMGD_somdReleaseObject */
  233.  
  234. /*
  235.  * New Method: somdDestroyObject
  236.  */
  237. typedef void   SOMLINK somTP_ObjectMgr_somdDestroyObject(ObjectMgr *somSelf, Environment *ev,
  238.         SOMObject* obj);
  239. typedef somTP_ObjectMgr_somdDestroyObject *somTD_ObjectMgr_somdDestroyObject;
  240. #define somMD_ObjectMgr_somdDestroyObject "::ObjectMgr::somdDestroyObject"
  241. #define ObjectMgr_somdDestroyObject(somSelf,ev,obj) \
  242.     (SOM_Resolve(somSelf, ObjectMgr, somdDestroyObject) \
  243.     (somSelf,ev,obj))
  244. #ifndef SOMGD_somdDestroyObject
  245.     #if (defined(_somdDestroyObject) || defined(__somdDestroyObject))
  246.         #undef _somdDestroyObject
  247.         #undef __somdDestroyObject
  248.         #define SOMGD_somdDestroyObject 1
  249.     #else
  250.         #define _somdDestroyObject ObjectMgr_somdDestroyObject
  251.     #endif /* _somdDestroyObject */
  252. #endif /* SOMGD_somdDestroyObject */
  253. #ifndef SOM_DONT_USE_INHERITED_MACROS
  254. #define ObjectMgr_somDefaultInit SOMObject_somDefaultInit
  255. #define ObjectMgr_somDestruct SOMObject_somDestruct
  256. #define ObjectMgr_somDefaultCopyInit SOMObject_somDefaultCopyInit
  257. #define ObjectMgr_somDefaultAssign SOMObject_somDefaultAssign
  258. #define ObjectMgr_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  259. #define ObjectMgr_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  260. #define ObjectMgr_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  261. #define ObjectMgr_somDefaultConstAssign SOMObject_somDefaultConstAssign
  262. #define ObjectMgr_somDefaultVAssign SOMObject_somDefaultVAssign
  263. #define ObjectMgr_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  264. #define ObjectMgr_somInit SOMObject_somInit
  265. #define ObjectMgr_somFree SOMObject_somFree
  266. #define ObjectMgr_somUninit SOMObject_somUninit
  267. #define ObjectMgr_somGetClass SOMObject_somGetClass
  268. #define ObjectMgr_somGetClassName SOMObject_somGetClassName
  269. #define ObjectMgr_somGetSize SOMObject_somGetSize
  270. #define ObjectMgr_somIsA SOMObject_somIsA
  271. #define ObjectMgr_somIsInstanceOf SOMObject_somIsInstanceOf
  272. #define ObjectMgr_somRespondsTo SOMObject_somRespondsTo
  273. #define ObjectMgr_somDispatch SOMObject_somDispatch
  274. #define ObjectMgr_somClassDispatch SOMObject_somClassDispatch
  275. #define ObjectMgr_somCastObj SOMObject_somCastObj
  276. #define ObjectMgr_somResetObj SOMObject_somResetObj
  277. #define ObjectMgr_somPrintSelf SOMObject_somPrintSelf
  278. #define ObjectMgr_somDumpSelf SOMObject_somDumpSelf
  279. #define ObjectMgr_somDumpSelfInt SOMObject_somDumpSelfInt
  280. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  281.  
  282. #endif       /* SOM_ObjectMgr_h */
  283.