diff --git a/dataflow_cpp/include/embb/dataflow/internal/process.h b/dataflow_cpp/include/embb/dataflow/internal/process.h index 4f5bc3f..e6f001a 100644 --- a/dataflow_cpp/include/embb/dataflow/internal/process.h +++ b/dataflow_cpp/include/embb/dataflow/internal/process.h @@ -102,8 +102,9 @@ class Process< Slices, Serial, Inputs, } template - void operator >> (T & target) { + T & operator >> (T & target) { GetOutput<0>() >> target.template GetInput<0>(); + return target; } virtual void OnClock(int clock) { diff --git a/dataflow_cpp/include/embb/dataflow/internal/select.h b/dataflow_cpp/include/embb/dataflow/internal/select.h index f3a499f..e184e2b 100644 --- a/dataflow_cpp/include/embb/dataflow/internal/select.h +++ b/dataflow_cpp/include/embb/dataflow/internal/select.h @@ -105,8 +105,9 @@ class Select } template - void operator >> (T & target) { + T & operator >> (T & target) { GetOutput<0>() >> target.template GetInput<0>(); + return target; } virtual void OnClock(int clock) { diff --git a/dataflow_cpp/include/embb/dataflow/internal/source.h b/dataflow_cpp/include/embb/dataflow/internal/source.h index 72f198b..bce273c 100644 --- a/dataflow_cpp/include/embb/dataflow/internal/source.h +++ b/dataflow_cpp/include/embb/dataflow/internal/source.h @@ -81,8 +81,9 @@ class Source< Slices, Outputs > } template - void operator >> (T & target) { + T & operator >> (T & target) { GetOutput<0>() >> target.template GetInput<0>(); + return target; } private: diff --git a/dataflow_cpp/include/embb/dataflow/internal/switch.h b/dataflow_cpp/include/embb/dataflow/internal/switch.h index 3bf36ee..0015ad9 100644 --- a/dataflow_cpp/include/embb/dataflow/internal/switch.h +++ b/dataflow_cpp/include/embb/dataflow/internal/switch.h @@ -103,8 +103,9 @@ class Switch } template - void operator >> (T & target) { + T & operator >> (T & target) { GetOutput<0>() >> target.template GetInput<0>(); + return target; } virtual void OnClock(int clock) {