FilingP10V5AuxImpl.Mesa
Copyright (C) 1986 by Xerox Corporation. All rights reserved.
Generated by Diebert.pa at June 6, 1988 7:39:58 am PDT
using Sirocco [2.0] of January 31, 1987 1:52:42 am PST
DIRECTORY
Convert,
Rope,
FilingP10V5,
FilingP10V5Aux,
AuthenticationP14V2Aux,
FilingAttributesP10V5Aux;
FilingP10V5AuxImpl: CEDAR PROGRAM
IMPORTS Convert, Rope, AuthenticationP14V2Aux, FilingAttributesP10V5Aux
EXPORTS FilingP10V5Aux ~ {
OPEN FilingP10V5, FilingP10V5Aux;
ROPE: TYPE ~ Rope.ROPE;
ExposeSecondaryCredentials: PUBLIC PROC [arg: SecondaryCredentials, level: NAT] RETURNS [res: ROPE] ~ {
res ← Rope.Cat["SecondaryCredentials(", ExposeStrength[arg.type, (level+1)], "): "];
WITH arg SELECT FROM
it: REF SecondaryCredentialsObject.none => {
res ← Rope.Concat[res, ExposeEmptyRecord[it.none, (level+1)]] };
it: REF SecondaryCredentialsObject.simple => {
res ← Rope.Concat[res, ExposeSecondary[it.simple, (level+1)]] };
it: REF SecondaryCredentialsObject.strong => {
res ← Rope.Concat[res, ExposeEncryptedSecondary[it.strong, (level+1)]] };
ENDCASE => ERROR
};
ExposeEmptyRecord: PUBLIC PROC [arg: EmptyRecord, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[]";
};
ExposeTransferProblem: PUBLIC PROC [arg: TransferProblem, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
aborted => res ← "aborted";
checksumIncorrect => res ← "checksumIncorrect";
formatIncorrect => res ← "formatIncorrect";
noRendevous => res ← "noRendevous";
wrongDirection => res ← "wrongDirection";
ENDCASE => ERROR
};
ExposeByteRange: PUBLIC PROC [arg: ByteRange, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
res ← Rope.Cat[res, "firstByte~", Convert.RopeFromCard[arg.firstByte], ", "];
res ← Rope.Cat[res, "count~", Convert.RopeFromCard[arg.count], "]"];
};
ExposePatternFilter: PUBLIC PROC [arg: PatternFilter, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
res ← Rope.Cat[res, "attribute~", FilingAttributesP10V5Aux.ExposeAttribute[arg.attribute, (level+1)], "]"];
};
ExposeDirection: PUBLIC PROC [arg: Direction, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
forward => res ← "forward";
backward => res ← "backward";
ENDCASE => ERROR
};
ExposeConnectionProblem: PUBLIC PROC [arg: ConnectionProblem, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
noRoute => res ← "noRoute";
noResponse => res ← "noResponse";
transmissionHardware => res ← "transmissionHardware";
transportTimeout => res ← "transportTimeout";
tooManyLocalConnections => res ← "tooManyLocalConnections";
tooManyRemoteConnections => res ← "tooManyRemoteConnections";
missingCourier => res ← "missingCourier";
missingProgram => res ← "missingProgram";
missingProcedure => res ← "missingProcedure";
protocolMismatch => res ← "protocolMismatch";
parameterInconsistency => res ← "parameterInconsistency";
invalidMessage => res ← "invalidMessage";
returnTimedOut => res ← "returnTimedOut";
otherCallProblem => res ← "otherCallProblem";
ENDCASE => ERROR
};
ExposeFilterType: PUBLIC PROC [arg: FilterType, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
less => res ← "less";
lessOrEqual => res ← "lessOrEqual";
equal => res ← "equal";
notEqual => res ← "notEqual";
greaterOrEqual => res ← "greaterOrEqual";
greater => res ← "greater";
and => res ← "and";
or => res ← "or";
not => res ← "not";
none => res ← "none";
all => res ← "all";
matches => res ← "matches";
ENDCASE => ERROR
};
ExposeScopeSequence: PUBLIC PROC [arg: ScopeSequence, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
FOR i: CARDINAL IN [0..arg.length) DO
res ← Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, ExposeScope[arg.body[i], (level+1)]];
ENDLOOP;
res ← Rope.Concat[res, "]"];
};
ExposeControlType: PUBLIC PROC [arg: ControlType, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
lock => res ← "lock";
timeout => res ← "timeout";
access => res ← "access";
ENDCASE => ERROR
};
ExposeScope: PUBLIC PROC [arg: Scope, level: NAT] RETURNS [res: ROPE] ~ {
res ← Rope.Cat["Scope(", ExposeScopeType[arg.type, (level+1)], "): "];
WITH arg SELECT FROM
it: REF ScopeObject.count => {
res ← Rope.Concat[res, Convert.RopeFromCard[it.count]] };
it: REF ScopeObject.depth => {
res ← Rope.Concat[res, Convert.RopeFromCard[it.depth]] };
it: REF ScopeObject.direction => {
res ← Rope.Concat[res, ExposeDirection[it.direction, (level+1)]] };
it: REF ScopeObject.filter => {
res ← Rope.Concat[res, ExposeFilter[it.filter, (level+1)]] };
ENDCASE => ERROR
};
ExposeHandle: PUBLIC PROC [arg: Handle, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
FOR i: CARDINAL IN [0..2) DO
res ← Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, Convert.RopeFromCard[arg[i]]];
ENDLOOP;
res ← Rope.Concat[res, "]"];
};
ExposeSecondary: PUBLIC PROC [arg: Secondary, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
FOR i: CARDINAL IN [0..arg.length) DO
res ← Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, ExposeSecondaryItem[arg.body[i], (level+1)]];
ENDLOOP;
res ← Rope.Concat[res, "]"];
};
ExposeSessionToken: PUBLIC PROC [arg: SessionToken, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
FOR i: CARDINAL IN [0..2) DO
res ← Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, Convert.RopeFromCard[arg[i]]];
ENDLOOP;
res ← Rope.Concat[res, "]"];
};
ExposeInsertionProblem: PUBLIC PROC [arg: InsertionProblem, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
positionUnavailable => res ← "positionUnavailable";
fileNotUnique => res ← "fileNotUnique";
loopInHierarchy => res ← "loopInHierarchy";
ENDCASE => ERROR
};
ExposeFilter: PUBLIC PROC [arg: Filter, level: NAT] RETURNS [res: ROPE] ~ {
res ← Rope.Cat["Filter(", ExposeFilterType[arg.type, (level+1)], "): "];
WITH arg SELECT FROM
it: REF FilterObject.less => {
res ← Rope.Concat[res, ExposeRelationFilter[it.less, (level+1)]] };
it: REF FilterObject.lessOrEqual => {
res ← Rope.Concat[res, ExposeRelationFilter[it.lessOrEqual, (level+1)]] };
it: REF FilterObject.equal => {
res ← Rope.Concat[res, ExposeRelationFilter[it.equal, (level+1)]] };
it: REF FilterObject.notEqual => {
res ← Rope.Concat[res, ExposeRelationFilter[it.notEqual, (level+1)]] };
it: REF FilterObject.greaterOrEqual => {
res ← Rope.Concat[res, ExposeRelationFilter[it.greaterOrEqual, (level+1)]] };
it: REF FilterObject.greater => {
res ← Rope.Concat[res, ExposeRelationFilter[it.greater, (level+1)]] };
it: REF FilterObject.and => {
res ← Rope.Concat[res, ExposeEmptyRecord[it.and, (level+1)]] };
it: REF FilterObject.or => {
res ← Rope.Concat[res, ExposeEmptyRecord[it.or, (level+1)]] };
it: REF FilterObject.not => {
res ← Rope.Concat[res, ExposeEmptyRecord[it.not, (level+1)]] };
it: REF FilterObject.none => {
res ← Rope.Concat[res, ExposeEmptyRecord[it.none, (level+1)]] };
it: REF FilterObject.all => {
res ← Rope.Concat[res, ExposeEmptyRecord[it.all, (level+1)]] };
it: REF FilterObject.matches => {
res ← Rope.Concat[res, ExposePatternFilter[it.matches, (level+1)]] };
ENDCASE => ERROR
};
ExposeSecondaryItem: PUBLIC PROC [arg: SecondaryItem, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
res ← Rope.Cat[res, "type~", Convert.RopeFromCard[arg.type], ", "];
res ← Rope.Cat[res, "value~", ExposeSecondaryValueType[arg.value, (level+1)], "]"];
};
ExposeSession: PUBLIC PROC [arg: Session, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
res ← Rope.Cat[res, "token~", ExposeSessionToken[arg.token, (level+1)], ", "];
res ← Rope.Cat[res, "verifier~", AuthenticationP14V2Aux.ExposeSeqWords[arg.verifier, (level+1)], "]"];
};
ExposeAttributeTypeSequence: PUBLIC PROC [arg: AttributeTypeSequence, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
FOR i: CARDINAL IN [0..arg.length) DO
res ← Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, Convert.RopeFromCard[arg.body[i]]];
ENDLOOP;
res ← Rope.Concat[res, "]"];
};
ExposeRelationFilter: PUBLIC PROC [arg: RelationFilter, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
res ← Rope.Cat[res, "attribute~", FilingAttributesP10V5Aux.ExposeAttribute[arg.attribute, (level+1)], ", "];
res ← Rope.Cat[res, "interpretation~", FilingAttributesP10V5Aux.ExposeInterpretation[arg.interpretation, (level+1)], "]"];
};
ExposeEncryptedSecondary: PUBLIC PROC [arg: EncryptedSecondary, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
FOR i: CARDINAL IN [0..arg.length) DO
res ← Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, AuthenticationP14V2Aux.ExposeBlock[arg.body[i], (level+1)]];
ENDLOOP;
res ← Rope.Concat[res, "]"];
};
ExposeArgumentProblem: PUBLIC PROC [arg: ArgumentProblem, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
illegal => res ← "illegal";
disallowed => res ← "disallowed";
unreasonable => res ← "unreasonable";
unimplemented => res ← "unimplemented";
duplicated => res ← "duplicated";
missing => res ← "missing";
ENDCASE => ERROR
};
ExposeSecondaryValueType: PUBLIC PROC [arg: SecondaryValueType, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
FOR i: CARDINAL IN [0..arg.length) DO
res ← Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, Convert.RopeFromCard[arg.body[i]]];
ENDLOOP;
res ← Rope.Concat[res, "]"];
};
ExposeSpaceProblem: PUBLIC PROC [arg: SpaceProblem, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
allocationExceeded => res ← "allocationExceeded";
attributeAreaFull => res ← "attributeAreaFull";
mediumFull => res ← "mediumFull";
ENDCASE => ERROR
};
ExposeServiceProblem: PUBLIC PROC [arg: ServiceProblem, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
cannotAuthenticate => res ← "cannotAuthenticate";
serviceFull => res ← "serviceFull";
serviceUnavailable => res ← "serviceUnavailable";
sessionInUse => res ← "sessionInUse";
serviceUnknown => res ← "serviceUnknown";
ENDCASE => ERROR
};
ExposeAccessProblem: PUBLIC PROC [arg: AccessProblem, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
accessRightsInsufficient => res ← "accessRightsInsufficient";
accessRightsIndeterminate => res ← "accessRightsIndeterminate";
fileChanged => res ← "fileChanged";
fileDamaged => res ← "fileDamaged";
fileInUse => res ← "fileInUse";
fileNotFound => res ← "fileNotFound";
fileOpen => res ← "fileOpen";
ENDCASE => ERROR
};
ExposeScopeType: PUBLIC PROC [arg: ScopeType, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
count => res ← "count";
direction => res ← "direction";
filter => res ← "filter";
depth => res ← "depth";
ENDCASE => ERROR
};
ExposeStrength: PUBLIC PROC [arg: Strength, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
none => res ← "none";
simple => res ← "simple";
strong => res ← "strong";
ENDCASE => ERROR
};
ExposeHandleProblem: PUBLIC PROC [arg: HandleProblem, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
invalid => res ← "invalid";
nullDisallowed => res ← "nullDisallowed";
directoryRequired => res ← "directoryRequired";
ENDCASE => ERROR
};
ExposeSecondaryType: PUBLIC PROC [arg: SecondaryType, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
FOR i: CARDINAL IN [0..arg.length) DO
res ← Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, Convert.RopeFromCard[arg.body[i]]];
ENDLOOP;
res ← Rope.Concat[res, "]"];
};
ExposeControlTypeSequence: PUBLIC PROC [arg: ControlTypeSequence, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
FOR i: CARDINAL IN [0..arg.length) DO
res ← Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, ExposeControlType[arg.body[i], (level+1)]];
ENDLOOP;
res ← Rope.Concat[res, "]"];
};
ExposeSessionProblem: PUBLIC PROC [arg: SessionProblem, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
tokenInvalid => res ← "tokenInvalid";
serviceAlreadySet => res ← "serviceAlreadySet";
ENDCASE => ERROR
};
ExposeControlSequence: PUBLIC PROC [arg: ControlSequence, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
FOR i: CARDINAL IN [0..arg.length) DO
res ← Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, ExposeControl[arg.body[i], (level+1)]];
ENDLOOP;
res ← Rope.Concat[res, "]"];
};
ExposeLogicFilter: PUBLIC PROC [arg: LogicFilter, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
FOR i: CARDINAL IN [0..arg.length) DO
res ← Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, ExposeFilter[arg.body[i], (level+1)]];
ENDLOOP;
res ← Rope.Concat[res, "]"];
};
ExposeControl: PUBLIC PROC [arg: Control, level: NAT] RETURNS [res: ROPE] ~ {
res ← Rope.Cat["Control(", ExposeControlType[arg.type, (level+1)], "): "];
WITH arg SELECT FROM
it: REF ControlObject.lock => {
res ← Rope.Concat[res, ExposeLock[it.lock, (level+1)]] };
it: REF ControlObject.timeout => {
res ← Rope.Concat[res, Convert.RopeFromCard[it.timeout]] };
it: REF ControlObject.access => {
res ← Rope.Concat[res, FilingAttributesP10V5Aux.ExposeAccessSequence[it.access, (level+1)]] };
ENDCASE => ERROR
};
ExposeLock: PUBLIC PROC [arg: Lock, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
lockNone => res ← "lockNone";
share => res ← "share";
exclusive => res ← "exclusive";
ENDCASE => ERROR
};
}...