#include <transmit.h>
Public Member Functions | |
Construction/destruction | |
IAX2Transmit (IAX2EndPoint &_newEndpoint, PUDPSocket &_newSocket) | |
~IAX2Transmit () | |
Worker methods | |
void | SendFrame (IAX2Frame *newFrame) |
void | ProcessLists () |
void | AckReceived () |
virtual void | Main () |
void | PurgeMatchingFullFrames (IAX2Frame *frame) |
void | ReportLists () |
Protected Member Functions | |
void | ProcessAckingList () |
void | ProcessSendList () |
Protected Attributes | |
IAX2EndPoint & | ep |
PUDPSocket & | sock |
PSyncPoint | activate |
IAX2FrameList | ackingFrames |
IAX2FrameList | sendNowFrames |
BOOL | keepGoing |
Note that this class is a thread, and runs when activated by outside events.
IAX2Transmit::IAX2Transmit | ( | IAX2EndPoint & | _newEndpoint, | |
PUDPSocket & | _newSocket | |||
) |
Constructor, which creates a thread to send all packets on the designated socket.
IAX2Transmit::~IAX2Transmit | ( | ) |
Destructor. Deletes all pending packets.
void IAX2Transmit::AckReceived | ( | ) |
An Ack has been received.. Delete the matching frame from the queue waiting for an ack
virtual void IAX2Transmit::Main | ( | ) | [virtual] |
Do the work of the thread here. Read all lists and check for frames to send/delete.
void IAX2Transmit::ProcessAckingList | ( | ) | [protected] |
Go through the acking list:: delete those who have too many retries, and transmit those who need retransmitting
void IAX2Transmit::ProcessLists | ( | ) | [inline] |
Activate the transmit thread to process all frames in the lists
void IAX2Transmit::ProcessSendList | ( | ) | [protected] |
Go through the send list:: send all frames on this list
void IAX2Transmit::PurgeMatchingFullFrames | ( | IAX2Frame * | frame | ) |
A full frame was transmitted a while ago, and the receiver has replied with a suitable acknowledgement. The acknowledgment (the newFrame) means that matching frames in the ack list should be removed.
void IAX2Transmit::ReportLists | ( | ) |
Report on the contents of the lists waiting for transmission
void IAX2Transmit::SendFrame | ( | IAX2Frame * | newFrame | ) |
Queue a frame for delivery. This is called by a connection, and then the transmit thread is woken up.
IAX2FrameList IAX2Transmit::ackingFrames [protected] |
Frames in the acking list - These frames are waiting on an ack
PSyncPoint IAX2Transmit::activate [protected] |
Flag to activate this thread
IAX2EndPoint& IAX2Transmit::ep [protected] |
Global variable specifying application specific variables
BOOL IAX2Transmit::keepGoing [protected] |
Flag to indicate that this thread should keep working
IAX2FrameList IAX2Transmit::sendNowFrames [protected] |
Send Now list of frames - These frames are to be sent now
PUDPSocket& IAX2Transmit::sock [protected] |
Network socket used to transmit packets