Processors for splitting the processing graph.
|
| template<typename BroadcastEventList, typename... Downstreams> |
| auto | tcspc::broadcast (Downstreams... downstreams) |
| | Create a processor that broadcasts events to multiple downstream processors.
|
| template<typename... Downstreams> |
| auto | tcspc::broadcast_homogeneous (Downstreams... downstreams) |
| | Create a processor that broadcasts events to multiple downstream processors of the same type.
|
| template<std::size_t N, typename Downstream> |
| auto | tcspc::broadcast_homogeneous (std::array< Downstream, N > downstreams) |
| | Create a processor that broadcasts events to multiple downstream processors of the same type.
|
| template<typename RoutedEventList, typename BroadcastEventList = type_list<>, typename Router, typename... Downstreams> |
| auto | tcspc::route (Router router, Downstreams... downstreams) |
| | Create a processor that routes events to different downstreams.
|
| template<typename RoutedEventList, typename Router, typename... Downstreams> |
| auto | tcspc::route_homogeneous (Router router, Downstreams... downstreams) |
| | Create a processor that routes events to multiple downstreams of the same type.
|
| template<typename RoutedEventList, typename Router, std::size_t N, typename Downstream> |
| auto | tcspc::route_homogeneous (Router router, std::array< Downstream, N > downstreams) |
| | Create a processor that routes events to multiple downstreams of the same type.
|
template<typename RoutedEventList, typename BroadcastEventList = type_list<>, typename Router, typename... Downstreams>
| auto tcspc::route |
( |
Router | router, |
|
|
Downstreams... | downstreams ) |
Create a processor that routes events to different downstreams.
This processor forwards each event in RoutedEventList to a different downstream according to the provided router (see Routers), which maps events to downstream indices.
Events mapped to indices out of range are discarded.
All other events (which must be in BroadcastEventList) are broadcast to all downstreams.
- See also
- tcspc::route_homogeneous()
-
tcspc::broadcast()
- Template Parameters
-
| RoutedEventList | event types to route |
| BroadcastEventList | event types to broadcast |
| Router | type of router (usually deduced) |
| Downstreams | downstream processor types (usually deduced) |
- Parameters
-
| router | the router |
| downstreams | downstream processors |
- Returns
- processor
- Events handled
- Types in RoutedEventList: invoke router; pass to downstream at the resulting index, or ignore if out of range
- Types not in RoutedEventList but in BroadcastEventList: broadcast to every downstream
- Flush: broadcast to every downstream
template<typename RoutedEventList, typename Router, typename... Downstreams>
| auto tcspc::route_homogeneous |
( |
Router | router, |
|
|
Downstreams... | downstreams ) |
Create a processor that routes events to multiple downstreams of the same type.
This processor forwards each event in RoutedEventList to a different downstream according to the provided router (see Routers), which maps events to downstream indices.
Events mapped to indices out of range are discarded.
All other events are broadcast to all downstreams.
- See also
- tcspc::route()
-
tcspc::broadcast_homogeneous()
- Template Parameters
-
| RoutedEventList | event types to route |
| Router | type of router (usually deduced) |
| Downstreams | downstream processor types (usually deduced; must be all equal) |
- Parameters
-
| router | the router |
| downstreams | downstream processors |
- Returns
- processor
- Events handled
- Types in RoutedEventList: invoke router; pass to downstream at the resulting index, or ignore if out of range
- Types not in RoutedEventList: broadcast to every downstream
- Flush: broadcast to every downstream
template<typename RoutedEventList, typename Router, std::size_t N, typename Downstream>
| auto tcspc::route_homogeneous |
( |
Router | router, |
|
|
std::array< Downstream, N > | downstreams ) |
Create a processor that routes events to multiple downstreams of the same type.
This processor forwards each event in RoutedEventList to a different downstream according to the provided router (see Routers), which maps events to downstream indices.
Events mapped to indices out of range are discarded.
All other events are broadcast to all downstreams.
- See also
- tcspc::route()
-
tcspc::broadcast_homogeneous()
- Template Parameters
-
| RoutedEventList | event types to route |
| Router | type of router (usually deduced) |
| N | number of downstreams (usually deduced) |
| Downstream | downstream processor type (usually deduced) |
- Parameters
-
| router | the router |
| downstreams | downstream processors |
- Returns
- processor
- Events handled
- Types in RoutedEventList: invoke router; pass to downstream at the resulting index, or ignore if out of range
- Types not in RoutedEventList: broadcast to every downstream
- Flush: broadcast to every downstream