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

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: somcm.h.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.29.1.17
  7.  *     SOM Emitter emith: 2.47
  8.  */
  9.  
  10. /*
  11.  *   SOMClassMgr: System Object Model class manager
  12.  */
  13.  
  14.  
  15. #ifndef SOM_SOMClassMgr_h
  16. #define SOM_SOMClassMgr_h
  17.  
  18.  
  19. #include <som.h>
  20.  
  21. /*
  22.  * -- This emitter treats Method Tokens as Thunks by default.
  23.  * -- Use the sc modifier "nothunks" to change this default
  24.  */
  25. #undef somresolve_
  26. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  27.  
  28. /*
  29.  * Define the class name as an object type
  30.  */
  31. #ifndef SOMClassMgr
  32. #define SOMClassMgr SOMObject
  33. #endif
  34. /*
  35.  *  [Basic Functions Group]
  36.  */
  37. #include <somobj.h>
  38.  
  39. /*
  40.  * Start of bindings for IDL types
  41.  */
  42.  
  43. #ifndef SOMClass
  44.     #define SOMClass SOMObject
  45. #endif /* SOMClass */
  46. #ifndef Repository
  47.     #define Repository SOMObject
  48. #endif /* Repository */
  49. typedef
  50. SOMClass** SOMClassMgr_SOMClassArray;
  51. /*
  52.  *  Used for SOM 1.0 binary compatibility
  53.  */
  54.  
  55. #ifndef _IDL_SEQUENCE_SOMClass_defined
  56. #define _IDL_SEQUENCE_SOMClass_defined
  57. typedef struct {
  58.     unsigned long _maximum;
  59.     unsigned long _length;
  60.     SOMClass **_buffer;
  61. } _IDL_SEQUENCE_SOMClass;
  62. #endif /* _IDL_SEQUENCE_SOMClass_defined */ 
  63.  
  64. #ifndef SOM_DONT_USE_SHORT_NAMES
  65. #ifndef SOMTGD_SOMClassArray
  66.     #ifdef SOMClassArray
  67.         #undef SOMClassArray
  68.         #define SOMTGD_SOMClassArray 1
  69.     #else
  70.         #define SOMClassArray SOMClassMgr_SOMClassArray
  71.     #endif /* SOMClassArray */
  72. #endif /* SOMTGD_SOMClassArray */
  73. #endif /* SOM_DONT_USE_SHORT_NAMES */
  74.  
  75. #ifndef SOM_DONT_USE_SHORT_NAMES
  76. #endif /* SOM_DONT_USE_SHORT_NAMES */
  77.  
  78. /*
  79.  * End of bindings for IDL types.
  80.  */
  81.  
  82. #define SOMClassMgr_MajorVersion 1
  83. #define SOMClassMgr_MinorVersion 5
  84.  
  85. /*
  86.  * External name shortening if required
  87.  */
  88. #ifdef SOM_USE_SHORT_EXTERNAL_NAMES
  89. #define SOMClassMgrNewClass somcmc
  90. #pragma linkage(somcmc, system)
  91. #define SOMClassMgrClassData somcmd
  92. #define SOMClassMgrCClassData somcmx
  93. #endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
  94. /*--------------Migration------------*/
  95. #define SOMClassMgr_classObj SOMClassMgrClassData.classObject
  96. #define _SOMClassMgr SOMClassMgr_classObj
  97.  
  98. /*
  99.  * Declare the class creation procedure
  100.  */
  101. SOMEXTERN SOMClass * SOMLINK SOMClassMgrNewClass(integer4 somtmajorVersion,
  102.         integer4 somtminorVersion);
  103. #pragma linkage(SOMClassMgrNewClass, system)
  104.  
  105. /*
  106.  * Declare the class data structure
  107.  */
  108. SOMEXTERN struct SOMClassMgrClassDataStructure {
  109.     SOMClass *classObject;
  110.     somMToken somFindClsInFile;
  111.     somMToken somFindClass;
  112.     somMToken somClassFromId;
  113.     somMToken somRegisterClass;
  114.     somMToken somUnregisterClass;
  115.     somMToken somLocateClassFile;
  116.     somMToken somLoadClassFile;
  117.     somMToken somUnloadClassFile;
  118.     somMToken somGetInitFunction;
  119.     somMToken somMergeInto;
  120.     somMToken somGetRelatedClasses;
  121.     somMToken somSubstituteClass;
  122.     somMToken _get_somInterfaceRepository;
  123.     somMToken _set_somInterfaceRepository;
  124.     somMToken _get_somRegisteredClasses;
  125.     somMToken somBeginPersistentClasses;
  126.     somMToken somEndPersistentClasses;
  127.     somMToken somcmPrivate1;
  128.     somMToken somcmPrivate2;
  129.     somMToken somRegisterClassLibrary;
  130.     somMToken somJoinAffinityGroup;
  131.     somMToken somUnregisterClassLibrary;
  132. } SOMDLINK SOMClassMgrClassData;
  133.  
  134. /*
  135.  * Declare the C specific class data structure
  136.  */
  137. SOMEXTERN struct SOMClassMgrCClassDataStructure {
  138.     somMethodTabs parentMtab;
  139.     somDToken instanceDataToken;
  140. } SOMDLINK SOMClassMgrCClassData;
  141.  
  142. /*
  143.  * New and Renew macros for SOMClassMgr
  144.  */
  145. #define SOMClassMgrNew() \
  146.    ( _SOMClassMgr ? \
  147.     _somNew(_SOMClassMgr) \
  148.     : ( SOMClassMgrNewClass(\
  149.         SOMClassMgr_MajorVersion, \
  150.         SOMClassMgr_MinorVersion),\
  151.        _somNew(_SOMClassMgr)))
  152. #define SOMClassMgrRenew(buf) \
  153.    ( _SOMClassMgr ? \
  154.     _somRenew(_SOMClassMgr, buf) \
  155.     : ( SOMClassMgrNewClass(\
  156.         SOMClassMgr_MajorVersion, \
  157.         SOMClassMgr_MinorVersion),\
  158.        _somRenew(_SOMClassMgr, buf)))
  159.  
  160. /*
  161.  * Override method: somInit
  162.  */
  163. #define SOMClassMgr_somInit(somSelf) \
  164.     SOMObject_somInit(somSelf)
  165.  
  166. /*
  167.  * Override method: somUninit
  168.  */
  169. #define SOMClassMgr_somUninit(somSelf) \
  170.     SOMObject_somUninit(somSelf)
  171.  
  172. /*
  173.  * Override method: somDumpSelfInt
  174.  */
  175. #define SOMClassMgr_somDumpSelfInt(somSelf,level) \
  176.     SOMObject_somDumpSelfInt(somSelf,level)
  177.  
  178. /*
  179.  * New Method: somLoadClassFile
  180.  */
  181. typedef SOMClass*   SOMLINK somTP_SOMClassMgr_somLoadClassFile(SOMClassMgr *somSelf, 
  182.         somId classId, 
  183.         long majorVersion, 
  184.         long minorVersion, 
  185.         string file);
  186. #pragma linkage(somTP_SOMClassMgr_somLoadClassFile, system)
  187. typedef somTP_SOMClassMgr_somLoadClassFile *somTD_SOMClassMgr_somLoadClassFile;
  188. /*
  189.  *  Loads the class' code and initializes the class object.
  190.  */
  191. #define somMD_SOMClassMgr_somLoadClassFile "::SOMClassMgr::somLoadClassFile"
  192. #define SOMClassMgr_somLoadClassFile(somSelf,classId,majorVersion,minorVersion,file) \
  193.     (SOM_Resolve(somSelf, SOMClassMgr, somLoadClassFile) \
  194.     (somSelf,classId,majorVersion,minorVersion,file))
  195. #ifndef SOMGD_somLoadClassFile
  196.     #if (defined(_somLoadClassFile) || defined(__somLoadClassFile))
  197.         #undef _somLoadClassFile
  198.         #undef __somLoadClassFile
  199.         #define SOMGD_somLoadClassFile 1
  200.     #else
  201.         #define _somLoadClassFile SOMClassMgr_somLoadClassFile
  202.     #endif /* _somLoadClassFile */
  203. #endif /* SOMGD_somLoadClassFile */
  204.  
  205. /*
  206.  * New Method: somLocateClassFile
  207.  */
  208. typedef string   SOMLINK somTP_SOMClassMgr_somLocateClassFile(SOMClassMgr *somSelf, 
  209.         somId classId, 
  210.         long majorVersion, 
  211.         long minorVersion);
  212. #pragma linkage(somTP_SOMClassMgr_somLocateClassFile, system)
  213. typedef somTP_SOMClassMgr_somLocateClassFile *somTD_SOMClassMgr_somLocateClassFile;
  214. /*
  215.  *  Real implementation supplied by subclasses.  Default implementation
  216.  *  will lookup the class name in the Interface Repository (if one is
  217.  *  available) to determine the implementation file name (ie, DLL name).
  218.  *  If this information is not available, the class name itself is
  219.  *  returned as the file name.   Subclasses may use version number
  220.  *  info to assist in deriving the file name.
  221.  */
  222. #define somMD_SOMClassMgr_somLocateClassFile "::SOMClassMgr::somLocateClassFile"
  223. #define SOMClassMgr_somLocateClassFile(somSelf,classId,majorVersion,minorVersion) \
  224.     (SOM_Resolve(somSelf, SOMClassMgr, somLocateClassFile) \
  225.     (somSelf,classId,majorVersion,minorVersion))
  226. #ifndef SOMGD_somLocateClassFile
  227.     #if (defined(_somLocateClassFile) || defined(__somLocateClassFile))
  228.         #undef _somLocateClassFile
  229.         #undef __somLocateClassFile
  230.         #define SOMGD_somLocateClassFile 1
  231.     #else
  232.         #define _somLocateClassFile SOMClassMgr_somLocateClassFile
  233.     #endif /* _somLocateClassFile */
  234. #endif /* SOMGD_somLocateClassFile */
  235.  
  236. /*
  237.  * New Method: somRegisterClass
  238.  */
  239. typedef void   SOMLINK somTP_SOMClassMgr_somRegisterClass(SOMClassMgr *somSelf, 
  240.         SOMClass* classObj);
  241. #pragma linkage(somTP_SOMClassMgr_somRegisterClass, system)
  242. typedef somTP_SOMClassMgr_somRegisterClass *somTD_SOMClassMgr_somRegisterClass;
  243. /*
  244.  *  Lets the class manager know that the specified class is installed
  245.  *  and tells it where the class object is.
  246.  */
  247. #define somMD_SOMClassMgr_somRegisterClass "::SOMClassMgr::somRegisterClass"
  248. #define SOMClassMgr_somRegisterClass(somSelf,classObj) \
  249.     (SOM_Resolve(somSelf, SOMClassMgr, somRegisterClass) \
  250.     (somSelf,classObj))
  251. #ifndef SOMGD_somRegisterClass
  252.     #if (defined(_somRegisterClass) || defined(__somRegisterClass))
  253.         #undef _somRegisterClass
  254.         #undef __somRegisterClass
  255.         #define SOMGD_somRegisterClass 1
  256.     #else
  257.         #define _somRegisterClass SOMClassMgr_somRegisterClass
  258.     #endif /* _somRegisterClass */
  259. #endif /* SOMGD_somRegisterClass */
  260.  
  261. /*
  262.  * New Method: somRegisterClassLibrary
  263.  */
  264. typedef void   SOMLINK somTP_SOMClassMgr_somRegisterClassLibrary(SOMClassMgr *somSelf, 
  265.         string libraryName, 
  266.         somMethodPtr libraryInitRtn);
  267. #pragma linkage(somTP_SOMClassMgr_somRegisterClassLibrary, system)
  268. typedef somTP_SOMClassMgr_somRegisterClassLibrary *somTD_SOMClassMgr_somRegisterClassLibrary;
  269. /*
  270.  *  Informs the class manager that a class library has been loaded.
  271.  *  "libraryName" is the name associated with the file containing the
  272.  *  implementation(s) of the class(es) in the class library.
  273.  *  "libraryInitRtn" is the entry point of a SOMInitModule function
  274.  *  that can be used to initialize the class library.  For platforms
  275.  *  that have the capability to automatically invoke a library
  276.  *  initialization function whenever a library is loaded, a call
  277.  *  to this method should occur within the library's automatic init
  278.  *  function.
  279.  */
  280. #define somMD_SOMClassMgr_somRegisterClassLibrary "::SOMClassMgr::somRegisterClassLibrary"
  281. #define SOMClassMgr_somRegisterClassLibrary(somSelf,libraryName,libraryInitRtn) \
  282.     (SOM_Resolve(somSelf, SOMClassMgr, somRegisterClassLibrary) \
  283.     (somSelf,libraryName,libraryInitRtn))
  284. #ifndef SOMGD_somRegisterClassLibrary
  285.     #if (defined(_somRegisterClassLibrary) || defined(__somRegisterClassLibrary))
  286.         #undef _somRegisterClassLibrary
  287.         #undef __somRegisterClassLibrary
  288.         #define SOMGD_somRegisterClassLibrary 1
  289.     #else
  290.         #define _somRegisterClassLibrary SOMClassMgr_somRegisterClassLibrary
  291.     #endif /* _somRegisterClassLibrary */
  292. #endif /* SOMGD_somRegisterClassLibrary */
  293.  
  294. /*
  295.  * New Method: somUnregisterClassLibrary
  296.  */
  297. typedef void   SOMLINK somTP_SOMClassMgr_somUnregisterClassLibrary(SOMClassMgr *somSelf, 
  298.         string libraryName);
  299. #pragma linkage(somTP_SOMClassMgr_somUnregisterClassLibrary, system)
  300. typedef somTP_SOMClassMgr_somUnregisterClassLibrary *somTD_SOMClassMgr_somUnregisterClassLibrary;
  301. /*
  302.  *  Informs the class manager that a class library has been unloaded.
  303.  *  "libraryName" is the name associated with the file containing the
  304.  *  implementation(s) of the class(es) in the class library.
  305.  *  For platforms that have the capability to automatically invoke a
  306.  *  library termination function whenever a library is unloaded, a call
  307.  *  to this method should occur within the library's automatic
  308.  *  termination function.
  309.  */
  310. #define somMD_SOMClassMgr_somUnregisterClassLibrary "::SOMClassMgr::somUnregisterClassLibrary"
  311. #define SOMClassMgr_somUnregisterClassLibrary(somSelf,libraryName) \
  312.     (SOM_Resolve(somSelf, SOMClassMgr, somUnregisterClassLibrary) \
  313.     (somSelf,libraryName))
  314. #ifndef SOMGD_somUnregisterClassLibrary
  315.     #if (defined(_somUnregisterClassLibrary) || defined(__somUnregisterClassLibrary))
  316.         #undef _somUnregisterClassLibrary
  317.         #undef __somUnregisterClassLibrary
  318.         #define SOMGD_somUnregisterClassLibrary 1
  319.     #else
  320.         #define _somUnregisterClassLibrary SOMClassMgr_somUnregisterClassLibrary
  321.     #endif /* _somUnregisterClassLibrary */
  322. #endif /* SOMGD_somUnregisterClassLibrary */
  323.  
  324. /*
  325.  * New Method: somUnloadClassFile
  326.  */
  327. typedef long   SOMLINK somTP_SOMClassMgr_somUnloadClassFile(SOMClassMgr *somSelf, 
  328.         SOMClass* classObj);
  329. #pragma linkage(somTP_SOMClassMgr_somUnloadClassFile, system)
  330. typedef somTP_SOMClassMgr_somUnloadClassFile *somTD_SOMClassMgr_somUnloadClassFile;
  331. /*
  332.  *  Releases the class' code and unregisters all classes in the
  333.  *  same affinity group (see somGetRelatedClasses below).
  334.  */
  335. #define somMD_SOMClassMgr_somUnloadClassFile "::SOMClassMgr::somUnloadClassFile"
  336. #define SOMClassMgr_somUnloadClassFile(somSelf,classObj) \
  337.     (SOM_Resolve(somSelf, SOMClassMgr, somUnloadClassFile) \
  338.     (somSelf,classObj))
  339. #ifndef SOMGD_somUnloadClassFile
  340.     #if (defined(_somUnloadClassFile) || defined(__somUnloadClassFile))
  341.         #undef _somUnloadClassFile
  342.         #undef __somUnloadClassFile
  343.         #define SOMGD_somUnloadClassFile 1
  344.     #else
  345.         #define _somUnloadClassFile SOMClassMgr_somUnloadClassFile
  346.     #endif /* _somUnloadClassFile */
  347. #endif /* SOMGD_somUnloadClassFile */
  348.  
  349. /*
  350.  * New Method: somUnregisterClass
  351.  */
  352. typedef long   SOMLINK somTP_SOMClassMgr_somUnregisterClass(SOMClassMgr *somSelf, 
  353.         SOMClass* classObj);
  354. #pragma linkage(somTP_SOMClassMgr_somUnregisterClass, system)
  355. typedef somTP_SOMClassMgr_somUnregisterClass *somTD_SOMClassMgr_somUnregisterClass;
  356. /*
  357.  *  Free the class object and removes the class from the SOM registry.
  358.  *  If the class caused dynamic loading to occur, it is also unloaded
  359.  *  (causing its entire affinity group to be unregistered as well).
  360.  */
  361. #define somMD_SOMClassMgr_somUnregisterClass "::SOMClassMgr::somUnregisterClass"
  362. #define SOMClassMgr_somUnregisterClass(somSelf,classObj) \
  363.     (SOM_Resolve(somSelf, SOMClassMgr, somUnregisterClass) \
  364.     (somSelf,classObj))
  365. #ifndef SOMGD_somUnregisterClass
  366.     #if (defined(_somUnregisterClass) || defined(__somUnregisterClass))
  367.         #undef _somUnregisterClass
  368.         #undef __somUnregisterClass
  369.         #define SOMGD_somUnregisterClass 1
  370.     #else
  371.         #define _somUnregisterClass SOMClassMgr_somUnregisterClass
  372.     #endif /* _somUnregisterClass */
  373. #endif /* SOMGD_somUnregisterClass */
  374.  
  375. /*
  376.  * New Method: somBeginPersistentClasses
  377.  */
  378. typedef void   SOMLINK somTP_SOMClassMgr_somBeginPersistentClasses(SOMClassMgr *somSelf);
  379. #pragma linkage(somTP_SOMClassMgr_somBeginPersistentClasses, system)
  380. typedef somTP_SOMClassMgr_somBeginPersistentClasses *somTD_SOMClassMgr_somBeginPersistentClasses;
  381. /*
  382.  *  Starts a bracket for the current thread wherein all classes
  383.  *  that are registered are marked as permanant and cannot be
  384.  *  unregistered or unloaded.  Persistent classes brackets may be
  385.  *  nested.
  386.  */
  387. #define somMD_SOMClassMgr_somBeginPersistentClasses "::SOMClassMgr::somBeginPersistentClasses"
  388. #define SOMClassMgr_somBeginPersistentClasses(somSelf) \
  389.     (SOM_Resolve(somSelf, SOMClassMgr, somBeginPersistentClasses) \
  390.     (somSelf))
  391. #ifndef SOMGD_somBeginPersistentClasses
  392.     #if (defined(_somBeginPersistentClasses) || defined(__somBeginPersistentClasses))
  393.         #undef _somBeginPersistentClasses
  394.         #undef __somBeginPersistentClasses
  395.         #define SOMGD_somBeginPersistentClasses 1
  396.     #else
  397.         #define _somBeginPersistentClasses SOMClassMgr_somBeginPersistentClasses
  398.     #endif /* _somBeginPersistentClasses */
  399. #endif /* SOMGD_somBeginPersistentClasses */
  400.  
  401. /*
  402.  * New Method: somEndPersistentClasses
  403.  */
  404. typedef void   SOMLINK somTP_SOMClassMgr_somEndPersistentClasses(SOMClassMgr *somSelf);
  405. #pragma linkage(somTP_SOMClassMgr_somEndPersistentClasses, system)
  406. typedef somTP_SOMClassMgr_somEndPersistentClasses *somTD_SOMClassMgr_somEndPersistentClasses;
  407. /*
  408.  *  Ends a persistent classes bracket for the current thread.
  409.  */
  410. #define somMD_SOMClassMgr_somEndPersistentClasses "::SOMClassMgr::somEndPersistentClasses"
  411. #define SOMClassMgr_somEndPersistentClasses(somSelf) \
  412.     (SOM_Resolve(somSelf, SOMClassMgr, somEndPersistentClasses) \
  413.     (somSelf))
  414. #ifndef SOMGD_somEndPersistentClasses
  415.     #if (defined(_somEndPersistentClasses) || defined(__somEndPersistentClasses))
  416.         #undef _somEndPersistentClasses
  417.         #undef __somEndPersistentClasses
  418.         #define SOMGD_somEndPersistentClasses 1
  419.     #else
  420.         #define _somEndPersistentClasses SOMClassMgr_somEndPersistentClasses
  421.     #endif /* _somEndPersistentClasses */
  422. #endif /* SOMGD_somEndPersistentClasses */
  423.  
  424. /*
  425.  * New Method: somJoinAffinityGroup
  426.  */
  427. typedef boolean   SOMLINK somTP_SOMClassMgr_somJoinAffinityGroup(SOMClassMgr *somSelf, 
  428.         SOMClass* newClass, 
  429.         SOMClass* affClass);
  430. #pragma linkage(somTP_SOMClassMgr_somJoinAffinityGroup, system)
  431. typedef somTP_SOMClassMgr_somJoinAffinityGroup *somTD_SOMClassMgr_somJoinAffinityGroup;
  432. /*
  433.  *  If <affClass> is a member of an affinity group, and <newClass> is not a
  434.  *  member of any affinity group, this method adds <newClass> to the
  435.  *  same affinity group as <affClass>.  If the method succeeds it returns
  436.  *  TRUE, otherwise it returns FALSE.  Adding a class to an affinity group
  437.  *  effectively equates its lifetime with that of the other members of
  438.  *  the affinity group.
  439.  *  [Access Group]
  440.  */
  441. #define somMD_SOMClassMgr_somJoinAffinityGroup "::SOMClassMgr::somJoinAffinityGroup"
  442. #define SOMClassMgr_somJoinAffinityGroup(somSelf,newClass,affClass) \
  443.     (SOM_Resolve(somSelf, SOMClassMgr, somJoinAffinityGroup) \
  444.     (somSelf,newClass,affClass))
  445. #ifndef SOMGD_somJoinAffinityGroup
  446.     #if (defined(_somJoinAffinityGroup) || defined(__somJoinAffinityGroup))
  447.         #undef _somJoinAffinityGroup
  448.         #undef __somJoinAffinityGroup
  449.         #define SOMGD_somJoinAffinityGroup 1
  450.     #else
  451.         #define _somJoinAffinityGroup SOMClassMgr_somJoinAffinityGroup
  452.     #endif /* _somJoinAffinityGroup */
  453. #endif /* SOMGD_somJoinAffinityGroup */
  454.  
  455. /*
  456.  * New Method: somGetInitFunction
  457.  */
  458. typedef string   SOMLINK somTP_SOMClassMgr_somGetInitFunction(SOMClassMgr *somSelf);
  459. #pragma linkage(somTP_SOMClassMgr_somGetInitFunction, system)
  460. typedef somTP_SOMClassMgr_somGetInitFunction *somTD_SOMClassMgr_somGetInitFunction;
  461. /*
  462.  *  The name of the initialization function in the class' code file.
  463.  *  Default implementation returns (*SOMClassInitFuncName)().
  464.  */
  465. #define somMD_SOMClassMgr_somGetInitFunction "::SOMClassMgr::somGetInitFunction"
  466. #define SOMClassMgr_somGetInitFunction(somSelf) \
  467.     (SOM_Resolve(somSelf, SOMClassMgr, somGetInitFunction) \
  468.     (somSelf))
  469. #ifndef SOMGD_somGetInitFunction
  470.     #if (defined(_somGetInitFunction) || defined(__somGetInitFunction))
  471.         #undef _somGetInitFunction
  472.         #undef __somGetInitFunction
  473.         #define SOMGD_somGetInitFunction 1
  474.     #else
  475.         #define _somGetInitFunction SOMClassMgr_somGetInitFunction
  476.     #endif /* _somGetInitFunction */
  477. #endif /* SOMGD_somGetInitFunction */
  478.  
  479. /*
  480.  * New Method: _get_somInterfaceRepository
  481.  */
  482. typedef Repository*   SOMLINK somTP_SOMClassMgr__get_somInterfaceRepository(SOMClassMgr *somSelf);
  483. #pragma linkage(somTP_SOMClassMgr__get_somInterfaceRepository, system)
  484. typedef somTP_SOMClassMgr__get_somInterfaceRepository *somTD_SOMClassMgr__get_somInterfaceRepository;
  485. /*
  486.  *  The Repository object that provides access to the Interface Repository,
  487.  *  If no Interface Repository has yet been assigned to this attribute,
  488.  *  and the SOMClassMgr is unable to load and instantiate it, the attribute
  489.  *  will have the value NULL.  When finished using the Repository object
  490.  *  you should release your reference using the somDestruct method with
  491.  *  a non-zero <doFree> parameter.
  492.  */
  493. #define somMD_SOMClassMgr__get_somInterfaceRepository "::SOMClassMgr::_get_somInterfaceRepository"
  494. #define SOMClassMgr__get_somInterfaceRepository(somSelf) \
  495.     (SOM_Resolve(somSelf, SOMClassMgr, _get_somInterfaceRepository) \
  496.     (somSelf))
  497. #ifndef SOMGD_get_somInterfaceRepository
  498.     #if (defined(_get_somInterfaceRepository) || defined(__get_somInterfaceRepository))
  499.         #undef _get_somInterfaceRepository
  500.         #undef __get_somInterfaceRepository
  501.         #define SOMGD_get_somInterfaceRepository 1
  502.     #else
  503.         #define __get_somInterfaceRepository SOMClassMgr__get_somInterfaceRepository
  504.     #endif /* __get_somInterfaceRepository */
  505. #endif /* SOMGD_get_somInterfaceRepository */
  506.  
  507. /*
  508.  * New Method: _set_somInterfaceRepository
  509.  */
  510. typedef void   SOMLINK somTP_SOMClassMgr__set_somInterfaceRepository(SOMClassMgr *somSelf, 
  511.         Repository* somInterfaceRepository);
  512. #pragma linkage(somTP_SOMClassMgr__set_somInterfaceRepository, system)
  513. typedef somTP_SOMClassMgr__set_somInterfaceRepository *somTD_SOMClassMgr__set_somInterfaceRepository;
  514. /*
  515.  *  The Repository object that provides access to the Interface Repository,
  516.  *  If no Interface Repository has yet been assigned to this attribute,
  517.  *  and the SOMClassMgr is unable to load and instantiate it, the attribute
  518.  *  will have the value NULL.  When finished using the Repository object
  519.  *  you should release your reference using the somDestruct method with
  520.  *  a non-zero <doFree> parameter.
  521.  */
  522. #define somMD_SOMClassMgr__set_somInterfaceRepository "::SOMClassMgr::_set_somInterfaceRepository"
  523. #define SOMClassMgr__set_somInterfaceRepository(somSelf,somInterfaceRepository) \
  524.     (SOM_Resolve(somSelf, SOMClassMgr, _set_somInterfaceRepository) \
  525.     (somSelf,somInterfaceRepository))
  526. #ifndef SOMGD_set_somInterfaceRepository
  527.     #if (defined(_set_somInterfaceRepository) || defined(__set_somInterfaceRepository))
  528.         #undef _set_somInterfaceRepository
  529.         #undef __set_somInterfaceRepository
  530.         #define SOMGD_set_somInterfaceRepository 1
  531.     #else
  532.         #define __set_somInterfaceRepository SOMClassMgr__set_somInterfaceRepository
  533.     #endif /* __set_somInterfaceRepository */
  534. #endif /* SOMGD_set_somInterfaceRepository */
  535.  
  536. /*
  537.  * New Method: _get_somRegisteredClasses
  538.  */
  539. typedef _IDL_SEQUENCE_SOMClass   SOMLINK somTP_SOMClassMgr__get_somRegisteredClasses(SOMClassMgr *somSelf);
  540. #pragma linkage(somTP_SOMClassMgr__get_somRegisteredClasses, system)
  541. typedef somTP_SOMClassMgr__get_somRegisteredClasses *somTD_SOMClassMgr__get_somRegisteredClasses;
  542. /*
  543.  *  A list of all classes currently registered in this process.
  544.  */
  545. #define somMD_SOMClassMgr__get_somRegisteredClasses "::SOMClassMgr::_get_somRegisteredClasses"
  546. #define SOMClassMgr__get_somRegisteredClasses(somSelf) \
  547.     (SOM_Resolve(somSelf, SOMClassMgr, _get_somRegisteredClasses) \
  548.     (somSelf))
  549. #ifndef SOMGD_get_somRegisteredClasses
  550.     #if (defined(_get_somRegisteredClasses) || defined(__get_somRegisteredClasses))
  551.         #undef _get_somRegisteredClasses
  552.         #undef __get_somRegisteredClasses
  553.         #define SOMGD_get_somRegisteredClasses 1
  554.     #else
  555.         #define __get_somRegisteredClasses SOMClassMgr__get_somRegisteredClasses
  556.     #endif /* __get_somRegisteredClasses */
  557. #endif /* SOMGD_get_somRegisteredClasses */
  558.  
  559. /*
  560.  * New Method: somGetRelatedClasses
  561.  */
  562. typedef SOMClassMgr_SOMClassArray   SOMLINK somTP_SOMClassMgr_somGetRelatedClasses(SOMClassMgr *somSelf, 
  563.         SOMClass* classObj);
  564. #pragma linkage(somTP_SOMClassMgr_somGetRelatedClasses, system)
  565. typedef somTP_SOMClassMgr_somGetRelatedClasses *somTD_SOMClassMgr_somGetRelatedClasses;
  566. /*
  567.  *  Returns an array of class objects that were all registered during
  568.  *  the dynamic loading of a class.    These classes are considered to
  569.  *  define an affinity group.  Any class is a member of at most one
  570.  *  affinity group.    The affinity group returned by this call is the
  571.  *  one containing the class identified by classObj.  The first element
  572.  *  in the array is the class that caused the group to be loaded, or the
  573.  *  special value -1 which means that the SOMClassMgr is currently in the
  574.  *  process of unregistering and deleting the affinity group (only
  575.  *  SOMClassMgr subclasses would ever see this value).
  576.  *  The remainder of the array (elements one thru n) consists of
  577.  *  pointers to class objects ordered in reverse chronological sequence
  578.  *  to that in which they were originally registered.  This list includes
  579.  *  the given argument, classObj, as one of its elements, as well as the
  580.  *  class, if any, returned as element[0] above.  The array is terminated
  581.  *  by a NULL pointer as the last element.  Use SOMFree to release the
  582.  *  array when it is no longer needed.  If the supplied class was not
  583.  *  dynamically loaded, it is not a member of any affinity
  584.  *  group and NULL is returned.
  585.  *  [Dynamic Group]
  586.  */
  587. #define somMD_SOMClassMgr_somGetRelatedClasses "::SOMClassMgr::somGetRelatedClasses"
  588. #define SOMClassMgr_somGetRelatedClasses(somSelf,classObj) \
  589.     (SOM_Resolve(somSelf, SOMClassMgr, somGetRelatedClasses) \
  590.     (somSelf,classObj))
  591. #ifndef SOMGD_somGetRelatedClasses
  592.     #if (defined(_somGetRelatedClasses) || defined(__somGetRelatedClasses))
  593.         #undef _somGetRelatedClasses
  594.         #undef __somGetRelatedClasses
  595.         #define SOMGD_somGetRelatedClasses 1
  596.     #else
  597.         #define _somGetRelatedClasses SOMClassMgr_somGetRelatedClasses
  598.     #endif /* _somGetRelatedClasses */
  599. #endif /* SOMGD_somGetRelatedClasses */
  600.  
  601. /*
  602.  * New Method: somClassFromId
  603.  */
  604. typedef SOMClass*   SOMLINK somTP_SOMClassMgr_somClassFromId(SOMClassMgr *somSelf, 
  605.         somId classId);
  606. #pragma linkage(somTP_SOMClassMgr_somClassFromId, system)
  607. typedef somTP_SOMClassMgr_somClassFromId *somTD_SOMClassMgr_somClassFromId;
  608. /*
  609.  *  Finds the class object, given its Id, if it already exists.
  610.  *  Does not load the class.  Returns NULL if the class object does
  611.  *  not yet exist.
  612.  */
  613. #define somMD_SOMClassMgr_somClassFromId "::SOMClassMgr::somClassFromId"
  614. #define SOMClassMgr_somClassFromId(somSelf,classId) \
  615.     (SOM_Resolve(somSelf, SOMClassMgr, somClassFromId) \
  616.     (somSelf,classId))
  617. #ifndef SOMGD_somClassFromId
  618.     #if (defined(_somClassFromId) || defined(__somClassFromId))
  619.         #undef _somClassFromId
  620.         #undef __somClassFromId
  621.         #define SOMGD_somClassFromId 1
  622.     #else
  623.         #define _somClassFromId SOMClassMgr_somClassFromId
  624.     #endif /* _somClassFromId */
  625. #endif /* SOMGD_somClassFromId */
  626.  
  627. /*
  628.  * New Method: somFindClass
  629.  */
  630. typedef SOMClass*   SOMLINK somTP_SOMClassMgr_somFindClass(SOMClassMgr *somSelf, 
  631.         somId classId, 
  632.         long majorVersion, 
  633.         long minorVersion);
  634. #pragma linkage(somTP_SOMClassMgr_somFindClass, system)
  635. typedef somTP_SOMClassMgr_somFindClass *somTD_SOMClassMgr_somFindClass;
  636. /*
  637.  *  Returns the class object for the specified class.  This may result
  638.  *  in dynamic loading.  Uses somLocateClassFile to obtain the name of
  639.  *  the file where the class' code resides, then uses somFindClsInFile.
  640.  */
  641. #define somMD_SOMClassMgr_somFindClass "::SOMClassMgr::somFindClass"
  642. #define SOMClassMgr_somFindClass(somSelf,classId,majorVersion,minorVersion) \
  643.     (SOM_Resolve(somSelf, SOMClassMgr, somFindClass) \
  644.     (somSelf,classId,majorVersion,minorVersion))
  645. #ifndef SOMGD_somFindClass
  646.     #if (defined(_somFindClass) || defined(__somFindClass))
  647.         #undef _somFindClass
  648.         #undef __somFindClass
  649.         #define SOMGD_somFindClass 1
  650.     #else
  651.         #define _somFindClass SOMClassMgr_somFindClass
  652.     #endif /* _somFindClass */
  653. #endif /* SOMGD_somFindClass */
  654.  
  655. /*
  656.  * New Method: somFindClsInFile
  657.  */
  658. typedef SOMClass*   SOMLINK somTP_SOMClassMgr_somFindClsInFile(SOMClassMgr *somSelf, 
  659.         somId classId, 
  660.         long majorVersion, 
  661.         long minorVersion, 
  662.         string file);
  663. #pragma linkage(somTP_SOMClassMgr_somFindClsInFile, system)
  664. typedef somTP_SOMClassMgr_somFindClsInFile *somTD_SOMClassMgr_somFindClsInFile;
  665. /*
  666.  *  Returns the class object for the specified class.  This may result
  667.  *  in dynamic loading.  If the class already exists <file> is ignored,
  668.  *  otherwise it is used to locate and dynamically load the class.
  669.  *  Values of 0 for major and minor version numbers bypass version checking.
  670.  */
  671. #define somMD_SOMClassMgr_somFindClsInFile "::SOMClassMgr::somFindClsInFile"
  672. #define SOMClassMgr_somFindClsInFile(somSelf,classId,majorVersion,minorVersion,file) \
  673.     (SOM_Resolve(somSelf, SOMClassMgr, somFindClsInFile) \
  674.     (somSelf,classId,majorVersion,minorVersion,file))
  675. #ifndef SOMGD_somFindClsInFile
  676.     #if (defined(_somFindClsInFile) || defined(__somFindClsInFile))
  677.         #undef _somFindClsInFile
  678.         #undef __somFindClsInFile
  679.         #define SOMGD_somFindClsInFile 1
  680.     #else
  681.         #define _somFindClsInFile SOMClassMgr_somFindClsInFile
  682.     #endif /* _somFindClsInFile */
  683. #endif /* SOMGD_somFindClsInFile */
  684.  
  685. /*
  686.  * New Method: somMergeInto
  687.  */
  688. typedef void   SOMLINK somTP_SOMClassMgr_somMergeInto(SOMClassMgr *somSelf, 
  689.         SOMObject* targetObj);
  690. #pragma linkage(somTP_SOMClassMgr_somMergeInto, system)
  691. typedef somTP_SOMClassMgr_somMergeInto *somTD_SOMClassMgr_somMergeInto;
  692. /*
  693.  *  Merges the SOMClassMgr registry information from the receiver to
  694.  *  <targetObj>.  <targetObj> is required to be an instance of SOMClassMgr
  695.  *  or one of its subclasses.  At the completion of this operation,
  696.  *  the <targetObj> should be able to function as a replacement for the
  697.  *  receiver.  At the end of the operation the receiver object (which is
  698.  *  then in a newly uninitialized state) is freed.  Subclasses that
  699.  *  override this method should similarly transfer their sections of
  700.  *  the object and pass this method to their parent as the final step.
  701.  *  If the receiving object is the distinguished instance pointed to
  702.  *  from the global variable SOMClassMgrObject, SOMCLassMgrObject is
  703.  *  then reassigned to point to <targetObj>.
  704.  */
  705. #define somMD_SOMClassMgr_somMergeInto "::SOMClassMgr::somMergeInto"
  706. #define SOMClassMgr_somMergeInto(somSelf,targetObj) \
  707.     (SOM_Resolve(somSelf, SOMClassMgr, somMergeInto) \
  708.     (somSelf,targetObj))
  709. #ifndef SOMGD_somMergeInto
  710.     #if (defined(_somMergeInto) || defined(__somMergeInto))
  711.         #undef _somMergeInto
  712.         #undef __somMergeInto
  713.         #define SOMGD_somMergeInto 1
  714.     #else
  715.         #define _somMergeInto SOMClassMgr_somMergeInto
  716.     #endif /* _somMergeInto */
  717. #endif /* SOMGD_somMergeInto */
  718.  
  719. /*
  720.  * New Method: somSubstituteClass
  721.  */
  722. typedef long   SOMLINK somTP_SOMClassMgr_somSubstituteClass(SOMClassMgr *somSelf, 
  723.         string origClassName, 
  724.         string newClassName);
  725. #pragma linkage(somTP_SOMClassMgr_somSubstituteClass, system)
  726. typedef somTP_SOMClassMgr_somSubstituteClass *somTD_SOMClassMgr_somSubstituteClass;
  727. /*
  728.  *  This method causes the somFindClass, somFindClsInFile, and
  729.  *  somClassFromId methods to return the class named newClassName
  730.  *  whenever they would have normally returned the class named
  731.  *  origClassName.  This effectively results in class <newClassName>
  732.  *  replacing or substituting itself for class <origClassName>.
  733.  *  Some restrictions are enforced to insure that this works well.
  734.  *  Both class <origClassName> and class <newClassName> must
  735.  *  have been already registered before issuing this method, and newClass
  736.  *  must be an immediate child of origClass.  In addition (although not
  737.  *  enforceable), no instances should exist of either class at the time
  738.  *  this method is invoked.    A return value of zero indicates success;
  739.  *  a non-zero value indicates an error was detected.
  740.  */
  741. #define somMD_SOMClassMgr_somSubstituteClass "::SOMClassMgr::somSubstituteClass"
  742. #define SOMClassMgr_somSubstituteClass(somSelf,origClassName,newClassName) \
  743.     (SOM_Resolve(somSelf, SOMClassMgr, somSubstituteClass) \
  744.     (somSelf,origClassName,newClassName))
  745. #ifndef SOMGD_somSubstituteClass
  746.     #if (defined(_somSubstituteClass) || defined(__somSubstituteClass))
  747.         #undef _somSubstituteClass
  748.         #undef __somSubstituteClass
  749.         #define SOMGD_somSubstituteClass 1
  750.     #else
  751.         #define _somSubstituteClass SOMClassMgr_somSubstituteClass
  752.     #endif /* _somSubstituteClass */
  753. #endif /* SOMGD_somSubstituteClass */
  754. #ifndef SOM_DONT_USE_INHERITED_MACROS
  755. #define SOMClassMgr_somDefaultInit SOMObject_somDefaultInit
  756. #define SOMClassMgr_somDestruct SOMObject_somDestruct
  757. #define SOMClassMgr_somDefaultCopyInit SOMObject_somDefaultCopyInit
  758. #define SOMClassMgr_somDefaultAssign SOMObject_somDefaultAssign
  759. #define SOMClassMgr_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
  760. #define SOMClassMgr_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
  761. #define SOMClassMgr_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
  762. #define SOMClassMgr_somDefaultConstAssign SOMObject_somDefaultConstAssign
  763. #define SOMClassMgr_somDefaultVAssign SOMObject_somDefaultVAssign
  764. #define SOMClassMgr_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
  765. #define SOMClassMgr_somFree SOMObject_somFree
  766. #define SOMClassMgr_somGetClass SOMObject_somGetClass
  767. #define SOMClassMgr_somGetClassName SOMObject_somGetClassName
  768. #define SOMClassMgr_somGetSize SOMObject_somGetSize
  769. #define SOMClassMgr_somIsA SOMObject_somIsA
  770. #define SOMClassMgr_somIsInstanceOf SOMObject_somIsInstanceOf
  771. #define SOMClassMgr_somRespondsTo SOMObject_somRespondsTo
  772. #define SOMClassMgr_somDispatch SOMObject_somDispatch
  773. #define SOMClassMgr_somClassDispatch SOMObject_somClassDispatch
  774. #define SOMClassMgr_somCastObj SOMObject_somCastObj
  775. #define SOMClassMgr_somResetObj SOMObject_somResetObj
  776. #define SOMClassMgr_somDispatchV SOMObject_somDispatchV
  777. #define SOMClassMgr_somDispatchL SOMObject_somDispatchL
  778. #define SOMClassMgr_somDispatchA SOMObject_somDispatchA
  779. #define SOMClassMgr_somDispatchD SOMObject_somDispatchD
  780. #define SOMClassMgr_somPrintSelf SOMObject_somPrintSelf
  781. #define SOMClassMgr_somDumpSelf SOMObject_somDumpSelf
  782. #endif /* SOM_DONT_USE_INHERITED_MACROS */
  783.  
  784. #endif       /* SOM_SOMClassMgr_h */
  785.