27 #ifndef INCLUDED_PathElementSerializationDescriptions_h_GUID_88DACA90_818A_4B81_9655_1177F10E8142 28 #define INCLUDED_PathElementSerializationDescriptions_h_GUID_88DACA90_818A_4B81_9655_1177F10E8142 37 #include <type_traits> 45 template <
typename Input,
typename Known>
46 using enable_if_element_type =
typename std::enable_if<std::is_same<
47 typename std::remove_const<Input>::type, Known>::value>::type;
50 template <
typename Functor,
typename ValType>
51 inline enable_if_element_type<ValType, elements::DeviceElement>
52 serializationDescription(
Functor &f, ValType &value) {
53 f(
"device_name", value.getDeviceName());
54 f(
"server", value.getServer());
55 f(
"descriptor", value.getDescriptor());
59 template <
typename Functor,
typename ValType>
60 inline enable_if_element_type<ValType, elements::AliasElement>
61 serializationDescription(
Functor &f, ValType &value) {
62 f(
"source", value.getSource());
63 f(
"priority", value.priority());
67 template <
typename Functor,
typename ValType>
68 inline enable_if_element_type<ValType, elements::ArticulationElement>
69 serializationDescription(
Functor &f, ValType &value) {
70 f(
"articulationName", value.getArticulationType());
71 f(
"boneName", value.getBoneName());
72 f(
"trackerPath", value.getTrackerPath());
76 template <
typename Functor,
typename ValType>
77 inline enable_if_element_type<ValType, elements::StringElement>
78 serializationDescription(
Functor &f, ValType &value) {
79 f(
"string", value.getString());
83 template <
typename Functor,
typename ValType>
84 inline enable_if_element_type<ValType, elements::NullElement>
85 serializationDescription(
Functor &, ValType &) {}
86 template <
typename Functor,
typename ValType>
87 inline enable_if_element_type<ValType, elements::PluginElement>
88 serializationDescription(
Functor &, ValType &) {}
89 template <
typename Functor,
typename ValType>
90 inline enable_if_element_type<ValType, elements::InterfaceElement>
91 serializationDescription(
Functor &, ValType &) {}
92 template <
typename Functor,
typename ValType>
93 inline enable_if_element_type<ValType, elements::SensorElement>
94 serializationDescription(
Functor &, ValType &) {}
99 #endif // INCLUDED_PathElementSerializationDescriptions_h_GUID_88DACA90_818A_4B81_9655_1177F10E8142 Definition: NonLinearOptimization.cpp:107
Handles spatial transformations.
Definition: SerializationTraitExample_Complicated.h:40
The main namespace for all C++ elements of the framework, internal and external.
Definition: namespace_osvr.dox:3