This topic describes the file server session concept.
All files are handled by the file server, using either its local file system, or an installed file system. The server manages i/o activity, and contention, sharing and locking.
Client programs access the file server through a client API defined in f32file.h
.
This API includes all classes and functions needed for file system, device,
directory and file access, and associated utilities.
All access from client to server is through a file server session, an instance
of the RFs
class. After a client has connected an RFs
to
the file server, it can perform any file-related operation. An RFs
is
associated with a single current path: when a connection to the file server
is made the session path is automatically set to the private directory of
the connecting process.
After operations have been completed, file server-related clean-up should
be carried out using Close()
defined in the RHandleBase
class.
Note that for the majority of functions, when a file or directory name is
passed as an argument to the function, if no drive letter or directory is
specified, the missing path component will be taken from the session
path.
Component-based design
Only a single path is supported, and the path includes the drive. Each
component must have its own RFs
for its file access purposes.
This gives each component all the flexibility it needs to maintain its own
current path and other settings related to an RFs
. There
is no limit on the number of RFs
handles available to a single
thread.
This is unlike DOS, which effectively maintains 26 current paths, one for each drive. DOS also maintains a current drive, and the effective current path is therefore the current path on the current drive.