PTLib  Version 2.14.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PEthSocket::Frame Class Reference

An ethernet MAC frame. More...

#include <ethsock.h>

Inheritance diagram for PEthSocket::Frame:
Collaboration diagram for PEthSocket::Frame:

Public Member Functions

 Frame (PINDEX maxSize=65536)
 
 Frame (const Frame &frame)
 
virtual bool Write (PChannel &channel) const
 
virtual bool Read (PChannel &channel, PINDEX packetSize=P_MAX_INDEX)
 
void PreRead ()
 
int GetDataLink (PBYTEArray &payload)
 Extract the data link payload. More...
 
int GetDataLink (PBYTEArray &payload, Address &src, Address &dst)
 
BYTE * CreateDataLink (const Address &src, const Address &dst, unsigned proto, PINDEX length)
 
int GetIP (PBYTEArray &payload)
 Extract the Internet Protocol payload. More...
 
int GetIP (PBYTEArray &payload, PIPSocket::Address &src, PIPSocket::Address &dst)
 
BYTE * CreateIP (const PIPSocket::Address &src, const PIPSocket::Address &dst, unsigned proto, PINDEX length)
 
bool GetUDP (PBYTEArray &payload, WORD &srcPort, WORD &dstPort)
 Extract the UDP payload. More...
 
bool GetUDP (PBYTEArray &payload, PIPSocketAddressAndPort &src, PIPSocketAddressAndPort &dst)
 
BYTE * CreateUDP (const PIPSocketAddressAndPort &src, const PIPSocketAddressAndPort &dst, PINDEX length)
 
bool GetTCP (PBYTEArray &payload, WORD &srcPort, WORD &dstPort)
 Extract the TCP payload. More...
 
bool GetTCP (PBYTEArray &payload, PIPSocketAddressAndPort &src, PIPSocketAddressAndPort &dst)
 
BYTE * CreateTCP (const PIPSocketAddressAndPort &src, const PIPSocketAddressAndPort &dst, PINDEX length)
 
const PTimeGetTimestamp () const
 
bool IsFragmentated () const
 
PINDEX GetSize () const
 
- Public Member Functions inherited from PObject
unsigned GetTraceContextIdentifier () const
 Get PTRACE context identifier. More...
 
void SetTraceContextIdentifier (unsigned id)
 
void GetTraceContextIdentifier (PObject &obj)
 
void GetTraceContextIdentifier (PObject *obj)
 
void SetTraceContextIdentifier (const PObject &obj)
 
void SetTraceContextIdentifier (const PObject *obj)
 
virtual ~PObject ()
 
virtual PObjectClone () const
 Create a copy of the class on the heap. More...
 
template<class CLS >
CLS * CloneAs () const
 As for Clone() but converts to specified type. More...
 
virtual PINDEX HashFunction () const
 This function yields a hash value required by the PDictionary class. More...
 
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank. More...
 
virtual Comparison CompareObjectMemoryDirect (const PObject &obj) const
 Determine the byte wise comparison of two objects. More...
 
bool operator== (const PObject &obj) const
 Compare the two objects. More...
 
bool operator!= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator< (const PObject &obj) const
 Compare the two objects. More...
 
bool operator> (const PObject &obj) const
 Compare the two objects. More...
 
bool operator<= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator>= (const PObject &obj) const
 Compare the two objects. More...
 
virtual const char * GetClass (unsigned ancestor=0) const
 Get the current dynamic type of the object instance. More...
 
PBoolean IsClass (const char *cls) const
 
virtual PBoolean InternalIsDescendant (const char *clsName) const
 Determine if the dynamic type of the current instance is a descendent of the specified class. More...
 
__inline const PObjectPTraceObjectInstance () const
 
virtual void PrintOn (ostream &strm) const
 Output the contents of the object to the stream. More...
 
virtual void ReadFrom (istream &strm)
 Input the contents of the object from the stream. More...
 

Protected Attributes

PBYTEArray m_rawData
 
PINDEX m_rawSize
 
PBYTEArray m_fragments
 
bool m_fragmentated
 
unsigned m_fragmentProto
 
bool m_fragmentProcessed
 
PTime m_timestamp
 
PIPSocket::Address m_fragmentSrcIP
 
PIPSocket::Address m_fragmentDstIP
 
