wibble::sys::NetBuffer Class Reference

Buffer whose starting can be moved back and forth, useful to decapsulate stacked network packets. More...

#include <netbuffer.h>

Inheritance diagram for wibble::sys::NetBuffer:
[legend]
Collaboration diagram for wibble::sys::NetBuffer:
[legend]

List of all members.

Public Member Functions

 NetBuffer () throw ()
 NetBuffer (size_t size)
 NetBuffer (void *buf, size_t size, bool own=true)
 NetBuffer (const void *buf, size_t size)
 NetBuffer (const Buffer &buf) throw ()
 NetBuffer (const NetBuffer &buf) throw ()
NetBufferoperator= (const Buffer &buf)
NetBufferoperator= (const NetBuffer &buf)
const void * data (size_t ofs=0) const throw ()
 Return a pointer to the buffer.
void * data (size_t ofs=0) throw ()
 Return a pointer to the buffer.
size_t size () const throw ()
 Return the buffer size.
template<class T >
bool fits (size_t ofs=0) const throw ()
 Check if the buffer is long enough to contain a structure T at the given offset.
template<class T >
const T * cast (size_t ofs=0) const throw (wibble::exception::Consistency)
 Access the buffer contents as a structure T at the given offset.
NetBuffer operator+ (size_t ofs) throw (wibble::exception::Consistency)
 Return another NetBuffer starting ofs bytes from the beginning of this one.
const NetBuffer after (size_t ofs) const throw (wibble::exception::Consistency)
 Return another NetBuffer starting ofs bytes from the beginning of this one.
template<class T >
const NetBuffer after () const throw (wibble::exception::Consistency)
 Return another NetBuffer starting just after sizeof(T) from the beginning of this one.
NetBufferoperator+= (size_t ofs) throw (wibble::exception::Consistency)
 Move the starting point of this buffer ofs bytes from the beginning.
template<class T >
void skip () throw (wibble::exception::Consistency)
 Move the starting point of this buffer sizeof(T) bytes from the beginning.
void skip (size_t t) throw (wibble::exception::Consistency)
 Move the starting point of this buffer ofs bytes from the beginning.

Public Attributes

size_t cursor
 Offset in bytes of the NetBuffer start, from the beginning of the memory area we manage.

Detailed Description

Buffer whose starting can be moved back and forth, useful to decapsulate stacked network packets.


Constructor & Destructor Documentation

wibble::sys::NetBuffer::NetBuffer (  )  throw () [inline]
wibble::sys::NetBuffer::NetBuffer ( size_t  size  )  [inline]
wibble::sys::NetBuffer::NetBuffer ( void *  buf,
size_t  size,
bool  own = true 
) [inline]
wibble::sys::NetBuffer::NetBuffer ( const void *  buf,
size_t  size 
) [inline]
wibble::sys::NetBuffer::NetBuffer ( const Buffer buf  )  throw () [inline]
wibble::sys::NetBuffer::NetBuffer ( const NetBuffer buf  )  throw () [inline]

Member Function Documentation

template<class T >
const NetBuffer wibble::sys::NetBuffer::after (  )  const throw (wibble::exception::Consistency) [inline]

Return another NetBuffer starting just after sizeof(T) from the beginning of this one.

References skip().

Referenced by operator+().

const NetBuffer wibble::sys::NetBuffer::after ( size_t  ofs  )  const throw (wibble::exception::Consistency) [inline]

Return another NetBuffer starting ofs bytes from the beginning of this one.

References skip().

Referenced by TestNetBuffer::skipBytes().

template<class T >
const T* wibble::sys::NetBuffer::cast ( size_t  ofs = 0  )  const throw (wibble::exception::Consistency) [inline]

Access the buffer contents as a structure T at the given offset.

References cursor, wibble::sys::Buffer::data(), and size().

Referenced by TestNetBuffer::skipBytes(), and TestNetBuffer::startAtBeginning().

void* wibble::sys::NetBuffer::data ( size_t  ofs = 0  )  throw () [inline]

Return a pointer to the buffer.

References cursor, and wibble::sys::Buffer::data().

const void* wibble::sys::NetBuffer::data ( size_t  ofs = 0  )  const throw () [inline]

Return a pointer to the buffer.

References cursor, and wibble::sys::Buffer::data().

Referenced by TestNetBuffer::skipBytes(), and TestNetBuffer::startAtBeginning().

template<class T >
bool wibble::sys::NetBuffer::fits ( size_t  ofs = 0  )  const throw () [inline]

Check if the buffer is long enough to contain a structure T at the given offset.

References cursor, and size().

Referenced by TestNetBuffer::startAtBeginning().

NetBuffer wibble::sys::NetBuffer::operator+ ( size_t  ofs  )  throw (wibble::exception::Consistency) [inline]

Return another NetBuffer starting ofs bytes from the beginning of this one.

References after().

NetBuffer& wibble::sys::NetBuffer::operator+= ( size_t  ofs  )  throw (wibble::exception::Consistency) [inline]

Move the starting point of this buffer ofs bytes from the beginning.

References skip().

NetBuffer& wibble::sys::NetBuffer::operator= ( const NetBuffer buf  )  [inline]

References cursor, and operator=().

NetBuffer& wibble::sys::NetBuffer::operator= ( const Buffer buf  )  [inline]

Reimplemented from wibble::sys::Buffer.

References cursor.

Referenced by operator=().

size_t wibble::sys::NetBuffer::size (  )  const throw () [inline]

Return the buffer size.

Reimplemented from wibble::sys::Buffer.

References cursor.

Referenced by cast(), fits(), skip(), TestNetBuffer::skipBytes(), and TestNetBuffer::startAtBeginning().

void wibble::sys::NetBuffer::skip ( size_t  t  )  throw (wibble::exception::Consistency) [inline]

Move the starting point of this buffer ofs bytes from the beginning.

References cursor, and size().

template<class T >
void wibble::sys::NetBuffer::skip (  )  throw (wibble::exception::Consistency) [inline]

Move the starting point of this buffer sizeof(T) bytes from the beginning.

Referenced by after(), operator+=(), and TestNetBuffer::skipBytes().


Member Data Documentation

Offset in bytes of the NetBuffer start, from the beginning of the memory area we manage.

Referenced by cast(), data(), fits(), operator=(), size(), and skip().


The documentation for this class was generated from the following file:
Generated on Tue May 11 13:26:54 2010 for wibble by  doxygen 1.6.3