nidas  v1.2-1520
Public Member Functions | Protected Attributes | List of all members
nidas::util::DatagramPacketBase Class Referenceabstract

Abstract base class for a UDP datagram. More...

#include <DatagramPacket.h>

Inheritance diagram for nidas::util::DatagramPacketBase:
Inheritance graph
[legend]

Public Member Functions

 DatagramPacketBase (int l)
 Create a DatagramPacketBase for receiving. More...
 
 DatagramPacketBase (int l, const Inet4Address &add, int port)
 Create a DatagramPacketBase for sending. More...
 
 DatagramPacketBase (int l, const SocketAddress &add)
 
 DatagramPacketBase (const DatagramPacketBase &x)
 Copy constructor. More...
 
DatagramPacketBaseoperator= (const DatagramPacketBase &rhs)
 Assignment operator. More...
 
virtual ~DatagramPacketBase ()
 Virtual destructor. More...
 
SocketAddressgetSocketAddress () const
 
void setSocketAddress (const SocketAddress &val)
 
struct sockaddr * getSockAddrPtr ()
 
struct sockaddr * getConstSockAddrPtr () const
 
int getSockAddrLen () const
 
virtual void * getDataVoidPtr ()=0
 Get the pointer to the data portion of the packet. More...
 
virtual const void * getConstDataVoidPtr () const =0
 
virtual void setLength (int val)
 Set the value for the current number of bytes in data. More...
 
virtual int getLength () const
 Get the value for the current number of bytes in data. More...
 
void setMaxLength (int val)
 Set the allocated length in bytes of the data. More...
 
int getMaxLength () const
 Return the allocated length in bytes of the data. More...
 

Protected Attributes

int maxlength
 allocated length in bytes of contents. More...
 
int length
 length of datagram that was read or will be sent. More...
 
SocketAddressaddr
 The destination address for a send, or the remote senders address after a receive. More...
 

Detailed Description

Abstract base class for a UDP datagram.

Patterned after java.net.DatagramPacket.

Constructor & Destructor Documentation

nidas::util::DatagramPacketBase::DatagramPacketBase ( int  l)
inline

Create a DatagramPacketBase for receiving.

Parameters
bufallocated space for contents. Pointer is owned by caller, not by the DatagramPacketBase - the DatagramPacketBase destructor does not delete it in its destructor.
lengthlength of allocated space.
nidas::util::DatagramPacketBase::DatagramPacketBase ( int  l,
const Inet4Address add,
int  port 
)
inline

Create a DatagramPacketBase for sending.

Parameters
bufallocated space for contents. Pointer is owned by caller, not by the DatagramPacketBase - the DatagramPacketBase destructor does not delete it in its destructor.
lengthlength of allocated space. Inet4Address to send packet to. port number to send packet to.
nidas::util::DatagramPacketBase::DatagramPacketBase ( int  l,
const SocketAddress add 
)
inline
nidas::util::DatagramPacketBase::DatagramPacketBase ( const DatagramPacketBase x)
inline

Copy constructor.

virtual nidas::util::DatagramPacketBase::~DatagramPacketBase ( )
inlinevirtual

Virtual destructor.

References addr.

Member Function Documentation

virtual const void* nidas::util::DatagramPacketBase::getConstDataVoidPtr ( ) const
pure virtual
struct sockaddr* nidas::util::DatagramPacketBase::getConstSockAddrPtr ( ) const
inline
virtual void* nidas::util::DatagramPacketBase::getDataVoidPtr ( )
pure virtual
virtual int nidas::util::DatagramPacketBase::getLength ( ) const
inlinevirtual

Get the value for the current number of bytes in data.

Either the number of bytes read in a received packet, or the number of bytes to send().

References length.

Referenced by PacketReader::checkPacket(), PacketReader::logBadPacket(), PacketReader::loop(), nidas::core::DerivedDataReader::run(), WriterThread::run(), nidas::util::McSocketListener::run(), and nidas::util::McSocketMulticaster< SocketTT >::run().

int nidas::util::DatagramPacketBase::getMaxLength ( ) const
inline

Return the allocated length in bytes of the data.

References maxlength.

Referenced by PacketReader::loop().

int nidas::util::DatagramPacketBase::getSockAddrLen ( ) const
inline
struct sockaddr* nidas::util::DatagramPacketBase::getSockAddrPtr ( )
inline
SocketAddress& nidas::util::DatagramPacketBase::getSocketAddress ( ) const
inline
DatagramPacketBase& nidas::util::DatagramPacketBase::operator= ( const DatagramPacketBase rhs)
inline

Assignment operator.

References addr, nidas::util::SocketAddress::clone(), length, and maxlength.

virtual void nidas::util::DatagramPacketBase::setLength ( int  val)
inlinevirtual

Set the value for the current number of bytes in data.

/param val Number of bytes, must be <= max length.

References length.

Referenced by PacketReader::checkPacket().

void nidas::util::DatagramPacketBase::setMaxLength ( int  val)
inline

Set the allocated length in bytes of the data.

/param val Number of bytes allocated in data.

References maxlength.

void nidas::util::DatagramPacketBase::setSocketAddress ( const SocketAddress val)
inline

Member Data Documentation

SocketAddress* nidas::util::DatagramPacketBase::addr
protected

The destination address for a send, or the remote senders address after a receive.

Referenced by getConstSockAddrPtr(), getSockAddrLen(), getSockAddrPtr(), getSocketAddress(), operator=(), setSocketAddress(), and ~DatagramPacketBase().

int nidas::util::DatagramPacketBase::length
protected

length of datagram that was read or will be sent.

Must be <= maxlength.

Referenced by getLength(), operator=(), and setLength().

int nidas::util::DatagramPacketBase::maxlength
protected

allocated length in bytes of contents.

Referenced by getMaxLength(), operator=(), and setMaxLength().


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