blob: 5b19f3f52f3fe2f797296a128422f0a1c9e8641c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#include "all_clauses.hh"
#include "util.hh"
#include <cctk.h>
#include <cctki_Schedule.h>
#include <iostream>
#include <map>
#include <vector>
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 << "}";
}
};
|