userlibandfileserver/fileserver/sfile/sf_file_cache.h
branchRCL_3
changeset 43 c1f20ce4abcf
parent 41 0ffb4e86fcc9
child 44 3e88ff8f41d5
--- 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;
 	};