diff options
author | Ian Hinder <ian.hinder@aei.mpg.de> | 2013-04-03 22:06:21 +0200 |
---|---|---|
committer | Ian Hinder <ian.hinder@aei.mpg.de> | 2013-04-03 22:07:09 +0200 |
commit | 3bb8a648cb9d2bd7eb553044d4434a7dec2de086 (patch) | |
tree | 7a08b10dc3b0e9b5c08a74f164630d89cc8631fa /Carpet/Requirements | |
parent | a52dee1fa739bb171144bec328e9db19093b8d00 (diff) |
Requirements: Move all_clauses class to a separate file
Diffstat (limited to 'Carpet/Requirements')
-rw-r--r-- | Carpet/Requirements/src/Requirements.cc | 55 | ||||
-rw-r--r-- | Carpet/Requirements/src/all_clauses.cc | 55 | ||||
-rw-r--r-- | Carpet/Requirements/src/all_clauses.hh | 34 | ||||
-rw-r--r-- | Carpet/Requirements/src/make.code.defn | 2 |
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 = |