STADLS
dumper.h
Go to the documentation of this file.
1 #pragma once
2 #include "haldls/cerealization.h"
3 #include "haldls/vx/v3/container.h"
4 #include "lola/vx/v3/container.h"
5 #include "stadls/vx/dumper.h"
6 #include "stadls/vx/genpybind.h"
10 
12 
13 namespace v3 GENPYBIND_TAG_STADLS_VX_V3 {
14 
15 // Dumper is a detail, its template parameter DumperDone isn't.
16 // The latter is used by the PlaybackProgramBuilderDumper API.
17 // Hence, we don't wrap the detail, but only the public API type.
19 
20 } // namespace v3
21 
22 extern template class SYMBOL_VISIBLE stadls::vx::detail::Dumper<stadls::vx::v3::DumperDone>;
23 
24 namespace detail {
25 
26 extern template SYMBOL_VISIBLE std::ostream& operator<<(
27  std::ostream&,
32 
33 } // namespace detail
34 
35 extern template class SYMBOL_VISIBLE stadls::vx::detail::PlaybackProgramBuilderAdapter<
39 
40 namespace v3 GENPYBIND_TAG_STADLS_VX_V3 {
41 
42 using PlaybackProgramBuilderDumper GENPYBIND(opaque) =
44 
45 GENPYBIND_MANUAL({
46  haldls::vx::AddPickle<hate::type_list<stadls::vx::v3::PlaybackProgramBuilderDumper>>::apply(
47  parent, {"PlaybackProgramBuilderDumper"});
48 })
49 
50 } // namespace v3
51 
52 extern template SYMBOL_VISIBLE std::ostream& stadls::vx::detail::operator<<(
54 
55 #define PLAYBACK_CONTAINER(_Name, Type) \
56  extern template SYMBOL_VISIBLE void stadls::vx::v3::Dumper::write<Type>( \
57  typename Type::coordinate_type const&, Type const&); \
58  extern template SYMBOL_VISIBLE stadls::vx::PlaybackProgram::ContainerTicket<Type> \
59  stadls::vx::v3::Dumper::read<Type>(typename Type::coordinate_type const&);
60 #pragma push_macro("PLAYBACK_CONTAINER")
61 #include "haldls/vx/v3/container.def"
62 #pragma pop_macro("PLAYBACK_CONTAINER")
63 #include "lola/vx/v3/container.def"
64 
65 #define PLAYBACK_CONTAINER(_Name, Type) \
66  extern template void v3::PlaybackProgramBuilderDumper::write<Type>( \
67  typename Type::coordinate_type const& coord, Type const& config, \
68  haldls::vx::Backend backend); \
69  extern template void v3::PlaybackProgramBuilderDumper::write<Type>( \
70  typename Type::coordinate_type const& coord, Type const& config); \
71  extern template void v3::PlaybackProgramBuilderDumper::write<Type>( \
72  typename Type::coordinate_type const& coord, Type const& config, \
73  Type const& config_reference, haldls::vx::Backend backend); \
74  extern template void v3::PlaybackProgramBuilderDumper::write<Type>( \
75  typename Type::coordinate_type const& coord, Type const& config, \
76  Type const& config_reference); \
77  extern template PlaybackProgram::ContainerTicket<Type> \
78  v3::PlaybackProgramBuilderDumper::read<typename Type::coordinate_type>( \
79  typename Type::coordinate_type const& coord, haldls::vx::Backend backend); \
80  extern template PlaybackProgram::ContainerTicket<Type> \
81  v3::PlaybackProgramBuilderDumper::read<typename Type::coordinate_type>( \
82  typename Type::coordinate_type const& coord);
83 #pragma push_macro("PLAYBACK_CONTAINER")
84 #include "haldls/vx/v3/container.def"
85 #pragma pop_macro("PLAYBACK_CONTAINER")
86 #include "lola/vx/v3/container.def"
87 
88 } // namespace stadls::vx
89 
90 EXTERN_INSTANTIATE_CEREAL_SERIALIZE(stadls::vx::v3::Dumper)
91 EXTERN_INSTANTIATE_CEREAL_SERIALIZE(stadls::vx::v3::PlaybackProgramBuilderDumper)
92 
93 #if defined(__GENPYBIND_GENERATED__)
94 #include <pybind11/pybind11.h>
95 PYBIND11_MAKE_OPAQUE(stadls::vx::v3::Dumper::done_type)
96 #endif
Dumper implements an interface derived from fisch::vx::PlaybackProgramBuilder.
Definition: dumper.h:26
#define GENPYBIND_TAG_STADLS_VX_V3
Definition: genpybind.h:6
std::ostream & operator<<(std::ostream &os, Dumper< T > const &builder) SYMBOL_VISIBLE
stadls::vx::detail::Dumper< DumperDone > Dumper
Definition: dumper.h:18
friend std::ostream & operator<<(std::ostream &os, PlaybackProgramBuilderAdapter< T, U, C > const &builder)
Given a coordinate type, resolves the corresponding unique container type.