<> <> <> <> <> <<>> DIRECTORY GGSlice, IO, Prop, Rope; GGProps: CEDAR DEFINITIONS = BEGIN Slice: TYPE = GGSlice.Slice; SliceParts: TYPE = GGSlice.SliceParts; PropList: TYPE = Prop.PropList; STREAM: TYPE = IO.STREAM; Put: PROC [slice: Slice, parts: SliceParts, key: ATOM, val: REF]; <> <<>> Get: PROC [slice: Slice, parts: SliceParts, key: ATOM] RETURNS [val: REF, isUnique: BOOL _ TRUE]; <> <<>> Rem: PROC [slice: Slice, parts: SliceParts, key: ATOM] RETURNS [isUnique: BOOL _ TRUE]; <> <<>> Copy: PROC [key: ATOM, val: REF] RETURNS [copy: REF]; <> PropWalkProc: TYPE = PROC [key: ATOM, val: REF] RETURNS [done: BOOL _ FALSE]; <> Walk: PROC [slice: Slice, parts: SliceParts, walkProc: PropWalkProc] RETURNS [aborted: BOOL _ FALSE]; <> <<>> Kill: PROC [slice: Slice, parts: SliceParts]; <> CopyAll: PROC [fromSlice, toSlice: Slice, fromParts, toParts: SliceParts _ NIL]; <> ValFormat: TYPE = {counted, delimited}; <> <> <> ToRope: PROC [key: ATOM, val: REF] RETURNS [r: Rope.ROPE, vf: ValFormat _ delimited]; <> <<>> FromRope: PROC [key: ATOM, r: Rope.ROPE] RETURNS [val: REF]; <> FileoutProc: TYPE = PROC [s: STREAM, val: REF] RETURNS [vf: ValFormat _ delimited]; <> FileinProc: TYPE = PROC [s: STREAM] RETURNS [val: REF]; <> CopyProc: TYPE = PROC [val: REF] RETURNS [copy: REF]; <> IdentityCopy: CopyProc; Register: PROC [key: ATOM, in: FileinProc, out: FileoutProc, copy: CopyProc]; <> <<>> END.