::

enum e_Anonymous__8


Summary
Main goals and usage hints
Description
The main intentention of this interface is to provide an universal portable and high performance access to file system issues on any operating system.

There are a few main goals:

1.The path specifications always has to be absolut. Any usage of relative path specifications is forbidden. Exceptions are osl_getSystemPathFromFileURL, osl_getFileURLFromSystemPath and osl_getAbsoluteFileURL. Most operating systems provide a "Current Directory" per process. This is the reason why relative path specifications can cause problems in multithreading environments.

2.Proprietary notations of file paths are not supported. Every path notation must the file URL specification. File URLs must be encoded in UTF8 and after that escaped. Although the URL parameter is a unicode string, the must contain only ASCII characters

3.The caller cannot get any information whether a file system is case sensitive, case preserving or not. The operating system implementation itself should determine if it can map case-insensitive paths. The case correct notation of a filename or file path is part of the "File Info". This case correct name can be used as a unique key if neccessary.

4. Obtaining information about files or volumes is controlled by a bitmask which specifies which fields are of interest. Due to performance issues it is not recommended to obtain information which is not needed. But if the operating system provides more information anyway the implementation can set more fields on output as were requested. It is in the responsibility of the caller to decide if he uses this additional information or not. But he should do so to prevent further unnecessary calls if the information is already there.
The input bitmask supports a flag osl_FileStatus_Mask_Validate which can be used to force retrieving uncached validated information. Setting this flag when calling osl_getFileStatus in combination with no other flag is a synonym for a "FileExists". This should only be done when processing a single file (f.e. before opening) and NEVER during enumeration of directory contents on any step of information processing. This would change the runtime behaviour from O(n) to O(n*n/2) on nearly every file system.
On Windows NT reading the contents of an directory with 7000 entries and getting full information about every file only takes 0.6 seconds. Specifying the flag osl_FileStatus_Mask_Validate for each entry will increase the time to 180 seconds (!!!).


Values

osl_File_E_None
osl_File_E_PERM
osl_File_E_NOENT
osl_File_E_SRCH
osl_File_E_INTR
osl_File_E_IO
osl_File_E_NXIO
osl_File_E_2BIG
osl_File_E_NOEXEC
osl_File_E_BADF
osl_File_E_CHILD
osl_File_E_AGAIN
osl_File_E_NOMEM
osl_File_E_ACCES
osl_File_E_FAULT
osl_File_E_BUSY
osl_File_E_EXIST
osl_File_E_XDEV
osl_File_E_NODEV
osl_File_E_NOTDIR
osl_File_E_ISDIR
osl_File_E_INVAL
osl_File_E_NFILE
osl_File_E_MFILE
osl_File_E_NOTTY
osl_File_E_FBIG
osl_File_E_NOSPC
osl_File_E_SPIPE
osl_File_E_ROFS
osl_File_E_MLINK
osl_File_E_PIPE
osl_File_E_DOM
osl_File_E_RANGE
osl_File_E_DEADLK
osl_File_E_NAMETOOLONG
osl_File_E_NOLCK
osl_File_E_NOSYS
osl_File_E_NOTEMPTY
osl_File_E_LOOP
osl_File_E_ILSEQ
osl_File_E_NOLINK
osl_File_E_MULTIHOP
osl_File_E_USERS
osl_File_E_OVERFLOW
osl_File_E_NOTREADY
osl_File_E_invalidError
osl_File_E_TIMEDOUT
osl_File_E_NETWORK
osl_File_E_FORCE_EQUAL_SIZE

Top of Page