Alphabetic Class Index   |   Class Inheritance Tree Index   |   Tool Index

Class: PacketTee

Parent class: PacketPipe

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
protectedvector<PacketPipe* >sources
protectedvector<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


Alphabetic Class Index   |   Class Inheritance Tree Index   |   Tool Index