FSPseudoServersExtra.mesa
Copyright © 1984 by Xerox Corporation. All rights reserved.
Russ Atkinson, January 2, 1985 2:41:36 pm PST
DIRECTORY
FSPseudoServers USING [PseudoServerList],
IO USING [STREAM],
Rope USING [ROPE];
FSPseudoServersExtra: CEDAR DEFINITIONS = BEGIN
ROPE: TYPE = Rope.ROPE;
STREAM: TYPE = IO.STREAM;
PseudoServerList: TYPE = FSPseudoServers.PseudoServerList;
PseudoServerRep: TYPE = RECORD [
server: ROPE,
avoidCheck: BOOL,
write: ROPE,
read: LIST OF ROPE];
Note: all server names must be given without brackets both as arguments and as elements of a PseudoServerList.
GetPseudoServers: PROC RETURNS [PseudoServerList];
SetPseudoServers: PROC [list: PseudoServerList];
TranslateForWrite: PROC [server: ROPE] RETURNS [ROPE];
... translates the server name into the server name specified for writing. If no such translation is present, returns the original server name.
TranslateForRead: PROC [server: ROPE] RETURNS [LIST OF ROPE];
... translates the server name into the server names specified for reading. If no such translation is present, returns a list containing the original server name.
AvoidRemoteCheck: PROC [server: ROPE] RETURNS [BOOL];
... determines if the server name implies not checking for remote versions. This is useful to reduce server traffic in cases where the files are known to be frozen.
Lookup: PROC [server: ROPE] RETURNS [PseudoServerList];
... returns the PseudoServerList for the given name (NIL if no such translation).
DeletePseudoServer: PROC [server: ROPE] RETURNS [PseudoServerList];
... deletes the given pseudo server (if any) from the root PseudoServerList, and returns the deleted element from the list (NIL if no such element).
InsertPseudoServer: PROC [new: PseudoServerList];
... inserts the first item in the PseudoServerList into the root PseudoServerList.
PseudoServerFromRope: PROC [rope: ROPE] RETURNS [error: ROPE, new: PseudoServerList];
... parses the given line into a new single element PseudoServerList. If error = NIL, then new # NIL, and is the new pseudo server entry. If error # NIL, then new = NIL.
RopeFromPseudoServer: PROC [list: PseudoServerList] RETURNS [ROPE];
... turns the first entry in the PseudoServerList into a rope parsable by PseudoServerFromRope. If list = NIL, NIL is returned.
END.