Line data Source code
1 :
2 : /**
3 : * @file SourceConcept.hpp SourceConcept for constructors and
4 : * forwarding command args. Enforces the implementation to
5 : * queue in UDP JUMBO frames to be translated to TypeAdapters and
6 : * send them to corresponding sinks.
7 : *
8 : * This is part of the DUNE DAQ , copyright 2020.
9 : * Licensing/copyright details are in the COPYING file that you should have
10 : * received with this code.
11 : */
12 : #ifndef ASIOLIBS_SRC_SOURCECONCEPT_HPP_
13 : #define ASIOLIBS_SRC_SOURCECONCEPT_HPP_
14 :
15 : //#include "DefaultParserImpl.hpp"
16 :
17 : #include "opmonlib/MonitorableObject.hpp"
18 : #include "appfwk/DAQModule.hpp"
19 : //#include "packetformat/detail/block_parser.hpp"
20 : #include <nlohmann/json.hpp>
21 :
22 : #include <memory>
23 : #include <sstream>
24 : #include <string>
25 :
26 : namespace dunedaq {
27 : namespace asiolibs {
28 :
29 : class SourceConcept : public opmonlib::MonitorableObject
30 : {
31 : public:
32 0 : SourceConcept() {}
33 0 : virtual ~SourceConcept() {}
34 :
35 : SourceConcept(const SourceConcept&) = delete; ///< SourceConcept is not copy-constructible
36 : SourceConcept& operator=(const SourceConcept&) = delete; ///< SourceConcept is not copy-assginable
37 : SourceConcept(SourceConcept&&) = delete; ///< SourceConcept is not move-constructible
38 : SourceConcept& operator=(SourceConcept&&) = delete; ///< SourceConcept is not move-assignable
39 :
40 : // virtual void init(const nlohmann::json& args) = 0;
41 : virtual void set_sink(const std::string& sink_name, bool callback_mode) = 0;
42 : virtual void acquire_callback() = 0;
43 : // virtual void conf(const nlohmann::json& args) = 0;
44 : // virtual void start(const nlohmann::json& args) = 0;
45 : // virtual void stop(const nlohmann::json& args) = 0;
46 :
47 : virtual bool handle_payload(char* message, std::size_t size) = 0;
48 : virtual std::size_t get_target_payload_size() const = 0;
49 :
50 0 : void set_sink_name(const std::string& sink_name)
51 : {
52 0 : m_sink_name = sink_name;
53 0 : }
54 :
55 : std::string m_sink_name;
56 : };
57 :
58 : } // namespace asiolibs
59 : } // namespace dunedaq
60 :
61 : #endif // ASIOLIBS_SRC_SOURCECONCEPT_HPP_
|