DIRECTORY Rope, Arpa, UT, SunRPCAuth, SunRPC; LB: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; ReturnCodes: TYPE = MACHINE DEPENDENT { iluSuccess(0), iluECantExportService(1), EError(2) }; ReturnCodesNames: READONLY ARRAY ReturnCodes OF ROPE; LocRoom: TYPE = ROPE; LocXYZ: TYPE = RECORD [ x: DREAL, y: DREAL, z: DREAL ]; LocationDescriminationValues: TYPE = MACHINE DEPENDENT { LocationVLocRoom(0), LocationVLocXYZ(1) }; LocationDescriminationValuesNames: READONLY ARRAY LocationDescriminationValues OF ROPE; Location: TYPE = REF LocationObject; LocationObject: TYPE = RECORD [ union: SELECT descriminator: LocationDescriminationValues FROM LocationVLocRoom => [vLocRoom: ROPE], LocationVLocXYZ => [vLocXYZ: LocXYZ], ENDCASE]; Sphere: TYPE = RECORD [ center: LocXYZ, radius: DREAL ]; BasicVolumeDescriminationValues: TYPE = MACHINE DEPENDENT { BasicVolumeVLocRoom(0), BasicVolumeVSphere(1) }; BasicVolumeDescriminationValuesNames: READONLY ARRAY BasicVolumeDescriminationValues OF ROPE; BasicVolume: TYPE = REF BasicVolumeObject; BasicVolumeObject: TYPE = RECORD [ union: SELECT descriminator: BasicVolumeDescriminationValues FROM BasicVolumeVLocRoom => [vLocRoom: ROPE], BasicVolumeVSphere => [vSphere: Sphere], ENDCASE]; Volume: TYPE = SeqType0; SeqType0: TYPE = REF SeqType0Object; SeqType0Object: TYPE = RECORD [SEQUENCE size: [0..LAST[INT32]) OF BasicVolume]; LocatedObject: TYPE = RECORD [ o: UT.Objct, l: Location ]; LocatedObjectSet: TYPE = SeqType1; SeqType1: TYPE = REF SeqType1Object; SeqType1Object: TYPE = RECORD [SEQUENCE size: [0..LAST[INT32]) OF LocatedObject]; ChangeOperation: TYPE = MACHINE DEPENDENT { Add(0), Delete(1) }; ChangeOperationNames: READONLY ARRAY ChangeOperation OF ROPE; ErrorType: TYPE = MACHINE DEPENDENT { BadLoc(0), BadObject(1), BadCallback(2), BadRoom(3), BadRock(4), NotDescendantLoc(5), NotCompositeLoc(6) }; ErrorTypeNames: READONLY ARRAY ErrorType OF ROPE; Simple: TYPE = ROPE; String: TYPE = ROPE; T: TYPE = SeqType2; SeqType2: TYPE = REF SeqType2Object; SeqType2Object: TYPE = RECORD [SEQUENCE size: [0..LAST[INT32]) OF String]; Set: TYPE = SeqType3; SeqType3: TYPE = REF SeqType3Object; SeqType3Object: TYPE = RECORD [SEQUENCE size: [0..LAST[INT32]) OF T]; Atomic: TYPE = ROPE; Distance: TYPE = DREAL; Step: TYPE = RECORD [ d: Distance, to: ROPE ]; StepSeq: TYPE = SeqType4; SeqType4: TYPE = REF SeqType4Object; SeqType4Object: TYPE = RECORD [SEQUENCE size: [0..LAST[INT32]) OF Step]; Path: TYPE = RECORD [ frm: ROPE, d: Distance, steps: StepSeq ]; PathSet: TYPE = SeqType5; SeqType5: TYPE = REF SeqType5Object; SeqType5Object: TYPE = RECORD [SEQUENCE size: [0..LAST[INT32]) OF Path]; PathSolution: TYPE = RECORD [ dmin: Distance, dmax: Distance, ps: PathSet ]; Nearest: TYPE = RECORD [ to: T, paths: PathSolution ]; Nearests: TYPE = SeqType6; SeqType6: TYPE = REF SeqType6Object; SeqType6Object: TYPE = RECORD [SEQUENCE size: [0..LAST[INT32]) OF Nearest]; AtLocargs: TYPE = RECORD [ o: UT.Objct, loc: Location ]; AtLocreturn: TYPE = REF AtLocreturnObject; AtLocreturnObject: TYPE = RECORD [ union: SELECT returnCode: ReturnCodes FROM EError => [EErrorValue: ErrorType], iluSuccess => [], iluECantExportService => [], ENDCASE]; RemoveObjectargs: TYPE = RECORD [ o: UT.Objct ]; RemoveObjectreturn: TYPE = REF RemoveObjectreturnObject; RemoveObjectreturnObject: TYPE = RECORD [ union: SELECT returnCode: ReturnCodes FROM EError => [EErrorValue: ErrorType], iluSuccess => [returnValue: CARD32], iluECantExportService => [], ENDCASE]; FindObjectsargs: TYPE = RECORD [ locs: Volume, types: UT.ObjectTypeSet ]; FindObjectsreturn: TYPE = REF FindObjectsreturnObject; FindObjectsreturnObject: TYPE = RECORD [ union: SELECT returnCode: ReturnCodes FROM EError => [EErrorValue: ErrorType], iluSuccess => [returnValue: LocatedObjectSet], iluECantExportService => [], ENDCASE]; NotifyOfObjectsargs: TYPE = RECORD [ locs: Volume, types: UT.ObjectTypeSet, who: ROPE, rock: UT.OPAQUE ]; NotifyOfObjectsreturn: TYPE = REF NotifyOfObjectsreturnObject; NotifyOfObjectsreturnObject: TYPE = RECORD [ union: SELECT returnCode: ReturnCodes FROM EError => [EErrorValue: ErrorType], iluSuccess => [], iluECantExportService => [], ENDCASE]; RemoveObjectCallbackargs: TYPE = RECORD [ who: ROPE, rock: UT.OPAQUE ]; RemoveObjectCallbackreturn: TYPE = REF RemoveObjectCallbackreturnObject; RemoveObjectCallbackreturnObject: TYPE = RECORD [ union: SELECT returnCode: ReturnCodes FROM EError => [EErrorValue: ErrorType], iluSuccess => [], iluECantExportService => [], ENDCASE]; Parentargs: TYPE = RECORD [ l: ROPE ]; Parentreturn: TYPE = REF ParentreturnObject; ParentreturnObject: TYPE = RECORD [ union: SELECT returnCode: ReturnCodes FROM EError => [EErrorValue: ErrorType], iluSuccess => [returnValue: ROPE], iluECantExportService => [], ENDCASE]; Childrenargs: TYPE = RECORD [ l: ROPE ]; Childrenreturn: TYPE = REF ChildrenreturnObject; ChildrenreturnObject: TYPE = RECORD [ union: SELECT returnCode: ReturnCodes FROM EError => [EErrorValue: ErrorType], iluSuccess => [returnValue: Set], iluECantExportService => [], ENDCASE]; ShortestPathsargs: TYPE = RECORD [ frm: T, to: T, wantPaths: CARD32 ]; ShortestPathsreturn: TYPE = REF ShortestPathsreturnObject; ShortestPathsreturnObject: TYPE = RECORD [ union: SELECT returnCode: ReturnCodes FROM EError => [EErrorValue: ErrorType], iluSuccess => [returnValue: PathSolution], iluECantExportService => [], ENDCASE]; FindNearestsargs: TYPE = RECORD [ frm: T, to: Set, wantPaths: CARD32 ]; FindNearestsreturn: TYPE = REF FindNearestsreturnObject; FindNearestsreturnObject: TYPE = RECORD [ union: SELECT returnCode: ReturnCodes FROM EError => [EErrorValue: ErrorType], iluSuccess => [returnValue: Nearests], iluECantExportService => [], ENDCASE]; FindNearestsOfKindargs: TYPE = RECORD [ frm: T, kind: ROPE, description: UT.ObjectDescription, wantPaths: CARD32 ]; FindNearestsOfKindreturn: TYPE = REF FindNearestsOfKindreturnObject; FindNearestsOfKindreturnObject: TYPE = RECORD [ union: SELECT returnCode: ReturnCodes FROM EError => [EErrorValue: ErrorType], iluSuccess => [returnValue: Nearests], iluECantExportService => [], ENDCASE]; LBPrognum: CARDINAL = 822083614; version1: CARDINAL = 1; servernoopProc: TYPE = PROC[o: LB1]; atlocProc: TYPE = PROC[o0: LB1, o: UT.Objct, loc: Location] RETURNS [res: AtLocreturn]; removeobjectProc: TYPE = PROC[o0: LB1, o: UT.Objct] RETURNS [res: RemoveObjectreturn]; findobjectsProc: TYPE = PROC[o: LB1, locs: Volume, types: UT.ObjectTypeSet] RETURNS [res: FindObjectsreturn]; notifyofobjectsProc: TYPE = PROC[o: LB1, locs: Volume, types: UT.ObjectTypeSet, who: ROPE, rock: UT.OPAQUE] RETURNS [res: NotifyOfObjectsreturn]; removeobjectcallbackProc: TYPE = PROC[o: LB1, who: ROPE, rock: UT.OPAQUE] RETURNS [res: RemoveObjectCallbackreturn]; parentProc: TYPE = PROC[o: LB1, l: ROPE] RETURNS [res: Parentreturn]; childrenProc: TYPE = PROC[o: LB1, l: ROPE] RETURNS [res: Childrenreturn]; shortestpathsProc: TYPE = PROC[o: LB1, frm: T, to: T, wantPaths: CARD32] RETURNS [res: ShortestPathsreturn]; findnearestsProc: TYPE = PROC[o: LB1, frm: T, to: Set, wantPaths: CARD32] RETURNS [res: FindNearestsreturn]; findnearestsofkindProc: TYPE = PROC[o: LB1, frm: T, kind: ROPE, description: UT.ObjectDescription, wantPaths: CARD32] RETURNS [res: FindNearestsOfKindreturn]; LB1: TYPE = REF LB1Object; LB1Object: TYPE = RECORD [ servernoop: servernoopProc, atloc: atlocProc, removeobject: removeobjectProc, findobjects: findobjectsProc, notifyofobjects: notifyofobjectsProc, removeobjectcallback: removeobjectcallbackProc, parent: parentProc, children: childrenProc, shortestpaths: shortestpathsProc, findnearests: findnearestsProc, findnearestsofkind: findnearestsofkindProc, rpcHandle: SunRPC.Handle _ NIL, rpcConversation: SunRPCAuth.Conversation _ NIL, data: REF ANY _ NIL ]; MakeLB1Client: PROC[h: SunRPC.Handle, c: SunRPCAuth.Conversation] RETURNS [LB1]; MakeLB1Server: PROC[ data: REF, servernoop: servernoopProc, atloc: atlocProc, removeobject: removeobjectProc, findobjects: findobjectsProc, notifyofobjects: notifyofobjectsProc, removeobjectcallback: removeobjectcallbackProc, parent: parentProc, children: childrenProc, shortestpaths: shortestpathsProc, findnearests: findnearestsProc, findnearestsofkind: findnearestsofkindProc ] RETURNS [SunRPC.Server]; NotifyObjectsCallbackargs: TYPE = RECORD [ rock: UT.OPAQUE, os: LocatedObjectSet, change: ChangeOperation ]; NotifyObjectsCallbackreturn: TYPE = REF NotifyObjectsCallbackreturnObject; NotifyObjectsCallbackreturnObject: TYPE = RECORD [ union: SELECT returnCode: ReturnCodes FROM EError => [EErrorValue: ErrorType], iluSuccess => [], iluECantExportService => [], ENDCASE]; callbacks: CARDINAL = 822083615; callbacksversion1: CARDINAL = 1; clientnoopProc: TYPE = PROC[o: callbacks1]; notifyobjectscallbackProc: TYPE = PROC[o: callbacks1, rock: UT.OPAQUE, os: LocatedObjectSet, change: ChangeOperation] RETURNS [res: NotifyObjectsCallbackreturn]; callbacks1: TYPE = REF callbacks1Object; callbacks1Object: TYPE = RECORD [ clientnoop: clientnoopProc, notifyobjectscallback: notifyobjectscallbackProc, rpcHandle: SunRPC.Handle _ NIL, rpcConversation: SunRPCAuth.Conversation _ NIL, data: REF ANY _ NIL ]; Makecallbacks1Client: PROC[h: SunRPC.Handle, c: SunRPCAuth.Conversation] RETURNS [callbacks1]; Makecallbacks1Server: PROC[ data: REF, clientnoop: clientnoopProc, notifyobjectscallback: notifyobjectscallbackProc ] RETURNS [SunRPC.Server]; END. R LB.mesa Please do not edit this file. It was generated using CedarRPCGen. Êk•NewlineDelimiter ™J™J™J™#J˜šÏk ˜ J˜J˜Jšœ˜J˜ J˜J˜—Jšœœ œ˜Jš˜J˜Jšœœœ˜J˜J˜šœ œœ œ˜'J˜J˜J˜ J˜J˜—Jš Ïnœœœ œœ˜5J˜Jšœ œœ˜J˜šœœœ˜Jšœœ˜ Jšœœ˜ šœ˜J˜J˜——šœœœ œ˜8J˜J˜J˜J˜—Jš ž!œœœœœ˜WJ˜Jšœ œœ˜$šœœœ˜šœœ-˜>Jšœœ˜%J˜%Jšœ˜ J˜——šœœœ˜J˜šœ˜ J˜J˜——šœ!œœ œ˜;J˜J˜J˜J˜—Jš ž$œœœ!œœ˜]J˜Jšœ œœ˜*šœœœ˜"šœœ0˜AJšœ"œ˜(J˜(Jšœ˜ J˜——Jšœœ ˜J˜Jšœ œœ˜$Jš œœœœ œœœ˜OJ˜šœœœ˜Jšœœ˜ ˜ J˜J˜——Jšœœ ˜"J˜Jšœ œœ˜$Jš œœœœ œœœ˜QJ˜šœœœ œ˜+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š œœœœ œœœ ˜JJ˜Jšœœ ˜J˜Jšœ œœ˜$Jš œœœœ œœœ˜EJ˜Jšœœœ˜J˜Jšœ œœ˜J˜šœœœ˜J˜ šœ˜J˜J˜——Jšœ œ ˜J˜Jšœ œœ˜$Jš œœœœ œœœ˜HJ˜šœœœ˜Jšœœ˜ J˜ ˜J˜J˜——Jšœ œ ˜J˜Jšœ œœ˜$Jš œœœœ œœœ˜HJ˜šœœœ˜J˜J˜˜ J˜J˜——šœ œœ˜J˜˜J˜J˜——Jšœ œ ˜J˜Jšœ œœ˜$Jš œœœœ œœœ ˜KJ˜šœ œœ˜Jšœœ˜ ˜ J˜J˜——Jšœ œœ˜*šœœœ˜"šœœ˜*Jšœ ž œ ˜#J˜J˜Jšœ˜ J˜——šœœœ˜!šœœ˜ J˜J˜——Jšœœœ˜8šœœœ˜)šœœ˜*Jšœ ž œ ˜#Jšœœ˜$J˜Jšœ˜ J˜——šœœœ˜ J˜ šœœ˜J˜J˜——Jšœœœ˜6šœœœ˜(šœœ˜*Jšœ ž œ ˜#J˜.J˜Jšœ˜ J˜——šœœœ˜$J˜ Jšœœ˜Jšœœ˜ šœœ˜J˜J˜——Jšœœœ˜>šœœœ˜,šœœ˜*Jšœ ž œ ˜#J˜J˜Jšœ˜ J˜——šœœœ˜)Jšœœ˜ šœœ˜J˜J˜——Jšœœœ"˜Hšœ"œœ˜1šœœ˜*Jšœ ž œ ˜#J˜J˜Jšœ˜ J˜——šœ œœ˜šœ˜J˜J˜——Jšœœœ˜,šœœœ˜#šœœ˜*Jšœ ž œ ˜#Jšœœ˜"J˜Jšœ˜ J˜——šœœœ˜šœ˜J˜J˜——Jšœœœ˜0šœœœ˜%šœœ˜*Jšœ ž œ ˜#J˜!J˜Jšœ˜ J˜——šœœœ˜"J˜J˜šœ ˜J˜J˜——Jšœœœ˜:šœœœ˜*šœœ˜*Jšœ ž œ ˜#J˜*J˜Jšœ˜ J˜——šœœœ˜!J˜J˜šœ ˜J˜J˜——Jšœœœ˜8šœœœ˜)šœœ˜*Jšœ ž œ ˜#J˜&J˜Jšœ˜ J˜——šœœœ˜'J˜Jšœœ˜ Jšœ œ˜"šœ ˜J˜J˜——Jšœœœ ˜Dšœ œœ˜/šœœ˜*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šœ#œœ˜2šœœ˜*Jšœ ž œ ˜#J˜J˜Jšœ˜ J˜——Jšœ œ ˜ J˜Jšœœ˜ J˜Jšœœœ˜+šœœœ˜5Jšœœœ˜J˜J˜Jšœ$˜+J˜—Jšœ œœ˜)šœœœ˜!J˜J˜1Jšœœ˜Jšœ+œ˜/Jšœœœ˜J˜J˜—šžœœ˜,Jšœœ˜1—šžœœ˜Jšœœ˜ J˜J˜0Jšœœ˜J˜J˜—Jšœ˜—…—%3Å