NAME

ACE_CString - A simple "C String" (ACE_CString) class.

SYNOPSIS

#include <ace/SString.h>

class ACE_CString { public: friend ACE_Export ACE_CString operator+ ( const ACE_CString &, const ACE_CString & ); friend ACE_Export ostream &operator<< ( ostream &, const ACE_CString & ); static const int npos; ACE_CString (ACE_Allocator *alloc = 0); ACE_CString (const char *s, ACE_Allocator *alloc = 0); ACE_CString (const char *s, size_t len, ACE_Allocator *alloc = 0); ACE_CString (const ACE_CString &); ACE_CString (const ACE_USHORT16 *s, ACE_Allocator *alloc = 0); ACE_CString (char c, ACE_Allocator *alloc = 0); ~ACE_CString (void); char operator[] (size_t index) const; char &operator[] (size_t index); ACE_CString &operator= (const ACE_CString &); void set (const char *s); void set (const char *s, size_t len); ACE_CString substring (size_t offset, ssize_t length = -1) const; ACE_CString substr (size_t offset, ssize_t length = -1) const; ACE_CString &operator+= (const ACE_CString &); u_long hash (void) const; size_t length (void) const; char *rep (void) const; const char *fast_rep (void) const; const char *c_str (void) const; int strstr (const ACE_CString &s) const; int find (const ACE_CString &str, int pos = 0) const; int find (const char *s, int pos = 0) const; int find (char c, int pos = 0) const; int rfind (char c, int pos = npos) const; int operator== (const ACE_CString &s) const; int operator!= (const ACE_CString &s) const; int compare (const ACE_CString &s) const; void dump (void) const; ACE_ALLOC_HOOK_DECLARE; private: ACE_Allocator *allocator_; size_t len_; char *rep_; static char NULL_CString_; };

DESCRIPTION

This is a place holder until all compilers implement the ANSI/ISO C++ standard String class. Note that we need to use this class since the ACE ACE_Map_Manager requires an object that supports the operator== and operator!=. This class uses an ACE_Allocator to allocate memory. The user can make this a persistant class by providing an ACE_Allocator with a persistable memory pool. NOTE: if an instance of this class is constructed from or assigned an empty string (with first element of '\ '), then it is _not_ allocated new space. Instead, its internal representation is set equal to a global empty string.

PUBLIC MEMBERS

friend ACE_Export ACE_CString operator+ (
    const ACE_CString &,
    const ACE_CString &
    );

friend ACE_Export ostream &operator<< (
    ostream &,
    const ACE_CString &
    );

static const int npos;

ACE_CString (ACE_Allocator *alloc = 0);

ACE_CString (const char *s, ACE_Allocator *alloc = 0);

ACE_CString (const char *s, size_t len, ACE_Allocator *alloc = 0);

ACE_CString (const ACE_CString &);

ACE_CString (const ACE_USHORT16 *s, ACE_Allocator *alloc = 0);

ACE_CString (char c, ACE_Allocator *alloc = 0);

~ACE_CString (void);

char operator[] (size_t index) const;

char &operator[] (size_t index);

ACE_CString &operator= (const ACE_CString &);

void set (const char *s);

void set (const char *s, size_t len);

ACE_CString substring (size_t offset, ssize_t length = -1) const;

ACE_CString substr (size_t offset, ssize_t length = -1) const;

ACE_CString &operator+= (const ACE_CString &);

u_long hash (void) const;

size_t length (void) const;

char *rep (void) const;

const char *fast_rep (void) const;

const char *c_str (void) const;

int strstr (const ACE_CString &s) const;

int find (const ACE_CString &str, int pos = 0) const;

int find (const char *s, int pos = 0) const;

int find (char c, int pos = 0) const;

int rfind (char c, int pos = npos) const;

int operator== (const ACE_CString &s) const;

int operator!= (const ACE_CString &s) const;

int compare (const ACE_CString &s) const;

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

PRIVATE MEMBERS

ACE_Allocator *allocator_;

size_t len_;

char *rep_;

static char NULL_CString_;

AUTHOR

Douglas C. Schmidt (schmidt@cs.wustl.edu)

LIBRARY

ace