WvStreams
WvCircularBuf Class Reference

The circular in place raw memory buffer type. More...

#include <wvbuf.h>

Inheritance diagram for WvCircularBuf:

Public Member Functions

 WvCircularBuf (void *_data, size_t _avail, size_t _size, bool _autofree=false)
 WvCircularBuf (size_t _size)
void reset (void *_data, size_t _avail, size_t _size, bool _autofree=false)
 WvCircularBuf (void *_data, size_t _avail, size_t _size, bool _autofree=false)
 WvCircularBuf (size_t _size)
void reset (void *_data, size_t _avail, size_t _size, bool _autofree=false)
unsigned char * ptr () const
 Returns the underlying array pointer.
size_t size () const
 Returns the total size of the buffer.
bool get_autofree () const
 Returns the autofree flag.
void set_autofree (bool _autofree)
 Sets or clears the autofree flag.
void reset (unsigned char *_data, size_t _avail, size_t _size, bool _autofree=false)
 Resets the underlying buffer pointer and properties.
void setavail (size_t _avail)
 Sets the amount of available data using the current buffer and resets the read index to the beginning of the buffer.
void normalize ()
 Normalizes the arrangement of the data such that the contents of the buffer are stored at the beginning of the array starting with the next element that would be returned by get(size_t).
void putstr (WvStringParm str)
 Copies a WvString into the buffer, excluding the null-terminator.
void putstr (WVSTRING_FORMAT_DECL)
void putstr (WvStringParm str)
 Copies a WvString into the buffer, excluding the null-terminator.
void putstr (WVSTRING_FORMAT_DECL)
WvString getstr ()
 Returns the entire buffer as a null-terminated WvString.
WvString getstr (size_t len)
 Returns the first len characters in the buffer.
WvString getstr ()
 Returns the entire buffer as a null-terminated WvString.
WvString getstr (size_t len)
 Returns the first len characters in the buffer.
int getch ()
 Returns a single character from the buffer as an int.
int getch ()
 Returns a single character from the buffer as an int.
void putch (int ch)
 Puts a single character into the buffer as an int.
void putch (int ch)
 Puts a single character into the buffer as an int.
int peekch (int offset=0)
 Peeks a single character from the buffer as an int.
int peekch (int offset=0)
 Peeks a single character from the buffer as an int.
size_t strchr (int ch)
 Returns the number of characters that would have to be read to find the first instance of the character.
size_t strchr (int ch)
 Returns the number of characters that would have to be read to find the first instance of the character.
size_t match (const void *bytelist, size_t numbytes)
 Returns the number of leading buffer elements that match any of those in the list.
size_t match (const char *chlist)
 Returns the number of leading buffer elements that match any of those in the list.
size_t match (const void *bytelist, size_t numbytes)
 Returns the number of leading buffer elements that match any of those in the list.
size_t match (const char *chlist)
 Returns the number of leading buffer elements that match any of those in the list.
size_t notmatch (const void *bytelist, size_t numbytes)
 Returns the number of leading buffer elements that do not match any of those in the list.
size_t notmatch (const char *chlist)
 Returns the number of leading buffer elements that do not match any of those in the list.
size_t notmatch (const void *bytelist, size_t numbytes)
 Returns the number of leading buffer elements that do not match any of those in the list.
size_t notmatch (const char *chlist)
 Returns the number of leading buffer elements that do not match any of those in the list.
void put (unsigned char value)
void put (const void *data, size_t count)
void put (unsigned char value)
void put (const void *data, size_t count)
void put (const unsigned char *data, size_t count)
 Writes the specified number of elements from the specified storage location into the buffer at its tail.
void put (unsigned char &value)
 Writes the element into the buffer at its tail.
void put (const unsigned char *data, size_t count)
 Writes the specified number of elements from the specified storage location into the buffer at its tail.
void put (unsigned char &value)
 Writes the element into the buffer at its tail.
void move (void *data, size_t count)
void move (void *data, size_t count)
void move (unsigned char *buf, size_t count)
 Efficiently copies the specified number of elements from the buffer to the specified UNINITIALIZED storage location and removes the elements from the buffer.
void move (unsigned char *buf, size_t count)
 Efficiently copies the specified number of elements from the buffer to the specified UNINITIALIZED storage location and removes the elements from the buffer.
void poke (void *data, int offset, size_t count)
void poke (void *data, int offset, size_t count)
void poke (const unsigned char *data, int offset, size_t count)
 Efficiently copies the specified number of elements from the specified storage location into the buffer at a particular offset.
void poke (unsigned char &value, int offset)
 Writes the element into the buffer at the specified offset.
void poke (const unsigned char *data, int offset, size_t count)
 Efficiently copies the specified number of elements from the specified storage location into the buffer at a particular offset.
void poke (unsigned char &value, int offset)
 Writes the element into the buffer at the specified offset.
WvBufStoregetstore ()
 Returns a pointer to the underlying storage class object.
WvBufStoregetstore ()
 Returns a pointer to the underlying storage class object.
bool isreadable () const
 Returns true if the buffer supports reading.
bool isreadable () const
 Returns true if the buffer supports reading.
size_t used () const
 Returns the number of elements in the buffer currently available for reading.
size_t used () const
 Returns the number of elements in the buffer currently available for reading.
const unsigned char * get (size_t count)
 Reads exactly the specified number of elements and returns a pointer to a storage location owned by the buffer.
unsigned char get ()
 Reads the next element from the buffer.
const unsigned char * get (size_t count)
 Reads exactly the specified number of elements and returns a pointer to a storage location owned by the buffer.
unsigned char get ()
 Reads the next element from the buffer.
void skip (size_t count)
 Skips exactly the specified number of elements.
void skip (size_t count)
 Skips exactly the specified number of elements.