- Protected Attributes inherited from PObject
unsigned m_traceContextIdentifier
 

Additional Inherited Members

- Public Types inherited from PObject
enum  Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
 Result of the comparison operation performed by the Compare() function. More...
 
- Static Public Member Functions inherited from PObject
static Comparison InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
 Internal function caled from CompareObjectMemoryDirect() More...
 
static const char * Class ()
 Get the name of the class as a C string. More...
 
static __inline const PObjectPTraceObjectInstance (const char *)
 
static __inline const PObjectPTraceObjectInstance (const PObject *obj)
 
- Protected Member Functions inherited from PObject
 PObject ()
 Constructor for PObject, made protected so cannot ever create one on its own. More...
 
- Friends inherited from PObject

Detailed Description

An ethernet MAC frame.

Constructor & Destructor Documentation

PEthSocket::Frame::Frame ( PINDEX  maxSize = 65536)
PEthSocket::Frame::Frame ( const Frame frame)

Member Function Documentation

BYTE* PEthSocket::Frame::CreateDataLink ( const Address src,
const Address dst,
unsigned  proto,
PINDEX  length 
)
BYTE* PEthSocket::Frame::CreateIP ( const PIPSocket::Address src,
const PIPSocket::Address dst,
unsigned  proto,
PINDEX  length 
)
BYTE* PEthSocket::Frame::CreateTCP ( const PIPSocketAddressAndPort src,
const PIPSocketAddressAndPort dst,
PINDEX  length 
)
BYTE* PEthSocket::Frame::CreateUDP ( const PIPSocketAddressAndPort src,
const PIPSocketAddressAndPort dst,
PINDEX  length 
)
int PEthSocket::Frame::GetDataLink ( PBYTEArray payload)

Extract the data link payload.

Returns
the protocol identifier for the payload.
int PEthSocket::Frame::GetDataLink ( PBYTEArray payload,
Address src,
Address dst 
)
int PEthSocket::Frame::GetIP ( PBYTEArray payload)

Extract the Internet Protocol payload.

Returns
the protocol identifier for the payload.
int PEthSocket::Frame::GetIP ( PBYTEArray payload,
PIPSocket::Address src,
PIPSocket::Address dst 
)
PINDEX PEthSocket::Frame::GetSize ( ) const
inline

References m_rawSize.

bool PEthSocket::Frame::GetTCP ( PBYTEArray payload,
WORD &  srcPort,
WORD &  dstPort 
)

Extract the TCP payload.

Returns
the protocol identifier for the payload.
bool PEthSocket::Frame::GetTCP ( PBYTEArray payload,
PIPSocketAddressAndPort src,
PIPSocketAddressAndPort dst 
)
const PTime& PEthSocket::Frame::GetTimestamp ( ) const
inline

References m_timestamp.

bool PEthSocket::Frame::GetUDP ( PBYTEArray payload,
WORD &  srcPort,
WORD &  dstPort 
)

Extract the UDP payload.

Returns
the protocol identifier for the payload.
bool PEthSocket::Frame::GetUDP ( PBYTEArray payload,
PIPSocketAddressAndPort src,
PIPSocketAddressAndPort dst 
)
bool PEthSocket::Frame::IsFragmentated ( ) const
inline

References m_fragmentated.

void PEthSocket::Frame::PreRead ( )
virtual bool PEthSocket::Frame::Read ( PChannel channel,
PINDEX  packetSize = P_MAX_INDEX 
)
virtual

Referenced by PEthSocket::ReadFrame().

virtual bool PEthSocket::Frame::Write ( PChannel channel) const
virtual

Member Data Documentation

bool PEthSocket::Frame::m_fragmentated
protected

Referenced by IsFragmentated().

PIPSocket::Address PEthSocket::Frame::m_fragmentDstIP
protected
bool PEthSocket::Frame::m_fragmentProcessed
protected
unsigned PEthSocket::Frame::m_fragmentProto
protected
PBYTEArray PEthSocket::Frame::m_fragments
protected
PIPSocket::Address PEthSocket::Frame::m_fragmentSrcIP
protected
PBYTEArray PEthSocket::Frame::m_rawData
protected
PINDEX PEthSocket::Frame::m_rawSize
protected

Referenced by GetSize().

PTime PEthSocket::Frame::m_timestamp
protected

Referenced by GetTimestamp().


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