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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: om.h.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emith: 2.47
  8.  */
  9.  
  10. /*
  11.  *    IDL interface spec for generic Object Manager.
  12.  * 
  13.  *    The Object Manager (abstract) class provides a uniform abstraction
  14.  *    for various sorts of object managers.  Object Request Brokers, persistent
  15.  *    storage managers, and OODBMSs are examples of object managers.
  16.  * 
  17.  *    This is an abstract base class, which defines the "core" interface for
  18.  *    an object manager.  The basic groups of methods are:
  19.  * 
  20.  *      - object creation (basic)
  21.  *      - object identification & location/activation
  22.  *      - object release & destruction
  23.  * 
  24.  *    If a desired object cannot be mapped into the client's address space, the
  25.  *    object manager is responsible for building a local "proxy" for the remote
  26.  *    object.  The client invokes methods on the proxy, and the proxy should
  27.  *    redispatch the requests to the remote object in an appropriate and
  28.  *    transparent way.
  29.  * 
  30.  *    NOTE: Since this is only intended to be an abstract base class, there
  31.  *    is no underlying implementation, and ObjectMgr objects should not actually
  32.  *    be instantiated.
  33.  * 
  34.  */
  35.  
  36.  
  37. #ifndef SOM_ObjectMgr_h
  38. #define SOM_ObjectMgr_h
  39.  
  40.  
  41. #include <som.h>
  42.  
  43. /*
  44.  * -- This emitter treats Method Tokens as Thunks by default.
  45.  * -- Use the sc modifier "nothunks" to change this default
  46.  */
  47. #undef somresolve_
  48. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  49.  
  50. /*
  51.  * Define the class name as an object type
  52.  */
  53. #ifndef ObjectMgr
  54. #define ObjectMgr SOMObject
  55. #endif
  56. /*
  57.  *  methods for creation
  58.  */
  59. #include <somobj.h>
  60.  
  61. /*
  62.  * Start of bindings for IDL types
  63.  */
  64.  
  65. #ifndef SOMClass
  66.     #define SOMClass SOMObject
  67. #endif /* SOMClass */
  68. #ifndef Container
  69.     #define Container SOMObject
  70. #endif /* Container */
  71.  
  72. /*
  73.  * End of bindings for IDL types.
  74.  */
  75.  
  76. #define ObjectMgr_MajorVersion 2
  77. #define ObjectMgr_MinorVersion 1
  78.  
  79. /*
  80.  * External name shortening if required
  81.  */
  82. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  83. #define ObjectMgrNewClass c
  84. #pragma linkage(c, system)
  85. #define ObjectMgrClassData d
  86. #define ObjectMgrCClassData x
  87. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  88.  
  89. /*
  90.  * Include the metaclass file
  91.  */
  92. #ifndef SOM_SOMMSingleInstance_h
  93. #include <snglicls.h>
  94. #endif
  95. /*--------------Migration------------*/
  96. #define ObjectMgr_classObj ObjectMgrClassData.classObject
  97. #define _ObjectMgr ObjectMgr_classObj
  98.  
  99. /*
  100.  * Declare the class creation procedure
  101.  */
  102. SOMEXTERN SOMClass * SOMLINK ObjectMgrNewClass(integer4 somtmajorVersion,
  103.         integer4 somtminorVersion);
  104. #pragma linkage(ObjectMgrNewClass, system)
  105.  
  106. /*
  107.  * Declare the class data structure
  108.  */
  109. SOMEXTERN struct ObjectMgrClassDataStructure {
  110.     SOMClass *classObject;
  111.     somMToken somdNewObject;
  112.     somMToken somdGetIdFromObject;
  113.     somMToken somdGetObjectFromId;
  114.     somMToken somdReleaseObject;
  115.     somMToken somdDestroyObject;
  116. } SOMDLINK ObjectMgrClassData;
  117.  
  118. /*
  119.  * Declare the C specific class data structure
  120.  */
  121. SOMEXTERN struct ObjectMgrCClassDataStructure {
  122.     somMethodTabs parentMtab;
  123.     somDToken instanceDataToken;
  124. } SOMDLINK ObjectMgrCClassData;
  125.  
  126. /*
  127.  * New and Renew macros for ObjectMgr
  128.  */
  129. #define ObjectMgrNew() \
  130.    ( _ObjectMgr ? \
  131.     _somNew(_ObjectMgr) \
  132.     : ( ObjectMgrNewClass(\
  133.         ObjectMgr_MajorVersion, \
  134.         ObjectMgr_MinorVersion),\
  135.        _somNew(_ObjectMgr)))
  136. #define ObjectMgrRenew(buf) \
  137.    ( _ObjectMgr ? \
  138.     _somRenew(_ObjectMgr, buf) \
  139.     : ( ObjectMgrNewClass(\
  140.         ObjectMgr_MajorVersion, \
  141.         ObjectMgr_MinorVersion),\
  142.        _somRenew(_ObjectMgr, buf)))
  143.  
  144. /*
  145.  * New Method: somdNewObject
  146.  */
  147. typedef SOMObject*   SOMLINK somTP_ObjectMgr_somdNewObject(ObjectMgr *somSelf, Environment *ev, 
  148.         Identifier objclass, 
  149.         string hints);
  150. #pragma linkage(somTP_ObjectMgr_somdNewObject, system)
  151. typedef somTP_ObjectMgr_somdNewObject *somTD_ObjectMgr_somdNewObject;
  152. /*
  153.  *  Returns a new object of the named class.  This is a "basic" creation
  154.  *  method, where the decisions about where and how to create the object
  155.  *  are mostly left up to the Object Manager.  However, the Object Manager
  156.  *  may optionally define creation "hints" which the client may specify in
  157.  *  this call.
  158.  * 
  159.  *  OWNERSHIP of returned object is transferred to the caller.
  160.  *  methods for identification & location/activation
  161.  */
  162. #define somMD_ObjectMgr_somdNewObject "::ObjectMgr::somdNewObject"
  163. #define ObjectMgr_somdNewObject(somSelf,ev,objclass,hints) \
  164.     (SOM_Resolve(somSelf, ObjectMgr, somdNewObject) \
  165.     (somSelf,ev,objclass,hints))
  166. #ifndef SOMGD_somdNewObject
  167.     #if (defined(_somdNewObject) || defined(__somdNewObject))
  168.         #undef _somdNewObject
  169.         #undef __somdNewObject
  170.         #define SOMGD_somdNewObject 1
  171.     #else
  172.         #define _somdNewObject ObjectMgr_somdNewObject
  173.     #endif /* _somdNewObject */
  174. #endif /* SOMGD_somdNewObject */
  175.  
  176. /*
  177.  * New Method: somdGetIdFromObject
  178.  */
  179. typedef string   SOMLINK somTP_ObjectMgr_somdGetIdFromObject(ObjectMgr *somSelf, Environment *ev, 
  180.         SOMObject* obj);
  181. #pragma linkage(somTP_ObjectMgr_somdGetIdFromObject, system)
  182. typedef somTP_ObjectMgr_somdGetIdFromObject *somTD_ObjectMgr_somdGetIdFromObject;
  183. /*
  184.  *  Returns a external id for an object managed by this Object Manager.
  185.  *  The id is unambiguous -- it always refers to the same object (as long
  186.  *  as the object exists).
  187.  * 
  188.  *  OWNERSHIP of returned id string is transferred to the caller.
  189.  */
  190. #define somMD_ObjectMgr_somdGetIdFromObject "::ObjectMgr::somdGetIdFromObject"
  191. #define ObjectMgr_somdGetIdFromObject(somSelf,ev,obj) \
  192.     (SOM_Resolve(somSelf, ObjectMgr, somdGetIdFromObject) \
  193.     (somSelf,ev,obj))
  194. #ifndef SOMGD_somdGetIdFromObject
  195.     #if (defined(_somdGetIdFromObject) || defined(__somdGetIdFromObject))
  196.         #undef _somdGetIdFromObject
  197.         #undef __somdGetIdFromObject
  198.         #define SOMGD_somdGetIdFromObject 1
  199.     #else
  200.         #define _somdGetIdFromObject ObjectMgr_somdGetIdFromObject
  201.     #endif /* _somdGetIdFromObject */
  202. #endif /* SOMGD_somdGetIdFromObject */
  203.  
  204. /*
  205.  * New Method: somdGetObjectFromId
  206.  */
  207. typedef SOMObject*   SOMLINK somTP_ObjectMgr_somdGetObjectFromId(ObjectMgr *somSelf, Environment *ev, 
  208.         string id);
  209. #pragma linkage(somTP_ObjectMgr_somdGetObjectFromId, system)
  210. typedef somTP_ObjectMgr_somdGetObjectFromId *somTD_ObjectMgr_somdGetObjectFromId;
  211. /*
  212.  *  Finds and/or activates an object implemented by this Object Manager,
  213.  *  given its id.
  214.  * 
  215.  *  OWNERSHIP of returned object is transferred to the caller.
  216.  *  methods for releasing / destroying objects
  217.  */
  218. #define somMD_ObjectMgr_somdGetObjectFromId "::ObjectMgr::somdGetObjectFromId"
  219. #define ObjectMgr_somdGetObjectFromId(somSelf,ev,id) \
  220.     (SOM_Resolve(somSelf, ObjectMgr, somdGetObjectFromId) \
  221.     (somSelf,ev,id))
  222. #ifndef SOMGD_somdGetObjectFromId
  223.     #if (defined(_somdGetObjectFromId) || defined(__somdGetObjectFromId))
  224.         #undef _somdGetObjectFromId
  225.         #undef __somdGetObjectFromId
  226.         #define SOMGD_somdGetObjectFromId 1
  227.     #else
  228.         #define _somdGetObjectFromId ObjectMgr_somdGetObjectFromId
  229.     #endif /* _somdGetObjectFromId */
  230. #endif /* SOMGD_somdGetObjectFromId */
  231.  
  232. /*
  233.  * New Method: somdReleaseObject
  234.  */
  235. typedef void   SOMLINK somTP_ObjectMgr_somdReleaseObject(ObjectMgr *somSelf, Environment *ev, 
  236.         SOMObject* obj);
  237. #pragma linkage(somTP_ObjectMgr_somdReleaseObject, system)
  238. typedef somTP_ObjectMgr_somdReleaseObject *somTD_ObjectMgr_somdReleaseObject;
  239. /*
  240.  *  Indicates that the client has finished using the object, and the
  241.  *  "connection" to the object, if any, can be released.
  242.  */
  243. #define somMD_ObjectMgr_somdReleaseObject "::ObjectMgr::somdReleaseObject"
  244. #define ObjectMgr_somdReleaseObject(somSelf,ev,obj) \
  245.     (SOM_Resolve(somSelf, ObjectMgr, somdReleaseObject) \
  246.     (somSelf,ev,obj))
  247. #ifndef SOMGD_somdReleaseObject
  248.     #if (defined(_somdReleaseObject) || defined(__somdReleaseObject))
  249.         #undef _somdReleaseObject
  250.         #undef __somdReleaseObject
  251.         #define SOMGD_somdReleaseObject 1
  252.     #else
  253.         #define _somdReleaseObject ObjectMgr_somdReleaseObject
  254.     #endif /* _somdReleaseObject */
  255. #endif /* SOMGD_somdReleaseObject */
  256.  
  257. /*
  258.  * New Method: somdDestroyObject
  259.  */
  260. typedef void   SOMLINK somTP_ObjectMgr_somdDestroyObject(ObjectMgr *somSelf, Environment *ev, 
  261.         SOMObject* obj);
  262. #pragma linkage(somTP_ObjectMgr_somdDestroyObject, system)
  263. typedef somTP_ObjectMgr_somdDestroyObject *somTD_ObjectMgr_somdDestroyObject;
  264. /*
  265.  *  Causes the specified object to be destroyed.  (There is an implicit
  266.  *  somoReleaseObject call made.)
  267.  */
  268. #define somMD_ObjectMgr_somdDestroyObject "::ObjectMgr::somdDestroyObject"
  269. #define ObjectMgr_somdDestroyObject(somSelf,ev,obj) \
  270.     (SOM_Resolve(somSelf, ObjectMgr, somdDestroyObject) \
  271.     (somSelf,ev,obj))
  272. #ifndef SOMGD_somdDestroyObject
  273.     #if (defined(_somdDestroyObject) || defined(__somdDestroyObject))
  274.         #undef _somdDestroyObject
  275.         #undef __somdDestroyObject
  276.         #define SOMGD_somdDestroyObject 1
  277.     #else
  278.         #define _somdDestroyObject ObjectMgr_somdDestroyObject
  279.     #endif /* _somdDestroyObject */
  280. #endif /* SOMGD_somdDestroyObject */
  281. #ifndef SOM_DONT_USE_INHERITED_MACROS
  282. #define ObjectMgr_somDefaultInit SOMObject_somDefaultInit
  283. #define ObjectMgr_somDestruct SOMObject_somDestruct
  284. #define ObjectMgr_somDefaultCopyInit SOMObject_somDefaultCopyInit
  285. #define ObjectMgr_somDefaultAssign SOMObject_somDefaultAssign
  286. #define ObjectMgr_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  287. #define ObjectMgr_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  288. #define ObjectMgr_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  289. #define ObjectMgr_somDefaultConstAssign SOMObject_somDefaultConstAssign
  290. #define ObjectMgr_somDefaultVAssign SOMObject_somDefaultVAssign
  291. #define ObjectMgr_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  292. #define ObjectMgr_somInit SOMObject_somInit
  293. #define ObjectMgr_somFree SOMObject_somFree
  294. #define ObjectMgr_somUninit SOMObject_somUninit
  295. #define ObjectMgr_somGetClass SOMObject_somGetClass
  296. #define ObjectMgr_somGetClassName SOMObject_somGetClassName
  297. #define ObjectMgr_somGetSize SOMObject_somGetSize
  298. #define ObjectMgr_somIsA SOMObject_somIsA
  299. #define ObjectMgr_somIsInstanceOf SOMObject_somIsInstanceOf
  300. #define ObjectMgr_somRespondsTo SOMObject_somRespondsTo
  301. #define ObjectMgr_somDispatch SOMObject_somDispatch
  302. #define ObjectMgr_somClassDispatch SOMObject_somClassDispatch
  303. #define ObjectMgr_somCastObj SOMObject_somCastObj
  304. #define ObjectMgr_somResetObj SOMObject_somResetObj
  305. #define ObjectMgr_somDispatchV SOMObject_somDispatchV
  306. #define ObjectMgr_somDispatchL SOMObject_somDispatchL
  307. #define ObjectMgr_somDispatchA SOMObject_somDispatchA
  308. #define ObjectMgr_somDispatchD SOMObject_somDispatchD
  309. #define ObjectMgr_somPrintSelf SOMObject_somPrintSelf
  310. #define ObjectMgr_somDumpSelf SOMObject_somDumpSelf
  311. #define ObjectMgr_somDumpSelfInt SOMObject_somDumpSelfInt
  312. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  313.  
  314. #endif       /* SOM_ObjectMgr_h */
  315.