userlibandfileserver/fileserver/sfile/sf_std.h
changeset 132 e4a7b1cbe40c
parent 90 947f0dc9f7a8
child 134 95847726fe57
equal deleted inserted replaced
131:e880629062dd 132:e4a7b1cbe40c
   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 
   233 	TUint8* iTempData;
   240 	TUint8* iTempData;
   234 	};
   241 	};
   235 
   242 
   236 enum TFsPanic
   243 enum TFsPanic
   237 	{
   244 	{
   238 	ELdrImportedOrdinalDoesNotExist
   245 	ELdrImportedOrdinalDoesNotExist	
   239 	};
   246 	};
   240 //
   247 //
   241 enum TFsFault
   248 enum TFsFault
   242 	{
   249 	{
   243 	EDrvIllegalShareValue,			//0
   250 	EDrvIllegalShareValue,			//0
   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