size_t optgettable () const
 Returns the optimal maximum number of elements in the buffer currently available for reading without incurring significant overhead.
size_t optgettable () const
 Returns the optimal maximum number of elements in the buffer currently available for reading without incurring significant overhead.
void unget (size_t count)
 Ungets exactly the specified number of elements by returning them to the buffer for subsequent reads.
void unget (size_t count)
 Ungets exactly the specified number of elements by returning them to the buffer for subsequent reads.
size_t ungettable () const
 Returns the maximum number of elements that may be ungotten at this time.
size_t ungettable () const
 Returns the maximum number of elements that may be ungotten at this time.
const unsigned char * peek (int offset, size_t count)
 Returns a const pointer into the buffer at the specified offset to the specified number of elements without actually adjusting the current get() index.
unsigned char peek (int offset=0)
 Returns the element at the specified offset in the buffer.
const unsigned char * peek (int offset, size_t count)
 Returns a const pointer into the buffer at the specified offset to the specified number of elements without actually adjusting the current get() index.
unsigned char peek (int offset=0)
 Returns the element at the specified offset in the buffer.
size_t peekable (int offset)
size_t peekable (int offset)
size_t optpeekable (int offset)
size_t optpeekable (int offset)
void zap ()
 Clears the buffer.
void zap ()
 Clears the buffer.
void copy (unsigned char *buf, int offset, size_t count)
 Efficiently copies the specified number of elements from the buffer to the specified UNINITIALIZED storage location but does not remove the elements from the buffer.
void copy (unsigned char *buf, int offset, size_t count)
 Efficiently copies the specified number of elements from the buffer to the specified UNINITIALIZED storage location but does not remove the elements from the buffer.
bool iswritable () const
 Returns true if the buffer supports writing.
bool iswritable () const
 Returns true if the buffer supports writing.
size_t free () const
 Returns the number of elements that the buffer can currently accept for writing.
size_t free () const
 Returns the number of elements that the buffer can currently accept for writing.
unsigned char * alloc (size_t count)
 Allocates exactly the specified number of elements and returns a pointer to an UNINITIALIZED storage location owned by the buffer.
unsigned char * alloc (size_t count)
 Allocates exactly the specified number of elements and returns a pointer to an UNINITIALIZED storage location owned by the buffer.
size_t optallocable () const
 Returns the optimal maximum number of elements that the buffer can currently accept for writing without incurring significant overhead.
size_t optallocable () const
 Returns the optimal maximum number of elements that the buffer can currently accept for writing without incurring significant overhead.
void unalloc (size_t count)
 Unallocates exactly the specified number of elements by removing them from the buffer and releasing their storage.
void unalloc (size_t count)
 Unallocates exactly the specified number of elements by removing them from the buffer and releasing their storage.
size_t unallocable () const
 Returns the maximum number of elements that may be unallocated at this time.
size_t unallocable () const
 Returns the maximum number of elements that may be unallocated at this time.
unsigned char * mutablepeek (int offset, size_t count)
 Returns a non-const pointer info the buffer at the specified offset to the specified number of elements without actually adjusting the current get() index.
unsigned char * mutablepeek (int offset, size_t count)
 Returns a non-const pointer info the buffer at the specified offset to the specified number of elements without actually adjusting the current get() index.
void merge (Buffer &inbuf, size_t count)
 Efficiently moves count bytes from the specified buffer into this one.
void merge (Buffer &inbuf)
 Efficiently merges the entire contents of a buffer into this one.
void merge (Buffer &inbuf, size_t count)
 Efficiently moves count bytes from the specified buffer into this one.
void merge (Buffer &inbuf)
 Efficiently merges the entire contents of a buffer into this one.

Protected Types

typedef unsigned char Elem
typedef WvBufBase< unsigned char > Buffer
typedef WvBufBase< unsigned char > Buffer

Protected Attributes

WvCircularBufStore mystore
WvBufStorestore

Detailed Description

The circular in place raw memory buffer type.

Refines the interface to add support for untyped pointers.

Definition at line 206 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbuf.h.

Member Typedef Documentation

◆ Elem

typedef unsigned char WvCircularBufBase< unsigned char >::Elem
protectedinherited

◆ Buffer [1/2]

typedef WvBufBase<unsigned char> WvBufBaseCommonImpl< unsigned char >::Buffer
protectedinherited

◆ Buffer [2/2]

typedef WvBufBase<unsigned char> WvBufBaseCommonImpl< unsigned char >::Buffer
protectedinherited

Definition at line 40 of file include/wvbufbase.h.

Constructor & Destructor Documentation

◆ WvCircularBuf() [1/6]

WvCircularBuf::WvCircularBuf ( void * _data,
size_t _avail,
size_t _size,
bool _autofree = false )
inline

◆ WvCircularBuf() [2/6]

WvCircularBuf::WvCircularBuf ( size_t _size)
inlineexplicit

◆ WvCircularBuf() [3/6]

WvCircularBuf::WvCircularBuf ( )
inline

◆ WvCircularBuf() [4/6]

WvCircularBuf::WvCircularBuf ( void * _data,
size_t _avail,
size_t _size,
bool _autofree = false )
inline

Definition at line 209 of file include/wvbuf.h.

◆ WvCircularBuf() [5/6]

WvCircularBuf::WvCircularBuf ( size_t _size)
inlineexplicit

Definition at line 213 of file include/wvbuf.h.

◆ WvCircularBuf() [6/6]

WvCircularBuf::WvCircularBuf ( )
inline

Definition at line 215 of file include/wvbuf.h.

Member Function Documentation

◆ reset() [1/3]

void WvCircularBuf::reset ( void * _data,
size_t _avail,
size_t _size,
bool _autofree = false )
inline

◆ reset() [2/3]

