<<>> <> <> <> <> <> <> <> <> DIRECTORY AdobeOps USING [ARSystemHandle], <> <> <> Rope USING [ROPE]; ARAccess: CEDAR DEFINITIONS = BEGIN <> <> <> ARHandle: TYPE = REF ARObject ¬ NIL; ARObject: TYPE; <> <> <> <> Destroy: PROCEDURE [session: Session]; <> Logoff: PROCEDURE [session: Session]; Session: TYPE = AdobeOps.ARSystemHandle; ARStorage: TYPE = REF DataTable; DataTable: TYPE = RECORD [ index: CARDINAL, fieldValueSeq: SEQUENCE length: CARDINAL OF DataPair]; DataPair: TYPE = RECORD[ fieldName: Rope.ROPE ¬ NIL, value: Rope.ROPE ¬ NIL]; <> GetAR: PROCEDURE [session: Session, arNumber: CARDINAL] RETURNS [arH: ARHandle]; ExamineAR: PROCEDURE [ session: Session, arH: ARHandle] RETURNS [to: ARStorage--Stream.Handle--]; FreeAR: PROCEDURE [session: Session, arH: ARHandle] RETURNS [nil: ARHandle]; <> CheckOutAR: PROCEDURE [ session: Session, arH: ARHandle, to: ARStorage--Stream.Handle--]; CheckInAR: PROCEDURE [ session: Session, arH: ARHandle, from: ARStorage--Stream.Handle--]; AbortCheckOut: PROCEDURE [session: Session, arH: ARHandle]; SubmitAR: PROCEDURE [ -- stores a modified AR -- session: Session, arNumber: LONG CARDINAL, from: ARStorage--Stream.Handle--]; AppendChar: PROCEDURE [r: Rope.ROPE, c: CHAR] RETURNS [Rope.ROPE]; <> ErrorCode: TYPE = MACHINE DEPENDENT { <> invalidARHandle(0), invalidARNumber, invalidSession, youMustFirstCheckIn, <> invalidLogin(4), authError, accessDenied, accessUndetermined, arNotFound, directoryNotFound, hostNotFound, serverNotResponding, communicationError, crashDuringCheckOut, notCheckedOut, currentlyCheckedOut, fileServerFull, directoryFull, <> unknown(31)}; Error: ERROR [session: Session, why: ErrorCode]; END.