00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __ZStream_String__
00026 #define __ZStream_String__ 1
00027 #include "zconfig.h"
00028
00029 #include "ZStream.h"
00030
00031 #include <string>
00032
00033
00034 #pragma mark -
00035 #pragma mark * ZStreamRPos_String
00036
00038
00039 class ZStreamRPos_String : public ZStreamRPos
00040 {
00041 public:
00042 ZStreamRPos_String(const std::string& inString);
00043 ~ZStreamRPos_String();
00044
00045
00046 virtual void Imp_Read(void* iDest, size_t iCount, size_t* oCountRead);
00047
00048
00049 virtual uint64 Imp_GetPosition();
00050 virtual void Imp_SetPosition(uint64 inPosition);
00051
00052 virtual uint64 Imp_GetSize();
00053
00054 protected:
00055 const std::string& fString;
00056 uint64 fPosition;
00057 };
00058
00059
00060 #pragma mark -
00061 #pragma mark * ZStreamWPos_String
00062
00064
00065 class ZStreamWPos_String : public ZStreamWPos
00066 {
00067 public:
00068 ZStreamWPos_String(std::string& inString);
00069 ~ZStreamWPos_String();
00070
00071
00072 virtual void Imp_Write(const void* iSource, size_t iCount, size_t* oCountWritten);
00073
00074
00075 virtual uint64 Imp_GetPosition();
00076 virtual void Imp_SetPosition(uint64 inPosition);
00077
00078 virtual uint64 Imp_GetSize();
00079 virtual void Imp_SetSize(uint64 iSize);
00080
00081 protected:
00082 std::string& fString;
00083 uint64 fPosition;
00084 };
00085
00086
00087 #pragma mark -
00088 #pragma mark * ZStreamRWPos_String
00089
00091
00092 class ZStreamRWPos_String : public ZStreamRWPos
00093 {
00094 public:
00095 ZStreamRWPos_String(std::string& inString);
00096 ~ZStreamRWPos_String();
00097
00098
00099 virtual void Imp_Read(void* iDest, size_t iCount, size_t* oCountRead);
00100
00101
00102 virtual void Imp_Write(const void* iSource, size_t iCount, size_t* oCountWritten);
00103 virtual void Imp_Flush();
00104
00105
00106 virtual uint64 Imp_GetPosition();
00107 virtual void Imp_SetPosition(uint64 inPosition);
00108
00109 virtual uint64 Imp_GetSize();
00110
00111
00112 virtual void Imp_SetSize(uint64 inSize);
00113
00114 protected:
00115 std::string& fString;
00116 uint64 fPosition;
00117 };
00118
00119
00120
00121 #endif // __ZStream_String__