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.STREAMNIL,
userState: ARRAY UserProperties OF REF TEXTALL[NIL],
gotMark: BOOLEANFALSE,
mark: Mark ← NULL,
remoteString: REF TEXTNIL,
host: Rope.ROPENIL,
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.