void WvCircularBuf::reset ( void * _data,
size_t _avail,
size_t _size,
bool _autofree = false )
inline

Definition at line 217 of file include/wvbuf.h.

◆ ptr()

unsigned char * WvCircularBufBase< unsigned char >::ptr ( ) const
inlineinherited

Returns the underlying array pointer.

Returns: the element pointer

Definition at line 863 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ size()

size_t WvCircularBufBase< unsigned char >::size ( ) const
inlineinherited

Returns the total size of the buffer.

Returns: the number of elements

Definition at line 873 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ get_autofree()

bool WvCircularBufBase< unsigned char >::get_autofree ( ) const
inlineinherited

Returns the autofree flag.

Returns: the autofree flag

Definition at line 883 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ set_autofree()

void WvCircularBufBase< unsigned char >::set_autofree ( bool _autofree)
inlineinherited

Sets or clears the autofree flag.

"_autofree" is if true, the array will be freed when discarded

Definition at line 893 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ reset() [3/3]

void WvCircularBufBase< unsigned char >::reset ( unsigned char * _data,
size_t _avail,
size_t _size,
bool _autofree = false )
inlineinherited

Resets the underlying buffer pointer and properties.

If the old and new buffer pointers differ and the old buffer was specified as autofree, the old buffer is destroyed.

"_data" is the array of data to wrap "_avail" is the amount of data available for reading at the beginning of the buffer "_size" is the size of the array "_autofree" is if true, the array will be freed when discarded

Definition at line 910 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ setavail()

void WvCircularBufBase< unsigned char >::setavail ( size_t _avail)
inlineinherited

Sets the amount of available data using the current buffer and resets the read index to the beginning of the buffer.

"_avail" is the amount of data available for reading at the beginning of the buffer

Definition at line 924 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ normalize()

void WvCircularBufBase< unsigned char >::normalize ( )
inlineinherited

Normalizes the arrangement of the data such that the contents of the buffer are stored at the beginning of the array starting with the next element that would be returned by get(size_t).

After invocation, ungettable() may equal 0.

Definition at line 938 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ putstr() [1/4]

void WvBufBase< unsigned char >::putstr ( WvStringParm str)
inherited

Copies a WvString into the buffer, excluding the null-terminator.

"str" is the string

References putstr().

Referenced by WvCRL::decode(), WvRSAKey::decode(), WvX509::decode(), WvX509::get_fingerprint(), non_breaking(), UniConfKey::printable(), putstr(), UniIniGen::refresh(), and strreplace().

◆ putstr() [2/4]

void WvBufBase< unsigned char >::putstr ( WVSTRING_FORMAT_DECL )
inlineinherited

◆ putstr() [3/4]

void WvBufBase< unsigned char >::putstr ( WvStringParm str)
inherited

Copies a WvString into the buffer, excluding the null-terminator.

"str" is the string

References putstr().

◆ putstr() [4/4]

void WvBufBase< unsigned char >::putstr ( WVSTRING_FORMAT_DECL )
inlineinherited

Definition at line 34 of file include/wvbuf.h.

◆ getstr() [1/4]

WvString WvBufBase< unsigned char >::getstr ( )
inherited

Returns the entire buffer as a null-terminated WvString.

If the buffer contains null characters, they will seem to prematurely terminate the string.

After this operation, ungettable() >= length of the string.

Returns: the buffer contents as a string

Referenced by WvX509::certreq(), WvCRL::encode(), WvRSAKey::encode(), WvX509::encode(), WvEncoder::encodebufstr(), WvEncoder::flushstrstr(), UniFileSystemGen::get(), WvX509::get_fingerprint(), WvDSAKey::getpem(), non_breaking(), UniConfKey::printable(), UniIniGen::refresh(), strreplace(), undupe(), and url_encode().

◆ getstr() [2/4]

WvString WvBufBase< unsigned char >::getstr ( size_t len)
inherited

Returns the first len characters in the buffer.

This is equivalent to doing a get(len), but returns it as a WvString instead of as an unsigned char *.

◆ getstr() [3/4]

WvString WvBufBase< unsigned char >::getstr ( )
inherited

Returns the entire buffer as a null-terminated WvString.

If the buffer contains null characters, they will seem to prematurely terminate the string.

After this operation, ungettable() >= length of the string.

Returns: the buffer contents as a string

◆ getstr() [4/4]

WvString WvBufBase< unsigned char >::getstr ( size_t len)
inherited

Returns the first len characters in the buffer.

This is equivalent to doing a get(len), but returns it as a WvString instead of as an unsigned char *.

◆ getch() [1/2]

int WvBufBase< unsigned char >::getch ( )
inlineinherited

Returns a single character from the buffer as an int.

The same constraints apply as for get(1).

Returns: the character

Definition at line 66 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbuf.h.

References WvBufBaseCommonImpl< T >::get().

Referenced by WvBase64Decoder::_encode(), WvBase64Encoder::_encode(), WvHexDecoder::_encode(), WvHexEncoder::_encode(), and WvWordWrapEncoder::_encode().

◆ getch() [2/2]

int WvBufBase< unsigned char >::getch ( )
inlineinherited

Returns a single character from the buffer as an int.

The same constraints apply as for get(1).

Returns: the character

Definition at line 66 of file include/wvbuf.h.

References WvBufBaseCommonImpl< T >::get().

◆ putch() [1/2]

void WvBufBase< unsigned char >::putch ( int ch)
inlineinherited

◆ putch() [2/2]

void WvBufBase< unsigned char >::putch ( int ch)
inlineinherited

Puts a single character into the buffer as an int.

The same constraints apply as for alloc(1).

"ch" is the character

Definition at line 76 of file include/wvbuf.h.

References WvBufBaseCommonImpl< T >::put().

