00001 /* Copyright (C) 2000-2008 Stefan Buehler <sbuehler@ltu.se> 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 00027 #ifndef agenda_record_h 00028 #define agenda_record_h 00029 00030 #include <iostream> 00031 #include "arts.h" 00032 #include "make_array.h" 00033 #include "mystring.h" 00034 00036 00044 class AgRecord { 00045 public: 00046 00048 AgRecord() : 00049 mname( "" ), 00050 mdescription( "" ), 00051 moutput( 0 ), 00052 minput( 0 ) 00053 { 00054 // Nothing to do here. 00055 }; 00056 00057 // Initializing constructor. Implementation in .cc file. 00058 AgRecord( const char name[], 00059 const char description[], 00060 const MakeArray<String>& output, 00061 const MakeArray<String>& input ); 00062 00063 const String& Name() const { return mname; } 00064 const String& Description() const { return mdescription; } 00065 const ArrayOfIndex& Out() const { return moutput; } 00066 const ArrayOfIndex& In() const { return minput; } 00067 00069 00071 AgRecord operator=(const AgRecord& /* m */){ 00072 cout << "AgRecord cannot be assigned!\n"; 00073 arts_exit (); 00074 return AgRecord(); 00075 } 00076 private: 00077 00079 String mname; 00080 00082 String mdescription; 00083 00085 ArrayOfIndex moutput; 00086 00088 ArrayOfIndex minput; 00089 00090 }; 00091 00092 void define_agenda_data(); 00093 00094 void define_agenda_map(); 00095 00096 bool check_agenda_data(); 00097 00098 void write_agenda_wrapper_header (ofstream& ofs, 00099 const AgRecord& agr); 00100 00101 ostream& operator<<(ostream& os, const AgRecord& agr); 00102 00103 #endif