STPPrivate.mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
Doug Wyatt, May 16, 1986 2:57:23 pm PDT
Private type declarations for STPImpl.
DIRECTORY
IO USING [STREAM],
Rope USING [ROPE],
STP USING [Access, DesiredProperties, FileInfo, ValidProperties],
STPCode USING [Mark, Reply];
STPPrivate: CEDAR DEFINITIONS
~ BEGIN
Handle: TYPE = REF Object;
Object:
TYPE =
RECORD [
byteStream: IO.STREAM ← NIL,
userState: ARRAY UserProperties OF REF TEXT ← ALL[NIL],
gotMark: BOOLEAN ← FALSE,
mark: Mark ← NULL,
remoteString: REF TEXT ← NIL,
host: Rope.ROPE ← NIL,
plist: PList ← NIL,
desiredProps: STP.DesiredProperties ← ALL[TRUE],
info: STP.FileInfo ← NIL,
remoteStream: RemoteStream ← NIL
];
RemoteStream: TYPE = REF RemoteObject;
RemoteObject:
TYPE =
RECORD[
state: RemoteStreamState,
access: STP.Access,
stp: Handle
];
Operation: TYPE = {delete, directory, retrieve, store};
ProtocolError: TYPE = {badVersion, badMark, badPList, eocExpected, noCode};
RemoteStreamState: TYPE = {initial, confirm, data, complete, end};
PListArray: TYPE = ARRAY STP.ValidProperties OF REF TEXT;
PList: TYPE = REF PListArray;
ValidProperties: TYPE = STP.ValidProperties;
FileProperties: TYPE = STP.ValidProperties[directory..author];
UserProperties: TYPE = STP.ValidProperties[userName..directory];
Reply: TYPE = STPCode.Reply;
Mark: TYPE = STPCode.Mark;
END.