Domain.hpp
1 #pragma once
2 #include <score/serialization/DataStreamFwd.hpp>
3 
4 #include <score_lib_state_export.h>
5 
6 #include <memory>
7 #include <verdigris>
8 
9 namespace ossia
10 {
11 struct domain;
12 }
13 
14 namespace State
15 {
16 struct SCORE_LIB_STATE_EXPORT Domain
17 {
18  // W_GADGET(Domain)
19 public:
20  Domain() noexcept;
21  Domain(const Domain& other) noexcept;
22  Domain(Domain&& other) noexcept;
23  Domain& operator=(const Domain& other) noexcept;
24  Domain& operator=(Domain&& other) noexcept;
25  ~Domain();
26 
27  Domain(const ossia::domain&) noexcept;
28  Domain& operator=(const ossia::domain&) noexcept;
29 
30  operator const ossia::domain&() const noexcept;
31  operator ossia::domain&() noexcept;
32 
33  bool operator==(const State::Domain& other) const noexcept;
34  bool operator!=(const State::Domain& other) const noexcept;
35 
36  const ossia::domain& get() const noexcept;
37  ossia::domain& get() noexcept;
38 
39 private:
40  std::unique_ptr<ossia::domain> domain;
41 };
42 }
43 
44 SCORE_SERIALIZE_DATASTREAM_DECLARE(SCORE_LIB_STATE_EXPORT, ::State::Domain)
45 Q_DECLARE_METATYPE(State::Domain)
46 W_REGISTER_ARGTYPE(State::Domain)
Utilities for OSSIA data structures.
Definition: DeviceInterface.hpp:33
Definition: Domain.hpp:17