141 return m_pWriter->
Seek(llOffset, eSeek);
151 virtual size_t Read(
size_t size, LPVOID _P)
const
154 return m_pWriter->
Read(size, _P);
185 virtual void Write(
size_t size, LPCVOID P)
188 if ( m_cacheSize + size >= m_cache.
GetSize() )
192 ASSERT( m_cacheSize == 0 );
193 if ( size >= m_cache.
GetSize() )
196 m_pWriter->
Write(size, P);
200 memcpy(m_cache, P, size);
206 memcpy(&m_cache[m_cacheSize], P, size);
213 void m_Check(
void)
const
215 if ( m_pWriter == NULL )
221 void m_Push(
void)
const
223 if ( m_cacheSize > 0 )
225 m_pWriter->
Write(m_cacheSize, m_cache);
230 void m_CheckAndPush(
void)
const
235 mutable size_t m_cacheSize;
virtual LONGLONG Seek(LONGLONG llOffset, ESeekMode eSeek=TOP) const
[操作] シーク.
virtual size_t Read(size_t size, LPVOID _P) const
[取得] 読み込み
virtual LONGLONG GetSize(void) const
[取得] サイズ取得
virtual bool CanRead(void) const
[確認] 読み込み可能か
virtual LPCTSTR GetOpenName(void) const
[取得] オープン名取得
virtual void Close(void)
[操作] クローズ
virtual void Write(size_t size, LPCVOID P)
[保存] 書き込み
~CCacheWriter(void)
デストラクタ
bool SetWriter(IWriter *pfw, size_t size=10000)
[設定] ライター設定
virtual void SetEnd(void)
[設定] EOFを指定.
CCacheWriter(void)
コンストラクタ
virtual bool CanWrite(void) const
[確認] 書込み可能か
size_t GetSize(void) const
[取得] サイズ取得
void Resize(size_t l)
[設定] サイズ再設定
virtual LONGLONG Seek(LONGLONG llOffset, ESeekMode eSeek=TOP) const =0
[操作] シーク.
virtual void Close(void)=0
[操作] クローズ
virtual size_t Read(size_t size, LPVOID _P) const =0
[取得] 読み込み
virtual LONGLONG GetSize(void) const =0
[取得] サイズ取得
virtual bool CanRead(void) const =0
[確認] 読み込み可能か
virtual LPCTSTR GetOpenName(void) const =0
[取得] オープン名取得
virtual void SetEnd(void)=0
[設定] EOFを指定.
virtual bool CanWrite(void) const =0
[確認] 書込み可能か
virtual void Write(size_t size, LPCVOID P)=0
[保存] 書き込み