INTERFACEAnFSServer ; IMPORT IP, Logger, Pathname, Thread; EXCEPTION Error(TEXT); TYPE T <: Public; Public = OBJECT METHODS init(config: Configuration): T RAISES {Error}; run() RAISES {Error, Thread.Alerted}; END; Configuration = OBJECT localEndpoint := IP.NullEndPoint; serverBase: Pathname.T := NIL; serverCollDirs: TEXT := NIL; serverScanDir: Pathname.T := NIL; loDataPort := IP.NullPort; hiDataPort := IP.NullPort; logger: Logger.T := NIL; maxChildren := -1; compLevel: [-1..9] := -1; detailAllRCSFiles := FALSE; END;
FSServer.T
represents the CVSup server, as a whole. It receives
connections on the given localEndpoint
, and forks off subthreads as
required to service them.
serverBase
is the pathname of the base directory for the files
that describe the collections to be served. If unspecified, a
suitable default is used.
serverCollDirs
is a colon-separated list of directories where
the collection information can be found. Non-absolute paths are
interpreted relative to serverBase
. If unspecified, a suitable
default is used.
serverScanDir
is a directory under which the scan files are to be
found. If unspecified, then no scan files are used and the server
does a full tree walk for each collection served.
loDataPort
and hiDataPort
specify the range of TCP ports that the
server will use to establish data connections in passive mode.
If logger
is NIL, no logging will be done.
maxChildren
governs the number of simultaneous connections that will
be served. Friends listed in the configuration file are exempt from
this limit. If maxChildren
is less than 0, the server will serve
one client without forking, and then exit.
compLevel
specifies the compression level to be used. A value
of 0 gives no compression, while 9 gives the maximum. The
default of -1 gives a reasonable default compression level.
END FSServer.