distribute

Configuration

Input Ports

There are no input ports for this process.

Output Ports

Pipefile Usage

The following sections describe the blocks needed to use this process in a pipe file.

Pipefile block

# ================================================================
process <this-proc>
  :: distribute
# ================================================================

Process connections

The following Input ports will need to be set

# There are no input port's for this process

The following Output ports will need to be set

# This process will produce the following output ports

Class Description

class distribute_process : public sprokit::process

A process for distributing input data to multiple output edges.

\process Distribute input data among many output processes.

\iports

\iport{src/\portvar{tag}} The source input \portvar{tag}.

\oports

\oport{status/\portvar{tag}} The status of the input \portvar{tag}. \oport{dist/\portvar{tag}/\portvar{group}} A port to distribute the input \portvar{tag} to. Data is distributed in ASCII-betical order.

\reqs

\req Each input port \port{src/\portvar{tag}} must be connected. \req Each output port \port{status/\portvar{res}} must be connected. \req Each \portvar{res} must have at least two outputs to distribute to.

process distrib :: distribute

# connect input port
connect foo.p1_data      to      distrib.src/set1

# status output port
connect distrib.status/set1  to     bar.status

# connect output ports
connect distrib.dist/set1/A   to    bar.data
connect distrib.dist/set1/B   to    bar_1.data

Todo:

Add configuration to allow forcing a number of outputs for a source.

Add configuration to allow same number of outputs for all sources.

Note

Edges for a \portvar{tag} may only be connected after the \port{status/\portvar{tag}} is connected to. Before this connection happens, the other ports to not exist and will cause errors. In short: The first connection for any \portvar{tag} must be \port{status/\portvar{tag}}.

class priv
class tag_info