aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Requirements/src/all_clauses.hh
blob: 3219aa3fa47b2614d981997f2f00733420535c4b (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
#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