• 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 <acscomponent.idl>
00027 
00028 #pragma prefix "alma"
00029 
00030 
00031 module xmltest
00032 {
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     
00117     void methodWithHiddenEntitySequence(out EvenMoreHiddenEntityClass outThing);
00118   };
00119 
00120 
00121 
00122 /*
00123   interface TransportTester : MyBaseInterface
00124   {
00125     typedef XmlEntityStruct ObsProject;
00126 
00127         struct StructWithEntityInsideInterface
00128         {
00129                 long someNumber;
00130                 ObsProposal hiddenProposal;
00131         };
00132   
00133         exception prebenex {long acs_ex_id_thingy;};
00134                 
00135                 
00136                 
00137         readonly attribute ObsProject attrProject;
00138         
00139         void outObsProject(out ObsProject outProject);
00140         
00141         SchedBlock modifySchedBlock(in SchedBlock inSchedBlock);
00142         
00143     ObsProposal createObsProposal(in SchedBlock inSchedBlock, inout long dummy, out StructWithEntityInsideInterface innerStruct);
00144 
00145     void           seqMethod(in SchedBlockSeq oldSchedBlockSeq, out SchedBlockSeq newSchedBlockSeq);
00146     
00147     ReturnInterface createReturnInterface();
00148     
00149     void                        someOtherNonXmlMethod() raises(prebenex);
00150   };
00151   
00152   
00153 */
00154 
00155 };
00156 
00157 #endif

Generated on Thu Jul 8 2010 19:46:40 for ACS-9.0 IDL interfaces by  doxygen 1.7.0