Revised OpenFlow Library  v0.6.0dev
 All Classes Files Functions Variables Friends Groups Pages
Public Member Functions | Friends | List of all members
rofl::cpacket Class Reference

Public Member Functions

 cpacket (size_t size, size_t head=DEFAULT_HSPACE, size_t tail=DEFAULT_TSPACE)
 
 cpacket (uint8_t *buf, size_t buflen, size_t head=DEFAULT_HSPACE, size_t tail=DEFAULT_TSPACE)
 
 cpacket (const cpacket &pack)
 
cpacketoperator= (const cpacket &pack)
 
void clear ()
 
uint8_t & operator[] (size_t index)
 
bool operator== (const cpacket &p)
 
bool operator== (const cmemory &m)
 
bool operator!= (const cpacket &p)
 
bool operator!= (const cmemory &m)
 
cpacket operator+ (const cpacket &pack)
 
cpacketoperator+= (const cpacket &pack)
 
virtual void assign (uint8_t *buf, size_t buflen)
 Overwrites memory area with plain buffer specified. Resizes internal memory as necessary. More...
 
virtual uint8_t * resize (size_t len)
 Resizes allocated memory area by calling C-function realloc(). More...
 
uint8_t * soframe () const
 
bool empty () const
 Returns boolean value empty/non empty.
 
size_t length () const
 
virtual void pack (uint8_t *buf, size_t buflen)
 Copies content of this cmemory instance to specified buffer.
 
virtual void unpack (uint8_t *buf, size_t buflen)
 Copies content of specified buffer into this cmemory instance .
 
void tag_insert (size_t len)
 
void tag_remove (size_t len)
 
uint8_t * push (unsigned int offset, unsigned int nbytes)
 
void pop (unsigned int offset, unsigned int nbytes)
 
- Public Member Functions inherited from rofl::cmemory
 cmemory (size_t len=CMEMORY_DEFAULT_SIZE)
 Constructor. Allocates a new memory area with specified size (default: 1024 bytes). More...
 
 cmemory (uint8_t *data, size_t datalen)
 Constructor. Allocates a new memory area and clones specified buffer. More...
 
 cmemory (cmemory const &m)
 Copy constructor. More...
 
virtual ~cmemory ()
 Destructor. Calls C-function free() for allocated memory area.
 
cmemoryoperator= (cmemory const &m)
 Assignment operator. More...
 
uint8_t & operator[] (size_t index) const
 Index operator. More...
 
bool operator== (cmemory const &m) const
 Comparison operator. More...
 
bool operator!= (cmemory const &m) const
 Comparison operator (unequal). More...
 
bool operator< (cmemory const &m) const
 Less than operator. More...
 
bool operator> (cmemory const &m) const
 Less than operator. More...
 
cmemory operator& (cmemory const &m) const
 AND operator. More...
 
cmemoryoperator+= (cmemory const &m)
 Append operator with assignment to this cmemory instance. More...
 
cmemory operator+ (cmemory const &m)
 Append operator with assignment to temporary cmemory instance. More...
 
uint8_t * somem () const
 Returns pointer to start of allocated memory area.
 
size_t memlen () const
 Returns length of allocated memory area.
 
uint8_t * insert (uint8_t *ptr, size_t len)
 Inserts len bytes at pointer ptr into allocated memory area. More...
 
uint8_t * insert (unsigned int offset, size_t len)
 Inserts len bytes at start of allocated memory area plus offset. More...
 
void remove (uint8_t *ptr, size_t len)
 Removes len bytes starting at pointer ptr from allocated memory area. More...
 
void remove (unsigned int offset, size_t len)
 Removes len bytes starting at offset relative to the allocated memory area. More...
 
unsigned int find_first_of (uint8_t value, unsigned int start)
 Returns index of first byte with value "value" found in allocated memory area starting at offset "start". More...
 
void clear ()
 Clears the allocated memory area by setting all bytes to 0.
 
virtual std::string toString () const
 map onto std::string instance
 

Friends

std::ostream & operator<< (std::ostream &os, const cpacket &pack)
 
Inheritance diagram for rofl::cpacket:
rofl::cmemory

Member Function Documentation

virtual void rofl::cpacket::assign ( uint8_t *  buf,
size_t  buflen 
)
inlinevirtual

Overwrites memory area with plain buffer specified. Resizes internal memory as necessary.

Parameters
bufpointer to start of buffer to be copied
buflenlength of buffer to be copied

Reimplemented from rofl::cmemory.

virtual uint8_t* rofl::cpacket::resize ( size_t  len)
inlinevirtual

Resizes allocated memory area by calling C-function realloc().

This method resizes the internal memory area and adjusts all internal parameters accordingly, so that any subsequent calls to

See Also
somem() will yield valid results.
Parameters
lennew length of allocated memory area after resize operation
Exceptions
eMemAllocFailedis thrown when the C-function realloc() fails

Reimplemented from rofl::cmemory.


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