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

xmltest.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_IDL_
00024 #define _XMLTEST_IDL_
00025 
00026 #include <acscommon.idl>
00027 #include <acscomponent.idl>
00028 
00029 #pragma prefix "alma"
00030 
00031 
00032 module xmltest
00033 {
00034 
00035         /*********************************************************
00036          * XmlEntityStruct is defined in the module
00037          * ACS/CommonSoftware/define, file xmlentity.idl,
00038          * which we can't include here because of module built order.
00039          *
00040          * For testing this module, it does not matter that we simply define
00041          * the struct below instead of #including xmlentity.idl.
00042          * Currently even the content of XmlEntityStruct does not matter,
00043          * it just has to exist as a struct.
00044          *********************************************************/
00045 
00046         struct XmlEntityStruct
00047         {
00048                 string xmlString;               // works only for Latin-1 characters; otherwise use wstring!
00049 //    string entityId;          // unique ID, same as inside the xml, but easier to access
00050 //    string entityTypeName;    // unique name like "SchedBlock" (should be the schema name w/o ".xsd")
00051 //    string schemaVersion;     // the schema version that the entity complies with
00052         };
00053 
00054 
00055         /*********************************************************
00056          * typedefs for our entity objects
00057          *********************************************************/
00058 
00059         typedef XmlEntityStruct ObsProposal;
00060         typedef XmlEntityStruct SchedBlock;
00061 
00062         typedef sequence <SchedBlock> SchedBlockSeq;
00063 
00064         typedef SchedBlockSeq EvenMoreHiddenEntityClass;
00065 
00066         /*********************************************************
00067          * example component
00068          *********************************************************/
00069 
00070         interface NonXMLAcsComponent : ACS::ACSComponent
00071         {
00072                 string sayHello();
00073         };
00074 
00075         interface NonXMLIndirectAcsComponent : NonXMLAcsComponent
00076         {
00077         };
00078 
00079         interface XMLAcsComponent : ACS::ACSComponent
00080         {
00081                 string sayHello();
00082                 ObsProposal createObsProposal();
00083         };
00084 
00085         interface XMLNonAcsComponent
00086         {
00087                 string sayHello();
00088                 ObsProposal createObsProposal();
00089         };
00090 
00091 
00092         struct ObsProjectTree
00093         {
00094                 ObsProposal prop;
00095                 SchedBlockSeq schedBlocks;
00096         };
00097 
00098         interface MyBaseInterface;
00099 
00100         interface ReturnInterface : ACS::ACSComponent
00101         {
00102                 ObsProposal createObsProposal();
00103                 MyBaseInterface createBaseInterface(in long pippo);
00104         };
00105 
00106         interface MyBaseInterface
00107         {
00108                 attribute float radius;
00109                 void someDumbMethod(in string stupidArg);
00110         };
00111 
00112 
00113         interface IFWithIndirectEntityUsage : ACS::ACSComponent
00114         {
00115                 SchedBlockSeq methodWithEntitySequence();
00116                 void methodWithHiddenEntitySequence(out EvenMoreHiddenEntityClass outThing);
00117         };
00118 
00119 
00120         /* ------------- */
00121         /* | Offshoots | */
00122         /* ------------- */
00123         interface NoXmlOffshoot : ACS::OffShoot
00124         {
00125                 void getNothing();
00126         };
00127 
00128         interface XmlOffshoot : ACS::OffShoot
00129         {
00130                 ObsProposal getObsProposal();
00131                 void setPreferedProposal(in ObsProposal proposal);
00132         };
00133 
00134         /* ------------------------------------ */
00135         /* | Non-AcsComponent using Offshoots | */
00136         /* ------------------------------------ */
00137         interface NonComponentUsingXmlOffshoot {
00138                 XmlOffshoot getOffshoot();
00139         };
00140 
00141         /* --------------------------------- */
00142         /* | AcsComponents using Offshoots | */
00143         /* --------------------------------- */
00144         interface NormalComponentUsingXmlOffshoot : ACS::ACSComponent {
00145                 XmlOffshoot getOffshoot();
00146         };
00147 
00148         interface XmlComponentUsingXmlOffshoot : ACS::ACSComponent {
00149                 ObsProposal createObsProposal();
00150                 XmlOffshoot getOffshoot();
00151         };
00152 
00153         interface NormalComponentUsingNormalOffshoot : ACS::ACSComponent {
00154                 NoXmlOffshoot getOffshoot();
00155         };
00156 
00157         interface XmlComponentUsingNormalOffshoot : ACS::ACSComponent {
00158                 ObsProposal createObsProposal();
00159                 NoXmlOffshoot getOffshoot();
00160         };
00161 };
00162 
00163 #endif

Generated on Thu Jan 12 2012 23:13:14 for ACS-10.0 IDL interfaces by  doxygen 1.7.0