9#include <boost/thread/future.hpp>
15#include <spdlog/spdlog.h>
40 { visitor(std::string_view{}, binary_file) } -> std::same_as<void>;
42 { visitor(std::string_view{}, root_file) } -> std::same_as<void>;
44 { visitor(std::string_view{}, UDP_file) } -> std::same_as<void>;
45 { visitor(std::string_view{}, JSON_file) } -> std::same_as<void>;
83 std::map<std::string, std::unique_ptr<RootFile>> root_files_;
86 std::vector<boost::unique_future<std::optional<std::size_t>>>
write_futures_;
93 template <
typename WriterType>
94 void write_to_files(std::map<std::string, std::unique_ptr<WriterType>>& writers,
auto make_future)
96 for (
auto& [key,
writer] : writers)
98 auto fut = make_future(*
writer);
103 template <
typename WriterType>
104 void for_each_file(std::map<std::string, std::unique_ptr<WriterType>>& writers,
auto visitor)
106 for (
auto& [key,
writer] : writers)
111 template <
typename WriterType>
112 void for_each_file(
const std::map<std::string, std::unique_ptr<WriterType>>& writers,
auto visitor)
const
114 for (
const auto& [key,
writer] : writers)
Manager(Manager &&)=default
Manager(workflow::Handler *processor)
Manager & operator=(Manager &&)=default
auto add_root_file(const std::string &filename, process::DataConvertOptions prev_conversion) -> bool
Manager(const Manager &)=delete
std::map< std::string, std::unique_ptr< BinaryFile > > binary_files_
auto is_convert_required(process::DataConvertOptions dependee) const -> bool
std::map< std::string, std::unique_ptr< Json > > json_files_
auto generate_conversion_req_map() const -> std::map< process::DataConvertOptions, bool >
Manager & operator=(const Manager &)=delete
void set_output_filenames(const std::vector< std::string > &filenames)
auto get_binary_writers() const -> const auto &
std::map< std::string, std::unique_ptr< UDP > > udp_files_
auto add_udp_file(const std::string &filename, process::DataConvertOptions prev_conversion) -> bool
void write_to_files(std::map< std::string, std::unique_ptr< WriterType > > &writers, auto make_future)
auto add_binary_file(const std::string &filename, process::DataConvertOptions prev_conversion) -> bool
workflow::Handler * workflow_handler_
std::vector< boost::unique_future< std::optional< std::size_t > > > write_futures_
auto add_json_file(const std::string &filename, process::DataConvertOptions prev_conversion) -> bool
void do_for_each_writer(WriterVisitor auto visitor)
void for_each_file(const std::map< std::string, std::unique_ptr< WriterType > > &writers, auto visitor) const
void write_with(auto make_future)
void for_each_file(std::map< std::string, std::unique_ptr< WriterType > > &writers, auto visitor)