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 >
C/C++ Source or Header  |  2005-01-05  |  1KB  |  47 lines

  1. #include "stdafx.h"
  2. #include "WriteOptimizedFile.h"
  3.  
  4. CWriteOptimizedFile::CWriteOptimizedFile()
  5.     :   m_dwCacheBytesUsed( 0 )
  6. {
  7. }
  8.  
  9.  
  10. void CWriteOptimizedFile::Write(const void* lpBuf, UINT nCount)
  11. {
  12.     if( m_dwCacheBytesUsed + nCount < sizeof(m_bWriteCache) )
  13.     {
  14.         CopyMemory( m_bWriteCache + m_dwCacheBytesUsed, lpBuf, nCount );
  15.         m_dwCacheBytesUsed += nCount;
  16.     }
  17.     else
  18.     {
  19.         FlushCache();
  20.         if( m_dwCacheBytesUsed + nCount < sizeof(m_bWriteCache) )
  21.         {
  22.             CopyMemory( m_bWriteCache + m_dwCacheBytesUsed, lpBuf, nCount );
  23.             m_dwCacheBytesUsed += nCount;
  24.         }
  25.         else
  26.         {
  27.             CFile::Write( lpBuf, nCount );
  28.         }
  29.     }
  30. }
  31.  
  32. void CWriteOptimizedFile::FlushCache()
  33. {
  34.     if( m_dwCacheBytesUsed )
  35.     {
  36.         CFile::Write( m_bWriteCache, m_dwCacheBytesUsed );
  37.         m_dwCacheBytesUsed = 0;
  38.     }
  39. }
  40.  
  41. void CWriteOptimizedFile::Close()
  42. {
  43.     FlushCache();
  44.     CFile::Close();
  45. }
  46.  
  47.