#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 |
1.4.2