aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Requirements
diff options
context:
space:
mode:
authorIan Hinder <ian.hinder@aei.mpg.de>2013-04-03 22:06:21 +0200
committerIan Hinder <ian.hinder@aei.mpg.de>2013-04-03 22:07:09 +0200
commit3bb8a648cb9d2bd7eb553044d4434a7dec2de086 (patch)
tree7a08b10dc3b0e9b5c08a74f164630d89cc8631fa /Carpet/Requirements
parenta52dee1fa739bb171144bec328e9db19093b8d00 (diff)
Requirements: Move all_clauses class to a separate file
Diffstat (limited to 'Carpet/Requirements')
-rw-r--r--Carpet/Requirements/src/Requirements.cc55
-rw-r--r--Carpet/Requirements/src/all_clauses.cc55
-rw-r--r--Carpet/Requirements/src/all_clauses.hh34
-rw-r--r--Carpet/Requirements/src/make.code.defn2
4 files changed, 91 insertions, 55 deletions
diff --git a/Carpet/Requirements/src/Requirements.cc b/Carpet/Requirements/src/Requirements.cc
index bf0793f2e..3d7fa4103 100644
--- a/Carpet/Requirements/src/Requirements.cc
+++ b/Carpet/Requirements/src/Requirements.cc
@@ -20,6 +20,7 @@
#include <clause.hh>
#include <clauses.hh>
+#include <all_clauses.hh>
#include <util.hh>
using namespace std;
@@ -34,67 +35,13 @@ namespace Requirements {
// 2. Things can be provided only once, not multiple times.
// Except when they are also required.
- class all_clauses_t {
- // TODO: Represent I/O as well?
- typedef std::map<cFunctionData const*, clauses_t const*> clauses_map_t;
- clauses_map_t clauses_map;
- // Singleton
- all_clauses_t(all_clauses_t const&);
- all_clauses_t& operator=(all_clauses_t const&);
- public:
- all_clauses_t() {}
- clauses_t const& get_clauses(cFunctionData const* function_data);
- void remove_clauses(cFunctionData const* function_data);
-
- // Input/Output helpers
- void input (istream& is);
- void output (ostream& os) const;
- };
-
- clauses_t const& all_clauses_t::
- get_clauses(cFunctionData const* const function_data)
- {
- clauses_map_t::const_iterator const iclauses =
- clauses_map.find(function_data);
- if (iclauses != clauses_map.end()) return *iclauses->second;
- clauses_t* const clauses = new clauses_t;
- clauses->setup(function_data);
- pair<clauses_map_t::const_iterator, bool> const ret =
- clauses_map.insert(clauses_map_t::value_type(function_data, clauses));
- assert(ret.second);
- return *ret.first->second;
- }
- void all_clauses_t::
- remove_clauses(cFunctionData const* const function_data)
- {
- clauses_map_t::iterator const iclauses =
- clauses_map.find(function_data);
- if (iclauses != clauses_map.end()) {
- clauses_map.erase(iclauses);
- }
- return;
- }
inline ostream& operator<< (ostream& os, const all_clauses_t& a) {
a.output(os);
return os;
}
- void all_clauses_t::output(ostream& os) const
- {
- os << "all_clauses: {" << std::endl;
- for (std::map<cFunctionData const*, clauses_t const*>::const_iterator ti=clauses_map.begin();
- ti!=clauses_map.end();
- ++ti)
- {
- if (ti!=clauses_map.begin()) os << ",";
- os << ti->first->thorn << "::"
- << ti->first->routine << " in "
- << ti->first->where << ": " << *ti->second << std::endl;
- }
- os << "}";
- }
all_clauses_t all_clauses;
diff --git a/Carpet/Requirements/src/all_clauses.cc b/Carpet/Requirements/src/all_clauses.cc
new file mode 100644
index 000000000..950b73386
--- /dev/null
+++ b/Carpet/Requirements/src/all_clauses.cc
@@ -0,0 +1,55 @@
+
+#include <iostream>
+#include <vector>
+
+#include <cctk.h>
+#include <cctki_Schedule.h>
+//#include <clauses.hh>
+//#include <clause.hh>
+#include <all_clauses.hh>
+#include <util.hh>
+#include <map>
+
+using namespace std;
+
+namespace Requirements {
+
+ clauses_t const& all_clauses_t::
+ get_clauses(cFunctionData const* const function_data)
+ {
+ clauses_map_t::const_iterator const iclauses =
+ clauses_map.find(function_data);
+ if (iclauses != clauses_map.end()) return *iclauses->second;
+ clauses_t* const clauses = new clauses_t;
+ clauses->setup(function_data);
+ pair<clauses_map_t::const_iterator, bool> const ret =
+ clauses_map.insert(clauses_map_t::value_type(function_data, clauses));
+ assert(ret.second);
+ return *ret.first->second;
+ }
+
+ void all_clauses_t::
+ remove_clauses(cFunctionData const* const function_data)
+ {
+ clauses_map_t::iterator const iclauses =
+ clauses_map.find(function_data);
+ if (iclauses != clauses_map.end()) {
+ clauses_map.erase(iclauses);
+ }
+ return;
+ }
+ void all_clauses_t::output(ostream& os) const
+ {
+ os << "all_clauses: {" << std::endl;
+ for (std::map<cFunctionData const*, clauses_t const*>::const_iterator ti=clauses_map.begin();
+ ti!=clauses_map.end();
+ ++ti)
+ {
+ if (ti!=clauses_map.begin()) os << ",";
+ os << ti->first->thorn << "::"
+ << ti->first->routine << " in "
+ << ti->first->where << ": " << *ti->second << std::endl;
+ }
+ os << "}";
+ }
+};
diff --git a/Carpet/Requirements/src/all_clauses.hh b/Carpet/Requirements/src/all_clauses.hh
new file mode 100644
index 000000000..3219aa3fa
--- /dev/null
+++ b/Carpet/Requirements/src/all_clauses.hh
@@ -0,0 +1,34 @@
+#ifndef ALL_CLAUSES_HH
+#define ALL_CLAUSES_HH
+
+#include <iostream>
+#include <map>
+
+#include <cctk.h>
+#include <cctki_Schedule.h>
+
+#include <clauses.hh>
+
+using namespace std;
+
+namespace Requirements {
+
+ class all_clauses_t {
+ // TODO: Represent I/O as well?
+ typedef std::map<cFunctionData const*, clauses_t const*> clauses_map_t;
+ clauses_map_t clauses_map;
+ // Singleton
+ all_clauses_t(all_clauses_t const&);
+ all_clauses_t& operator=(all_clauses_t const&);
+ public:
+ all_clauses_t() {}
+ clauses_t const& get_clauses(cFunctionData const* function_data);
+ void remove_clauses(cFunctionData const* function_data);
+
+ // Input/Output helpers
+ void input (istream& is);
+ void output (ostream& os) const;
+ };
+}
+
+#endif
diff --git a/Carpet/Requirements/src/make.code.defn b/Carpet/Requirements/src/make.code.defn
index 1fd8750bc..d2197a8d8 100644
--- a/Carpet/Requirements/src/make.code.defn
+++ b/Carpet/Requirements/src/make.code.defn
@@ -1,7 +1,7 @@
# Main make.code.defn file for thorn Requirements -*-Makefile-*-
# Source files in this directory
-SRCS = Requirements.cc clause.cc clauses.cc util.cc
+SRCS = Requirements.cc clause.cc clauses.cc util.cc all_clauses.cc
# Subdirectories containing source files
SUBDIRS =