home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / som / include / intfacdf.idl < prev    next >
Text File  |  1999-02-22  |  4KB  |  126 lines

  1. //#
  2. //#  COMPONENT_NAME: somi
  3. //#
  4. //#  ORIGINS: 27
  5. //#
  6. //#
  7. //#    25H7912  (C)   COPYRIGHT International Business Machines Corp. 1992,1994,1996,1996  
  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. //#  @(#) 2.9.1.4 src/somi/ir/somir/intfacdf.idl, somi.corba, som2.1 1/3/96 14:29:07 [7/30/96 14:46:21]
  14.  
  15.  
  16. //#  InterfaceDef: CORBA Interface for interface definitions
  17. //#  See CORBA 1.1, 7.5.4, p.134
  18.  
  19. #ifndef intfacdf_idl
  20. #define intfacdf_idl
  21.  
  22. #include <containd.idl>
  23. #include <containr.idl>
  24. #include <somcls.idl>
  25. #include <attribdf.idl>
  26. #include <operatdf.idl>
  27.  
  28.  
  29. interface InterfaceDef : Contained , Container
  30. // This interface is used to access information associated with
  31. // interfaces defined in an IDL file.
  32. //
  33. // See CORBA 1.1, 7.5.4, p.134
  34. {
  35.     struct FullInterfaceDescription {
  36.     Identifier   name;
  37.     RepositoryId id;
  38.     RepositoryId defined_in;
  39.     sequence<OperationDef::OperationDescription> operation;
  40.     sequence<AttributeDef::AttributeDescription> attributes;
  41.     };
  42.     struct InterfaceDescription {
  43.     Identifier   name;
  44.     RepositoryId id;
  45.     RepositoryId defined_in;
  46.     };
  47.     // The inherited describe method returns an instance of this
  48.     // (InterfaceDescription) structure in the "value" member of the
  49.     // Description structure defined in the Contained interface.
  50.     // The inherited describe_contents method in the Container
  51.     // interface returns a sequence of these Description structures
  52.     // each carrying a reference to an InterfaceDescription structure
  53.     // in its "value" member.
  54.  
  55.     attribute sequence<RepositoryId> base_interfaces;
  56.     // The sequence of RepositoryIds for all of the interfaces that the
  57.     // receiving interface inherits.  Do not free the buffer,
  58.     // its storage is still owned by the InterfaceDef object.
  59.  
  60.     FullInterfaceDescription describe_interface();
  61.     // Returns a description of all the operations and attributes in
  62.     // an interface.
  63.  
  64.     attribute TypeCode instanceData;
  65.     // [SOM-unique extension]
  66.     //
  67.     // The instance data members (if any) described in the SOM
  68.     // implementation section of the IDL source file.
  69.  
  70. #ifdef __SOMIDL__
  71.   implementation {
  72.       releaseorder: describe_interface,
  73.           _get_base_interfaces, _set_base_interfaces,
  74.           _get_instanceData, _set_instanceData
  75.           ;
  76.  
  77.       //# Class Modifiers
  78.       callstyle = idl;
  79.       majorversion = 2;
  80.       minorversion = 3;
  81.       filestem = intfacdf;
  82.       dllname = "somir.dll";
  83.  
  84.       passthru C_h =
  85.     ""
  86.     "    #include <somtcnst.h>"
  87.     "    #include <somir.h>"
  88.     "    #include <operatdf.h>"
  89.     "    #include <attribdf.h>"
  90.     "";
  91.       passthru C_xh =
  92.     ""
  93.     "    #include <somtcnst.xh>"
  94.     "    #include <somir.xh>"
  95.     "    #include <operatdf.xh>"
  96.     "    #include <attribdf.xh>"
  97.     "";
  98.  
  99.       //# Attribute Modifiers
  100.       base_interfaces: noset;
  101.       instanceData: noset;
  102. #if defined __SOM_KERNEL_LEVEL && __SOM_KERNEL_LEVEL >= 250
  103.       _get_base_interfaces : dual_owned_result;
  104.       _get_instanceData : dual_owned_result;
  105. #else
  106.       _set_base_interfaces : caller_owns_parameters = "base_interfaces";
  107.       _set_instanceData : caller_owns_parameters = "instanceData";
  108. #endif
  109.  
  110.       //# Method Modifiers
  111.       somDefaultInit: override, init;
  112.       somDestruct: override;
  113.       somDumpSelf: override;
  114.       somDumpSelfInt: override;
  115.       within: override;
  116.       describe: override;
  117. #if defined __SOM_KERNEL_LEVEL && __SOM_KERNEL_LEVEL >= 250
  118.       describe_interface: dual_owned_result;
  119. #endif
  120.  
  121.   };
  122. #endif /* __SOMIDL__ */
  123. };
  124.  
  125. #endif    /* intfacdf_idl */
  126.