home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / intfacdf.idl < prev    next >
Encoding:
Text File  |  1996-02-21  |  3.5 KB  |  128 lines

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