home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warptlk3.zip / TOOLKIT / SOM / INCLUDE / IMPLREP.IDL < prev    next >
Text File  |  1995-08-24  |  5KB  |  110 lines

  1. //
  2. //   COMPONENT_NAME: somd
  3. //
  4. //   ORIGINS: 27
  5. //
  6. //
  7. //   10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
  8. //   All Rights Reserved
  9. //   Licensed Materials - Property of IBM
  10. //   US Government Users Restricted Rights - Use, duplication or
  11. //   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  12. //
  13. //  CLASS SPECIFICATION FOR IMPLEMENTATION REPOSITORY
  14. #ifndef implrep_idl
  15. #define implrep_idl
  16. #include <somobj.idl>
  17. #include <somdtype.idl>
  18. #include <snglicls.idl>
  19. interface ImplementationDef;
  20. interface ImplRepository : SOMObject
  21. {
  22.   ImplementationDef find_impldef(in ImplId implid);
  23.   // This method searches the Implementation Repository and returns
  24.   // an ImplementationDef object with the specified implid.
  25.   ImplementationDef find_impldef_by_alias(in string alias_name);
  26.   // This method searches the Implementation Repository and returns
  27.   // an ImplementationDef object with the specified name (alias).
  28.   ORBStatus find_all_impldefs(out sequence<ImplementationDef> outimpldefs);
  29.    // This method searches the Implementation Repository and returns
  30.    // all the ImplementationDef objects in it.
  31.   sequence<ImplementationDef> find_impldef_by_class(in string classname);
  32.   // This method searches the class index and returns the sequence of
  33.   // ImplementationDef objects for servers which implement that class.
  34.   void add_impldef(in ImplementationDef impldef);
  35.   // This method inserts an ImplementationDef object into the Implementation
  36.   // Repository.
  37.   void update_impldef(in ImplementationDef impldef);
  38.   // This method replaces an ImplementationDef object in the Implementation
  39.   // Repository with the supplied object.  The "impl_id" attribute of the
  40.   // supplied object is used to find the object to replace in the Impl.
  41.   // Repository.
  42.   void delete_impldef(in ImplId implid);
  43.   // This method deletes the ImplementationDef object with the specified
  44.   // implid from the Implementation Repository.
  45.   void add_class_to_impldef(in ImplId implid, in string classname);
  46.   // This method associates the classname with the ImplementationDef
  47.   // whose id is "implid".  This is meant to indicate that the server
  48.   // (specified by the ImplementationDef) implements the named class.
  49.   void remove_class_from_impldef(in ImplId implid, in string classname);
  50.   // This method removes the classname from the list of classnames
  51.   // associated with the ImplementationDef whose id is "implid".
  52.   void remove_class_from_all(in string classname);
  53.   // This method removes the classname from all the ImplementationDefs.
  54.   sequence<string> find_classes_by_impldef(in ImplId implid);
  55.   // This method searches the class index and returns the sequence of
  56.   // class names supported by a server with specified "implid".
  57. #ifdef __SOMIDL__
  58.   implementation
  59.   {
  60.     releaseorder: find_impldef, find_impldef_by_alias,
  61.                   find_impldef2, find_impldef_by_alias2,
  62.                   find_impldef_by_class, add_impldef,
  63.                   update_impldef, delete_impldef,
  64.                   add_class_to_impldef,
  65.                   remove_class_from_impldef, remove_class_from_all,
  66.                   find_classes_by_impldef,
  67.                   implr_get_impl, implr_search_impl,
  68.                   implr_search_class, implr_update_impl,
  69.                   find_all_impldefs;
  70.     callstyle = idl;
  71.     metaclass = SOMMSingleInstance;
  72.     dllname = "somd.dll";
  73.     majorversion = 2;
  74.     minorversion = 1;
  75.     somInit: override;
  76.     somUninit: override;
  77.     passthru C_h_after = ""
  78.       "#include <impldef.h>"
  79.       ""
  80.       "#ifdef SOM_STRICT_IDL"
  81. #ifdef _WIN16
  82.       "#define SOMD_ImplRepObject (*SOMD_ImplRepObjectResolve())"
  83.       "SOMEXTERN ImplRepository * SOMLINK SOMD_ImplRepObjectResolve(void);"
  84. #else
  85.       "SOMEXTERN ImplRepository   SOMDLINK SOMD_ImplRepObject;"
  86. #endif
  87.       "#else"
  88. #ifdef _WIN16
  89.       "#define SOMD_ImplRepObject (*SOMD_ImplRepObjectResolve())"
  90.       "SOMEXTERN ImplRepository ** SOMLINK SOMD_ImplRepObjectResolve(void);"
  91. #else
  92.       "SOMEXTERN ImplRepository * SOMDLINK SOMD_ImplRepObject;"
  93. #endif
  94.       "#endif /* SOM_STRICT_IDL */"
  95.       "";
  96.     passthru C_xh_after = ""
  97.       "#include <impldef.xh>"
  98.       ""
  99. #ifdef _WIN16
  100.       "#define SOMD_ImplRepObject (*SOMD_ImplRepObjectResolve())"
  101.       "SOMEXTERN ImplRepository ** SOMLINK SOMD_ImplRepObjectResolve(void);"
  102. #else
  103.       "SOMEXTERN ImplRepository * SOMDLINK SOMD_ImplRepObject;"
  104. #endif
  105.       "";
  106.   };
  107. #endif /* __SOMIDL__ */
  108. };
  109. #endif  /* implrep_idl */
  110.