aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Requirements/src/clauses.cc
blob: c3d71ba097631cab7da84286121e6d2cbc4d51e7 (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
#include <iostream>
#include <vector>

#include <cctk.h>
#include <cctki_Schedule.h>

#include <clause.hh>
#include <clauses.hh>
#include <util.hh>

using namespace std;

namespace Requirements {

  void clauses_t::setup(cFunctionData const* const function_data)
  {
    clause_t prototype;
    prototype.interpret_options(function_data);
    reads.reserve(function_data->n_ReadsClauses);
    for (int n=0; n<function_data->n_ReadsClauses; ++n) {
      clause_t clause(prototype);
      clause.parse_clause(function_data->ReadsClauses[n]);
      reads.push_back(clause);
    }
    writes.reserve(function_data->n_WritesClauses);
    for (int n=0; n<function_data->n_WritesClauses; ++n) {
      clause_t clause(prototype);
      clause.parse_clause(function_data->WritesClauses[n]);
      writes.push_back(clause);
    }
  }

  void clauses_t::output(ostream& os) const
  {
    os << "reads = " << reads << ", writes = " << writes;
  }

}