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_DEP2_IDL_ 00024 #define _XMLTEST_DEP2_IDL_ 00025 00026 #include <acscommon.idl> 00027 #include <acscomponent.idl> 00028 #include <fakexmlentity.idl> 00029 00030 #pragma prefix "alma" 00031 00035 module xmltest_dep2 00036 { 00037 typedef fakexmlentity::XmlEntityStruct ObsProposal; 00038 00040 // Cyclic interface dependency among three offshoots. 00041 // *** This is not working yet! It is not a scenario likely ever to be used in practice, 00042 // *** but it would still be nice to fix it. 00044 00045 interface CyclicOffshoot3; 00046 00047 // here we don't even get "CyclicOffshoot1J" generated 00048 interface CyclicOffshoot1 : ACS::OffShoot 00049 { 00050 void takeThatOff(in CyclicOffshoot3 off3); 00051 }; 00052 00053 // This is the offshoot that brings in XML to the cycle. 00054 // Class "CyclicOffshoot2WithXmlJ" gets generated as expected, 00055 // but it consequently uses "CyclicOffshoot1" instead of "CyclicOffshoot1J" as parameter. 00056 interface CyclicOffshoot2WithXml : ACS::OffShoot 00057 { 00058 void takeThatOff(in CyclicOffshoot1 off1); 00059 ObsProposal getObsProposal(); 00060 }; 00061 00062 // All fine: "CyclicOffshoot3J" gets generated and uses "CyclicOffshoot2WithXmlJ". 00063 interface CyclicOffshoot3 : ACS::OffShoot 00064 { 00065 void takeThatOff(in CyclicOffshoot2WithXml off2); 00066 }; 00067 00068 }; 00069 00070 #endif