◆ peekch() [1/2]

int WvBufBase< unsigned char >::peekch ( int offset = 0)
inlineinherited

Peeks a single character from the buffer as an int.

The same constraints apply as for peek(offset, 1).

"offset" is the offset Returns: the character

Definition at line 87 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbuf.h.

References WvBufBaseCommonImpl< T >::peek().

◆ peekch() [2/2]

int WvBufBase< unsigned char >::peekch ( int offset = 0)
inlineinherited

Peeks a single character from the buffer as an int.

The same constraints apply as for peek(offset, 1).

"offset" is the offset Returns: the character

Definition at line 87 of file include/wvbuf.h.

References WvBufBaseCommonImpl< T >::peek().

◆ strchr() [1/2]

size_t WvBufBase< unsigned char >::strchr ( int ch)
inherited

Returns the number of characters that would have to be read to find the first instance of the character.

"ch" is the character Returns: the number of bytes, or zero if the character is not in the buffer

Referenced by UniIniGen::refresh().

◆ strchr() [2/2]

size_t WvBufBase< unsigned char >::strchr ( int ch)
inherited

Returns the number of characters that would have to be read to find the first instance of the character.

"ch" is the character Returns: the number of bytes, or zero if the character is not in the buffer

◆ match() [1/4]

size_t WvBufBase< unsigned char >::match ( const void * bytelist,
size_t numbytes )
inlineinherited

Returns the number of leading buffer elements that match any of those in the list.

"bytelist" is the list bytes to search for "numbytes" is the number of bytes in the list Returns: the number of leading buffer elements that match

Definition at line 106 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbuf.h.

Referenced by match().

◆ match() [2/4]

size_t WvBufBase< unsigned char >::match ( const char * chlist)
inlineinherited

Returns the number of leading buffer elements that match any of those in the list.

"chlist" is a string of characters to search for Returns: the number of leading buffer elements that match

Definition at line 115 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbuf.h.

References match().

◆ match() [3/4]

size_t WvBufBase< unsigned char >::match ( const void * bytelist,
size_t numbytes )
inlineinherited

Returns the number of leading buffer elements that match any of those in the list.

"bytelist" is the list bytes to search for "numbytes" is the number of bytes in the list Returns: the number of leading buffer elements that match

Definition at line 106 of file include/wvbuf.h.

◆ match() [4/4]

size_t WvBufBase< unsigned char >::match ( const char * chlist)
inlineinherited

Returns the number of leading buffer elements that match any of those in the list.

"chlist" is a string of characters to search for Returns: the number of leading buffer elements that match

Definition at line 115 of file include/wvbuf.h.

References match().

◆ notmatch() [1/4]

size_t WvBufBase< unsigned char >::notmatch ( const void * bytelist,
size_t numbytes )
inlineinherited

Returns the number of leading buffer elements that do not match any of those in the list.

"bytelist" is the list bytes to search for "numbytes" is the number of bytes in the list Returns: the number of leading buffer elements that don't match

Definition at line 125 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbuf.h.

Referenced by notmatch().

◆ notmatch() [2/4]

size_t WvBufBase< unsigned char >::notmatch ( const char * chlist)
inlineinherited

Returns the number of leading buffer elements that do not match any of those in the list.

"chlist" is a string of characters to search for Returns: the number of leading buffer elements that don't match

Definition at line 134 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbuf.h.

References notmatch().

◆ notmatch() [3/4]

size_t WvBufBase< unsigned char >::notmatch ( const void * bytelist,
size_t numbytes )
inlineinherited

Returns the number of leading buffer elements that do not match any of those in the list.

"bytelist" is the list bytes to search for "numbytes" is the number of bytes in the list Returns: the number of leading buffer elements that don't match

Definition at line 125 of file include/wvbuf.h.

◆ notmatch() [4/4]

size_t WvBufBase< unsigned char >::notmatch ( const char * chlist)
inlineinherited

Returns the number of leading buffer elements that do not match any of those in the list.

"chlist" is a string of characters to search for Returns: the number of leading buffer elements that don't match

Definition at line 134 of file include/wvbuf.h.

References notmatch().

◆ put() [1/8]

void WvBufBase< unsigned char >::put ( unsigned char value)
inlineinherited

◆ put() [2/8]

void WvBufBase< unsigned char >::put ( const void * data,
size_t count )
inlineinherited

◆ put() [3/8]

void WvBufBase< unsigned char >::put ( unsigned char value)
inlineinherited

Definition at line 139 of file include/wvbuf.h.

◆ put() [4/8]

void WvBufBase< unsigned char >::put ( const void * data,
size_t count )
inlineinherited

Definition at line 141 of file include/wvbuf.h.

◆ put() [5/8]

void WvBufBaseCommonImpl< unsigned char >::put ( const unsigned char * data,
size_t count )
inlineinherited

Writes the specified number of elements from the specified storage location into the buffer at its tail.

It is an error for count to be greater than free().

For maximum efficiency, choose as large a count as possible.

The pointer buf may be NULL only if count == 0.

After this operation, at least count elements may be unallocated.

"data" is the buffer that contains the elements "count" is the number of elements

Definition at line 483 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ put() [6/8]

void WvBufBaseCommonImpl< unsigned char >::put ( unsigned char & value)
inlineinherited

Writes the element into the buffer at its tail.

It is an error to invoke this method if free() == 0.

After this operation, at least 1 element may be unallocated.

"valid" is the element

Definition at line 519 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ put() [7/8]

void WvBufBaseCommonImpl< unsigned char >::put ( const unsigned char * data,
size_t count )
inlineinherited

Writes the specified number of elements from the specified storage location into the buffer at its tail.

It is an error for count to be greater than free().

For maximum efficiency, choose as large a count as possible.

The pointer buf may be NULL only if count == 0.

