-- CHOpsP2V3AuxImpl.Mesa -- Copyright (C) 1986 by Xerox Corporation. All rights reserved. -- Generated by Demers.pa at November 26, 1986 11:55:47 am PST -- using Sirocco [1.0] of September 25, 1986 3:44:23 am PDT DIRECTORY Convert, Rope, CHOpsP2V3, CHOpsP2V3Aux; CHOpsP2V3AuxImpl: CEDAR PROGRAM IMPORTS Convert, Rope EXPORTS CHOpsP2V3Aux ~ { OPEN CHOpsP2V3, CHOpsP2V3Aux; ROPE: TYPE ~ Rope.ROPE; ExposeObjectNameSequence: PUBLIC PROC [s: ObjectNameSequence, level: NAT] RETURNS [x: ROPE] ~ { x ← "ObjectNameSequence: ["; FOR i: CARDINAL IN [0..s.length) DO x ← Rope.Concat[x, "\n"]; FOR i: CARDINAL IN [0..2*level) DO x ← Rope.Concat[x, " "]; ENDLOOP; x ← Rope.Concat[x, "("]; x ← Rope.Concat[x, Convert.RopeFromCard[i]]; x ← Rope.Concat[x, ") "]; x ← Rope.Concat[x, FooP1V1.ExposeCARD[s[i], (level+1)]]; ENDLOOP; x ← Rope.Concat[x, "]"]; }; ExposeWhichArgument: PUBLIC PROC [e: WhichArgument, level: NAT] RETURNS [x: ROPE] ~ { SELECT e FROM first => x ← "first"; second => x ← "second"; ENDCASE => x ← "unknown WhichArgument"; }; ExposeStreamOfThreePartName: PUBLIC PROC [c: StreamOfThreePartName, level: NAT] RETURNS [x: ROPE] ~ { x ← "StreamOfThreePartName("; x ← Rope.Concat[x, ExposeStreamKind[c.type, (level+1)]]; x ← Rope.Concat[x, "): "]; WITH c SELECT FROM v: nextSegment StreamOfThreePartName => { x ← Rope.Concat[x, ExposeThreePartNameList[v.nextSegment, (level+1)]]; }; v: lastSegment StreamOfThreePartName => { x ← Rope.Concat[x, ExposeThreePartNameSequence[v.lastSegment, (level+1)]]; }; ENDCASE => { x ← Rope.Concat[x, "Unknown"]; }; }; ExposeStreamOfDomain: PUBLIC PROC [c: StreamOfDomain, level: NAT] RETURNS [x: ROPE] ~ { x ← "StreamOfDomain("; x ← Rope.Concat[x, ExposeStreamKind[c.type, (level+1)]]; x ← Rope.Concat[x, "): "]; WITH c SELECT FROM v: nextSegment StreamOfDomain => { x ← Rope.Concat[x, ExposeDomainList[v.nextSegment, (level+1)]]; }; v: lastSegment StreamOfDomain => { x ← Rope.Concat[x, ExposeDomainSequence[v.lastSegment, (level+1)]]; }; ENDCASE => { x ← Rope.Concat[x, "Unknown"]; }; }; ExposeDomainNameSequence: PUBLIC PROC [s: DomainNameSequence, level: NAT] RETURNS [x: ROPE] ~ { x ← "DomainNameSequence: ["; FOR i: CARDINAL IN [0..s.length) DO x ← Rope.Concat[x, "\n"]; FOR i: CARDINAL IN [0..2*level) DO x ← Rope.Concat[x, " "]; ENDLOOP; x ← Rope.Concat[x, "("]; x ← Rope.Concat[x, Convert.RopeFromCard[i]]; x ← Rope.Concat[x, ") "]; x ← Rope.Concat[x, FooP1V1.ExposeCARD[s[i], (level+1)]]; ENDLOOP; x ← Rope.Concat[x, "]"]; }; ExposeStreamOfOrganization: PUBLIC PROC [c: StreamOfOrganization, level: NAT] RETURNS [x: ROPE] ~ { x ← "StreamOfOrganization("; x ← Rope.Concat[x, ExposeStreamKind[c.type, (level+1)]]; x ← Rope.Concat[x, "): "]; WITH c SELECT FROM v: nextSegment StreamOfOrganization => { x ← Rope.Concat[x, ExposeOrganizationList[v.nextSegment, (level+1)]]; }; v: lastSegment StreamOfOrganization => { x ← Rope.Concat[x, ExposeOrganizationSequence[v.lastSegment, (level+1)]]; }; ENDCASE => { x ← Rope.Concat[x, "Unknown"]; }; }; ExposeStreamOfDomainName: PUBLIC PROC [c: StreamOfDomainName, level: NAT] RETURNS [x: ROPE] ~ { x ← "StreamOfDomainName("; x ← Rope.Concat[x, ExposeStreamKind[c.type, (level+1)]]; x ← Rope.Concat[x, "): "]; WITH c SELECT FROM v: nextSegment StreamOfDomainName => { x ← Rope.Concat[x, ExposeDomainNameList[v.nextSegment, (level+1)]]; }; v: lastSegment StreamOfDomainName => { x ← Rope.Concat[x, ExposeDomainNameSequence[v.lastSegment, (level+1)]]; }; ENDCASE => { x ← Rope.Concat[x, "Unknown"]; }; }; ExposeArgumentProblem: PUBLIC PROC [e: ArgumentProblem, level: NAT] RETURNS [x: ROPE] ~ { SELECT e FROM illegalProperty => x ← "illegalProperty"; illegalOrganizationName => x ← "illegalOrganizationName"; illegalDomainName => x ← "illegalDomainName"; illegalObjectName => x ← "illegalObjectName"; noSuchOrganization => x ← "noSuchOrganization"; noSuchDomain => x ← "noSuchDomain"; noSuchObject => x ← "noSuchObject"; ENDCASE => x ← "unknown ArgumentProblem"; }; ExposeDomainList: PUBLIC PROC [r: DomainList, level: NAT] RETURNS [x: ROPE] ~ { x ← "["; x ← Rope.Concat[x, ", "]; x ← Rope.Concat[x, "segment: "]; x ← Rope.Concat[x, ExposeDomainSequence[r.segment, (level+1)]]; x ← Rope.Concat[x, "]"]; }; ExposeDomainSequence: PUBLIC PROC [s: DomainSequence, level: NAT] RETURNS [x: ROPE] ~ { x ← "DomainSequence: ["; FOR i: CARDINAL IN [0..s.length) DO x ← Rope.Concat[x, "\n"]; FOR i: CARDINAL IN [0..2*level) DO x ← Rope.Concat[x, " "]; ENDLOOP; x ← Rope.Concat[x, "("]; x ← Rope.Concat[x, Convert.RopeFromCard[i]]; x ← Rope.Concat[x, ") "]; x ← Rope.Concat[x, Convert.RopeFromRope[s[i]]]; ENDLOOP; x ← Rope.Concat[x, "]"]; }; ExposeThreePartNameSequence: PUBLIC PROC [s: ThreePartNameSequence, level: NAT] RETURNS [x: ROPE] ~ { x ← "ThreePartNameSequence: ["; FOR i: CARDINAL IN [0..s.length) DO x ← Rope.Concat[x, "\n"]; FOR i: CARDINAL IN [0..2*level) DO x ← Rope.Concat[x, " "]; ENDLOOP; x ← Rope.Concat[x, "("]; x ← Rope.Concat[x, Convert.RopeFromCard[i]]; x ← Rope.Concat[x, ") "]; x ← Rope.Concat[x, FooP1V1.ExposeCARD[s[i], (level+1)]]; ENDLOOP; x ← Rope.Concat[x, "]"]; }; ExposeObjectNameList: PUBLIC PROC [r: ObjectNameList, level: NAT] RETURNS [x: ROPE] ~ { x ← "["; x ← Rope.Concat[x, ", "]; x ← Rope.Concat[x, "segment: "]; x ← Rope.Concat[x, ExposeObjectNameSequence[r.segment, (level+1)]]; x ← Rope.Concat[x, "]"]; }; ExposeStreamKind: PUBLIC PROC [e: StreamKind, level: NAT] RETURNS [x: ROPE] ~ { SELECT e FROM nextSegment => x ← "nextSegment"; lastSegment => x ← "lastSegment"; ENDCASE => x ← "unknown StreamKind"; }; ExposeNetworkNumber: PUBLIC PROC [a: NetworkNumber, level: NAT] RETURNS [x: ROPE] ~ { x ← "NetworkNumber: ["; FOR i: CARDINAL IN [0..1) DO x ← Rope.Concat[x, Convert.RopeFromCard[a[i]]]; x ← Rope.Concat[x, ", "]; ENDLOOP; x ← Rope.Concat[x, Convert.RopeFromCard[a[1]]]; x ← Rope.Concat[x, "]"]; }; ExposeHostNumber: PUBLIC PROC [a: HostNumber, level: NAT] RETURNS [x: ROPE] ~ { x ← "HostNumber: ["; FOR i: CARDINAL IN [0..2) DO x ← Rope.Concat[x, Convert.RopeFromCard[a[i]]]; x ← Rope.Concat[x, ", "]; ENDLOOP; x ← Rope.Concat[x, Convert.RopeFromCard[a[2]]]; x ← Rope.Concat[x, "]"]; }; ExposeNetworkAddress: PUBLIC PROC [r: NetworkAddress, level: NAT] RETURNS [x: ROPE] ~ { x ← "["; x ← Rope.Concat[x, "network: "]; x ← Rope.Concat[x, ExposeNetworkNumber[r.network, (level+1)]]; x ← Rope.Concat[x, "host: "]; x ← Rope.Concat[x, ExposeHostNumber[r.host, (level+1)]]; x ← Rope.Concat[x, ", "]; x ← Rope.Concat[x, "socket: "]; x ← Rope.Concat[x, Convert.RopeFromCard[r.socket]]; x ← Rope.Concat[x, "]"]; }; ExposeCallProblem: PUBLIC PROC [e: CallProblem, level: NAT] RETURNS [x: ROPE] ~ { SELECT e FROM accessRightsInsufficient => x ← "accessRightsInsufficient"; tooBusy => x ← "tooBusy"; serverDown => x ← "serverDown"; useCourier => x ← "useCourier"; other => x ← "other"; ENDCASE => x ← "unknown CallProblem"; }; ExposeAuthenticator: PUBLIC PROC [r: Authenticator, level: NAT] RETURNS [x: ROPE] ~ { x ← "["; x ← Rope.Concat[x, "credentials: "]; x ← Rope.Concat[x, FooP1V1.ExposeCARD[r.credentials, (level+1)]]; x ← Rope.Concat[x, ", "]; x ← Rope.Concat[x, "verifier: "]; x ← Rope.Concat[x, FooP1V1.ExposeCARD[r.verifier, (level+1)]]; x ← Rope.Concat[x, "]"]; }; ExposeDomainNameList: PUBLIC PROC [r: DomainNameList, level: NAT] RETURNS [x: ROPE] ~ { x ← "["; x ← Rope.Concat[x, ", "]; x ← Rope.Concat[x, "segment: "]; x ← Rope.Concat[x, ExposeDomainNameSequence[r.segment, (level+1)]]; x ← Rope.Concat[x, "]"]; }; ExposeNetworkAddressList: PUBLIC PROC [s: NetworkAddressList, level: NAT] RETURNS [x: ROPE] ~ { x ← "NetworkAddressList: ["; FOR i: CARDINAL IN [0..s.length) DO x ← Rope.Concat[x, "\n"]; FOR i: CARDINAL IN [0..2*level) DO x ← Rope.Concat[x, " "]; ENDLOOP; x ← Rope.Concat[x, "("]; x ← Rope.Concat[x, Convert.RopeFromCard[i]]; x ← Rope.Concat[x, ") "]; x ← Rope.Concat[x, ExposeNetworkAddress[s[i], (level+1)]]; ENDLOOP; x ← Rope.Concat[x, "]"]; }; ExposeStreamOfObject: PUBLIC PROC [c: StreamOfObject, level: NAT] RETURNS [x: ROPE] ~ { x ← "StreamOfObject("; x ← Rope.Concat[x, ExposeStreamKind[c.type, (level+1)]]; x ← Rope.Concat[x, "): "]; WITH c SELECT FROM v: nextSegment StreamOfObject => { x ← Rope.Concat[x, ExposeObjectList[v.nextSegment, (level+1)]]; }; v: lastSegment StreamOfObject => { x ← Rope.Concat[x, ExposeObjectSequence[v.lastSegment, (level+1)]]; }; ENDCASE => { x ← Rope.Concat[x, "Unknown"]; }; }; ExposeItem: PUBLIC PROC [s: Item, level: NAT] RETURNS [x: ROPE] ~ { x ← "Item: ["; FOR i: CARDINAL IN [0..s.length) DO x ← Rope.Concat[x, "\n"]; FOR i: CARDINAL IN [0..2*level) DO x ← Rope.Concat[x, " "]; ENDLOOP; x ← Rope.Concat[x, "("]; x ← Rope.Concat[x, Convert.RopeFromCard[i]]; x ← Rope.Concat[x, ") "]; x ← Rope.Concat[x, Convert.RopeFromCard[s[i]]]; ENDLOOP; x ← Rope.Concat[x, "]"]; }; ExposeOrganizationList: PUBLIC PROC [r: OrganizationList, level: NAT] RETURNS [x: ROPE] ~ { x ← "["; x ← Rope.Concat[x, ", "]; x ← Rope.Concat[x, "segment: "]; x ← Rope.Concat[x, ExposeOrganizationSequence[r.segment, (level+1)]]; x ← Rope.Concat[x, "]"]; }; ExposeOrganizationSequence: PUBLIC PROC [s: OrganizationSequence, level: NAT] RETURNS [x: ROPE] ~ { x ← "OrganizationSequence: ["; FOR i: CARDINAL IN [0..s.length) DO x ← Rope.Concat[x, "\n"]; FOR i: CARDINAL IN [0..2*level) DO x ← Rope.Concat[x, " "]; ENDLOOP; x ← Rope.Concat[x, "("]; x ← Rope.Concat[x, Convert.RopeFromCard[i]]; x ← Rope.Concat[x, ") "]; x ← Rope.Concat[x, Convert.RopeFromRope[s[i]]]; ENDLOOP; x ← Rope.Concat[x, "]"]; }; ExposeThreePartNameList: PUBLIC PROC [r: ThreePartNameList, level: NAT] RETURNS [x: ROPE] ~ { x ← "["; x ← Rope.Concat[x, ", "]; x ← Rope.Concat[x, "segment: "]; x ← Rope.Concat[x, ExposeThreePartNameSequence[r.segment, (level+1)]]; x ← Rope.Concat[x, "]"]; }; ExposeStreamOfObjectName: PUBLIC PROC [c: StreamOfObjectName, level: NAT] RETURNS [x: ROPE] ~ { x ← "StreamOfObjectName("; x ← Rope.Concat[x, ExposeStreamKind[c.type, (level+1)]]; x ← Rope.Concat[x, "): "]; WITH c SELECT FROM v: nextSegment StreamOfObjectName => { x ← Rope.Concat[x, ExposeObjectNameList[v.nextSegment, (level+1)]]; }; v: lastSegment StreamOfObjectName => { x ← Rope.Concat[x, ExposeObjectNameSequence[v.lastSegment, (level+1)]]; }; ENDCASE => { x ← Rope.Concat[x, "Unknown"]; }; }; ExposeObjectList: PUBLIC PROC [r: ObjectList, level: NAT] RETURNS [x: ROPE] ~ { x ← "["; x ← Rope.Concat[x, ", "]; x ← Rope.Concat[x, "segment: "]; x ← Rope.Concat[x, ExposeObjectSequence[r.segment, (level+1)]]; x ← Rope.Concat[x, "]"]; }; ExposeProperties: PUBLIC PROC [s: Properties, level: NAT] RETURNS [x: ROPE] ~ { x ← "Properties: ["; FOR i: CARDINAL IN [0..s.length) DO x ← Rope.Concat[x, "\n"]; FOR i: CARDINAL IN [0..2*level) DO x ← Rope.Concat[x, " "]; ENDLOOP; x ← Rope.Concat[x, "("]; x ← Rope.Concat[x, Convert.RopeFromCard[i]]; x ← Rope.Concat[x, ") "]; x ← Rope.Concat[x, Convert.RopeFromCard[s[i]]]; ENDLOOP; x ← Rope.Concat[x, "]"]; }; ExposePropertyProblem: PUBLIC PROC [e: PropertyProblem, level: NAT] RETURNS [x: ROPE] ~ { SELECT e FROM missing => x ← "missing"; wrongType => x ← "wrongType"; ENDCASE => x ← "unknown PropertyProblem"; }; ExposeUpdateProblem: PUBLIC PROC [e: UpdateProblem, level: NAT] RETURNS [x: ROPE] ~ { SELECT e FROM noChange => x ← "noChange"; outOfDate => x ← "outOfDate"; objectOverflow => x ← "objectOverflow"; databaseOverflow => x ← "databaseOverflow"; ENDCASE => x ← "unknown UpdateProblem"; }; ExposeObjectSequence: PUBLIC PROC [s: ObjectSequence, level: NAT] RETURNS [x: ROPE] ~ { x ← "ObjectSequence: ["; FOR i: CARDINAL IN [0..s.length) DO x ← Rope.Concat[x, "\n"]; FOR i: CARDINAL IN [0..2*level) DO x ← Rope.Concat[x, " "]; ENDLOOP; x ← Rope.Concat[x, "("]; x ← Rope.Concat[x, Convert.RopeFromCard[i]]; x ← Rope.Concat[x, ") "]; x ← Rope.Concat[x, Convert.RopeFromRope[s[i]]]; ENDLOOP; x ← Rope.Concat[x, "]"]; }; }...