Psyllid  v1.12.4
Project 8 Data Acquisisition Software
data_producer.hh
Go to the documentation of this file.
1 /*
2  * data_producer.hh
3  *
4  * Created on: May 31, 2019
5  * Author: N.S. Oblath
6  */
7 
8 #ifndef PSYLLID_DAQ_DATA_PRODUCER_HH_
9 #define PSYLLID_DAQ_DATA_PRODUCER_HH_
10 
11 #include "memory_block.hh"
12 #include "node_builder.hh"
13 
14 #include "producer.hh"
15 
16 #include "roach_packet.hh"
17 
18 namespace psyllid
19 {
20 
44  class data_producer : public midge::_producer< midge::type_list< memory_block > >
45  {
46  public:
47  data_producer();
48  virtual ~data_producer();
49 
50  mv_accessible( uint64_t, length );
51  mv_accessible( uint32_t, data_size );
52 
53  mv_referrable( roach_packet_data, master_packet );
54 
55  public:
56  virtual void initialize();
57  virtual void execute( midge::diptera* a_midge = nullptr );
58  virtual void finalize();
59 
60  private:
61  void initialize_block( memory_block* a_block );
62 
63  };
64 
65  class data_producer_binding : public _node_binding< data_producer, data_producer_binding >
66  {
67  public:
69  virtual ~data_producer_binding();
70 
71  private:
72  virtual void do_apply_config( data_producer* a_node, const scarab::param_node& a_config ) const;
73  virtual void do_dump_config( const data_producer* a_node, scarab::param_node& a_config ) const;
74  };
75 
76 } /* namespace dripline */
77 
78 #endif /* PSYLLID_DAQ_DATA_PRODUCER_HH_ */
virtual void initialize()
void initialize_block(memory_block *a_block)
A producer to use for debugging: continously outputss identical blank data.
mv_referrable(roach_packet_data, master_packet)
mv_accessible(uint64_t, length)
virtual void finalize()
virtual void execute(midge::diptera *a_midge=nullptr)