After this operation, at least count elements may be unallocated.

"data" is the buffer that contains the elements "count" is the number of elements

Definition at line 483 of file include/wvbufbase.h.

◆ put() [8/8]

void WvBufBaseCommonImpl< unsigned char >::put ( unsigned char & value)
inlineinherited

Writes the element into the buffer at its tail.

It is an error to invoke this method if free() == 0.

After this operation, at least 1 element may be unallocated.

"valid" is the element

Definition at line 519 of file include/wvbufbase.h.

◆ move() [1/4]

void WvBufBase< unsigned char >::move ( void * data,
size_t count )
inlineinherited

◆ move() [2/4]

void WvBufBase< unsigned char >::move ( void * data,
size_t count )
inlineinherited

Definition at line 144 of file include/wvbuf.h.

◆ move() [3/4]

void WvBufBaseCommonImpl< unsigned char >::move ( unsigned char * buf,
size_t count )
inlineinherited

Efficiently copies the specified number of elements from the buffer to the specified UNINITIALIZED storage location and removes the elements from the buffer.

It is an error for count to be greater than used().

For maximum efficiency, choose as large a count as possible.

The pointer buf may be NULL only if count == 0.

After this operation, an indeterminate number of elements may be ungotten.

"buf" is the buffer that will receive the elements "count" is the number of elements

Definition at line 309 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ move() [4/4]

void WvBufBaseCommonImpl< unsigned char >::move ( unsigned char * buf,
size_t count )
inlineinherited

Efficiently copies the specified number of elements from the buffer to the specified UNINITIALIZED storage location and removes the elements from the buffer.

It is an error for count to be greater than used().

For maximum efficiency, choose as large a count as possible.

The pointer buf may be NULL only if count == 0.

After this operation, an indeterminate number of elements may be ungotten.

"buf" is the buffer that will receive the elements "count" is the number of elements

Definition at line 309 of file include/wvbufbase.h.

◆ poke() [1/6]

void WvBufBase< unsigned char >::poke ( void * data,
int offset,
size_t count )
inlineinherited

◆ poke() [2/6]

void WvBufBase< unsigned char >::poke ( void * data,
int offset,
size_t count )
inlineinherited

Definition at line 147 of file include/wvbuf.h.

◆ poke() [3/6]

void WvBufBaseCommonImpl< unsigned char >::poke ( const unsigned char * data,
int offset,
size_t count )
inlineinherited

Efficiently copies the specified number of elements from the specified storage location into the buffer at a particular offset.

If offset <= used() and offset + count > used(), the remaining data is simply tacked onto the end of the buffer with put().

It is an error for count to be greater than free() - offset.

"data" is the buffer that contains the elements "count" is the number of elements "offset" is the buffer offset, default 0

Definition at line 504 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ poke() [4/6]

void WvBufBaseCommonImpl< unsigned char >::poke ( unsigned char & value,
int offset )
inlineinherited

Writes the element into the buffer at the specified offset.

It is an error to invoke this method if free() == 0.

After this operation, at least 1 element may be unallocated.

"value" is the element "offset" is the buffer offset

Definition at line 535 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ poke() [5/6]

void WvBufBaseCommonImpl< unsigned char >::poke ( const unsigned char * data,
int offset,
size_t count )
inlineinherited

Efficiently copies the specified number of elements from the specified storage location into the buffer at a particular offset.

If offset <= used() and offset + count > used(), the remaining data is simply tacked onto the end of the buffer with put().

It is an error for count to be greater than free() - offset.

"data" is the buffer that contains the elements "count" is the number of elements "offset" is the buffer offset, default 0

Definition at line 504 of file include/wvbufbase.h.

◆ poke() [6/6]

void WvBufBaseCommonImpl< unsigned char >::poke ( unsigned char & value,
int offset )
inlineinherited

Writes the element into the buffer at the specified offset.

It is an error to invoke this method if free() == 0.

After this operation, at least 1 element may be unallocated.

"value" is the element "offset" is the buffer offset

Definition at line 535 of file include/wvbufbase.h.

◆ getstore() [1/2]

WvBufStore * WvBufBaseCommonImpl< unsigned char >::getstore ( )
inlineinherited

Returns a pointer to the underlying storage class object.

Returns: the low-level storage class object pointer, non-null

Definition at line 69 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ getstore() [2/2]

WvBufStore * WvBufBaseCommonImpl< unsigned char >::getstore ( )
inlineinherited

Returns a pointer to the underlying storage class object.

Returns: the low-level storage class object pointer, non-null

Definition at line 69 of file include/wvbufbase.h.

◆ isreadable() [1/2]

bool WvBufBaseCommonImpl< unsigned char >::isreadable ( ) const
inlineinherited

Returns true if the buffer supports reading.

Returns: true if reading is supported

Definition at line 81 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ isreadable() [2/2]

bool WvBufBaseCommonImpl< unsigned char >::isreadable ( ) const
inlineinherited

Returns true if the buffer supports reading.

Returns: true if reading is supported

Definition at line 81 of file include/wvbufbase.h.

◆ used() [1/2]

size_t WvBufBaseCommonImpl< unsigned char >::used ( ) const
inlineinherited

Returns the number of elements in the buffer currently available for reading.

This function could also be called gettable().

Definition at line 92 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ used() [2/2]

size_t WvBufBaseCommonImpl< unsigned char >::used ( ) const
inlineinherited

Returns the number of elements in the buffer currently available for reading.

This function could also be called gettable().

Definition at line 92 of file include/wvbufbase.h.

◆ get() [1/4]

const unsigned char * WvBufBaseCommonImpl< unsigned char >::get ( size_t count)
inlineinherited

Reads exactly the specified number of elements and returns a pointer to a storage location owned by the buffer.

