author | llornkcor <llornkcor> | 2002-09-14 02:19:09 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-09-14 02:19:09 (UTC) |
commit | 2d0c1ffcb39f9fac8193ed2e9e93794de0bd7975 (patch) (side-by-side diff) | |
tree | eeed16b5f80dd5883991a7a06133f5f7a6936256 /noncore/apps/opie-reader/CBuffer.h | |
parent | 5a95ed6a000a56849b8f093deea500214856c626 (diff) | |
download | opie-2d0c1ffcb39f9fac8193ed2e9e93794de0bd7975.zip opie-2d0c1ffcb39f9fac8193ed2e9e93794de0bd7975.tar.gz opie-2d0c1ffcb39f9fac8193ed2e9e93794de0bd7975.tar.bz2 |
update by Tim
Diffstat (limited to 'noncore/apps/opie-reader/CBuffer.h') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/apps/opie-reader/CBuffer.h | 62 |
1 files changed, 36 insertions, 26 deletions
diff --git a/noncore/apps/opie-reader/CBuffer.h b/noncore/apps/opie-reader/CBuffer.h index 9807d27..252f3ac 100644 --- a/noncore/apps/opie-reader/CBuffer.h +++ b/noncore/apps/opie-reader/CBuffer.h @@ -6,40 +6,50 @@ #include "config.h" -class CBuffer + +class CBufferBase { + protected: size_t len; - tchar *buffer; - CBuffer(const CBuffer&); + unsigned char *buffer; + size_t membersize; + CBufferBase(const CBufferBase&); public: - CBuffer& operator=(const tchar*sztmp); -#ifdef _UNICODE - size_t length() { return ustrlen(buffer); } -#else - size_t length() { return strlen(buffer); } -#endif - tchar* data() { return buffer; } - CBuffer(size_t n = 16) : len(n) - { - buffer = new tchar[len]; - buffer[0] = '\0'; - } - ~CBuffer() { delete [] buffer; } - tchar& operator[](int i); + CBufferBase& assign(const void* sztmp, size_t ms); + void* data() { return buffer; } + CBufferBase(size_t ms, size_t n = 16); + ~CBufferBase() { delete [] buffer; } + void* operator[](int i); + size_t bstrlen(unsigned char* _buffer = NULL); + size_t totallen() { return len; } }; -class CSizeBuffer +template<class T> +class CBufferFace { - size_t len; - size_t *buffer; - CSizeBuffer(const CSizeBuffer&); + CBufferBase m_buffer; + protected: + CBufferFace(const CBufferFace&); public: - size_t* data() { return buffer; } - CSizeBuffer(size_t n = 16) : len(n) + CBufferFace& operator=(const T* sztmp) { - buffer = new size_t[len]; + m_buffer.assign(sztmp, m_buffer.bstrlen(sztmp)); + return *this; + } + void assign(const T* sztmp, size_t n) + { + m_buffer.assign(sztmp, n); + } + size_t length() { return m_buffer.bstrlen(); } + size_t totallen() { return m_buffer.totallen(); } + T* data() { return (T*)m_buffer.data(); } + CBufferFace(size_t n = 16) : m_buffer(sizeof(T), n) {} + T& operator[](int i) + { + return *((T*)m_buffer[i]); } - ~CSizeBuffer() { delete [] buffer; } - size_t& operator[](int i); }; +typedef CBufferFace<tchar> CBuffer; +typedef CBufferFace<size_t> CSizeBuffer; + #endif |