home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Softwarová Záchrana 3
/
Softwarova-zachrana-3.bin
/
pserv.cpl
/
pserv-2.4.exe
/
source
/
WriteOptimizedFile.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
2005-01-05
|
1KB
|
47 lines
#include "stdafx.h"
#include "WriteOptimizedFile.h"
CWriteOptimizedFile::CWriteOptimizedFile()
: m_dwCacheBytesUsed( 0 )
{
}
void CWriteOptimizedFile::Write(const void* lpBuf, UINT nCount)
{
if( m_dwCacheBytesUsed + nCount < sizeof(m_bWriteCache) )
{
CopyMemory( m_bWriteCache + m_dwCacheBytesUsed, lpBuf, nCount );
m_dwCacheBytesUsed += nCount;
}
else
{
FlushCache();
if( m_dwCacheBytesUsed + nCount < sizeof(m_bWriteCache) )
{
CopyMemory( m_bWriteCache + m_dwCacheBytesUsed, lpBuf, nCount );
m_dwCacheBytesUsed += nCount;
}
else
{
CFile::Write( lpBuf, nCount );
}
}
}
void CWriteOptimizedFile::FlushCache()
{
if( m_dwCacheBytesUsed )
{
CFile::Write( m_bWriteCache, m_dwCacheBytesUsed );
m_dwCacheBytesUsed = 0;
}
}
void CWriteOptimizedFile::Close()
{
FlushCache();
CFile::Close();
}