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 __ZStreamR_Source__
00026 #define __ZStreamR_Source__ 1
00027
00028 #include "zconfig.h"
00029
00030 #include "ZStreamer.h"
00031
00032
00033 #pragma mark -
00034 #pragma mark * ZStreamR_Source
00035
00037
00038 class ZStreamR_Source : public ZStreamR
00039 {
00040 public:
00042 ZStreamR_Source();
00043
00045 ZStreamR_Source(uint8 iData);
00046
00048 ZStreamR_Source(const void* iData, size_t iDataSize);
00049
00050 ZStreamR_Source(const std::pair<const void*, size_t>& iParam);
00051 ~ZStreamR_Source();
00052
00053
00054 virtual void Imp_Read(void* iDest, size_t iCount, size_t* oCountRead);
00055
00056 virtual void Imp_CopyToDispatch(const ZStreamW& iStreamW, uint64 iCount,
00057 uint64* oCountRead, uint64* oCountWritten);
00058
00059 virtual void Imp_CopyTo(const ZStreamW& iStreamW, uint64 iCount,
00060 uint64* oCountRead, uint64* oCountWritten);
00061
00062 virtual void Imp_Skip(uint64 iCount, uint64* oCountSkipped);
00063
00064 protected:
00065 void pCopyTo(const ZStreamW& iStreamW, uint64 iCount,
00066 uint64* oCountRead, uint64* oCountWritten);
00067
00068 uint8* fData;
00069 size_t fDataSize;
00070 size_t fOffset;
00071 };
00072
00073
00074 #pragma mark -
00075 #pragma mark * ZStreamerR_Source
00076
00078
00079 class ZStreamerR_Source : public ZStreamerR
00080 {
00081 public:
00082 ZStreamerR_Source();
00083 ZStreamerR_Source(uint8 iData);
00084 ZStreamerR_Source(const void* iData, size_t iDataSize);
00085 virtual ~ZStreamerR_Source();
00086
00087
00088 virtual const ZStreamR& GetStreamR();
00089
00090 protected:
00091 ZStreamR_Source fStream;
00092 };
00093
00094
00095
00096
00097 #endif // __ZStreamR_Source__