Description:
A normal pipe can only have one upstream and one downstream connection. This class allows you to make as many connections as you want using the usual PacketPipe "|" operator syntax. New connections do not invalidate the ones previously made.
Data Fields | ||
protected | vector<PacketPipe* > | sources |
protected | vector<PacketPipe* > | sinks |
Constructors / Destructor | |
public | ~PacketTee() |
Methods | |||
protected | virtual | int | hints()Return a set of bit flags giving information about the packet stream leaving this pipe. This method queries all the packet stream hints upstream and returns a bitwise "and" of them. |
protected | virtual | void | hints(int flags)Give this pipe a set of bit flags describing the packet stream entering the pipe. This method is called whenever a connection is made upstream using the "|" operator. Since it doesn't know which upstream source is calling it, it queries the hints from all of the upstream sources, bitwise "ands" them and then sends the hints to all the sinks. |
public | virtual | int | getSourceCount() |
public | virtual | PacketPipe* | getSource(int index) |
protected | virtual | void | connectToSource(PacketPipe& source)Override the generic pipe connection method to allow multiple connections. This method should not be called directly. Instead the "|" operator should be used. |
protected | virtual | void | connectToSink(PacketPipe& sink)Override the generic pipe connection method to allow multiple connections. This method should not be called directly. Instead the "|" operator should be used. |
protected | virtual | void | disconnectFromSource()Disconnect all the upstream connections. |
protected | virtual | void | disconnectFromSink()Disconnect all the downstream connections. |
protected | virtual | void | pushIn(CCSDSPacket* p)Push a copy of the packet into all of the sinks. |
protected | virtual | CCSDSPacket* | pullOut()Pull a packet from one of the sources. If all the sources are at end of stream then return NULL. |
protected | virtual | void | pump()Pull all available packets from all of the sources and push them into all of the sinks. |
Operators |