1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
5 * \brief Register for readers
10 #include <format_reader.h>
15 namespace FormatReader {
18 * \brief Create reader from fabric
22 typedef std::function<Reader *(const std::string &filename)> CreatorFunction;
23 static std::vector<CreatorFunction> _data;
26 * \brief Create reader
27 * @param filename - path to input data
28 * @return Reader for input data or nullptr
30 static Reader *CreateReader(const char *filename);
33 * \brief Registers reader in fabric
34 * @param f - a creation function
36 static void RegisterReader(CreatorFunction f);
41 * \brief Registers reader in fabric
47 * \brief Constructor creates creation function for fabric
48 * @return Register object
51 Registry::RegisterReader([](const std::string &filename) -> Reader * {
52 return new To(filename);
56 } // namespace FormatReader