DIRECTORY CrRPC, TimeP15V2, FilingAttributesP10V5, CHNameP2V0, AuthenticationP14V2, BulkDataP0V1, FilingP10V5; FilingP10V5ServerImpl: CEDAR PROGRAM IMPORTS CrRPC, FilingP10V5 ~ { OPEN FilingP10V5; ReplaceBytesCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { file: Handle; range: ByteRange; source: CrRPC.BulkDataSource; session: Session; { FOR i94: CARDINAL IN [0..2) DO file[i94] _ CrRPC.GetCard16[s]; ENDLOOP; }; { range.firstByte _ CrRPC.GetCard32[s]; range.count _ CrRPC.GetCard32[s]; }; TRUSTED { source _ CrRPC.GetBulkDataSource[h, s]; }; { FOR i95: CARDINAL IN [0..2) DO session.token[i95] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ ReplaceBytes[h, file, range, source, session]; beginReturn[h]; }; LogoffCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { session: Session; { FOR i97: CARDINAL IN [0..2) DO session.token[i97] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ Logoff[h, session]; beginReturn[h]; }; UnifyAccessListsCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { directory: Handle; session: Session; { FOR i98: CARDINAL IN [0..2) DO directory[i98] _ CrRPC.GetCard16[s]; ENDLOOP; }; { FOR i99: CARDINAL IN [0..2) DO session.token[i99] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ UnifyAccessLists[h, directory, session]; beginReturn[h]; }; ChangeAttributesCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { file: Handle; attributes: FilingAttributesP10V5.AttributeSequence; session: Session; { FOR i100: CARDINAL IN [0..2) DO file[i100] _ CrRPC.GetCard16[s]; ENDLOOP; }; { attributes _ UProc101[h, s]; }; { FOR i102: CARDINAL IN [0..2) DO session.token[i102] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ ChangeAttributes[h, file, attributes, session]; beginReturn[h]; }; CopyCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { file: Handle; destinationDirectory: Handle; attributes: FilingAttributesP10V5.AttributeSequence; controls: ControlSequence; session: Session; newFile: Handle; { FOR i103: CARDINAL IN [0..2) DO file[i103] _ CrRPC.GetCard16[s]; ENDLOOP; }; { FOR i104: CARDINAL IN [0..2) DO destinationDirectory[i104] _ CrRPC.GetCard16[s]; ENDLOOP; }; { attributes _ UProc101[h, s]; }; { controls _ UProc105[h, s]; }; { FOR i106: CARDINAL IN [0..2) DO session.token[i106] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [newFile] _ Copy[h, file, destinationDirectory, attributes, controls, session]; beginReturn[h]; { FOR i107: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, newFile[i107]]; ENDLOOP; }; }; ChangeControlsCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { file: Handle; controls: ControlSequence; session: Session; { FOR i108: CARDINAL IN [0..2) DO file[i108] _ CrRPC.GetCard16[s]; ENDLOOP; }; { controls _ UProc105[h, s]; }; { FOR i109: CARDINAL IN [0..2) DO session.token[i109] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ ChangeControls[h, file, controls, session]; beginReturn[h]; }; GetControlsCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { file: Handle; types: ControlTypeSequence; session: Session; controls: ControlSequence; { FOR i110: CARDINAL IN [0..2) DO file[i110] _ CrRPC.GetCard16[s]; ENDLOOP; }; { types _ UProc111[h, s]; }; { FOR i112: CARDINAL IN [0..2) DO session.token[i112] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [controls] _ GetControls[h, file, types, session]; beginReturn[h]; { MProc113[h, s, controls]; }; }; ReplaceCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { file: Handle; attributes: FilingAttributesP10V5.AttributeSequence; content: CrRPC.BulkDataSource; session: Session; { FOR i114: CARDINAL IN [0..2) DO file[i114] _ CrRPC.GetCard16[s]; ENDLOOP; }; { attributes _ UProc101[h, s]; }; TRUSTED { content _ CrRPC.GetBulkDataSource[h, s]; }; { FOR i115: CARDINAL IN [0..2) DO session.token[i115] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ Replace[h, file, attributes, content, session]; beginReturn[h]; }; MoveCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { file: Handle; destinationDirectory: Handle; attributes: FilingAttributesP10V5.AttributeSequence; session: Session; { FOR i116: CARDINAL IN [0..2) DO file[i116] _ CrRPC.GetCard16[s]; ENDLOOP; }; { FOR i117: CARDINAL IN [0..2) DO destinationDirectory[i117] _ CrRPC.GetCard16[s]; ENDLOOP; }; { attributes _ UProc101[h, s]; }; { FOR i118: CARDINAL IN [0..2) DO session.token[i118] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ Move[h, file, destinationDirectory, attributes, session]; beginReturn[h]; }; ContinueCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { session: Session; continuance: CARD16; { FOR i119: CARDINAL IN [0..2) DO session.token[i119] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [continuance] _ Continue[h, session]; beginReturn[h]; { CrRPC.PutCard16[s, continuance]; }; }; GetAttributesCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { file: Handle; types: AttributeTypeSequence; session: Session; attributes: FilingAttributesP10V5.AttributeSequence; { FOR i120: CARDINAL IN [0..2) DO file[i120] _ CrRPC.GetCard16[s]; ENDLOOP; }; { types _ UProc121[h, s]; }; { FOR i122: CARDINAL IN [0..2) DO session.token[i122] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [attributes] _ GetAttributes[h, file, types, session]; beginReturn[h]; { MProc123[h, s, attributes]; }; }; ListCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { directory: Handle; types: AttributeTypeSequence; scope: ScopeSequence; listing: CrRPC.BulkDataSink; session: Session; { FOR i124: CARDINAL IN [0..2) DO directory[i124] _ CrRPC.GetCard16[s]; ENDLOOP; }; { types _ UProc121[h, s]; }; { scope _ UProc125[h, s]; }; TRUSTED { listing _ CrRPC.GetBulkDataSink[h, s]; }; { FOR i126: CARDINAL IN [0..2) DO session.token[i126] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ List[h, directory, types, scope, listing, session]; beginReturn[h]; }; DeserializeCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { directory: Handle; attributes: FilingAttributesP10V5.AttributeSequence; controls: ControlSequence; serializedFile: CrRPC.BulkDataSource; session: Session; file: Handle; { FOR i127: CARDINAL IN [0..2) DO directory[i127] _ CrRPC.GetCard16[s]; ENDLOOP; }; { attributes _ UProc101[h, s]; }; { controls _ UProc105[h, s]; }; TRUSTED { serializedFile _ CrRPC.GetBulkDataSource[h, s]; }; { FOR i128: CARDINAL IN [0..2) DO session.token[i128] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [file] _ Deserialize[h, directory, attributes, controls, serializedFile, session]; beginReturn[h]; { FOR i129: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i129]]; ENDLOOP; }; }; StoreCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { directory: Handle; attributes: FilingAttributesP10V5.AttributeSequence; controls: ControlSequence; content: CrRPC.BulkDataSource; session: Session; file: Handle; { FOR i130: CARDINAL IN [0..2) DO directory[i130] _ CrRPC.GetCard16[s]; ENDLOOP; }; { attributes _ UProc101[h, s]; }; { controls _ UProc105[h, s]; }; TRUSTED { content _ CrRPC.GetBulkDataSource[h, s]; }; { FOR i131: CARDINAL IN [0..2) DO session.token[i131] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [file] _ Store[h, directory, attributes, controls, content, session]; beginReturn[h]; { FOR i132: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i132]]; ENDLOOP; }; }; RetrieveCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { file: Handle; content: CrRPC.BulkDataSink; session: Session; { FOR i133: CARDINAL IN [0..2) DO file[i133] _ CrRPC.GetCard16[s]; ENDLOOP; }; TRUSTED { content _ CrRPC.GetBulkDataSink[h, s]; }; { FOR i134: CARDINAL IN [0..2) DO session.token[i134] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ Retrieve[h, file, content, session]; beginReturn[h]; }; RetrieveBytesCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { file: Handle; range: ByteRange; sink: CrRPC.BulkDataSink; session: Session; { FOR i135: CARDINAL IN [0..2) DO file[i135] _ CrRPC.GetCard16[s]; ENDLOOP; }; { range.firstByte _ CrRPC.GetCard32[s]; range.count _ CrRPC.GetCard32[s]; }; TRUSTED { sink _ CrRPC.GetBulkDataSink[h, s]; }; { FOR i136: CARDINAL IN [0..2) DO session.token[i136] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ RetrieveBytes[h, file, range, sink, session]; beginReturn[h]; }; LogonCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { service: CHNameP2V0.ThreePartName; credentials: AuthenticationP14V2.Credentials; verifier: AuthenticationP14V2.SeqWords; session: Session; { service.organization _ CrRPC.GetRope[s]; service.domain _ CrRPC.GetRope[s]; service.object _ CrRPC.GetRope[s]; }; { credentials.type _ VAL[CrRPC.GetCard16[s]]; credentials.value _ UProc96[h, s]; }; { verifier _ UProc96[h, s]; }; [session] _ Logon[h, service, credentials, verifier]; beginReturn[h]; { FOR i137: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i137]]; ENDLOOP; MProc138[h, s, session.verifier]; }; }; DeleteCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { file: Handle; session: Session; { FOR i139: CARDINAL IN [0..2) DO file[i139] _ CrRPC.GetCard16[s]; ENDLOOP; }; { FOR i140: CARDINAL IN [0..2) DO session.token[i140] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ Delete[h, file, session]; beginReturn[h]; }; SerializeCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { file: Handle; serializedFile: CrRPC.BulkDataSink; session: Session; { FOR i141: CARDINAL IN [0..2) DO file[i141] _ CrRPC.GetCard16[s]; ENDLOOP; }; TRUSTED { serializedFile _ CrRPC.GetBulkDataSink[h, s]; }; { FOR i142: CARDINAL IN [0..2) DO session.token[i142] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ Serialize[h, file, serializedFile, session]; beginReturn[h]; }; FindCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { directory: Handle; scope: ScopeSequence; controls: ControlSequence; session: Session; file: Handle; { FOR i143: CARDINAL IN [0..2) DO directory[i143] _ CrRPC.GetCard16[s]; ENDLOOP; }; { scope _ UProc125[h, s]; }; { controls _ UProc105[h, s]; }; { FOR i144: CARDINAL IN [0..2) DO session.token[i144] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [file] _ Find[h, directory, scope, controls, session]; beginReturn[h]; { FOR i145: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i145]]; ENDLOOP; }; }; CreateCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { directory: Handle; attributes: FilingAttributesP10V5.AttributeSequence; controls: ControlSequence; session: Session; file: Handle; { FOR i146: CARDINAL IN [0..2) DO directory[i146] _ CrRPC.GetCard16[s]; ENDLOOP; }; { attributes _ UProc101[h, s]; }; { controls _ UProc105[h, s]; }; { FOR i147: CARDINAL IN [0..2) DO session.token[i147] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [file] _ Create[h, directory, attributes, controls, session]; beginReturn[h]; { FOR i148: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i148]]; ENDLOOP; }; }; CloseCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { file: Handle; session: Session; { FOR i149: CARDINAL IN [0..2) DO file[i149] _ CrRPC.GetCard16[s]; ENDLOOP; }; { FOR i150: CARDINAL IN [0..2) DO session.token[i150] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ Close[h, file, session]; beginReturn[h]; }; OpenCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { attributes: FilingAttributesP10V5.AttributeSequence; directory: Handle; controls: ControlSequence; session: Session; file: Handle; { attributes _ UProc101[h, s]; }; { FOR i151: CARDINAL IN [0..2) DO directory[i151] _ CrRPC.GetCard16[s]; ENDLOOP; }; { controls _ UProc105[h, s]; }; { FOR i152: CARDINAL IN [0..2) DO session.token[i152] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [file] _ Open[h, attributes, directory, controls, session]; beginReturn[h]; { FOR i153: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i153]]; ENDLOOP; }; }; SetServiceCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ { service: CHNameP2V0.ThreePartName; session: Session; { service.organization _ CrRPC.GetRope[s]; service.domain _ CrRPC.GetRope[s]; service.object _ CrRPC.GetRope[s]; }; { FOR i154: CARDINAL IN [0..2) DO session.token[i154] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc96[h, s]; }; [] _ SetService[h, service, session]; beginReturn[h]; }; Server: CrRPC.ServerProc ~ { ENABLE { FilingP10V5.HandleError => { -- (9 ) beginError[h, 9 ]; CrRPC.PutCard16[s, ORD[problem]]; GOTO Finished; }; FilingP10V5.ControlTypeError => { -- (2 ) beginError[h, 2 ]; CrRPC.PutCard16[s, ORD[problem]]; CrRPC.PutCard16[s, ORD[type]]; GOTO Finished; }; FilingP10V5.TransferError => { -- (14 ) beginError[h, 14 ]; CrRPC.PutCard16[s, ORD[problem]]; GOTO Finished; }; FilingP10V5.SpaceError => { -- (13 ) beginError[h, 13 ]; CrRPC.PutCard16[s, ORD[problem]]; GOTO Finished; }; FilingP10V5.ServiceError => { -- (11 ) beginError[h, 11 ]; CrRPC.PutCard16[s, ORD[problem]]; GOTO Finished; }; FilingP10V5.RangeError => { -- (16 ) beginError[h, 16 ]; CrRPC.PutCard16[s, ORD[problem]]; GOTO Finished; }; FilingP10V5.SessionError => { -- (12 ) beginError[h, 12 ]; CrRPC.PutCard16[s, ORD[problem]]; GOTO Finished; }; FilingP10V5.UndefinedError => { -- (15 ) beginError[h, 15 ]; CrRPC.PutCard16[s, problem]; GOTO Finished; }; FilingP10V5.ConnectionError => { -- (8 ) beginError[h, 8 ]; CrRPC.PutCard16[s, ORD[problem]]; GOTO Finished; }; FilingP10V5.AuthenticationError => { -- (7 ) beginError[h, 7 ]; CrRPC.PutCard16[s, ORD[problem]]; GOTO Finished; }; FilingP10V5.ScopeValueError => { -- (5 ) beginError[h, 5 ]; CrRPC.PutCard16[s, ORD[problem]]; CrRPC.PutCard16[s, ORD[type]]; GOTO Finished; }; FilingP10V5.AttributeValueError => { -- (1 ) beginError[h, 1 ]; CrRPC.PutCard16[s, ORD[problem]]; CrRPC.PutCard32[s, type]; GOTO Finished; }; FilingP10V5.InsertionError => { -- (10 ) beginError[h, 10 ]; CrRPC.PutCard16[s, ORD[problem]]; GOTO Finished; }; FilingP10V5.ControlValueError => { -- (3 ) beginError[h, 3 ]; CrRPC.PutCard16[s, ORD[problem]]; CrRPC.PutCard16[s, ORD[type]]; GOTO Finished; }; FilingP10V5.AccessError => { -- (6 ) beginError[h, 6 ]; CrRPC.PutCard16[s, ORD[problem]]; GOTO Finished; }; FilingP10V5.AttributeTypeError => { -- (0 ) beginError[h, 0 ]; CrRPC.PutCard16[s, ORD[problem]]; CrRPC.PutCard32[s, type]; GOTO Finished; }; FilingP10V5.ScopeTypeError => { -- (4 ) beginError[h, 4 ]; CrRPC.PutCard16[s, ORD[problem]]; CrRPC.PutCard16[s, ORD[type]]; GOTO Finished; }; }; IF (pgmVersion # 5) THEN { beginReject[h, CrRPC.noSuchVersion]; CrRPC.PutCard16[s, 5]; --low CrRPC.PutCard16[s, 5]; --high RETURN }; SELECT proc FROM 23 => ReplaceBytesCaller[h, s, beginReturn]; 1 => LogoffCaller[h, s, beginReturn]; 20 => UnifyAccessListsCaller[h, s, beginReturn]; 9 => ChangeAttributesCaller[h, s, beginReturn]; 10 => CopyCaller[h, s, beginReturn]; 7 => ChangeControlsCaller[h, s, beginReturn]; 6 => GetControlsCaller[h, s, beginReturn]; 14 => ReplaceCaller[h, s, beginReturn]; 11 => MoveCaller[h, s, beginReturn]; 19 => ContinueCaller[h, s, beginReturn]; 8 => GetAttributesCaller[h, s, beginReturn]; 18 => ListCaller[h, s, beginReturn]; 16 => DeserializeCaller[h, s, beginReturn]; 12 => StoreCaller[h, s, beginReturn]; 13 => RetrieveCaller[h, s, beginReturn]; 22 => RetrieveBytesCaller[h, s, beginReturn]; 0 => LogonCaller[h, s, beginReturn]; 5 => DeleteCaller[h, s, beginReturn]; 15 => SerializeCaller[h, s, beginReturn]; 17 => FindCaller[h, s, beginReturn]; 4 => CreateCaller[h, s, beginReturn]; 3 => CloseCaller[h, s, beginReturn]; 2 => OpenCaller[h, s, beginReturn]; 21 => SetServiceCaller[h, s, beginReturn]; ENDCASE => { beginReject[h, CrRPC.noSuchProcedure]; }; EXITS Finished => { NULL }; }; UProc105: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: ControlSequence] ~ { { length156: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[ControlSequenceObject[length156]]; FOR i155: CARDINAL IN [0..length156) DO res.body[i155] _ UProc157[h, s]; ENDLOOP; }; }; UProc121: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AttributeTypeSequence] ~ { { length159: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[AttributeTypeSequenceObject[length159]]; FOR i158: CARDINAL IN [0..length159) DO res.body[i158] _ CrRPC.GetCard32[s]; ENDLOOP; }; }; MProc123: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: FilingAttributesP10V5.AttributeSequence] ~ { CrRPC.PutCard16[s, val.length]; FOR i160: CARDINAL IN [0..val.length) DO CrRPC.PutCard32[s, val.body[i160].type]; MProc161[h, s, val.body[i160].value]; ENDLOOP; }; UProc125: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: ScopeSequence] ~ { { length163: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[ScopeSequenceObject[length163]]; FOR i162: CARDINAL IN [0..length163) DO res.body[i162] _ UProc164[h, s]; ENDLOOP; }; }; MProc113: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: ControlSequence] ~ { CrRPC.PutCard16[s, val.length]; FOR i165: CARDINAL IN [0..val.length) DO MProc166[h, s, val.body[i165]]; ENDLOOP; }; UProc164: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: Scope] ~ { { tag167: ScopeType ~ VAL[CrRPC.GetCard16[s]]; SELECT tag167 FROM count => { temp168: CARD16; temp168 _ CrRPC.GetCard16[s]; res _ NEW[ScopeObject.count _ [count[temp168]]] }; depth => { temp168: CARD16; temp168 _ CrRPC.GetCard16[s]; res _ NEW[ScopeObject.depth _ [depth[temp168]]] }; direction => { temp168: Direction; temp168 _ VAL[CrRPC.GetCard16[s]]; res _ NEW[ScopeObject.direction _ [direction[temp168]]] }; filter => { temp168: Filter; temp168 _ UProc169[h, s]; res _ NEW[ScopeObject.filter _ [filter[temp168]]] }; ENDCASE => ERROR; }; }; UProc96: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AuthenticationP14V2.SeqWords] ~ { { length171: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[AuthenticationP14V2.SeqWordsObject[length171]]; FOR i170: CARDINAL IN [0..length171) DO res.body[i170] _ CrRPC.GetCard16[s]; ENDLOOP; }; }; UProc101: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: FilingAttributesP10V5.AttributeSequence] ~ { { length173: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[FilingAttributesP10V5.AttributeSequenceObject[length173]]; FOR i172: CARDINAL IN [0..length173) DO res.body[i172].type _ CrRPC.GetCard32[s]; res.body[i172].value _ UProc174[h, s]; ENDLOOP; }; }; UProc111: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: ControlTypeSequence] ~ { { length176: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[ControlTypeSequenceObject[length176]]; FOR i175: CARDINAL IN [0..length176) DO res.body[i175] _ VAL[CrRPC.GetCard16[s]]; ENDLOOP; }; }; UProc169: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: Filter] ~ { { tag177: FilterType ~ VAL[CrRPC.GetCard16[s]]; SELECT tag177 FROM less => { temp178: RelationFilter; temp178.attribute.type _ CrRPC.GetCard32[s]; temp178.attribute.value _ UProc174[h, s]; temp178.interpretation _ VAL[CrRPC.GetCard16[s]]; res _ NEW[FilterObject.less _ [less[temp178]]] }; lessOrEqual => { temp178: RelationFilter; temp178.attribute.type _ CrRPC.GetCard32[s]; temp178.attribute.value _ UProc174[h, s]; temp178.interpretation _ VAL[CrRPC.GetCard16[s]]; res _ NEW[FilterObject.lessOrEqual _ [lessOrEqual[temp178]]] }; equal => { temp178: RelationFilter; temp178.attribute.type _ CrRPC.GetCard32[s]; temp178.attribute.value _ UProc174[h, s]; temp178.interpretation _ VAL[CrRPC.GetCard16[s]]; res _ NEW[FilterObject.equal _ [equal[temp178]]] }; notEqual => { temp178: RelationFilter; temp178.attribute.type _ CrRPC.GetCard32[s]; temp178.attribute.value _ UProc174[h, s]; temp178.interpretation _ VAL[CrRPC.GetCard16[s]]; res _ NEW[FilterObject.notEqual _ [notEqual[temp178]]] }; greaterOrEqual => { temp178: RelationFilter; temp178.attribute.type _ CrRPC.GetCard32[s]; temp178.attribute.value _ UProc174[h, s]; temp178.interpretation _ VAL[CrRPC.GetCard16[s]]; res _ NEW[FilterObject.greaterOrEqual _ [greaterOrEqual[temp178]]] }; greater => { temp178: RelationFilter; temp178.attribute.type _ CrRPC.GetCard32[s]; temp178.attribute.value _ UProc174[h, s]; temp178.interpretation _ VAL[CrRPC.GetCard16[s]]; res _ NEW[FilterObject.greater _ [greater[temp178]]] }; and => { temp178: EmptyRecord; temp178.null _ 0; res _ NEW[FilterObject.and _ [and[temp178]]] }; or => { temp178: EmptyRecord; temp178.null _ 0; res _ NEW[FilterObject.or _ [or[temp178]]] }; not => { temp178: EmptyRecord; temp178.null _ 0; res _ NEW[FilterObject.not _ [not[temp178]]] }; none => { temp178: EmptyRecord; temp178.null _ 0; res _ NEW[FilterObject.none _ [none[temp178]]] }; all => { temp178: EmptyRecord; temp178.null _ 0; res _ NEW[FilterObject.all _ [all[temp178]]] }; matches => { temp178: PatternFilter; temp178.attribute.type _ CrRPC.GetCard32[s]; temp178.attribute.value _ UProc174[h, s]; res _ NEW[FilterObject.matches _ [matches[temp178]]] }; ENDCASE => ERROR; }; }; MProc138: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AuthenticationP14V2.SeqWords] ~ { CrRPC.PutCard16[s, val.length]; FOR i179: CARDINAL IN [0..val.length) DO CrRPC.PutCard16[s, val.body[i179]]; ENDLOOP; }; MProc166: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: Control] ~ { CrRPC.PutCard16[s, ORD[val.type]]; WITH val SELECT FROM it: REF ControlObject.lock => { CrRPC.PutCard16[s, ORD[it^.lock]]; }; it: REF ControlObject.timeout => { CrRPC.PutCard16[s, it^.timeout]; }; it: REF ControlObject.access => { MProc181[h, s, it^.access]; }; ENDCASE; }; UProc157: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: Control] ~ { { tag182: ControlType ~ VAL[CrRPC.GetCard16[s]]; SELECT tag182 FROM lock => { temp183: Lock; temp183 _ VAL[CrRPC.GetCard16[s]]; res _ NEW[ControlObject.lock _ [lock[temp183]]] }; timeout => { temp183: CARD16; temp183 _ CrRPC.GetCard16[s]; res _ NEW[ControlObject.timeout _ [timeout[temp183]]] }; access => { temp183: FilingAttributesP10V5.AccessSequence; temp183 _ UProc184[h, s]; res _ NEW[ControlObject.access _ [access[temp183]]] }; ENDCASE => ERROR; }; }; MProc161: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: FilingAttributesP10V5.AttributeValue] ~ { CrRPC.PutCard16[s, val.length]; FOR i185: CARDINAL IN [0..val.length) DO CrRPC.PutCard16[s, val.body[i185]]; ENDLOOP; }; UProc174: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: FilingAttributesP10V5.AttributeValue] ~ { { length187: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[FilingAttributesP10V5.AttributeValueObject[length187]]; FOR i186: CARDINAL IN [0..length187) DO res.body[i186] _ CrRPC.GetCard16[s]; ENDLOOP; }; }; MProc181: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: FilingAttributesP10V5.AccessSequence] ~ { CrRPC.PutCard16[s, val.length]; FOR i188: CARDINAL IN [0..val.length) DO CrRPC.PutCard16[s, ORD[val.body[i188]]]; ENDLOOP; }; UProc184: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: FilingAttributesP10V5.AccessSequence] ~ { { length190: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[FilingAttributesP10V5.AccessSequenceObject[length190]]; FOR i189: CARDINAL IN [0..length190) DO res.body[i189] _ VAL[CrRPC.GetCard16[s]]; ENDLOOP; }; }; CrRPC.RegisterServerProc[pgm~10, serverProc~Server, pgmVersion~5]; CrRPC.EnsureListener[class~$SPP]; }... ŠFilingP10V5ServerImpl.Mesa Copyright (C) 1986 by Xerox Corporation. All rights reserved. Generated by Diebert.pa at June 6, 1988 7:40:04 am PDT using Sirocco [2.0] of January 31, 1987 1:52:42 am PST [h: Handle, s: STREAM, pgm: CARD32, pgmVersion: CARD16, proc: CARD16, beginReturn: BeginReturnProc, beginError: BeginErrorProc, beginReject: BeginRejectProc] Unmarshal / Marshal Procs -- Êd˜šœ™Jšœ>™>Jšœ6™6Jšœ6™6J˜—šÏk ˜ J˜J˜ J˜J˜ J˜J˜ J˜ —J˜šÏnœœ˜$Jšœ˜Jšœ ˜—J˜šžœœœ)˜cJ˜ J˜J˜J˜J˜˜šœœœ˜J˜Jšœ˜—J˜—˜J˜%J˜!J˜—šœ˜ J˜'J˜—˜šœœœ˜J˜(Jšœ˜—J˜!J˜—J˜J˜3J˜J˜J˜J˜J˜—šž œœœ)˜]J˜J˜˜šœœœ˜J˜(Jšœ˜—J˜!J˜—J˜J˜J˜J˜J˜J˜J˜—šžœœœ)˜gJ˜J˜J˜˜šœœœ˜J˜$Jšœ˜—J˜—˜šœœœ˜J˜(Jšœ˜—J˜!J˜—J˜J˜-J˜J˜J˜J˜J˜—šžœœœ)˜gJ˜ J˜4J˜J˜˜šœœœ˜J˜ Jšœ˜—J˜—˜J˜J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜4J˜J˜J˜J˜J˜—šž œœœ)˜[J˜ J˜J˜4J˜J˜J˜J˜˜šœœœ˜J˜ Jšœ˜—J˜—˜šœœœ˜J˜0Jšœ˜—J˜—˜J˜J˜—˜J˜J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜OJ˜J˜J˜˜šœœœ˜J˜"Jšœ˜—J˜—J˜J˜—šžœœœ)˜eJ˜ J˜J˜J˜˜šœœœ˜J˜ Jšœ˜—J˜—˜J˜J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜0J˜J˜J˜J˜J˜—šžœœœ)˜bJ˜ J˜J˜J˜J˜˜šœœœ˜J˜ Jšœ˜—J˜—˜J˜J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜2J˜J˜J˜˜J˜J˜—J˜J˜—šž œœœ)˜^J˜ J˜4J˜J˜J˜˜šœœœ˜J˜ Jšœ˜—J˜—˜J˜J˜—šœ˜ J˜(J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜4J˜J˜J˜J˜J˜—šž œœœ)˜[J˜ J˜J˜4J˜J˜˜šœœœ˜J˜ Jšœ˜—J˜—˜šœœœ˜J˜0Jšœ˜—J˜—˜J˜J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜>J˜J˜J˜J˜J˜—šžœœœ)˜_J˜Jšœ œ˜J˜˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜%J˜J˜J˜˜J˜ J˜—J˜J˜—šžœœœ)˜dJ˜ J˜J˜J˜4J˜˜šœœœ˜J˜ Jšœ˜—J˜—˜J˜J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜6J˜J˜J˜˜J˜J˜—J˜J˜—šž œœœ)˜[J˜J˜J˜J˜J˜J˜˜šœœœ˜J˜%Jšœ˜—J˜—˜J˜J˜—˜J˜J˜—šœ˜ J˜&J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜8J˜J˜J˜J˜J˜—šžœœœ)˜bJ˜J˜4J˜J˜%J˜J˜ J˜˜šœœœ˜J˜%Jšœ˜—J˜—˜J˜J˜—˜J˜J˜—šœ˜ J˜/J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜RJ˜J˜J˜˜šœœœ˜J˜Jšœ˜—J˜—J˜J˜—šž œœœ)˜\J˜J˜4J˜J˜J˜J˜ J˜˜šœœœ˜J˜%Jšœ˜—J˜—˜J˜J˜—˜J˜J˜—šœ˜ J˜(J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜EJ˜J˜J˜˜šœœœ˜J˜Jšœ˜—J˜—J˜J˜—šžœœœ)˜_J˜ J˜J˜J˜˜šœœœ˜J˜ Jšœ˜—J˜—šœ˜ J˜&J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜)J˜J˜J˜J˜J˜—šžœœœ)˜dJ˜ J˜J˜J˜J˜˜šœœœ˜J˜ Jšœ˜—J˜—˜J˜%J˜!J˜—šœ˜ J˜#J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜2J˜J˜J˜J˜J˜—šž œœœ)˜\J˜"J˜-J˜'J˜J˜˜J˜(J˜"J˜"J˜—˜Jšœœ˜+J˜"J˜—˜J˜J˜—J˜J˜5J˜J˜J˜˜šœœœ˜J˜(Jšœ˜—J˜!J˜—J˜J˜—šž œœœ)˜]J˜ J˜J˜˜šœœœ˜J˜ Jšœ˜—J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜J˜J˜J˜J˜J˜—šžœœœ)˜`J˜ J˜#J˜J˜˜šœœœ˜J˜ Jšœ˜—J˜—šœ˜ J˜-J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜1J˜J˜J˜J˜J˜—šž œœœ)˜[J˜J˜J˜J˜J˜ J˜˜šœœœ˜J˜%Jšœ˜—J˜—˜J˜J˜—˜J˜J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜6J˜J˜J˜˜šœœœ˜J˜Jšœ˜—J˜—J˜J˜—šž œœœ)˜]J˜J˜4J˜J˜J˜ J˜˜šœœœ˜J˜%Jšœ˜—J˜—˜J˜J˜—˜J˜J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜=J˜J˜J˜˜šœœœ˜J˜Jšœ˜—J˜—J˜J˜—šž œœœ)˜\J˜ J˜J˜˜šœœœ˜J˜ Jšœ˜—J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜J˜J˜J˜J˜J˜—šž œœœ)˜[J˜4J˜J˜J˜J˜ J˜˜J˜J˜—˜šœœœ˜J˜%Jšœ˜—J˜—˜J˜J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜;J˜J˜J˜˜šœœœ˜J˜Jšœ˜—J˜—J˜J˜—šžœœœ)˜aJ˜"J˜J˜˜J˜(J˜"J˜"J˜—˜šœœœ˜J˜)Jšœ˜—J˜!J˜—J˜J˜%J˜J˜J˜J˜J˜—šžœ˜Jšœ™J˜šœ˜šœÏc˜$J˜Jšœœ ˜!Jšœ ˜J˜—šœ"Ÿ˜)J˜Jšœœ ˜!Jšœœ˜Jšœ ˜J˜—šœŸ˜'J˜Jšœœ ˜!Jšœ ˜J˜—šœŸ˜$J˜Jšœœ ˜!Jšœ ˜J˜—šœŸ˜&J˜Jšœœ ˜!Jšœ ˜J˜—šœŸ˜$J˜Jšœœ ˜!Jšœ ˜J˜—šœŸ˜&J˜Jšœœ ˜!Jšœ ˜J˜—šœ Ÿ˜(J˜J˜Jšœ ˜J˜—šœ!Ÿ˜(J˜Jšœœ ˜!Jšœ ˜J˜—šœ%Ÿ˜,J˜Jšœœ ˜!Jšœ ˜J˜—šœ!Ÿ˜(J˜Jšœœ ˜!Jšœœ˜Jšœ ˜J˜—šœ%Ÿ˜,J˜Jšœœ ˜!J˜Jšœ ˜J˜—šœ Ÿ˜(J˜Jšœœ ˜!Jšœ ˜J˜—šœ#Ÿ˜*J˜Jšœœ ˜!Jšœœ˜Jšœ ˜J˜—šœŸ˜$J˜Jšœœ ˜!Jšœ ˜J˜—šœ$Ÿ˜+J˜Jšœœ ˜!J˜Jšœ ˜J˜—šœ Ÿ˜'J˜Jšœœ ˜!Jšœœ˜Jšœ ˜J˜—J˜—J˜šœœ˜J˜$JšœŸ˜JšœŸ˜Jš˜J˜—J˜šœ˜J˜-J˜&J˜1J˜0J˜%J˜.J˜+J˜(J˜%J˜)J˜-J˜%J˜,J˜&J˜)J˜.J˜%J˜&J˜*J˜%J˜&J˜%J˜$J˜+šœ˜ J˜&J˜——J˜š˜Jšœœ˜—J˜—˜šœ™J˜J˜šžœœœœ˜T˜Jšœ œ˜)Jšœœ#˜-šœœœ˜'J˜ Jšœ˜—J˜—J˜—J˜šžœœœœ!˜Z˜Jšœ œ˜)Jšœœ)˜3šœœœ˜'J˜$Jšœ˜—J˜—J˜—J˜šžœœœ3˜cJ˜šœœœ˜(J˜(J˜%Jšœ˜—J˜—J˜šžœœœœ˜R˜Jšœ œ˜)Jšœœ!˜+šœœœ˜'J˜ Jšœ˜—J˜—J˜—J˜šžœœœ˜KJ˜šœœœ˜(J˜Jšœ˜—J˜—J˜šžœœœœ˜J˜Jšœœ˜,šœ˜˜ Jšœ œ˜J˜Jšœœ)˜2—˜ Jšœ œ˜J˜Jšœœ)˜2—˜J˜Jšœ œ˜"Jšœœ1˜:—˜ J˜J˜Jšœœ+˜4—Jšœœ˜—J˜—J˜—J˜šžœœœœ(˜`˜Jšœ œ˜)Jšœœ0˜:šœœœ˜'J˜$Jšœ˜—J˜—J˜—J˜šžœœœœ3˜l˜Jšœ œ˜)Jšœœ;˜Ešœœœ˜'J˜)J˜&Jšœ˜—J˜—J˜—J˜šžœœœœ˜X˜Jšœ œ˜)Jšœœ'˜1šœœœ˜'Jšœœ˜)Jšœ˜—J˜—J˜—J˜šžœœœœ˜K˜Jšœœ˜-šœ˜˜ J˜J˜,J˜)Jšœœ˜1Jšœœ(˜1—˜J˜J˜,J˜)Jšœœ˜1Jšœœ6˜?—˜ J˜J˜,J˜)Jšœœ˜1Jšœœ*˜3—˜ J˜J˜,J˜)Jšœœ˜1Jšœœ0˜9—˜J˜J˜,J˜)Jšœœ˜1Jšœœ<˜E—˜ J˜J˜,J˜)Jšœœ˜1Jšœœ.˜7—˜J˜J˜Jšœœ&˜/—˜J˜J˜Jšœœ$˜-—˜J˜J˜Jšœœ&˜/—˜ J˜J˜Jšœœ(˜1—˜J˜J˜Jšœœ&˜/—˜ J˜J˜,J˜)Jšœœ.˜7—Jšœœ˜—J˜—J˜—J˜šžœœœ(˜XJ˜šœœœ˜(J˜#Jšœ˜—J˜—J˜šžœœœ˜CJšœœ ˜"šœœ˜šœœ˜Jšœœ ˜"J˜—šœœ˜"J˜ J˜—šœœ˜!J˜J˜—Jšœ˜—J˜—J˜šžœœœœ˜L˜Jšœœ˜.šœ˜˜ J˜Jšœ œ˜"Jšœœ)˜2—˜ Jšœ œ˜J˜Jšœœ/˜8—˜ J˜.J˜Jšœœ-˜6—Jšœœ˜—J˜—J˜—J˜šžœœœ0˜`J˜šœœœ˜(J˜#Jšœ˜—J˜—J˜šžœœœœ0˜i˜Jšœ œ˜)Jšœœ8˜Bšœœœ˜'J˜$Jšœ˜—J˜—J˜—J˜šžœœœ0˜`J˜šœœœ˜(Jšœœ˜(Jšœ˜—J˜—J˜šžœœœœ0˜i˜Jšœ œ˜)Jšœœ8˜Bšœœœ˜'Jšœœ˜)Jšœ˜—J˜—J˜—J˜——˜J˜BJ˜!—J˜J˜—…—^z