00001 /* Copyright (C) 2003-2008 Oliver Lemke <olemke@core-dump.info> 00002 00003 This program is free software; you can redistribute it and/or modify it 00004 under the terms of the GNU General Public License as published by the 00005 Free Software Foundation; either version 2, or (at your option) any 00006 later version. 00007 00008 This program is distributed in the hope that it will be useful, 00009 but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00011 GNU General Public License for more details. 00012 00013 You should have received a copy of the GNU General Public License 00014 along with this program; if not, write to the Free Software 00015 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 00016 USA. */ 00017 00018 00020 // File description 00022 00031 #ifndef xml_io_instantiation_h 00032 #define xml_io_instantiation_h 00033 00034 #include <stdexcept> 00035 #include <cfloat> 00036 #include "xml_io.h" 00037 #include "xml_io_types.h" 00038 00039 #define TMPL_XML_READ_WRITE(what) \ 00040 template void xml_read_from_file<what> (const String&, what&); \ 00041 template void xml_write_to_file<what> (const String&, const what&, FileType); 00042 00043 00045 // Explicit instantiation of template functions we need 00047 00048 //=== Basic Types ========================================================== 00049 00050 TMPL_XML_READ_WRITE( Index ) 00051 TMPL_XML_READ_WRITE( Matrix ) 00052 TMPL_XML_READ_WRITE( Numeric ) 00053 TMPL_XML_READ_WRITE( Sparse ) 00054 TMPL_XML_READ_WRITE( String ) 00055 TMPL_XML_READ_WRITE( Tensor3 ) 00056 TMPL_XML_READ_WRITE( Tensor4 ) 00057 TMPL_XML_READ_WRITE( Tensor5 ) 00058 TMPL_XML_READ_WRITE( Tensor6 ) 00059 TMPL_XML_READ_WRITE( Tensor7 ) 00060 TMPL_XML_READ_WRITE( Timer ) 00061 TMPL_XML_READ_WRITE( Vector ) 00062 00063 //=== Compound Types ======================================================= 00064 00065 TMPL_XML_READ_WRITE( Agenda ) 00066 TMPL_XML_READ_WRITE( GField1 ) 00067 TMPL_XML_READ_WRITE( GField2 ) 00068 TMPL_XML_READ_WRITE( GField3 ) 00069 TMPL_XML_READ_WRITE( GField4 ) 00070 TMPL_XML_READ_WRITE( GasAbsLookup ) 00071 TMPL_XML_READ_WRITE( GridPos ) 00072 TMPL_XML_READ_WRITE( IsotopeRecord ) 00073 TMPL_XML_READ_WRITE( MCAntenna ) 00074 TMPL_XML_READ_WRITE( Ppath ) 00075 TMPL_XML_READ_WRITE( RetrievalQuantity ) 00076 TMPL_XML_READ_WRITE( SLIData2 ) 00077 TMPL_XML_READ_WRITE( SingleScatteringData ) 00078 TMPL_XML_READ_WRITE( SpeciesRecord ) 00079 TMPL_XML_READ_WRITE( SpeciesTag ) 00080 00081 //=== Array Types ========================================================== 00082 00083 TMPL_XML_READ_WRITE( Array<IsotopeRecord> ) 00084 TMPL_XML_READ_WRITE( Array<SpeciesRecord> ) 00085 TMPL_XML_READ_WRITE( ArrayOfArrayOfArrayOfArrayOfGridPos ) 00086 TMPL_XML_READ_WRITE( ArrayOfArrayOfGField1 ) 00087 TMPL_XML_READ_WRITE( ArrayOfArrayOfGField3 ) 00088 TMPL_XML_READ_WRITE( ArrayOfArrayOfGridPos ) 00089 TMPL_XML_READ_WRITE( ArrayOfArrayOfIndex ) 00090 TMPL_XML_READ_WRITE( ArrayOfArrayOfLineRecord ) 00091 TMPL_XML_READ_WRITE( ArrayOfArrayOfMatrix ) 00092 TMPL_XML_READ_WRITE( ArrayOfArrayOfSpeciesTag ) 00093 TMPL_XML_READ_WRITE( ArrayOfArrayOfTensor3 ) 00094 TMPL_XML_READ_WRITE( ArrayOfArrayOfTensor6 ) 00095 TMPL_XML_READ_WRITE( ArrayOfGField1 ) 00096 TMPL_XML_READ_WRITE( ArrayOfGField2 ) 00097 TMPL_XML_READ_WRITE( ArrayOfGField3 ) 00098 TMPL_XML_READ_WRITE( ArrayOfGField4 ) 00099 TMPL_XML_READ_WRITE( ArrayOfGridPos ) 00100 TMPL_XML_READ_WRITE( ArrayOfIndex ) 00101 TMPL_XML_READ_WRITE( ArrayOfLineRecord ) 00102 TMPL_XML_READ_WRITE( ArrayOfLineshapeSpec ) 00103 TMPL_XML_READ_WRITE( ArrayOfMatrix ) 00104 TMPL_XML_READ_WRITE( ArrayOfPpath ) 00105 TMPL_XML_READ_WRITE( ArrayOfRetrievalQuantity ) 00106 TMPL_XML_READ_WRITE( ArrayOfSingleScatteringData ) 00107 TMPL_XML_READ_WRITE( ArrayOfSpeciesTag ) 00108 TMPL_XML_READ_WRITE( ArrayOfString ) 00109 TMPL_XML_READ_WRITE( ArrayOfTensor3 ) 00110 TMPL_XML_READ_WRITE( ArrayOfTensor4 ) 00111 TMPL_XML_READ_WRITE( ArrayOfTensor6 ) 00112 TMPL_XML_READ_WRITE( ArrayOfTensor7 ) 00113 TMPL_XML_READ_WRITE( ArrayOfVector ) 00114 00115 //========================================================================== 00116 00117 // Undefine the macro to avoid it being used anywhere else 00118 #undef TMPL_XML_READ_WRITE 00119 00120 #endif /* xml_io_instantiation_h */ 00121