#define prefix_ inline
prefix_ senf::ppi::module::ForwardSwitch::ForwardSwitch(bool state)
+ :forward_(state)
{
route( input, output );
input.onRequest( &ForwardSwitch::onRequest );
- forward_ = state;
}
prefix_ void senf::ppi::module::ForwardSwitch::onRequest()
{
- if(forward_){
- output(input());
- }
+ if(forward_){
+ output.write(input.read());
+ } else {
+ input.read(); // and discard automatically
+ }
}
prefix_ bool senf::ppi::module::ForwardSwitch::forward(){
- return forward_;
+ return forward_;
}
prefix_ bool senf::ppi::module::ForwardSwitch::forward(bool state){
- forward_ = state;
- return state;
+ forward_ = state;
+ return state;
}
prefix_ bool senf::ppi::module::ForwardSwitch::stopForwarding(){
- return forward(false);
+ return forward(false);
}
prefix_ bool senf::ppi::module::ForwardSwitch::startForwarding(){
- return forward(true);
+ return forward(true);
}
#undef prefix_