ns3::Buffer Class Reference
[Packet]

automatically resized byte buffer More...

#include <buffer.h>

List of all members.

Classes

class  Iterator
 iterator in a Buffer instance More...

Public Member Functions

uint32_t GetSize (void) const
uint8_t const * PeekData (void) const
bool AddAtStart (uint32_t start)
bool AddAtEnd (uint32_t end)
void AddAtEnd (const Buffer &o)
void RemoveAtStart (uint32_t start)
void RemoveAtEnd (uint32_t end)
Buffer CreateFragment (uint32_t start, uint32_t length) const
Buffer::Iterator Begin (void) const
Buffer::Iterator End (void) const


Detailed Description

automatically resized byte buffer

This represents a buffer of bytes. Its size is automatically adjusted to hold any data prepended or appended by the user. Its implementation is optimized to ensure that the number of buffer resizes is minimized, by creating new Buffers of the maximum size ever used. The correct maximum size is learned at runtime during use by recording the maximum size of each packet.


Member Function Documentation

void ns3::Buffer::AddAtEnd ( const Buffer o  ) 

Parameters:
o the buffer to append to the end of this buffer.
Add bytes at the end of the Buffer. Any call to this method invalidates any Iterator pointing to this Buffer.

bool ns3::Buffer::AddAtEnd ( uint32_t  end  ) 

Parameters:
end size to reserve
Returns:
true if the buffer needed resizing, false otherwise.
Add bytes at the end of the Buffer. The content of these bytes is undefined but debugging builds initialize them to 0x33. Any call to this method invalidates any Iterator pointing to this Buffer.

bool ns3::Buffer::AddAtStart ( uint32_t  start  ) 

Parameters:
start size to reserve
Returns:
true if the buffer needed resizing, false otherwise.
Add bytes at the start of the Buffer. The content of these bytes is undefined but debugging builds initialize them to 0x33. Any call to this method invalidates any Iterator pointing to this Buffer.

Buffer::Iterator ns3::Buffer::Begin ( void   )  const

Returns:
an Iterator which points to the start of this Buffer.

Buffer ns3::Buffer::CreateFragment ( uint32_t  start,
uint32_t  length 
) const

Parameters:
start offset from start of packet
length 
Returns:
a fragment of size length starting at offset start.

Buffer::Iterator ns3::Buffer::End ( void   )  const

Returns:
an Iterator which points to the end of this Buffer.

uint32_t ns3::Buffer::GetSize ( void   )  const

Returns:
the number of bytes stored in this buffer.

uint8_t const* ns3::Buffer::PeekData ( void   )  const

Returns:
a pointer to the start of the internal byte buffer.
The returned pointer points to an area of memory which is ns3::Buffer::GetSize () bytes big. Please, try to never ever use this method. It is really evil and is present only for a few specific uses.

void ns3::Buffer::RemoveAtEnd ( uint32_t  end  ) 

Parameters:
end size to remove
Remove bytes at the end of the Buffer. Any call to this method invalidates any Iterator pointing to this Buffer.

void ns3::Buffer::RemoveAtStart ( uint32_t  start  ) 

Parameters:
start size to remove
Remove bytes at the start of the Buffer. Any call to this method invalidates any Iterator pointing to this Buffer.


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

Generated on Fri Apr 9 15:01:08 2010 for NS-3 by  doxygen 1.5.8