From f4c20290509d7ed3a8fd5304577e7a4cc0b9d974 Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Tue, 3 Apr 2007 03:49:53 +0000 Subject: Ok, no code is left in src, it's all in src/old. We'll gradually move code back into src as it's fixed and re-org'd. This includes tests, which, I may write a unit test system into libbu++ just to make my life easier. --- src/old/staticstring.h | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/old/staticstring.h (limited to 'src/old/staticstring.h') diff --git a/src/old/staticstring.h b/src/old/staticstring.h new file mode 100644 index 0000000..4c3f7b8 --- /dev/null +++ b/src/old/staticstring.h @@ -0,0 +1,63 @@ +#ifndef STATIC_STRING_H +#define STATIC_STRING_H + +#include +#include "serializable.h" +//#include "hashable.h" + +/** + * Simple string managing class. Allows for dynamically allocated string data + * along with some minor caching to speed things up when accessing your + * string data. Really designed for making copies of strings easy and safe, + * and making accessing meta-info like length fast and reliable as well. + *@author Mike Buland + */ +class StaticString : public Serializable/*, public Hashable*/ +{ +public: + StaticString(); + StaticString( const char *lpNewStr, int nNewLen ); + StaticString( const char *lpNewStr ); + StaticString( StaticString &xSrcStr, int nNewLen ); + StaticString( StaticString &xSrcStr ); + StaticString( const StaticString &xSrcStr ); + StaticString( int nLength ); + virtual ~StaticString(); + + char *getString(); + const char *getString() const; + int getLength() const; + void setLength( int nNewLength ); + + void setString( const char *lpNewStr, int nNewLen=-1 ); + void setString( StaticString &sNewStr, int nNewLen=-1 ); + + char getAt( unsigned int nIndex ); + void setAt( unsigned int nIndex, char cVal ); + + class StaticString &operator=( class StaticString &lpOtherStr ); + class StaticString &operator=( std::string &lpOtherStr ); + class StaticString &operator=( const char *lpNewStr ); + operator const char *(); + char &operator[]( unsigned int nIndex ); + operator int(); + char *operator+( int nAmnt ); + char *operator-( int nAmnt ); + bool operator==( const char *str ); + bool operator==( StaticString &str ); + bool operator!=( const char *str ); + bool operator!=( StaticString &str ); + + void clear(); + + virtual void serialize( class Serializer &ar ); + + //virtual unsigned long int getHashCode(); + //virtual bool compareForHash( Hashable &other ); + +private: + char *lpStr; + uint32_t nLen; +}; + +#endif -- cgit v1.2.3