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.