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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: h:\somnt\include\SOMDSERV.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.  *    Interface for DSOM Server Objects
  24.  * 
  25.  *    This class defines and implements the behavior of DSOM Server objects
  26.  *    used with the DSOM Object Manager (SOMDObjectMgr).
  27.  * 
  28.  *    Each DSOM server process is defined to have a (single instance of a)
  29.  *    SOMDServer object.  The SOMDServer object performs three kinds of
  30.  *    functions:
  31.  * 
  32.  *        1) creation of SOM objects
  33.  *        2) mapping of application-defined object ids into DSOM object
  34.  *           "references" (SOMDObjects), and back again
  35.  *        3) any application-specific server methods (e.g., for initialization,
  36.  *           server control, etc.)
  37.  * 
  38.  *    The SOMDServer class defines methods for the basic creation of SOM
  39.  *    objects in the server process (somdCreateObj), for deletion of SOM
  40.  *    objects (somdDeleteObj), and for finding the SOM  class object for a
  41.  *    specified class (somdGetClassObj).
  42.  *    With somdGetClassObj, a client can get a proxy to a class object on the
  43.  *    server, so that methods introduced in the metaclass (e.g., class-specific
  44.  *    constructors, etc.) may be invoked directly.
  45.  * 
  46.  *    This class also defines methods for the mappings to and from SOMDObjects
  47.  *    and back again.  (Note: SOMDObject implements a CORBA "object reference"
  48.  *    in DSOM.  An object reference is something that is used to describe and
  49.  *    locate an actual target object.)  These methods are used by the SOM
  50.  *    Object Adapter (SOMOA) when converting messages into method calls
  51.  *    and results into messages.
  52.  * 
  53.  *    Application-specific server methods should be defined in subclasses
  54.  *    of this SOMDServer subclass.
  55.  * 
  56.  *    A particular SOMDServer subclass is specified in the ImplementationDef
  57.  *    for each server process.  The SOMOA will instantiate one instance
  58.  *    of the specified SOMDServer subclass during server process initialization
  59.  *    (in SOMOA::impl_is_ready).
  60.  * 
  61.  */
  62.  
  63.  
  64. #ifndef SOM_SOMDServer_h
  65. #define SOM_SOMDServer_h
  66.  
  67.  
  68. #include <som.h>
  69.  
  70. /*
  71.  * -- This emitter treats Method Tokens as Thunks by default.
  72.  * -- Use the sc modifier "nothunks" to change this default
  73.  */
  74. #undef somresolve_
  75. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  76.  
  77. /*
  78.  * Define the class name as an object type
  79.  */
  80. #ifndef SOMDServer
  81. #define SOMDServer SOMObject
  82. #endif
  83. #include <somobj.h>
  84.  
  85. /*
  86.  * Start of user-defined types:
  87.  */
  88. #ifndef SOMClass
  89.     #define SOMClass SOMObject
  90. #endif /* SOMClass */
  91. #ifndef Container
  92.     #define Container SOMObject
  93. #endif /* Container */
  94. #ifndef SOMDObject
  95.     #define SOMDObject SOMObject
  96. #endif /* SOMDObject */
  97.  
  98. /*
  99.  * End of user-defined types.
  100.  */
  101.  
  102. /*
  103.  * Passthru lines: File: "C.h", "after"
  104.  */
  105.  
  106. #ifdef SOM_STRICT_IDL
  107. SOMEXTERN WIN32_DLLIMPORT SOMDServer  SOMDLINK SOMD_ServerObject;  /* global variable */
  108. #else
  109. SOMEXTERN WIN32_DLLIMPORT SOMDServer * SOMDLINK SOMD_ServerObject;  /* global variable */
  110. #endif /* SOM_STRICT_IDL */
  111.  
  112.  
  113. #define SOMDServer_MajorVersion 2
  114. #define SOMDServer_MinorVersion 1
  115.  
  116. /*
  117.  * External name shortening if required
  118.  */
  119. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  120. #define SOMDServerNewClass c
  121. #define SOMDServerClassData d
  122. #define SOMDServerCClassData x
  123. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  124.  
  125. /*
  126.  * Include the meta class file
  127.  */
  128. #include <snglicls.h>
  129. /*--------------Migration------------*/
  130. #define SOMDServer_classObj SOMDServerClassData.classObject
  131. #define _SOMDServer SOMDServer_classObj
  132.  
  133. /*
  134.  * Declare the class creation procedure
  135.  */
  136. SOMEXTERN
  137. #if (defined(SOM_Module_SOMDSERV_Source) || defined(SOMDServer_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_SOMDServer))
  138. WIN32_DLLEXPORT
  139. #else
  140. WIN32_DLLIMPORT
  141. #endif
  142. SOMClass * SOMLINK SOMDServerNewClass(integer4 somntmajorVersion,
  143.         integer4 somntminorVersion);
  144.  
  145. /*
  146.  * Declare the class data structure
  147.  */
  148. SOMEXTERN struct SOMDServerClassDataStructure {
  149.     SOMClass *classObject;
  150.     somMToken somdSOMObjFromRef;
  151.     somMToken somdRefFromSOMObj;
  152.     somMToken somdCreateObj;
  153.     somMToken somdDeleteObj;
  154.     somMToken somdGetClassObj;
  155.     somMToken somdDispatchMethod;
  156.     somMToken somdObjReferencesCached;
  157. #if (defined(SOM_Module_SOMDSERV_Source) || defined(SOMDServer_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_SOMDServer))
  158. } WIN32_DLLEXPORT SOMDLINK SOMDServerClassData;
  159. #else
  160. } WIN32_DLLIMPORT SOMDLINK SOMDServerClassData;
  161. #endif
  162.  
  163. /*
  164.  * Declare the C specific class data structure
  165.  */
  166. SOMEXTERN struct SOMDServerCClassDataStructure {
  167.     somMethodTabs parentMtab;
  168.     somDToken instanceDataToken;
  169.     somMethodProc *somdDispatchMethod;
  170. #if (defined(SOM_Module_SOMDSERV_Source) || defined(SOMDServer_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_SOMDServer))
  171. } WIN32_DLLEXPORT SOMDLINK SOMDServerCClassData;
  172. #else
  173. } WIN32_DLLIMPORT SOMDLINK SOMDServerCClassData;
  174. #endif
  175.  
  176. /*
  177.  * New and Renew macros for SOMDServer
  178.  */
  179. #define SOMDServerNew() \
  180.    (_somNew(_SOMDServer ? _SOMDServer : SOMDServerNewClass(SOMDServer_MajorVersion, SOMDServer_MinorVersion)))
  181. #define SOMDServerRenew(buf) \
  182.    (_somRenew(_SOMDServer ? _SOMDServer : SOMDServerNewClass(SOMDServer_MajorVersion, SOMDServer_MinorVersion), buf))
  183.  
  184. /*
  185.  * New Method: somdRefFromSOMObj
  186.  */
  187. typedef SOMDObject*   SOMLINK somTP_SOMDServer_somdRefFromSOMObj(SOMDServer *somSelf, Environment *ev,
  188.         SOMObject* somobj);
  189. typedef somTP_SOMDServer_somdRefFromSOMObj *somTD_SOMDServer_somdRefFromSOMObj;
  190. #define somMD_SOMDServer_somdRefFromSOMObj "::SOMDServer::somdRefFromSOMObj"
  191. #define SOMDServer_somdRefFromSOMObj(somSelf,ev,somobj) \
  192.     (SOM_Resolve(somSelf, SOMDServer, somdRefFromSOMObj) \
  193.     (somSelf,ev,somobj))
  194. #ifndef SOMGD_somdRefFromSOMObj
  195.     #if (defined(_somdRefFromSOMObj) || defined(__somdRefFromSOMObj))
  196.         #undef _somdRefFromSOMObj
  197.         #undef __somdRefFromSOMObj
  198.         #define SOMGD_somdRefFromSOMObj 1
  199.     #else
  200.         #define _somdRefFromSOMObj SOMDServer_somdRefFromSOMObj
  201.     #endif /* _somdRefFromSOMObj */
  202. #endif /* SOMGD_somdRefFromSOMObj */
  203.  
  204. /*
  205.  * New Method: somdSOMObjFromRef
  206.  */
  207. typedef SOMObject*   SOMLINK somTP_SOMDServer_somdSOMObjFromRef(SOMDServer *somSelf, Environment *ev,
  208.         SOMDObject* objref);
  209. typedef somTP_SOMDServer_somdSOMObjFromRef *somTD_SOMDServer_somdSOMObjFromRef;
  210. #define somMD_SOMDServer_somdSOMObjFromRef "::SOMDServer::somdSOMObjFromRef"
  211. #define SOMDServer_somdSOMObjFromRef(somSelf,ev,objref) \
  212.     (SOM_Resolve(somSelf, SOMDServer, somdSOMObjFromRef) \
  213.     (somSelf,ev,objref))
  214. #ifndef SOMGD_somdSOMObjFromRef
  215.     #if (defined(_somdSOMObjFromRef) || defined(__somdSOMObjFromRef))
  216.         #undef _somdSOMObjFromRef
  217.         #undef __somdSOMObjFromRef
  218.         #define SOMGD_somdSOMObjFromRef 1
  219.     #else
  220.         #define _somdSOMObjFromRef SOMDServer_somdSOMObjFromRef
  221.     #endif /* _somdSOMObjFromRef */
  222. #endif /* SOMGD_somdSOMObjFromRef */
  223.  
  224. /*
  225.  * New Method: somdDispatchMethod
  226.  */
  227. typedef void   SOMLINK somTP_SOMDServer_somdDispatchMethod(SOMDServer *somSelf, Environment *ev,
  228.         SOMObject* somobj,
  229.         somToken* retValue,
  230.         somId methodId,
  231.         va_list ap);
  232. typedef somTP_SOMDServer_somdDispatchMethod *somTD_SOMDServer_somdDispatchMethod;
  233. #define somMD_SOMDServer_somdDispatchMethod "::SOMDServer::somdDispatchMethod"
  234. #define SOMDServer_somdDispatchMethod(somSelf,ev,somobj,retValue,methodId,ap) \
  235.     (SOM_Resolve(somSelf, SOMDServer, somdDispatchMethod) \
  236.     (somSelf,ev,somobj,retValue,methodId,ap))
  237.  
  238. /*
  239.  * legacy support for non-system-linkage vararg stub
  240.  * use -mnolegacy to avoid generating this stub.
  241.  */
  242. #ifdef SOMDServer_VA_EXTERN
  243.     SOMEXTERN
  244. #else
  245.     static
  246. #endif
  247. void   va_SOMDServer_somdDispatchMethod(SOMDServer *somSelf, Environment *ev,
  248.         SOMObject* somobj,
  249.         somToken* retValue,
  250.         somId methodId,
  251.         ...)
  252. #if (defined(SOMDServer_VA_STUBS)||!defined(SOMDServer_VA_EXTERN))
  253. {
  254.     va_list ap;
  255.     va_start(ap, methodId);
  256.     SOMDServer_somdDispatchMethod(somSelf,ev,somobj,retValue,methodId,ap);
  257.     va_end(ap);
  258. }    
  259. #else
  260.     ;
  261. #endif
  262.  
  263. /*
  264.  * normal vararg stubs
  265.  */
  266. #ifndef SOMGD_va_somdDispatchMethod
  267.    #ifdef va_somdDispatchMethod
  268.       #undef va_somdDispatchMethod
  269.       #define SOMGD_va_somdDispatchMethod 1
  270.    #else
  271.       #define va_somdDispatchMethod somva_SOMDServer_somdDispatchMethod
  272.    #endif /* va_somdDispatchMethod */
  273. #endif /* SOMGD_va_somdDispatchMethod */
  274. #ifndef SOMGD_somdDispatchMethod
  275.     #if (defined(_somdDispatchMethod) || defined(__somdDispatchMethod))
  276.         #undef _somdDispatchMethod
  277.         #undef __somdDispatchMethod
  278.         #define SOMGD_somdDispatchMethod 1
  279.     #else
  280.         #define _somdDispatchMethod somva_SOMDServer_somdDispatchMethod
  281.     #endif /* _somdDispatchMethod */
  282. #endif /* SOMGD_somdDispatchMethod */
  283. #ifdef SOMDServer_VA_EXTERN
  284.     SOMEXTERN
  285. #else
  286.     static
  287. #endif
  288. void  SOMLINK somva_SOMDServer_somdDispatchMethod(SOMDServer *somSelf, Environment *ev,
  289.         SOMObject* somobj,
  290.         somToken* retValue,
  291.         somId methodId,
  292.         ...)
  293. #if (defined(SOMDServer_VA_STUBS)||!defined(SOMDServer_VA_EXTERN))
  294. {
  295.     va_list ap;
  296.     va_start(ap, methodId);
  297.     SOMDServer_somdDispatchMethod(somSelf,ev,somobj,retValue,methodId,ap);
  298.     va_end(ap);
  299. }    
  300. #else
  301.     ;
  302. #endif
  303.  
  304. /*
  305.  * New Method: somdCreateObj
  306.  */
  307. typedef SOMObject*   SOMLINK somTP_SOMDServer_somdCreateObj(SOMDServer *somSelf, Environment *ev,
  308.         Identifier objclass,
  309.         string hints);
  310. typedef somTP_SOMDServer_somdCreateObj *somTD_SOMDServer_somdCreateObj;
  311. #define somMD_SOMDServer_somdCreateObj "::SOMDServer::somdCreateObj"
  312. #define SOMDServer_somdCreateObj(somSelf,ev,objclass,hints) \
  313.     (SOM_Resolve(somSelf, SOMDServer, somdCreateObj) \
  314.     (somSelf,ev,objclass,hints))
  315. #ifndef SOMGD_somdCreateObj
  316.     #if (defined(_somdCreateObj) || defined(__somdCreateObj))
  317.         #undef _somdCreateObj
  318.         #undef __somdCreateObj
  319.         #define SOMGD_somdCreateObj 1
  320.     #else
  321.         #define _somdCreateObj SOMDServer_somdCreateObj
  322.     #endif /* _somdCreateObj */
  323. #endif /* SOMGD_somdCreateObj */
  324.  
  325. /*
  326.  * New Method: somdDeleteObj
  327.  */
  328. typedef void   SOMLINK somTP_SOMDServer_somdDeleteObj(SOMDServer *somSelf, Environment *ev,
  329.         SOMObject* somobj);
  330. typedef somTP_SOMDServer_somdDeleteObj *somTD_SOMDServer_somdDeleteObj;
  331. #define somMD_SOMDServer_somdDeleteObj "::SOMDServer::somdDeleteObj"
  332. #define SOMDServer_somdDeleteObj(somSelf,ev,somobj) \
  333.     (SOM_Resolve(somSelf, SOMDServer, somdDeleteObj) \
  334.     (somSelf,ev,somobj))
  335. #ifndef SOMGD_somdDeleteObj
  336.     #if (defined(_somdDeleteObj) || defined(__somdDeleteObj))
  337.         #undef _somdDeleteObj
  338.         #undef __somdDeleteObj
  339.         #define SOMGD_somdDeleteObj 1
  340.     #else
  341.         #define _somdDeleteObj SOMDServer_somdDeleteObj
  342.     #endif /* _somdDeleteObj */
  343. #endif /* SOMGD_somdDeleteObj */
  344.  
  345. /*
  346.  * New Method: somdGetClassObj
  347.  */
  348. typedef SOMClass*   SOMLINK somTP_SOMDServer_somdGetClassObj(SOMDServer *somSelf, Environment *ev,
  349.         Identifier objclass);
  350. typedef somTP_SOMDServer_somdGetClassObj *somTD_SOMDServer_somdGetClassObj;
  351. #define somMD_SOMDServer_somdGetClassObj "::SOMDServer::somdGetClassObj"
  352. #define SOMDServer_somdGetClassObj(somSelf,ev,objclass) \
  353.     (SOM_Resolve(somSelf, SOMDServer, somdGetClassObj) \
  354.     (somSelf,ev,objclass))
  355. #ifndef SOMGD_somdGetClassObj
  356.     #if (defined(_somdGetClassObj) || defined(__somdGetClassObj))
  357.         #undef _somdGetClassObj
  358.         #undef __somdGetClassObj
  359.         #define SOMGD_somdGetClassObj 1
  360.     #else
  361.         #define _somdGetClassObj SOMDServer_somdGetClassObj
  362.     #endif /* _somdGetClassObj */
  363. #endif /* SOMGD_somdGetClassObj */
  364.  
  365. /*
  366.  * New Method: somdObjReferencesCached
  367.  */
  368. typedef boolean   SOMLINK somTP_SOMDServer_somdObjReferencesCached(SOMDServer *somSelf, Environment *ev);
  369. typedef somTP_SOMDServer_somdObjReferencesCached *somTD_SOMDServer_somdObjReferencesCached;
  370. #define somMD_SOMDServer_somdObjReferencesCached "::SOMDServer::somdObjReferencesCached"
  371. #define SOMDServer_somdObjReferencesCached(somSelf,ev) \
  372.     (SOM_Resolve(somSelf, SOMDServer, somdObjReferencesCached) \
  373.     (somSelf,ev))
  374. #ifndef SOMGD_somdObjReferencesCached
  375.     #if (defined(_somdObjReferencesCached) || defined(__somdObjReferencesCached))
  376.         #undef _somdObjReferencesCached
  377.         #undef __somdObjReferencesCached
  378.         #define SOMGD_somdObjReferencesCached 1
  379.     #else
  380.         #define _somdObjReferencesCached SOMDServer_somdObjReferencesCached
  381.     #endif /* _somdObjReferencesCached */
  382. #endif /* SOMGD_somdObjReferencesCached */
  383. #ifndef SOM_DONT_USE_INHERITED_MACROS
  384. #define SOMDServer_somDefaultInit SOMObject_somDefaultInit
  385. #define SOMDServer_somDestruct SOMObject_somDestruct
  386. #define SOMDServer_somDefaultCopyInit SOMObject_somDefaultCopyInit
  387. #define SOMDServer_somDefaultAssign SOMObject_somDefaultAssign
  388. #define SOMDServer_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  389. #define SOMDServer_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  390. #define SOMDServer_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  391. #define SOMDServer_somDefaultConstAssign SOMObject_somDefaultConstAssign
  392. #define SOMDServer_somDefaultVAssign SOMObject_somDefaultVAssign
  393. #define SOMDServer_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  394. #define SOMDServer_somInit SOMObject_somInit
  395. #define SOMDServer_somFree SOMObject_somFree
  396. #define SOMDServer_somUninit SOMObject_somUninit
  397. #define SOMDServer_somGetClass SOMObject_somGetClass
  398. #define SOMDServer_somGetClassName SOMObject_somGetClassName
  399. #define SOMDServer_somGetSize SOMObject_somGetSize
  400. #define SOMDServer_somIsA SOMObject_somIsA
  401. #define SOMDServer_somIsInstanceOf SOMObject_somIsInstanceOf
  402. #define SOMDServer_somRespondsTo SOMObject_somRespondsTo
  403. #define SOMDServer_somDispatch SOMObject_somDispatch
  404. #define SOMDServer_somClassDispatch SOMObject_somClassDispatch
  405. #define SOMDServer_somCastObj SOMObject_somCastObj
  406. #define SOMDServer_somResetObj SOMObject_somResetObj
  407. #define SOMDServer_somPrintSelf SOMObject_somPrintSelf
  408. #define SOMDServer_somDumpSelf SOMObject_somDumpSelf
  409. #define SOMDServer_somDumpSelfInt SOMObject_somDumpSelfInt
  410. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  411.  
  412. #endif       /* SOM_SOMDServer_h */
  413.