userlibandfileserver/fileserver/inc/f32file.h
changeset 132 e4a7b1cbe40c
parent 90 947f0dc9f7a8
child 189 a5496987b1da
equal deleted inserted replaced
131:e880629062dd 132:e4a7b1cbe40c
   678     Not all file systems may support this query.
   678     Not all file systems may support this query.
   679     A boolean value is returned within the buffer defined as TPckgBuf<TBool>. 
   679     A boolean value is returned within the buffer defined as TPckgBuf<TBool>. 
   680     ETrue value means that the drive is finalised
   680     ETrue value means that the drive is finalised
   681     */
   681     */
   682     EIsDriveFinalised,
   682     EIsDriveFinalised,
       
   683     
       
   684     /**
       
   685     Query the volume to ascertain whether File system extensions
       
   686     are supported on this volume.
       
   687     A boolean value is returned within the buffer defined as TPckgBuf<TBool>. 
       
   688     ETrue value means that extensions are supported.
       
   689     EFalse means they are not supported.
       
   690      */
       
   691     EFSysExtensionsSupported,
   683 	};
   692 	};
   684 
   693 
   685 /**
   694 /**
   686 @publishedAll
   695 @publishedAll
   687 @released
   696 @released
   697 */
   706 */
   698 class TVolumeIOParamInfo
   707 class TVolumeIOParamInfo
   699 	{
   708 	{
   700 public:
   709 public:
   701 	/**
   710 	/**
   702 	The size of a block in bytes.
   711 	The size of a media block in bytes. This is a physical property of a media and returned by the corresponding media driver.
   703 	
   712 	This value is usually at least 512 bytes and always a power of 2. For some media types the meaning of this value is 
   704 	Reads and writes that are aligned on block boundaries are up to twice as fast as when 
   713     "the min. size of the aligned data buffer which write onto the media doesn't lead to read-modify-write operation."
   705 	mis-aligned.	
   714     Therefore, reads and writes that are aligned on block boundaries and with lenght of a multiple block size can be much faster.	
   706 	
   715 	Read and write operations on certain underlying media is done in blocks. A write operation that modifies only part of a block is less efficient, 
   707 	Read and write operations on certain underlying media is done in blocks.
   716     in general, than one that modifies an entire block. Data throughput degrades linearly for reads and writes in smaller sized units. 
   708 	A write operation that modifies only part of a block is less efficient, in general, than
       
   709 	one that modifies an entire block. Data throughput degrades linearly for reads and writes in smaller
       
   710 	sized units. 
       
   711 	*/
   717 	*/
   712 	TInt iBlockSize;
   718 	TInt iBlockSize;
   713 	/**
   719 	
   714 	The size in bytes of a single disk cluster.
   720 	/**
   715 	
   721 	The size in bytes of a single file system cluster. This is a logical property of the file system. 
   716 	Read and write operations that are aligned on cluster boundaries are more efficient.
   722 	The file system organises and allocates the data on the disk in clusters where each cluster usually consists of one or more blocks. 
   717 	
   723     Cluster is a minimal unit that the file system allocates on the volume. Thus, a file of 1 byte length occupies 1 cluster.
   718 	The file system organises and allocates the file data on the disk in clusters where each cluster is
   724 
   719 	one or more blocks. Files that are not zero length occupy at least one cluster of the disk, 
   725 	Read and write operations that are aligned on cluster boundaries are more efficient from the file system point of view.
   720 	so large numbers of very small files use up more disk space than expected. 
   726     In some circumstances cluster size can be less than a block size, but it is very inefficient.
       
   727 
       
   728     This value is reported by a file system. The value less than 0 indicates a error.
   721 	*/
   729 	*/
   722 	TInt iClusterSize;
   730 	TInt iClusterSize;
       
   731 
       
   732 
   723 	/**
   733 	/**
   724 	The recommended buffer size for optimised reading performance. 
   734 	The recommended buffer size for optimised reading performance. 
   725 	
   735 	
   726 	The given buffer size is based on sensible benchmark testing results produced by the mobile device vendor.
   736 	The given buffer size is based on sensible benchmark testing results produced by the mobile device vendor.
   727 	The buffer size is then added to the estart.txt file
   737 	The buffer size is then added to the estart.txt file
   752 	TInt iRecWriteBufSize;
   762 	TInt iRecWriteBufSize;
   753 
   763 
   754 
   764 
   755     /** 
   765     /** 
   756     The maximum file size that is supported by the file system mounted on this volume. 
   766     The maximum file size that is supported by the file system mounted on this volume. 
   757     Not all file system may provide this parameter;  The value KMaxTUint64 (0xffffffffffffffff) means that this particular file system hasn't 
   767     Not all file system may report this parameter;  The value KMaxTUint64 (0xffffffffffffffff) means that this particular file system hasn't 
   758     provided this information.
   768     provided this information.
   759     */
   769     */
   760     TUint64 iMaxSupportedFileSize;
   770     TUint64 iMaxSupportedFileSize;
   761 
   771 
   762 private:
   772 private:
  1138 	Enables operations on large files.
  1148 	Enables operations on large files.
  1139 	
  1149 	
  1140 	@internalTechnology
  1150 	@internalTechnology
  1141 	
  1151 	
  1142 	*/
  1152 	*/
  1143 	EFileBigFile        =0x00040000
  1153 	EFileBigFile        =0x00040000,
       
  1154 	
       
  1155 	/**
       
  1156 	Using this flag implies that the client is making large sequential reads and/or writes
       
  1157 	and it is interested in maximising the performance of the large reads and/or writes.
       
  1158 	
       
  1159 	The flag gives a hint to the file server and filesystem to adjust to a streaming
       
  1160 	data pattern and try their best to make it optimal.
       
  1161 	
       
  1162 	Some conditions apply:
       
  1163 	- This does not guarantee that the performance of read/write operations will increase.
       
  1164 	- Using this flag for other purposes other than data streaming may lead to performance degradation.
       
  1165 	- This may sacrifice user data integrity for the sake of performance.
       
  1166 	
       
  1167 	If a file is opened by Client A with EFileSequential, and the file is then opened
       
  1168 	without EFileSequential by Client B, then this file mode will be disabled.
       
  1169 	When the file handle is closed by Client B, then the EFileSequential file mode
       
  1170 	will be enabled again.
       
  1171 	Therefore, this mode will only be enabled if all clients set the file as such,
       
  1172 	otherwise the file mode will be disabled.
       
  1173 	
       
  1174 	FAT file system specific information:
       
  1175 	This flag improves write and file expansion performance whilst decreasing robustness
       
  1176 	on a "Rugged-FAT" file system, which is applicable to internal non-removable drives.
       
  1177 	*/
       
  1178 	EFileSequential		=0x00080000
  1144 
  1179 
  1145 	};
  1180 	};
  1146 
  1181 
  1147 
  1182 
  1148 
  1183