#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.
|
Constructor, which creates a thread to send all packets on the designated socket. |
|
Destructor. Deletes all pending packets. |
|
An Ack has been received.. Delete the matching frame from the queue waiting for an ack |
|
Do the work of the thread here. Read all lists and check for frames to send/delete. |
|
Go through the acking list:: delete those who have too many retries, and transmit those who need retransmitting |
|
Activate the transmit thread to process all frames in the lists |
|
Go through the send list:: send all frames on this list |
|
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. |
|
Report on the contents of the lists waiting for transmission |
|
Queue a frame for delivery. This is called by a connection, and then the transmit thread is woken up. |
|
Frames in the acking list - These frames are waiting on an ack |
|
Flag to activate this thread |
|
Global variable specifying application specific variables |
|
Flag to indicate that this thread should keep working |
|
Send Now list of frames - These frames are to be sent now |
|
Network socket used to transmit packets |