Loading...
Searching...
No Matches
OSSIASerializationImpl.hpp
1#pragma once
2
3#include <State/Value.hpp>
4#include <State/ValueConversion.hpp>
5#include <State/ValueSerialization.hpp>
6
7#include <score/serialization/BoostVariant2Serialization.hpp>
9#include <score/serialization/MapSerialization.hpp>
10#include <score/serialization/VariantSerialization.hpp>
12
13#include <ossia/detail/for_each.hpp>
14#include <ossia/network/base/node_attributes.hpp>
15#include <ossia/network/dataspace/dataspace.hpp>
16#include <ossia/network/domain/domain.hpp>
17
18#include <score_lib_state_export.h>
19JSON_METADATA(ossia::impulse, "Impulse")
20//JSON_METADATA(int32_t, "Int")
21JSON_METADATA(ossia::value_map_type, "Map")
22JSON_METADATA(bool, "Bool")
23JSON_METADATA(float, "Float")
24JSON_METADATA(ossia::vec2f, "Vec2f")
25JSON_METADATA(ossia::vec3f, "Vec3f")
26JSON_METADATA(ossia::vec4f, "Vec4f")
27JSON_METADATA(std::vector<ossia::value>, "Tuple")
28//JSON_METADATA(std::string, "String")
29JSON_METADATA(ossia::domain_base<ossia::impulse>, "Impulse")
30JSON_METADATA(ossia::domain_base<int32_t>, "Int")
31JSON_METADATA(ossia::domain_base<bool>, "Bool")
32JSON_METADATA(ossia::domain_base<float>, "Float")
33JSON_METADATA(ossia::vecf_domain<2>, "Vec2f")
34JSON_METADATA(ossia::vecf_domain<3>, "Vec3f")
35JSON_METADATA(ossia::vecf_domain<4>, "Vec4f")
36JSON_METADATA(ossia::vector_domain, "Tuple")
37JSON_METADATA(ossia::domain_base<std::string>, "String")
38JSON_METADATA(ossia::domain_base<ossia::value>, "Generic")
39
40template <>
41struct is_custom_serialized<ossia::vector_domain> : public std::true_type
42{
43};
44template <std::size_t N>
45struct is_custom_serialized<ossia::vecf_domain<N>> : public std::true_type
46{
47};
48template <typename T, std::size_t N>
49struct is_custom_serialized<std::array<T, N>> : public std::true_type
50{
51};
52
53template <>
54struct is_custom_serialized<ossia::value_map_type> : public std::true_type
55{
56};
57
58template <>
59struct TSerializer<DataStream, ossia::value_map_type>
60 : TSerializer<DataStream, std::vector<ossia::value_map_element>>
61{
62};
63
64template <>
65struct TSerializer<JSONObject, ossia::value_map_type>
66 : TSerializer<JSONObject, std::vector<ossia::value_map_element>>
67{
68};
69
70template <>
71struct is_custom_serialized<ossia::value_variant_type> : public std::true_type
72{
73};
74
75template <>
76struct is_custom_serialized<ossia::domain_base_variant> : public std::true_type
77{
78};
79
80template <typename T>
82{
83 using type = T;
84};
Definition VisitorInterface.hpp:53
Definition VisitorInterface.hpp:61
STL namespace.
Definition VisitorInterface.hpp:13
Definition OSSIASerializationImpl.hpp:82