#include <transmit.h>
Public Member Functions | |
Worker methods | |
virtual void | Terminate () |
void | SendFrame (IAX2Frame *newFrame) |
void | ProcessLists () |
void | AckReceived () |
virtual void | Main () |
void | PurgeMatchingFullFrames (IAX2Frame *frame) |
void | SendVnakRequestedFrames (IAX2FullFrameProtocol &src) |
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.
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.
virtual void IAX2Transmit::Terminate | ( | ) | [virtual] |
Cause this thread to end now
void IAX2Transmit::SendFrame | ( | IAX2Frame * | newFrame | ) |
Queue a frame for delivery. This is called by a connection, and then the transmit thread is woken up.
void IAX2Transmit::ProcessLists | ( | ) | [inline] |
Activate the transmit thread to process all frames in the lists
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::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::SendVnakRequestedFrames | ( | IAX2FullFrameProtocol & | src | ) |
A Vnak frame has been received (voice not acknowledged) which actually means, retransmit all those frames you have on this particular call number from the oseqno specified in the supplied frame
void IAX2Transmit::ReportLists | ( | ) |
Report on the contents of the lists waiting for transmission
void IAX2Transmit::ProcessAckingList | ( | ) | [protected] |
Go through the acking list:: delete those who have too many retries, and transmit those who need retransmitting
void IAX2Transmit::ProcessSendList | ( | ) | [protected] |
Go through the send list:: send all frames on this list
IAX2EndPoint& IAX2Transmit::ep [protected] |
Global variable specifying application specific variables
PUDPSocket& IAX2Transmit::sock [protected] |
Network socket used to transmit packets
PSyncPoint IAX2Transmit::activate [protected] |
Flag to activate this thread
IAX2FrameList IAX2Transmit::ackingFrames [protected] |
Frames in the acking list - These frames are waiting on an ack
IAX2FrameList IAX2Transmit::sendNowFrames [protected] |
Send Now list of frames - These frames are to be sent now
BOOL IAX2Transmit::keepGoing [protected] |
Flag to indicate that this thread should keep working