27 f_master_packet.set_freq_not_time(
false );
41 LDEBUG(
plog,
"Executing the data_producer" );
49 if( ! out_stream< 0 >().
set( stream::s_start ) )
return;
51 ssize_t t_size_received = 0;
53 LINFO(
plog,
"Starting main loop; sending packets" );
55 while( ! is_canceled() )
57 t_block = out_stream< 0 >().data();
58 if( t_block->get_n_bytes() != f_data_size )
65 if( out_stream< 0 >().
get() == stream::s_stop )
67 LWARN(
plog,
"Output stream(s) have stop condition" );
71 if( ! out_stream< 0 >().
set( stream::s_run ) )
73 LERROR(
plog,
"Exiting due to stream error" );
78 LINFO(
plog,
"Data producer is exiting" );
81 LDEBUG(
plog,
"Stopping output stream" );
82 if( ! out_stream< 0 >().
set( stream::s_stop ) )
return;
84 LDEBUG(
plog,
"Exiting output stream" );
85 out_stream< 0 >().
set( stream::s_exit );
91 a_midge->throw_ex( std::current_exception() );
104 a_block->
resize( f_data_size );
105 a_block->set_n_bytes_used( f_data_size );
108 ::memcpy( t_roach_packet, &f_master_packet.packet(), f_data_size );
124 LDEBUG(
plog,
"Configuring data_producer with:\n" << a_config );
125 a_node->set_length( a_config.get_value(
"length", a_node->get_length() ) );
126 a_node->set_data_size( a_config.get_value(
"data-size", a_node->get_data_size() ) );
132 LDEBUG(
plog,
"Dumping data_producer configuration" );
133 a_config.add(
"length", scarab::param_value( a_node->get_length() ) );
134 a_config.add(
"data-size", scarab::param_value( a_node->get_data_size() ) );
static scarab::logger plog("data_producer")
virtual void initialize()
void initialize_block(memory_block *a_block)
virtual void do_apply_config(data_producer *a_node, const scarab::param_node &a_config) const
A producer to use for debugging: continously outputss identical blank data.
static scarab::logger plog("batch_executor")
virtual void do_dump_config(const data_producer *a_node, scarab::param_node &a_config) const
virtual ~data_producer_binding()
REGISTER_NODE_AND_BUILDER(data_producer, "data-producer", data_producer_binding)
LOGGER(plog, "egg_writer")
void resize(size_t a_n_bytes)
virtual void execute(midge::diptera *a_midge=nullptr)