• Classes
  • Namespaces
  • Files
  • Related Pages
  • File List
  • File Members

xmltest_dep.idl

Go to the documentation of this file.
00001 /*
00002  *    ALMA - Atacama Large Millimiter Array
00003  *    (c) European Southern Observatory, 2002
00004  *    Copyright by ESO (in the framework of the ALMA collaboration),
00005  *    All rights reserved
00006  *
00007  *    This library is free software; you can redistribute it and/or
00008  *    modify it under the terms of the GNU Lesser General Public
00009  *    License as published by the Free Software Foundation; either
00010  *    version 2.1 of the License, or (at your option) any later version.
00011  *
00012  *    This library is distributed in the hope that it will be useful,
00013  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  *    Lesser General Public License for more details.
00016  *
00017  *    You should have received a copy of the GNU Lesser General Public
00018  *    License along with this library; if not, write to the Free Software
00019  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00020  *    MA 02111-1307  USA
00021  */
00022 
00023 #ifndef _XMLTEST_DEP_IDL_
00024 #define _XMLTEST_DEP_IDL_
00025 
00026 #include <acscommon.idl>
00027 #include <acscomponent.idl>
00028 #include <fakexmlentity.idl>
00029 
00030 #pragma prefix "alma"
00031 
00035 module xmltest_dep
00036 {
00037         typedef fakexmlentity::XmlEntityStruct ObsProposal;
00038 
00040         // Mutual interface - struct dependency.
00041         // ACS forbids passing of component references in application IDLs, 
00042         // but offshoot references are allowed as struct members.
00044 
00045         // No xml in offshoot nor struct 
00046         
00047         interface OffshootWithStruct;
00048 
00049         struct StructWithOffshoot {
00050                 OffshootWithStruct myOffshoot;
00051         };
00052         
00053         interface OffshootWithStruct : ACS::OffShoot
00054         {
00055                 void takeThatStruct(in StructWithOffshoot yourStruct);
00056         };
00057 
00058 
00059         // xml in offshoot but not in the struct 
00060 
00061         interface XmlOffshootWithStruct;
00062 
00063         struct StructWithXmlOffshoot {
00064                 XmlOffshootWithStruct myOffshoot;
00065         };
00066         
00067         interface XmlOffshootWithStruct : ACS::OffShoot
00068         {
00069                 void takeThatStruct(in StructWithXmlOffshoot yourStruct);
00070                 ObsProposal getObsProposal();
00071         };
00072 
00073 
00074         // xml in the struct but not in the offshoot
00075         
00076         interface OffshootWithXmlStruct;
00077 
00078         struct XmlStructWithOffshoot {
00079                 OffshootWithXmlStruct myOffshoot;
00080                 ObsProposal oopsProposal;
00081         };
00082         
00083         interface OffshootWithXmlStruct : ACS::OffShoot
00084         {
00085                 void takeThatStruct(in XmlStructWithOffshoot yourStruct);
00086         };
00087 
00088         
00090         // Mutual interface - struct dependency as found in real-world IDL.
00091         // ACS forbids passing of component references in application IDLs, 
00092         // but CharacteristicComponentDesc as defined in baci.idl is exempt
00093         // because that struct is used only internally by ACS.
00095 
00096         interface CharacteristicComponent;
00097 
00098         struct CharacteristicComponentDesc {
00099                 CharacteristicComponent characteristic_component_ref;
00100         };
00101 
00102         interface CharacteristicComponent : ACS::ACSComponent {
00103                 CharacteristicComponentDesc descriptor();
00104         };
00105 
00106 };
00107 
00108 #endif

Generated on Fri Apr 15 2016 15:13:14 for ACS-2016.4 IDL interfaces by  doxygen 1.7.0