The pointer is only valid until the next non-const buffer member is called. eg. alloc(size_t)

If count == 0, a NULL pointer may be returned.

It is an error for count to be greater than the number of available elements in the buffer.

For maximum efficiency, call this function multiple times with count no greater than optgettable() each time.

After this operation, at least count elements may be ungotten.

Definition at line 114 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ get() [2/4]

unsigned char WvBufBaseCommonImpl< unsigned char >::get ( )
inlineinherited

Reads the next element from the buffer.

It is an error to invoke this method if used() == 0.

After this operation, at least 1 element may be ungotten.

Returns: the element

Definition at line 272 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ get() [3/4]

const unsigned char * WvBufBaseCommonImpl< unsigned char >::get ( size_t count)
inlineinherited

Reads exactly the specified number of elements and returns a pointer to a storage location owned by the buffer.

The pointer is only valid until the next non-const buffer member is called. eg. alloc(size_t)

If count == 0, a NULL pointer may be returned.

It is an error for count to be greater than the number of available elements in the buffer.

For maximum efficiency, call this function multiple times with count no greater than optgettable() each time.

After this operation, at least count elements may be ungotten.

Definition at line 114 of file include/wvbufbase.h.

◆ get() [4/4]

unsigned char WvBufBaseCommonImpl< unsigned char >::get ( )
inlineinherited

Reads the next element from the buffer.

It is an error to invoke this method if used() == 0.

After this operation, at least 1 element may be ungotten.

Returns: the element

Definition at line 272 of file include/wvbufbase.h.

◆ skip() [1/2]

void WvBufBaseCommonImpl< unsigned char >::skip ( size_t count)
inlineinherited

Skips exactly the specified number of elements.

This is equivalent to invoking get(size_t) with the count and discarding the result, but may be faster for certain types of buffers. As with get(size_t), the call may be followed up by an unget(size_t).

It is an error for count to be greater than the number of available elements in the buffer.

"count" is the number of elements

Definition at line 136 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ skip() [2/2]

void WvBufBaseCommonImpl< unsigned char >::skip ( size_t count)
inlineinherited

Skips exactly the specified number of elements.

This is equivalent to invoking get(size_t) with the count and discarding the result, but may be faster for certain types of buffers. As with get(size_t), the call may be followed up by an unget(size_t).

It is an error for count to be greater than the number of available elements in the buffer.

"count" is the number of elements

Definition at line 136 of file include/wvbufbase.h.

◆ optgettable() [1/2]

size_t WvBufBaseCommonImpl< unsigned char >::optgettable ( ) const
inlineinherited

Returns the optimal maximum number of elements in the buffer currently available for reading without incurring significant overhead.

Invariants:

Returns: the number of elements

Definition at line 154 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ optgettable() [2/2]

size_t WvBufBaseCommonImpl< unsigned char >::optgettable ( ) const
inlineinherited

Returns the optimal maximum number of elements in the buffer currently available for reading without incurring significant overhead.

Invariants:

Returns: the number of elements

Definition at line 154 of file include/wvbufbase.h.

◆ unget() [1/2]

void WvBufBaseCommonImpl< unsigned char >::unget ( size_t count)
inlineinherited

Ungets exactly the specified number of elements by returning them to the buffer for subsequent reads.

This operation may always be safely performed with count less than or equal to that specified in the last get(size_t) if no non-const buffer members have been called since then.

If count == 0, nothing happens.

It is an error for count to be greater than ungettable().

"count" is the number of elements

Definition at line 177 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ unget() [2/2]

void WvBufBaseCommonImpl< unsigned char >::unget ( size_t count)
inlineinherited

Ungets exactly the specified number of elements by returning them to the buffer for subsequent reads.

This operation may always be safely performed with count less than or equal to that specified in the last get(size_t) if no non-const buffer members have been called since then.

If count == 0, nothing happens.

It is an error for count to be greater than ungettable().

"count" is the number of elements

Definition at line 177 of file include/wvbufbase.h.

◆ ungettable() [1/2]

size_t WvBufBaseCommonImpl< unsigned char >::ungettable ( ) const
inlineinherited

Returns the maximum number of elements that may be ungotten at this time.

Returns: the number of elements

Definition at line 188 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ ungettable() [2/2]

size_t WvBufBaseCommonImpl< unsigned char >::ungettable ( ) const
inlineinherited

Returns the maximum number of elements that may be ungotten at this time.

Returns: the number of elements

Definition at line 188 of file include/wvbufbase.h.

◆ peek() [1/4]

const unsigned char * WvBufBaseCommonImpl< unsigned char >::peek ( int offset,
size_t count )
inlineinherited

Returns a const pointer into the buffer at the specified offset to the specified number of elements without actually adjusting the current get() index.

The pointer is only valid until the next non-const buffer member is called. eg. alloc(size_t)

If count == 0, a NULL pointer may be returned.

If offset is greater than zero, then elements will be returned beginning with the with the offset'th element that would be returned by get(size_t).

If offset equals zero, then elements will be returned beginning with the next one available for get(size_t).

If offset is less than zero, then elements will be returned beginning with the first one that would be returned on a get(size_t) following an unget(-offset).

It is an error for count to be greater than peekable(offset).

For maximum efficiency, call this function multiple times with count no greater than that returned by optpeekable(size_t) at incremental offsets.

"offset" is the buffer offset "count" is the number of elements Returns: the element storage pointer

Definition at line 225 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ peek() [2/4]

unsigned char WvBufBaseCommonImpl< unsigned char >::peek ( int offset = 0)
inlineinherited

Returns the element at the specified offset in the buffer.

It is an error to invoke this method if used() == 0.

"offset" is the offset, default 0 Returns: the element

Definition at line 286 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ peek() [3/4]

