OPAL  Version 3.10.10
IAX2FrameList Class Reference

#include <frame.h>

Inheritance diagram for IAX2FrameList:
IAX2Frame IAX2ActiveFrameList

Public Member Functions

 ~IAX2FrameList ()
void ReportList (PString &answer)
IAX2FrameGetLastFrame ()
void Initialise ()
PBoolean Empty ()
void GrabContents (IAX2FrameList &src)
void DeleteMatchingSendFrame (IAX2FullFrame *reply)
void SendVnakRequestedFrames (IAX2FullFrameProtocol &src)
void AddNewFrame (IAX2Frame *src)
void GetResendFramesDeleteOldFrames (IAX2FrameList &framesToSend)
virtual PINDEX GetSize ()
void MarkAllAsResent ()
- Public Member Functions inherited from IAX2Frame
 IAX2Frame (IAX2EndPoint &_endpoint)
virtual ~IAX2Frame ()
PBoolean ReadNetworkPacket (PUDPSocket &sock)
virtual PBoolean ProcessNetworkPacket ()
virtual PBoolean IsFullFrame ()
PBoolean IsVideo () const
PBoolean IsAudio () const
virtual BYTE * GetMediaDataPointer ()
virtual PINDEX GetMediaDataSize ()
PINDEX DataSize ()
IAX2RemoteGetRemoteInfo ()
const BYTE * GetDataPointer ()
IAX2FrameBuildAppropriateFrameType (IAX2Encryption &encryptionInfo)
IAX2FrameBuildAppropriateFrameType ()
PINDEX GetUnReadBytes ()
virtual PBoolean WriteHeader ()
virtual PBoolean TransmitPacket (PUDPSocket &sock)
virtual void PrintOn (ostream &strm) const
virtual void BuildTimeStamp (const PTimeInterval &callStartTick)
IAX2EndPointGetEndpoint ()
PString IdString () const
DWORD GetTimeStamp ()
void SetTimeStamp (DWORD newValue)
virtual PBoolean CallMustBeActive ()
IAX2FrameType GetFrameType ()
virtual void InitialiseHeader (IAX2Processor *)
PBoolean CanRetransmitFrame () const
PString GetConnectionToken () const
void SetConnectionToken (PString newToken)
void BuildConnectionToken ()
PBoolean EncryptContents (IAX2Encryption &encData)
virtual PINDEX GetEncryptionOffset ()

Protected Member Functions

virtual PINDEX GetEntries ()
- Protected Member Functions inherited from IAX2Frame
PBoolean DecryptContents (IAX2Encryption &encryption)
PBoolean Read1Byte (BYTE &res)
PBoolean Read2Bytes (PINDEX &res)
PBoolean Read2Bytes (WORD &res)
PBoolean Read4Bytes (DWORD &res)
void Write1Byte (BYTE newVal)
void Write1Byte (PINDEX newVal)
void Write2Bytes (PINDEX newVal)
void Write4Bytes (unsigned int newVal)
void ZeroAllValues ()

Protected Attributes

PMutex mutex
- Protected Attributes inherited from IAX2Frame
IAX2Remote remote
IAX2FrameType frameType
IAX2EndPointendpoint
PBYTEArray data
PBoolean isFullFrame
PBoolean isVideo
PBoolean isAudio
PINDEX currentReadIndex
PINDEX currentWriteIndex
DWORD timeStamp
PBoolean canRetransmitFrame
PString connectionToken
DWORD presetTimeStamp

Additional Inherited Members

- Public Types inherited from IAX2Frame
enum  IAX2FrameType {
  undefType = 0, dtmfType = 1, voiceType = 2, videoType = 3,
  controlType = 4, nullType = 5, iax2ProtocolType = 6, textType = 7,
  imageType = 8, htmlType = 9, cngType = 10, numFrameTypes = 11
}
- Static Public Member Functions inherited from IAX2Frame
static DWORD CalcTimeStamp (const PTimeInterval &callStartTick)

Detailed Description

A list of all frames waiting for processing

Note please, this class is thread safe.

You do not need to protect acces to this class.

Constructor & Destructor Documentation

IAX2FrameList::~IAX2FrameList ( )

Member Function Documentation

void IAX2FrameList::AddNewFrame ( IAX2Frame src)

Add the frame (supplied as an argument) to the end of this list

void IAX2FrameList::DeleteMatchingSendFrame ( IAX2FullFrame reply)

Delete the frame that has been sent, which is waiting for this reply. The reply is the argument.

PBoolean IAX2FrameList::Empty ( )
inline

True if this frame list is empty

References GetSize().

virtual PINDEX IAX2FrameList::GetEntries ( )
inlineprotectedvirtual

NON Thread safe read of the number of elements on this list.

References GetSize().

IAX2Frame* IAX2FrameList::GetLastFrame ( )

Get pointer to last frame in the list. Remove this frame from the list

void IAX2FrameList::GetResendFramesDeleteOldFrames ( IAX2FrameList framesToSend)

Get a list of frames to send, and delete the timed out frames

virtual PINDEX IAX2FrameList::GetSize ( )
inlinevirtual

Thread safe read of the number of elements on this list.

References mutex.

Referenced by Empty(), IAX2EndPoint::EthernetFramesToBeProcessed(), GetEntries(), and IAX2Receiver::GetSize().

void IAX2FrameList::GrabContents ( IAX2FrameList src)

Copy to this frame the contents of the frameList pointed to by src

void IAX2FrameList::Initialise ( )

Removing item from list will not automatically delete it

Referenced by IAX2ActiveFrameList::IAX2ActiveFrameList().

void IAX2FrameList::MarkAllAsResent ( )

Mark every frame on this list as having been resent

void IAX2FrameList::ReportList ( PString &  answer)

Report the frames queued in this list

void IAX2FrameList::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

Field Documentation

PMutex IAX2FrameList::mutex
protected

Local variable which protects access.

Referenced by GetSize().


The documentation for this class was generated from the following file: