class CopyOnWriteData

Class for representing binary data and strings, in a thread-safe manner

Public Fields

static const int npos
"no position" -- used to indicate non-position when returning a value

Public Methods

int compare(const char* str, int length)
int compare(const CopyOnWriteData& data)
int compareNoCase(const char* str, int length)
int compareNoCase(const CopyOnWriteData& data)
CopyOnWriteData( const string& str)
constructor for C++ strings
CopyOnWriteData( const int value)
constructor that converts an int to a Data
CopyOnWriteData( const mstring& mstr)
constructor for mstring (a specialization of C++ strings)
CopyOnWriteData( const CopyOnWriteData& data )
copy constructor
CopyOnWriteData( const char* buffer, int length )
constructor for character arrays with length
CopyOnWriteData( const char* str )
constructor for C style strings
CopyOnWriteData()
Default constructor
int CopyOnWriteData::match(const char* match, CopyOnWriteData* data, bool replace = false, CopyOnWriteData replaceWith = "")
match
void deepCopy(const Connection& src, char** bufPtr, int* bufLenPtr)
void erase()
erase this object
void expand(CopyOnWriteData startFrom, CopyOnWriteData findstr, CopyOnWriteData replstr, CopyOnWriteData delimiter)
expand expands headers (depreciated)
int find( const CopyOnWriteData& match, int start = npos )
find a string in the object
int find( const char* match, int start = npos )
find a string in the object
char getChar( int i )
return one character from the string
const char* getData()
returns a NUL terminated (a C string) buffer
const char* getDataBuf()
returns a pointer to the buffer
string getIp()
Gets the IP of the destination
void initialize()
initialize the SIGPIPE signal handler (for broken pipes)
friend bool isEqualNoCase( const char* left, const CopyOnWriteData& right )
do a case-insensitive match
friend bool isEqualNoCase( const CopyOnWriteData& left, const CopyOnWriteData& right )
do a case-insensitive match
bool isLive()
Still connected?
bool isReadReady(int seconds = 0, int mSecconds = 20000)
Check if data is ready to be read within given seconds and microseconds
int length()
length of the Data object
operator const char*()
convert to a C style character array
operator int()
convert to an int (depreciated)
operator mstring()
convert to an mstring
operator string()
convert to a string
bool operator!=( const char* str )
inequality operator
bool operator!=( const CopyOnWriteData& data )
inequality operator
CopyOnWriteData operator+( const CopyOnWriteData& data)
concatenate two Data objects together
CopyOnWriteData operator+( const char* str)
concatenate a Data object and a C-style string together
void operator+=(const CopyOnWriteData& d)
append a Data object d to this Data
void operator+=(const char*)
append a string s to this Data
bool operator<(const CopyOnWriteData& )
compares two Data objects, returning the value of a dictionary comparison of the two strings
CopyOnWriteData& operator=(const char* str)
assignment operator
CopyOnWriteData& operator=(const CopyOnWriteData& data)
assignment operator
bool operator==( const CopyOnWriteData& data )
equality operator
bool operator==( const char* str )
equality operator
bool operator>(const CopyOnWriteData& )
compares two Data objects, returning the value of a dictionary comparison of the two strings
char operator[]( int i )
return one character from the string
int readLine(void* data, size_t maxlen, int &bytesRead) throw(VNetworkException&)
Reads line till '\n' is encountered or data ends
int readn(void* data, size_t nchar, int &bytesRead) throw(VNetworkException&)
Reads nchar from the connection
void removeLWS()
remove leading white space.
void removeSpaces()
removes spaces before and after a string.
void setchar( int i, char c )
return one character from the string
static void signalHandler(int signo)
handler for SIGPIPE signal
void writeData(void* data, size_t n) throw(VNetworkException&)
Writes data to the connection
~CopyOnWriteData()
destructor

Public

Set to true if signal handler initialized

Private Methods

void setState()
Sets the connection state to be blocking or non-blocking based on the type of the connection

Documentation

Class for representing binary data and strings, in a thread-safe manner. This version is implemented as copy on write buffers.
int readLine(void* data, size_t maxlen, int &bytesRead) throw(VNetworkException&)
Reads line till '\n' is encountered or data ends. Returns 0 if no more data, else return number of bytes read Returns -1 if connection is closed

int readn(void* data, size_t nchar, int &bytesRead) throw(VNetworkException&)
Reads nchar from the connection. Returns 0 if no more data, else return number of bytes read Returns -1 if connection is closed

void writeData(void* data, size_t n) throw(VNetworkException&)
Writes data to the connection

string getIp()
Gets the IP of the destination

bool isLive()
Still connected?

bool isReadReady(int seconds = 0, int mSecconds = 20000)
Check if data is ready to be read within given seconds and microseconds

void initialize()
initialize the SIGPIPE signal handler (for broken pipes)

static void signalHandler(int signo)
handler for SIGPIPE signal

void deepCopy(const Connection& src, char** bufPtr, int* bufLenPtr)

void setState()
Sets the connection state to be blocking or non-blocking based on the type of the connection

Set to true if signal handler initialized

static const int npos
"no position" -- used to indicate non-position when returning a value

CopyOnWriteData()
Default constructor

CopyOnWriteData( const char* str )
constructor for C style strings
Parameters:
str - null-terminated (C style) character array

CopyOnWriteData( const char* buffer, int length )
constructor for character arrays with length
Parameters:
buffer - character array
len - size of buffer

CopyOnWriteData( const CopyOnWriteData& data )
copy constructor

CopyOnWriteData( const string& str)
constructor for C++ strings

CopyOnWriteData( const mstring& mstr)
constructor for mstring (a specialization of C++ strings)

CopyOnWriteData( const int value)
constructor that converts an int to a Data

~CopyOnWriteData()
destructor

bool operator>(const CopyOnWriteData& )
compares two Data objects, returning the value of a dictionary comparison of the two strings

bool operator<(const CopyOnWriteData& )
compares two Data objects, returning the value of a dictionary comparison of the two strings

CopyOnWriteData& operator=(const char* str)
assignment operator
Parameters:
str - C string character array

CopyOnWriteData& operator=(const CopyOnWriteData& data)
assignment operator
Parameters:
data - CopyOnWriteData object

const char* getData()
returns a NUL terminated (a C string) buffer

const char* getDataBuf()
returns a pointer to the buffer. Note that this buffer is NOT NUL terminated (not a C string).

char getChar( int i )
return one character from the string
Parameters:
i - index into the Data object

void setchar( int i, char c )
return one character from the string
Parameters:
i - index into the object
c - character to set

char operator[]( int i )
return one character from the string
Parameters:
i - index into the object

int length()
length of the Data object

bool operator==( const char* str )
equality operator
Parameters:
str - C string to compare to

bool operator==( const CopyOnWriteData& data )
equality operator
Parameters:
data - Data to compare to

bool operator!=( const char* str )
inequality operator

bool operator!=( const CopyOnWriteData& data )
inequality operator

int compare(const char* str, int length)

int compare(const CopyOnWriteData& data)

int compareNoCase(const char* str, int length)

int compareNoCase(const CopyOnWriteData& data)

CopyOnWriteData operator+( const CopyOnWriteData& data)
concatenate two Data objects together. Warning -- this creates an extra copy of the Data object, so it is not terribly efficient. If possible, it is better to use += instead.

CopyOnWriteData operator+( const char* str)
concatenate a Data object and a C-style string together. Warning -- this creates an extra copy of the Data object, so it is not terribly efficient. If possible, it is better to use += instead.

void operator+=(const CopyOnWriteData& d)
append a Data object d to this Data. this is potentially much more efficient than operator+().

void operator+=(const char*)
append a string s to this Data. this is potentially much more efficient than operator+().

void erase()
erase this object

operator string()
convert to a string

operator const char*()
convert to a C style character array

operator mstring()
convert to an mstring

operator int()
convert to an int (depreciated)

int CopyOnWriteData::match(const char* match, CopyOnWriteData* data, bool replace = false, CopyOnWriteData replaceWith = "")
match

void removeSpaces()
removes spaces before and after a string.

void removeLWS()
remove leading white space.

void expand(CopyOnWriteData startFrom, CopyOnWriteData findstr, CopyOnWriteData replstr, CopyOnWriteData delimiter)
expand expands headers (depreciated)

friend bool isEqualNoCase( const CopyOnWriteData& left, const CopyOnWriteData& right )
do a case-insensitive match

friend bool isEqualNoCase( const char* left, const CopyOnWriteData& right )
do a case-insensitive match

int find( const CopyOnWriteData& match, int start = npos )
find a string in the object

int find( const char* match, int start = npos )
find a string in the object


This class has no child classes.

alphabetic index hierarchy of classes


generated by doc++