const unsigned char * WvBufBaseCommonImpl< unsigned char >::peek ( int offset,
size_t count )
inlineinherited

Returns a const pointer into the buffer at the specified offset to the specified number of elements without actually adjusting the current get() index.

The pointer is only valid until the next non-const buffer member is called. eg. alloc(size_t)

If count == 0, a NULL pointer may be returned.

If offset is greater than zero, then elements will be returned beginning with the with the offset'th element that would be returned by get(size_t).

If offset equals zero, then elements will be returned beginning with the next one available for get(size_t).

If offset is less than zero, then elements will be returned beginning with the first one that would be returned on a get(size_t) following an unget(-offset).

It is an error for count to be greater than peekable(offset).

For maximum efficiency, call this function multiple times with count no greater than that returned by optpeekable(size_t) at incremental offsets.

"offset" is the buffer offset "count" is the number of elements Returns: the element storage pointer

Definition at line 225 of file include/wvbufbase.h.

◆ peek() [4/4]

unsigned char WvBufBaseCommonImpl< unsigned char >::peek ( int offset = 0)
inlineinherited

Returns the element at the specified offset in the buffer.

It is an error to invoke this method if used() == 0.

"offset" is the offset, default 0 Returns: the element

Definition at line 286 of file include/wvbufbase.h.

◆ peekable() [1/2]

size_t WvBufBaseCommonImpl< unsigned char >::peekable ( int offset)
inlineinherited

◆ peekable() [2/2]

size_t WvBufBaseCommonImpl< unsigned char >::peekable ( int offset)
inlineinherited

Definition at line 231 of file include/wvbufbase.h.

◆ optpeekable() [1/2]

size_t WvBufBaseCommonImpl< unsigned char >::optpeekable ( int offset)
inlineinherited

◆ optpeekable() [2/2]

size_t WvBufBaseCommonImpl< unsigned char >::optpeekable ( int offset)
inlineinherited

Definition at line 236 of file include/wvbufbase.h.

◆ zap() [1/2]

void WvBufBaseCommonImpl< unsigned char >::zap ( )
inlineinherited

Clears the buffer.

For many types of buffers, calling zap() will increased the amount of free space available for writing (see below) by an amount greater than used(). Hence it is wise to zap() a buffer just before writing to it to maximize free space.

After this operation, used() == 0, and often ungettable() == 0.

Definition at line 257 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ zap() [2/2]

void WvBufBaseCommonImpl< unsigned char >::zap ( )
inlineinherited

Clears the buffer.

For many types of buffers, calling zap() will increased the amount of free space available for writing (see below) by an amount greater than used(). Hence it is wise to zap() a buffer just before writing to it to maximize free space.

After this operation, used() == 0, and often ungettable() == 0.

Definition at line 257 of file include/wvbufbase.h.

◆ copy() [1/2]

void WvBufBaseCommonImpl< unsigned char >::copy ( unsigned char * buf,
int offset,
size_t count )
inlineinherited

Efficiently copies the specified number of elements from the buffer to the specified UNINITIALIZED storage location but does not remove the elements from the buffer.

It is an error for count to be greater than peekable(offset).

For maximum efficiency, choose as large a count as possible.

The pointer buf may be NULL only if count == 0.

"buf" is the buffer that will receive the elements "offset" is the buffer offset "count" is the number of elements

Definition at line 330 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ copy() [2/2]

void WvBufBaseCommonImpl< unsigned char >::copy ( unsigned char * buf,
int offset,
size_t count )
inlineinherited

Efficiently copies the specified number of elements from the buffer to the specified UNINITIALIZED storage location but does not remove the elements from the buffer.

It is an error for count to be greater than peekable(offset).

For maximum efficiency, choose as large a count as possible.

The pointer buf may be NULL only if count == 0.

"buf" is the buffer that will receive the elements "offset" is the buffer offset "count" is the number of elements

Definition at line 330 of file include/wvbufbase.h.

◆ iswritable() [1/2]

bool WvBufBaseCommonImpl< unsigned char >::iswritable ( ) const
inlineinherited

Returns true if the buffer supports writing.

Returns: true if writing is supported

Definition at line 342 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ iswritable() [2/2]

bool WvBufBaseCommonImpl< unsigned char >::iswritable ( ) const
inlineinherited

Returns true if the buffer supports writing.

Returns: true if writing is supported

Definition at line 342 of file include/wvbufbase.h.

◆ free() [1/2]

size_t WvBufBaseCommonImpl< unsigned char >::free ( ) const
inlineinherited

Returns the number of elements that the buffer can currently accept for writing.

Returns: the number of elements

Definition at line 353 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ free() [2/2]

size_t WvBufBaseCommonImpl< unsigned char >::free ( ) const
inlineinherited

Returns the number of elements that the buffer can currently accept for writing.

Returns: the number of elements

Definition at line 353 of file include/wvbufbase.h.

◆ alloc() [1/2]

unsigned char * WvBufBaseCommonImpl< unsigned char >::alloc ( size_t count)
inlineinherited

Allocates exactly the specified number of elements and returns a pointer to an UNINITIALIZED storage location owned by the buffer.

The pointer is only valid until the next non-const buffer member is called. eg. alloc(size_t)

If count == 0, a NULL pointer may be returned.

It is an error for count to be greater than free().

For best results, call this function multiple times with count no greater than optallocable() each time.

After this operation, at least count elements may be unallocated.

"count" is the number of elements Returns: the element storage pointer

Definition at line 379 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ alloc() [2/2]

unsigned char * WvBufBaseCommonImpl< unsigned char >::alloc ( size_t count)
inlineinherited

Allocates exactly the specified number of elements and returns a pointer to an UNINITIALIZED storage location owned by the buffer.

