diff -r a179b74831c9 -r c1f20ce4abcf userlibandfileserver/fileserver/sfile/sf_file_cache.h --- a/userlibandfileserver/fileserver/sfile/sf_file_cache.h Thu Aug 19 11:14:22 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_file_cache.h Tue Aug 31 16:34:26 2010 +0300 @@ -28,6 +28,9 @@ //#define _DEBUG_READ_AHEAD +// if writing sequentially, start flushing dirty data when the cache is half full +//#define DOUBLE_BUFFERED_WRITING + NONSHARABLE_CLASS(CFileCache) : public CFsDispatchObject { @@ -75,7 +78,7 @@ TInt DoReadBuffered(CFsMessageRequest& aMsgRequest, TUint aMode, CFsClientMessageRequest*& aNewRequest); TInt DoWriteBuffered(CFsMessageRequest& aMsgRequest, CFsClientMessageRequest*& aNewRequest, TUint aMode); - enum TFlushMode {EFlushSingle, EFlushAll}; + enum TFlushMode {EFlushSingle, EFlushHalf, EFlushAll}; TInt DoFlushDirty(CFsClientMessageRequest*& aNewRequest, CFsRequest* aOldRequest, TFlushMode aFlushMode); @@ -157,6 +160,11 @@ TBool iFileCacheReadAsync; CFsClientMessageRequest* iReadAheadRequest; +#ifdef DOUBLE_BUFFERED_WRITING + // sequential append-write detection + TInt iSequentialAppends; +#endif + friend class TClosedFileUtils; friend class TFsFileWriteDirty; };