<> <> <> <> <> DIRECTORY CrRPC, TimeP15V2, FilingAttributesP10V5, CHNameP2V0, AuthenticationP14V2, BulkDataP0V1, FilingP10V5, FilingP10V5ClientHack; FilingP10V5ClientImpl: CEDAR PROGRAM IMPORTS CrRPC EXPORTS FilingP10V5, FilingP10V5ClientHack ~ { OPEN FilingP10V5; <> HandleError: PUBLIC HandleErrorType ~ CODE; ControlTypeError: PUBLIC ControlTypeErrorType ~ CODE; TransferError: PUBLIC TransferErrorType ~ CODE; SpaceError: PUBLIC SpaceErrorType ~ CODE; ServiceError: PUBLIC ServiceErrorType ~ CODE; RangeError: PUBLIC RangeErrorType ~ CODE; SessionError: PUBLIC SessionErrorType ~ CODE; UndefinedError: PUBLIC UndefinedErrorType ~ CODE; ConnectionError: PUBLIC ConnectionErrorType ~ CODE; AuthenticationError: PUBLIC AuthenticationErrorType ~ CODE; ScopeValueError: PUBLIC ScopeValueErrorType ~ CODE; AttributeValueError: PUBLIC AttributeValueErrorType ~ CODE; InsertionError: PUBLIC InsertionErrorType ~ CODE; ControlValueError: PUBLIC ControlValueErrorType ~ CODE; AccessError: PUBLIC AccessErrorType ~ CODE; AttributeTypeError: PUBLIC AttributeTypeErrorType ~ CODE; ScopeTypeError: PUBLIC ScopeTypeErrorType ~ CODE; <> GetError: PUBLIC CrRPC.GetErrorProc ~ { SELECT errNum FROM 9 => { problem: HandleProblem; problem _ VAL[CrRPC.GetCard16[s]]; ERROR HandleError[problem] }; 2 => { problem: ArgumentProblem; type: ControlType; problem _ VAL[CrRPC.GetCard16[s]]; type _ VAL[CrRPC.GetCard16[s]]; ERROR ControlTypeError[problem, type] }; 14 => { problem: TransferProblem; problem _ VAL[CrRPC.GetCard16[s]]; ERROR TransferError[problem] }; 13 => { problem: SpaceProblem; problem _ VAL[CrRPC.GetCard16[s]]; ERROR SpaceError[problem] }; 11 => { problem: ServiceProblem; problem _ VAL[CrRPC.GetCard16[s]]; ERROR ServiceError[problem] }; 16 => { problem: ArgumentProblem; problem _ VAL[CrRPC.GetCard16[s]]; ERROR RangeError[problem] }; 12 => { problem: SessionProblem; problem _ VAL[CrRPC.GetCard16[s]]; ERROR SessionError[problem] }; 15 => { problem: CARD16; problem _ CrRPC.GetCard16[s]; ERROR UndefinedError[problem] }; 8 => { problem: ConnectionProblem; problem _ VAL[CrRPC.GetCard16[s]]; ERROR ConnectionError[problem] }; 7 => { problem: AuthenticationP14V2.Problem; problem _ VAL[CrRPC.GetCard16[s]]; ERROR AuthenticationError[problem] }; 5 => { problem: ArgumentProblem; type: ScopeType; problem _ VAL[CrRPC.GetCard16[s]]; type _ VAL[CrRPC.GetCard16[s]]; ERROR ScopeValueError[problem, type] }; 1 => { problem: ArgumentProblem; type: CARD32; problem _ VAL[CrRPC.GetCard16[s]]; type _ CrRPC.GetCard32[s]; ERROR AttributeValueError[problem, type] }; 10 => { problem: InsertionProblem; problem _ VAL[CrRPC.GetCard16[s]]; ERROR InsertionError[problem] }; 3 => { problem: ArgumentProblem; type: ControlType; problem _ VAL[CrRPC.GetCard16[s]]; type _ VAL[CrRPC.GetCard16[s]]; ERROR ControlValueError[problem, type] }; 6 => { problem: AccessProblem; problem _ VAL[CrRPC.GetCard16[s]]; ERROR AccessError[problem] }; 0 => { problem: ArgumentProblem; type: CARD32; problem _ VAL[CrRPC.GetCard16[s]]; type _ CrRPC.GetCard32[s]; ERROR AttributeTypeError[problem, type] }; 4 => { problem: ArgumentProblem; type: ScopeType; problem _ VAL[CrRPC.GetCard16[s]]; type _ VAL[CrRPC.GetCard16[s]]; ERROR ScopeTypeError[problem, type] }; ENDCASE => { ERROR CrRPC.Error[h, remoteError, "Unexpected Remote Error"]; }; }; <> ReplaceBytes: PUBLIC ReplaceBytesType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i2: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i2]]; ENDLOOP; CrRPC.PutCard32[s, range.firstByte]; CrRPC.PutCard32[s, range.count]; CrRPC.PutBulkDataSource[h, s, source]; FOR i3: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i3]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~23 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Logoff: PUBLIC LogoffType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i5: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i5]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~1 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; UnifyAccessLists: PUBLIC UnifyAccessListsType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i6: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, directory[i6]]; ENDLOOP; FOR i7: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i7]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~20 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ChangeAttributes: PUBLIC ChangeAttributesType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i8: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i8]]; ENDLOOP; MProc9[h, s, attributes]; FOR i10: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i10]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~9 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Copy: PUBLIC CopyType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i11: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i11]]; ENDLOOP; FOR i12: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, destinationDirectory[i12]]; ENDLOOP; MProc9[h, s, attributes]; MProc13[h, s, controls]; FOR i14: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i14]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { FOR i15: CARDINAL IN [0..2) DO newFile[i15] _ CrRPC.GetCard16[s]; ENDLOOP; }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~10 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ChangeControls: PUBLIC ChangeControlsType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i16: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i16]]; ENDLOOP; MProc13[h, s, controls]; FOR i17: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i17]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~7 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetControls: PUBLIC GetControlsType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i18: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i18]]; ENDLOOP; MProc19[h, s, types]; FOR i20: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i20]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { controls _ UProc21[h, s]; }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~6 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Replace: PUBLIC ReplaceType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i22: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i22]]; ENDLOOP; MProc9[h, s, attributes]; CrRPC.PutBulkDataSource[h, s, content]; FOR i23: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i23]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~14 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Move: PUBLIC MoveType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i24: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i24]]; ENDLOOP; FOR i25: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, destinationDirectory[i25]]; ENDLOOP; MProc9[h, s, attributes]; FOR i26: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i26]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~11 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Continue: PUBLIC ContinueType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i27: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i27]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { continuance _ CrRPC.GetCard16[s]; }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~19 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetAttributes: PUBLIC GetAttributesType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i28: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i28]]; ENDLOOP; MProc29[h, s, types]; FOR i30: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i30]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { attributes _ UProc31[h, s]; }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~8 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; List: PUBLIC ListType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i32: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, directory[i32]]; ENDLOOP; MProc29[h, s, types]; MProc33[h, s, scope]; CrRPC.PutBulkDataSink[h, s, listing]; FOR i34: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i34]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~18 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Deserialize: PUBLIC DeserializeType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i35: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, directory[i35]]; ENDLOOP; MProc9[h, s, attributes]; MProc13[h, s, controls]; CrRPC.PutBulkDataSource[h, s, serializedFile]; FOR i36: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i36]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { FOR i37: CARDINAL IN [0..2) DO file[i37] _ CrRPC.GetCard16[s]; ENDLOOP; }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~16 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Store: PUBLIC StoreType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i38: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, directory[i38]]; ENDLOOP; MProc9[h, s, attributes]; MProc13[h, s, controls]; CrRPC.PutBulkDataSource[h, s, content]; FOR i39: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i39]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { FOR i40: CARDINAL IN [0..2) DO file[i40] _ CrRPC.GetCard16[s]; ENDLOOP; }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~12 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Retrieve: PUBLIC RetrieveType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i41: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i41]]; ENDLOOP; CrRPC.PutBulkDataSink[h, s, content]; FOR i42: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i42]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~13 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RetrieveBytes: PUBLIC RetrieveBytesType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i43: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i43]]; ENDLOOP; CrRPC.PutCard32[s, range.firstByte]; CrRPC.PutCard32[s, range.count]; CrRPC.PutBulkDataSink[h, s, sink]; FOR i44: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i44]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~22 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Logon: PUBLIC LogonType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, service.organization]; CrRPC.PutRope[s, service.domain]; CrRPC.PutRope[s, service.object]; CrRPC.PutCard16[s, ORD[credentials.type]]; MProc4[h, s, credentials.value]; MProc4[h, s, verifier]; }; GetResults: CrRPC.GetResultsProc ~ { FOR i45: CARDINAL IN [0..2) DO session.token[i45] _ CrRPC.GetCard16[s]; ENDLOOP; session.verifier _ UProc46[h, s]; }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~0 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Delete: PUBLIC DeleteType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i47: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i47]]; ENDLOOP; FOR i48: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i48]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~5 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Serialize: PUBLIC SerializeType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i49: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i49]]; ENDLOOP; CrRPC.PutBulkDataSink[h, s, serializedFile]; FOR i50: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i50]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~15 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Find: PUBLIC FindType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i51: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, directory[i51]]; ENDLOOP; MProc33[h, s, scope]; MProc13[h, s, controls]; FOR i52: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i52]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { FOR i53: CARDINAL IN [0..2) DO file[i53] _ CrRPC.GetCard16[s]; ENDLOOP; }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~17 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Create: PUBLIC CreateType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i54: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, directory[i54]]; ENDLOOP; MProc9[h, s, attributes]; MProc13[h, s, controls]; FOR i55: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i55]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { FOR i56: CARDINAL IN [0..2) DO file[i56] _ CrRPC.GetCard16[s]; ENDLOOP; }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~4 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Close: PUBLIC CloseType ~ { PutArgs: CrRPC.PutArgsProc ~ { FOR i57: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, file[i57]]; ENDLOOP; FOR i58: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i58]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~3 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Open: PUBLIC OpenType ~ { PutArgs: CrRPC.PutArgsProc ~ { MProc9[h, s, attributes]; FOR i59: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, directory[i59]]; ENDLOOP; MProc13[h, s, controls]; FOR i60: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i60]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { FOR i61: CARDINAL IN [0..2) DO file[i61] _ CrRPC.GetCard16[s]; ENDLOOP; }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~2 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; SetService: PUBLIC SetServiceType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, service.organization]; CrRPC.PutRope[s, service.domain]; CrRPC.PutRope[s, service.object]; FOR i62: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, session.token[i62]]; ENDLOOP; MProc4[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~10, remotePgmVersion~5, remoteProc~21 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; <> UProc21: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: ControlSequence] ~ { { length64: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[ControlSequenceObject[length64]]; FOR i63: CARDINAL IN [0..length64) DO res.body[i63] _ UProc65[h, s]; ENDLOOP; }; }; MProc19: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: ControlTypeSequence] ~ { CrRPC.PutCard16[s, val.length]; FOR i66: CARDINAL IN [0..val.length) DO CrRPC.PutCard16[s, ORD[val.body[i66]]]; ENDLOOP; }; MProc9: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: FilingAttributesP10V5.AttributeSequence] ~ { CrRPC.PutCard16[s, val.length]; FOR i67: CARDINAL IN [0..val.length) DO CrRPC.PutCard32[s, val.body[i67].type]; MProc68[h, s, val.body[i67].value]; ENDLOOP; }; MProc33: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: ScopeSequence] ~ { CrRPC.PutCard16[s, val.length]; FOR i69: CARDINAL IN [0..val.length) DO MProc70[h, s, val.body[i69]]; ENDLOOP; }; MProc70: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: Scope] ~ { CrRPC.PutCard16[s, ORD[val.type]]; WITH val SELECT FROM it: REF ScopeObject.count => { CrRPC.PutCard16[s, it^.count]; }; it: REF ScopeObject.depth => { CrRPC.PutCard16[s, it^.depth]; }; it: REF ScopeObject.direction => { CrRPC.PutCard16[s, ORD[it^.direction]]; }; it: REF ScopeObject.filter => { MProc72[h, s, it^.filter]; }; ENDCASE; }; MProc13: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: ControlSequence] ~ { CrRPC.PutCard16[s, val.length]; FOR i73: CARDINAL IN [0..val.length) DO MProc74[h, s, val.body[i73]]; ENDLOOP; }; MProc72: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: Filter] ~ { CrRPC.PutCard16[s, ORD[val.type]]; WITH val SELECT FROM it: REF FilterObject.less => { CrRPC.PutCard32[s, it^.less.attribute.type]; MProc68[h, s, it^.less.attribute.value]; CrRPC.PutCard16[s, ORD[it^.less.interpretation]]; }; it: REF FilterObject.lessOrEqual => { CrRPC.PutCard32[s, it^.lessOrEqual.attribute.type]; MProc68[h, s, it^.lessOrEqual.attribute.value]; CrRPC.PutCard16[s, ORD[it^.lessOrEqual.interpretation]]; }; it: REF FilterObject.equal => { CrRPC.PutCard32[s, it^.equal.attribute.type]; MProc68[h, s, it^.equal.attribute.value]; CrRPC.PutCard16[s, ORD[it^.equal.interpretation]]; }; it: REF FilterObject.notEqual => { CrRPC.PutCard32[s, it^.notEqual.attribute.type]; MProc68[h, s, it^.notEqual.attribute.value]; CrRPC.PutCard16[s, ORD[it^.notEqual.interpretation]]; }; it: REF FilterObject.greaterOrEqual => { CrRPC.PutCard32[s, it^.greaterOrEqual.attribute.type]; MProc68[h, s, it^.greaterOrEqual.attribute.value]; CrRPC.PutCard16[s, ORD[it^.greaterOrEqual.interpretation]]; }; it: REF FilterObject.greater => { CrRPC.PutCard32[s, it^.greater.attribute.type]; MProc68[h, s, it^.greater.attribute.value]; CrRPC.PutCard16[s, ORD[it^.greater.interpretation]]; }; it: REF FilterObject.and => { NULL; -- RECORD [] -- }; it: REF FilterObject.or => { NULL; -- RECORD [] -- }; it: REF FilterObject.not => { NULL; -- RECORD [] -- }; it: REF FilterObject.none => { NULL; -- RECORD [] -- }; it: REF FilterObject.all => { NULL; -- RECORD [] -- }; it: REF FilterObject.matches => { CrRPC.PutCard32[s, it^.matches.attribute.type]; MProc68[h, s, it^.matches.attribute.value]; }; ENDCASE; }; UProc46: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AuthenticationP14V2.SeqWords] ~ { { length77: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[AuthenticationP14V2.SeqWordsObject[length77]]; FOR i76: CARDINAL IN [0..length77) DO res.body[i76] _ CrRPC.GetCard16[s]; ENDLOOP; }; }; UProc31: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: FilingAttributesP10V5.AttributeSequence] ~ { { length79: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[FilingAttributesP10V5.AttributeSequenceObject[length79]]; FOR i78: CARDINAL IN [0..length79) DO res.body[i78].type _ CrRPC.GetCard32[s]; res.body[i78].value _ UProc80[h, s]; ENDLOOP; }; }; MProc29: PUBLIC PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AttributeTypeSequence] ~ { CrRPC.PutCard16[s, val.length]; FOR i81: CARDINAL IN [0..val.length) DO CrRPC.PutCard32[s, val.body[i81]]; ENDLOOP; }; MProc4: PUBLIC PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AuthenticationP14V2.SeqWords] ~ { CrRPC.PutCard16[s, val.length]; FOR i82: CARDINAL IN [0..val.length) DO CrRPC.PutCard16[s, val.body[i82]]; ENDLOOP; }; MProc74: 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 => { MProc84[h, s, it^.access]; }; ENDCASE; }; UProc65: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: Control] ~ { { tag85: ControlType ~ VAL[CrRPC.GetCard16[s]]; SELECT tag85 FROM lock => { temp86: Lock; temp86 _ VAL[CrRPC.GetCard16[s]]; res _ NEW[ControlObject.lock _ [lock[temp86]]] }; timeout => { temp86: CARD16; temp86 _ CrRPC.GetCard16[s]; res _ NEW[ControlObject.timeout _ [timeout[temp86]]] }; access => { temp86: FilingAttributesP10V5.AccessSequence; temp86 _ UProc87[h, s]; res _ NEW[ControlObject.access _ [access[temp86]]] }; ENDCASE => ERROR; }; }; MProc68: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: FilingAttributesP10V5.AttributeValue] ~ { CrRPC.PutCard16[s, val.length]; FOR i88: CARDINAL IN [0..val.length) DO CrRPC.PutCard16[s, val.body[i88]]; ENDLOOP; }; UProc80: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: FilingAttributesP10V5.AttributeValue] ~ { { length90: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[FilingAttributesP10V5.AttributeValueObject[length90]]; FOR i89: CARDINAL IN [0..length90) DO res.body[i89] _ CrRPC.GetCard16[s]; ENDLOOP; }; }; MProc84: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: FilingAttributesP10V5.AccessSequence] ~ { CrRPC.PutCard16[s, val.length]; FOR i91: CARDINAL IN [0..val.length) DO CrRPC.PutCard16[s, ORD[val.body[i91]]]; ENDLOOP; }; UProc87: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: FilingAttributesP10V5.AccessSequence] ~ { { length93: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[FilingAttributesP10V5.AccessSequenceObject[length93]]; FOR i92: CARDINAL IN [0..length93) DO res.body[i92] _ VAL[CrRPC.GetCard16[s]]; ENDLOOP; }; }; }...