8 #ifndef PSYLLID_TERMINATOR_FREQ_DATA_HH_ 9 #define PSYLLID_TERMINATOR_FREQ_DATA_HH_ 13 #include "consumer.hh" 22 #define DEFINE_TERMINATOR( data_class ) \ 23 class terminator_##data_class : public midge::_consumer< midge::type_list< data_class > > \ 26 terminator_##data_class(); \ 27 virtual ~terminator_##data_class(); \ 29 virtual void initialize() {}; \ 30 virtual void execute( midge::diptera* a_midge = nullptr ); \ 31 virtual void finalize() {}; \ 33 class terminator_##data_class##_binding : public _node_binding< terminator_##data_class, terminator_##data_class##_binding > \ 36 terminator_##data_class##_binding(); \ 37 virtual ~terminator_##data_class##_binding(); \ 39 virtual void do_apply_config( terminator_##data_class*, const scarab::param_node& ) const {}; \ 40 virtual void do_dump_config( const terminator_##data_class*, scarab::param_node& ) const {}; \ 43 #define IMPLEMENT_TERMINATOR( data_class ) \ 44 terminator_##data_class::terminator_##data_class() {} \ 45 terminator_##data_class::~terminator_##data_class() {} \ 46 void terminator_##data_class::execute( midge::diptera* a_midge ) \ 50 midge::enum_t t_command = midge::stream::s_none; \ 51 while( ! is_canceled() ) \ 53 t_command = in_stream< 0 >().get(); \ 54 if( t_command == midge::stream::s_none ) continue; \ 55 if( t_command == midge::stream::s_error ) break; \ 56 if( t_command == midge::stream::s_exit ) \ 58 LDEBUG( plog, "Terminator is exiting" ); \ 61 if( t_command == midge::stream::s_stop ) \ 63 LDEBUG( plog, "Terminator is stopping" ); \ 66 if( t_command == midge::stream::s_start ) \ 68 LDEBUG( plog, "Terminator is starting" ); \ 71 if( t_command == midge::stream::s_run ) \ 80 if( a_midge ) a_midge->throw_ex( std::current_exception() ); \ 84 terminator_##data_class##_binding::terminator_##data_class##_binding() : _node_binding< terminator_##data_class, terminator_##data_class##_binding >() {} \ 85 terminator_##data_class##_binding::~terminator_##data_class##_binding() {} 90 public midge::_consumer< midge::type_list< time_data > >
98 virtual void execute( midge::diptera* a_midge =
nullptr );
110 virtual void do_apply_config(
terminator_time_data* a_node,
const scarab::param_node& a_config )
const;
111 virtual void do_dump_config(
const terminator_time_data* a_node, scarab::param_node& a_config )
const;
116 public midge::_consumer< midge::type_list< freq_data > >
124 virtual void execute( midge::diptera* a_midge =
nullptr );
136 virtual void do_apply_config(
terminator_freq_data* a_node,
const scarab::param_node& a_config )
const;
137 virtual void do_dump_config(
const terminator_freq_data* a_node, scarab::param_node& a_config )
const;
virtual void execute(midge::diptera *a_midge=nullptr)
#define DEFINE_TERMINATOR(data_class)
virtual void initialize()
virtual ~terminator_time_data()