UFO: Alien Invasion
Loading...
Searching...
No Matches
dbuffer Class Reference

#include <dbuffer.h>

Collaboration diagram for dbuffer:
Collaboration graph

Public Member Functions

 dbuffer (int reserve=512)
 dbuffer (const dbuffer &other)
virtual ~dbuffer ()
void add (const char *, size_t)
size_t get (char *, size_t) const
 Read data from a dbuffer.
size_t getAt (size_t, char *, size_t) const
 Read data from a dbuffer.
size_t remove (size_t)
 Deletes data from a dbuffer.
size_t extract (char *, size_t)
 Read and delete data from a dbuffer.
size_t length () const

Private Attributes

size_t _length
std::vector< char > _data

Detailed Description

Definition at line 19 of file dbuffer.h.

Constructor & Destructor Documentation

◆ dbuffer() [1/2]

dbuffer::dbuffer ( int reserve = 512)

Definition at line 27 of file dbuffer.cpp.

References _data, and _length.

Referenced by dbuffer().

◆ dbuffer() [2/2]

dbuffer::dbuffer ( const dbuffer & other)

Definition at line 32 of file dbuffer.cpp.

References _data, _length, and dbuffer().

◆ ~dbuffer()

dbuffer::~dbuffer ( )
virtual

Definition at line 38 of file dbuffer.cpp.

Member Function Documentation

◆ add()

void dbuffer::add ( const char * data,
size_t len )

Definition at line 42 of file dbuffer.cpp.

References _data, _length, data, and len.

Referenced by CL_ForwardToServer_f(), Cmd_ForwardToServer(), NET_StreamEnqueue(), and NET_Wait().

◆ extract()

size_t dbuffer::extract ( char * data,
size_t len )

Read and delete data from a dbuffer.

Parameters
[out]datapointer to where the data should be copied
[in]lenmaximum number of bytes to copy
Returns
number of bytes copied
Copies up to len bytes into data, and removes them from the dbuffer
If the buffer does not contain at least len bytes, then as many bytes as are present will be copied.
However many bytes are copied, exactly that many will be removed from the start of the dbuffer.

Definition at line 136 of file dbuffer.cpp.

References data, get(), len, and remove().

Referenced by NET_StreamDequeue().

◆ get()

size_t dbuffer::get ( char * data,
size_t len ) const

Read data from a dbuffer.

Parameters
[out]datapointer to where the data should be copied
[in]lenmaximum number of bytes to copy
Returns
number of bytes copied
Copies up to len bytes into data
If the buffer does not contain at least len bytes, then as many bytes as are present will be copied.

Definition at line 61 of file dbuffer.cpp.

References _data, _length, data, and len.

Referenced by extract(), NET_StreamPeek(), and NET_Wait().

◆ getAt()

size_t dbuffer::getAt ( size_t offset,
char * data,
size_t len ) const

Read data from a dbuffer.

Parameters
[in]offsetthe offset in the source buffer where data should be copied from
[out]datapointer to where the data should be copied
[in]lenmaximum number of bytes to copy
Returns
number of bytes copied
Copies up to len bytes into data
If the buffer does not contain at least len bytes after offset, then as many bytes as are present will be copied.

Definition at line 86 of file dbuffer.cpp.

References _data, _length, data, and len.

◆ length()

size_t dbuffer::length ( ) const
inline

Definition at line 48 of file dbuffer.h.

References _length.

◆ remove()

size_t dbuffer::remove ( size_t len)

Deletes data from a dbuffer.

Parameters
[in]lennumber of bytes to delete Deletes the given number of bytes from the start of the dbuffer

Definition at line 104 of file dbuffer.cpp.

References _data, _length, and len.

Referenced by extract(), and NET_Wait().

Field Documentation

◆ _data

std::vector<char> dbuffer::_data
private

Definition at line 25 of file dbuffer.h.

Referenced by add(), dbuffer(), dbuffer(), get(), getAt(), and remove().

◆ _length

size_t dbuffer::_length
private

this is the length of the entries in the buffer, not the allocated size of the buffer

Definition at line 24 of file dbuffer.h.

Referenced by add(), dbuffer(), dbuffer(), get(), getAt(), length(), and remove().


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