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 __ZStrimU_StreamUTF8Buffered__
00026 #define __ZStrimU_StreamUTF8Buffered__ 1
00027 #include "zconfig.h"
00028
00029 #include "ZStream.h"
00030 #include "ZStrimmer.h"
00031
00032 #include <string>
00033
00034
00035 #pragma mark -
00036 #pragma mark * ZStrimU_StreamUTF8Buffered
00037
00038 class ZStrimU_StreamUTF8Buffered : public ZStrimU
00039 {
00040 public:
00041 ZStrimU_StreamUTF8Buffered(size_t iBufferSize, const ZStreamR& iStreamR);
00042 ~ZStrimU_StreamUTF8Buffered();
00043
00044
00045 virtual void Imp_ReadUTF32(UTF32* iDest, size_t iCount, size_t* oCount);
00046
00047
00048 virtual void Imp_Unread();
00049
00050 protected:
00051 const ZStreamR& fStreamR;
00052 vector<UTF32> fBuffer;
00053 size_t fFeedIn;
00054 size_t fFeedOut;
00055 };
00056
00057 #if 0
00058
00059 #pragma mark -
00060 #pragma mark * ZStrimerR_Boundary
00061
00063
00064 class ZStrimmerR_Boundary : public ZStrimmerR
00065 {
00066 public:
00067 ZStrimmerR_Boundary(const string8& iBoundary, ZRef<ZStrimmerR> iStrimmerSource);
00068
00069 ZStrimmerR_Boundary(
00070 const UTF8* iBoundary, size_t iBoundarySize, ZRef<ZStrimmerR> iStrimmerSource);
00071
00072 ZStrimmerR_Boundary(const string32& iBoundary, ZRef<ZStrimmerR> iStrimmerSource);
00073
00074 ZStrimmerR_Boundary(
00075 const UTF32* iBoundary, size_t iBoundarySize, ZRef<ZStrimmerR> iStrimmerSource);
00076
00077 virtual ~ZStrimmerR_Boundary();
00078
00079
00080 virtual const ZStrimR& GetStrimR();
00081
00082 protected:
00083 ZRef<ZStrimmerR> fStrimmerSource;
00084 ZStrimU_StreamUTF8Buffered fStrim;
00085 };
00086
00087
00088
00089
00090 #endif
00091 #endif // __ZStrimU_StreamUTF8Buffered__