The pointer is only valid until the next non-const buffer member is called. eg. alloc(size_t)

If count == 0, a NULL pointer may be returned.

It is an error for count to be greater than free().

For best results, call this function multiple times with count no greater than optallocable() each time.

After this operation, at least count elements may be unallocated.

"count" is the number of elements Returns: the element storage pointer

Definition at line 379 of file include/wvbufbase.h.

◆ optallocable() [1/2]

size_t WvBufBaseCommonImpl< unsigned char >::optallocable ( ) const
inlineinherited

Returns the optimal maximum number of elements that the buffer can currently accept for writing without incurring significant overhead.

Invariants:

Returns: the number of elements

Definition at line 397 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ optallocable() [2/2]

size_t WvBufBaseCommonImpl< unsigned char >::optallocable ( ) const
inlineinherited

Returns the optimal maximum number of elements that the buffer can currently accept for writing without incurring significant overhead.

Invariants:

Returns: the number of elements

Definition at line 397 of file include/wvbufbase.h.

◆ unalloc() [1/2]

void WvBufBaseCommonImpl< unsigned char >::unalloc ( size_t count)
inlineinherited

Unallocates exactly the specified number of elements by removing them from the buffer and releasing their storage.

This operation may always be safely performed with count less than or equal to that specified in the last alloc(size_t) or put(const T*, size_t) if no non-const buffer members have been called since then.

If count == 0, nothing happens.

It is an error for count to be greater than unallocable().

"count" is the number of elements

Definition at line 421 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ unalloc() [2/2]

void WvBufBaseCommonImpl< unsigned char >::unalloc ( size_t count)
inlineinherited

Unallocates exactly the specified number of elements by removing them from the buffer and releasing their storage.

This operation may always be safely performed with count less than or equal to that specified in the last alloc(size_t) or put(const T*, size_t) if no non-const buffer members have been called since then.

If count == 0, nothing happens.

It is an error for count to be greater than unallocable().

"count" is the number of elements

Definition at line 421 of file include/wvbufbase.h.

◆ unallocable() [1/2]

size_t WvBufBaseCommonImpl< unsigned char >::unallocable ( ) const
inlineinherited

Returns the maximum number of elements that may be unallocated at this time.

For all practical purposes, this number will always be at least as large as the amount currently in use. It is provided primarily for symmetry, but also to handle cases where buffer reading (hence used()) is not supported by the implementation.

Invariants:

Returns: the number of elements

Definition at line 443 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ unallocable() [2/2]

size_t WvBufBaseCommonImpl< unsigned char >::unallocable ( ) const
inlineinherited

Returns the maximum number of elements that may be unallocated at this time.

For all practical purposes, this number will always be at least as large as the amount currently in use. It is provided primarily for symmetry, but also to handle cases where buffer reading (hence used()) is not supported by the implementation.

Invariants:

Returns: the number of elements

Definition at line 443 of file include/wvbufbase.h.

◆ mutablepeek() [1/2]

unsigned char * WvBufBaseCommonImpl< unsigned char >::mutablepeek ( int offset,
size_t count )
inlineinherited

Returns a non-const pointer info the buffer at the specified offset to the specified number of elements without actually adjusting the current get() index.

Other than the fact that the returned storage is mutable, operates identically to peek(int, size_t).

"offset" is the buffer offset "count" is the number of elements Returns: the element storage pointer

Definition at line 461 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ mutablepeek() [2/2]

unsigned char * WvBufBaseCommonImpl< unsigned char >::mutablepeek ( int offset,
size_t count )
inlineinherited

Returns a non-const pointer info the buffer at the specified offset to the specified number of elements without actually adjusting the current get() index.

Other than the fact that the returned storage is mutable, operates identically to peek(int, size_t).

"offset" is the buffer offset "count" is the number of elements Returns: the element storage pointer

Definition at line 461 of file include/wvbufbase.h.

◆ merge() [1/4]

void WvBufBaseCommonImpl< unsigned char >::merge ( Buffer & inbuf,
size_t count )
inlineinherited

Efficiently moves count bytes from the specified buffer into this one.

In some cases, this may be a zero-copy operation.

It is an error for count to be greater than inbuf.used().

For maximum efficiency, choose as large a count as possible.

After this operation, an indeterminate number of elements may be ungotten from inbuf.

"inbuf" is the buffer from which to read "count" is the number of elements

Definition at line 558 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ merge() [2/4]

void WvBufBaseCommonImpl< unsigned char >::merge ( Buffer & inbuf)
inlineinherited

Efficiently merges the entire contents of a buffer into this one.

"inbuf" is the buffer from which to read

Definition at line 568 of file debian/libwvstreams-dev/usr/include/wvstreams/wvbufbase.h.

◆ merge() [3/4]

void WvBufBaseCommonImpl< unsigned char >::merge ( Buffer & inbuf,
size_t count )
inlineinherited

Efficiently moves count bytes from the specified buffer into this one.

In some cases, this may be a zero-copy operation.

It is an error for count to be greater than inbuf.used().

For maximum efficiency, choose as large a count as possible.

After this operation, an indeterminate number of elements may be ungotten from inbuf.

"inbuf" is the buffer from which to read "count" is the number of elements

Definition at line 558 of file include/wvbufbase.h.

◆ merge() [4/4]

void WvBufBaseCommonImpl< unsigned char >::merge ( Buffer & inbuf)
inlineinherited

Efficiently merges the entire contents of a buffer into this one.

"inbuf" is the buffer from which to read

Definition at line 568 of file include/wvbufbase.h.

Member Data Documentation

◆ mystore

WvCircularBufStore WvCircularBufBase< unsigned char >::mystore
protectedinherited

◆ store

WvBufStore * WvBufBaseCommonImpl< unsigned char >::store
protectedinherited

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