HALDLS
barrier.h
Go to the documentation of this file.
1 #pragma once
2 #include <iosfwd>
3 
4 #include "haldls/cerealization.h"
5 #include "haldls/vx/genpybind.h"
6 #include "haldls/vx/traits.h"
7 #include "hate/visibility.h"
8 
9 namespace haldls {
10 namespace vx GENPYBIND_TAG_HALDLS_VX {
11 
12 class GENPYBIND(visible) Barrier
13 {
14 public:
15  Barrier() SYMBOL_VISIBLE;
16 
17  static SYMBOL_VISIBLE const Barrier omnibus GENPYBIND(visible);
18  static SYMBOL_VISIBLE const Barrier jtag GENPYBIND(visible);
19  static SYMBOL_VISIBLE const Barrier systime GENPYBIND(visible);
20 
21  GENPYBIND(getter_for(enable_omnibus))
22  bool get_enable_omnibus() const SYMBOL_VISIBLE;
23  GENPYBIND(setter_for(enable_omnibus))
24  void set_enable_omnibus(bool value) SYMBOL_VISIBLE;
25 
26  GENPYBIND(getter_for(enable_jtag))
27  bool get_enable_jtag() const SYMBOL_VISIBLE;
28  GENPYBIND(setter_for(enable_jtag))
29  void set_enable_jtag(bool value) SYMBOL_VISIBLE;
30 
31  GENPYBIND(getter_for(enable_systime))
32  bool get_enable_systime() const SYMBOL_VISIBLE;
33  GENPYBIND(setter_for(enable_systime))
34  void set_enable_systime(bool value) SYMBOL_VISIBLE;
35 
36  bool operator==(Barrier const& other) const SYMBOL_VISIBLE;
37  bool operator!=(Barrier const& other) const SYMBOL_VISIBLE;
38 
39  fisch::vx::word_access_type::Barrier encode() const SYMBOL_VISIBLE GENPYBIND(hidden);
40 
41  GENPYBIND(stringstream)
42  friend std::ostream& operator<<(std::ostream& os, Barrier const& config) SYMBOL_VISIBLE;
43 
44 private:
45  friend class cereal::access;
46  template <class Archive>
47  void serialize(Archive& ar, std::uint32_t const version) SYMBOL_VISIBLE;
48 
49  bool m_enable_omnibus;
50  bool m_enable_jtag;
51  bool m_enable_systime;
52 };
53 
55 
56 } // namespace vx
57 } // namespace haldls
#define EXTERN_INSTANTIATE_CEREAL_SERIALIZE(CLASS_NAME)
Definition: cerealization.h:75
Barrier() SYMBOL_VISIBLE
#define GENPYBIND_TAG_HALDLS_VX
Definition: genpybind.h:4