ARTS  2.3.1285(git:92a29ea9-dirty)
agenda_record.h
Go to the documentation of this file.
1 /* Copyright (C) 2000-2012 Stefan Buehler <sbuehler@ltu.se>
2 
3  This program is free software; you can redistribute it and/or modify it
4  under the terms of the GNU General Public License as published by the
5  Free Software Foundation; either version 2, or (at your option) any
6  later version.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
16  USA. */
17 
27 #ifndef agenda_record_h
28 #define agenda_record_h
29 
30 #include <iostream>
31 #include "arts.h"
32 #include "mystring.h"
33 
35 
43 class AgRecord {
44  public:
46  AgRecord() : mname(""), mdescription(""), moutput(0), minput(0) {
47  // Nothing to do here.
48  }
49 
50  // Initializing constructor. Implementation in .cc file.
51  AgRecord(const char name[],
52  const char description[],
53  const ArrayOfString& output,
54  const ArrayOfString& input);
55 
56  AgRecord(const AgRecord&) = default;
57 
58  const String& Name() const { return mname; }
59  const String& Description() const { return mdescription; }
60  const ArrayOfIndex& Out() const { return moutput; }
61  const ArrayOfIndex& In() const { return minput; }
62 
64 
66  AgRecord operator=(const AgRecord& /* m */) {
67  cout << "AgRecord cannot be assigned!\n";
68  arts_exit();
69  return AgRecord();
70  }
71 
72  private:
75 
78 
81 
84 };
85 
86 void define_agenda_data();
87 
88 void define_agenda_map();
89 
90 bool check_agenda_data();
91 
92 void write_agenda_wrapper_header(ofstream& ofs,
93  const AgRecord& agr,
94  bool is_agenda_array);
95 
96 ostream& operator<<(ostream& os, const AgRecord& agr);
97 
98 #endif
String mdescription
A text string describing this agenda.
Definition: agenda_record.h:77
Lookup information for one agenda.
Definition: agenda_record.h:43
ArrayOfIndex minput
Workspace Input.
Definition: agenda_record.h:83
void arts_exit(int status)
This is the exit function of ARTS.
Definition: arts.cc:42
AgRecord operator=(const AgRecord &)
Assignment operator.
Definition: agenda_record.h:66
void define_agenda_map()
const ArrayOfIndex & Out() const
Definition: agenda_record.h:60
void define_agenda_data()
Definition: agendas.cc:44
String mname
The name of this agenda.
Definition: agenda_record.h:74
The global header file for ARTS.
const String & Description() const
Definition: agenda_record.h:59
void write_agenda_wrapper_header(ofstream &ofs, const AgRecord &agr, bool is_agenda_array)
Write a agenda wrapper header.
ArrayOfIndex moutput
Workspace Output.
Definition: agenda_record.h:80
const ArrayOfIndex & In() const
Definition: agenda_record.h:61
bool check_agenda_data()
Check that agendas.cc and workspace.cc are consistent.
ostream & operator<<(ostream &os, const AgRecord &agr)
Output operator for AgRecord.
const String & Name() const
Definition: agenda_record.h:58
AgRecord()
Default constructor.
Definition: agenda_record.h:46
This file contains the definition of String, the ARTS string class.