Description:
This is a simple extension of a plain pipe which can detect when a packet passes through it. We need this to implement pulling packets out of the various SwiftTypedPacketReader drains.
Data Fields | ||
private | bool | waiting |
private | CCSDSPacket* | packet |
private | set<Drain*> | peers |
private | SwiftTypedPacketReader* | reader |
Constructors / Destructor | |
public | Drain(SwiftTypedPacketReader* reader)Constructor for the Drain inner class. |
public | ~Drain() |
Methods | |||
public | virtual | void | pushIn(CCSDSPacket* p)
|
public | virtual | CCSDSPacket* | pullOut()
|
public | virtual | void | connectToSink(PacketPipe& sink) |
private | virtual | void | startWaiting()Mark this drain and all its peers as waiting. |
private | virtual | bool | isWaiting()Check if this drain and all of its peers are waiting. |
private | virtual | CCSDSPacket* | stopWaiting()
|
Operators |