142 const TUint64 KMaxLegacyFileSize = 0x7fffffff; |
142 const TUint64 KMaxLegacyFileSize = 0x7fffffff; |
143 |
143 |
144 //-- absolute maximum file size that file server supports |
144 //-- absolute maximum file size that file server supports |
145 const TUint64 KMaxSupportedFileSize = KMaxTUint64; |
145 const TUint64 KMaxSupportedFileSize = KMaxTUint64; |
146 |
146 |
|
147 //-- this is a speculative value of a min. amount of free space on the volume necessary to create a file, directory etc. |
|
148 //-- it is used mostly in "reserve drive space" functionality, which is, actually, fundamentally flawed. |
|
149 //-- the problem is that the file server can't know exactly how much space is required to create some fs object on the volume, |
|
150 //-- so, it has to guess. This is a default "sector size" value; the file system can round it up internally to its cluster size if any. |
|
151 const TInt KMinFsCreateObjTreshold = KDefaultVolumeBlockSize; |
|
152 |
|
153 |
147 //__DATA_CAGING__ |
154 //__DATA_CAGING__ |
148 const TUint SHA1_LBLOCK=16; |
155 const TUint SHA1_LBLOCK=16; |
149 const TUint SHA1_HASH=20; |
156 const TUint SHA1_HASH=20; |
150 #if defined(_DEBUG) || defined(_DEBUG_RELEASE) |
157 #if defined(_DEBUG) || defined(_DEBUG_RELEASE) |
151 |
158 |
441 ECacheMemoryManagerCreateFailed, |
448 ECacheMemoryManagerCreateFailed, |
442 EFileBodyIsNull, |
449 EFileBodyIsNull, |
443 ETraceLddLoadFailure, //200 |
450 ETraceLddLoadFailure, //200 |
444 ETooManyDrivesPerSocket, |
451 ETooManyDrivesPerSocket, |
445 ENotificationFault, |
452 ENotificationFault, |
446 EFsObjectOpen |
453 EFsObjectOpen, |
|
454 EContainerHeapCorruptionOnRemove |
447 }; |
455 }; |
448 |
456 |
449 |
457 |
450 NONSHARABLE_CLASS(CFsObjectConIx) : public CBase |
458 NONSHARABLE_CLASS(CFsObjectConIx) : public CBase |
451 { |
459 { |
1836 extern HBufC* gCorruptFileNamesListFile; |
1844 extern HBufC* gCorruptFileNamesListFile; |
1837 #endif |
1845 #endif |
1838 |
1846 |
1839 typedef TPckgBuf<TMediaPswdReplyNotifyInfoV1> TMediaPswdReplyNotifyInfoV1Buf; |
1847 typedef TPckgBuf<TMediaPswdReplyNotifyInfoV1> TMediaPswdReplyNotifyInfoV1Buf; |
1840 |
1848 |
1841 #if defined(__WINS__) |
|
1842 TInt MapWindowsFileName(TDes& aBuffer,const TDesC& aFileName); |
|
1843 #endif |
|
1844 |
|
1845 enum TDllFindMethod {EFindInPath, EFindInSystemLibs, EFindInSystemBin, EFindExhausted}; |
1849 enum TDllFindMethod {EFindInPath, EFindInSystemLibs, EFindInSystemBin, EFindExhausted}; |
1846 |
1850 |
1847 //--------------------------------------------------------------------------------------------------------------------- |
1851 //--------------------------------------------------------------------------------------------------------------------- |
1848 |
1852 |
1849 NONSHARABLE_CLASS(CFileBody) : public CBase, public CFileCB::MExtendedFileInterface |
1853 NONSHARABLE_CLASS(CFileBody) : public CBase, public CFileCB::MExtendedFileInterface |
1865 CFileCB* iFileCB; |
1869 CFileCB* iFileCB; |
1866 CFileCB::MExtendedFileInterface* iExtendedFileInterface; |
1870 CFileCB::MExtendedFileInterface* iExtendedFileInterface; |
1867 TInt iFairSchedulingLen; |
1871 TInt iFairSchedulingLen; |
1868 TBool iNotifyAsyncReadersPending; |
1872 TBool iNotifyAsyncReadersPending; |
1869 TBool iDeleteOnClose; |
1873 TBool iDeleteOnClose; |
|
1874 TDblQue<CFileShare> iShareList; // A list containing the CFileShare objects associated with the file |
1870 |
1875 |
1871 protected: |
1876 protected: |
1872 TInt iPromotedShares; |
1877 TInt iPromotedShares; |
1873 RArray<TAsyncReadRequest>* iAsyncReadRequests; |
1878 RArray<TAsyncReadRequest>* iAsyncReadRequests; |
1874 CFileCache* iFileCache; // pointer to owner CFileCache |
1879 CFileCache* iFileCache; // pointer to owner CFileCache |
1875 TBool iLocalBufferSupport; |
1880 TBool iLocalBufferSupport; |
1876 |
1881 |
1877 /** |
1882 /** |
1878 maximum file size supported by the filesystem that instantiates the CFileCB, associated with this object. |
1883 maximum file size supported by the filesystem that instantiates the CFileCB, associated with this object. |
1879 For example, FAT32 supports files not larger than 4GB-1. Other file systems can support larger files. |
1884 For example, FAT32 supports files not larger than 4GB-1. Other file systems can support larger files. |
1880 This member allows file server to know maximum allowed position in the file. |
1885 This member allows file server to know maximum allowed position in the file. |
1881 The default value is KMaxTUint64 |
1886 The default value is KMaxTUint64 |
1882 */ |
1887 */ |
1883 TUint64 iMaxSupportedFileSize; |
1888 TUint64 iMaxSupportedFileSize; |
|
1889 |
|
1890 TInt iNonSequentialFileModes; // Count of clients without the 'Sequential' mode enabled |
|
1891 TBool iSequential; // Indicates whether the file is in 'Sequential' mode |
1884 |
1892 |
1885 public: |
1893 public: |
1886 // Provides support for large file size ( file size > 4GB - 1) |
1894 // Provides support for large file size ( file size > 4GB - 1) |
1887 // Upper / High 32 bit word of the file size is saved here. |
1895 // Upper / High 32 bit word of the file size is saved here. |
1888 // This can be non-zero only if the CFileShare::iMode is ORed with EFileBigFile |
1896 // This can be non-zero only if the CFileShare::iMode is ORed with EFileBigFile |