<> <> <> <> DIRECTORY CrRPC, TimeP15V2, CHNameP2V0, Rope; FilingAttributesP10V5: CEDAR DEFINITIONS ~ { ROPE: TYPE ~ Rope.ROPE; SerializedTreeSequence: TYPE ~ REF SerializedTreeSequenceObject; SerializedTreeSequenceObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF SerializedTree ]; position: CARD32 ~ 13; Type: TYPE ~ CARD32; Position: TYPE ~ REF PositionObject; PositionObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF CARD16 ]; ModifiedOn: TYPE ~ CARD32; StreamOfAttributeSequence: TYPE ~ REF StreamOfAttributeSequenceObject; StreamOfAttributeSequenceObject: TYPE ~ RECORD [ SELECT type: StreamKind FROM nextSegment => [nextSegment: AttributeSequenceList], lastSegment => [lastSegment: AttributeSequenceSequence] ENDCASE ]; AccessList: TYPE ~ RECORD [ entries: AccessEntrySequence, defaulted: BOOLEAN]; firstPosition: READONLY Position; Time: TYPE ~ CARD32; SubtreeSizeLimit: TYPE ~ CARD32; IsDirectory: TYPE ~ BOOLEAN; byAscendingPosition: Ordering ~ [key~13, ascending~TRUE, interpretation~interpretationNone]; StreamKind: TYPE ~ MACHINE DEPENDENT { nextSegment(0), lastSegment(1)}; FileID: TYPE ~ ARRAY [0..5) OF CARD16; Attribute: TYPE ~ RECORD [ type: CARD32, value: AttributeValue]; Version: TYPE ~ CARD16; ParentID: TYPE ~ FileID; StoredSize: TYPE ~ CARD32; SerializedTree: TYPE ~ RECORD [ attributes: AttributeSequence, content: SerializedContentBytes]; byDescendingPosition: Ordering ~ [key~13, ascending~FALSE, interpretation~interpretationNone]; AttributeSequenceList: TYPE ~ RECORD [ segment: AttributeSequenceSequence]; InterpretedAttribute: TYPE ~ REF InterpretedAttributeObject; InterpretedAttributeObject: TYPE ~ RECORD [ SELECT type: InterpretedAttributeType FROM checksum => [checksum: CARD16], childrenUniquelyNamed => [childrenUniquelyNamed: BOOLEAN], createdBy => [createdBy: CHNameP2V0.ThreePartName], createdOn => [createdOn: CARD32], fileID => [fileID: FileID], isDirectory => [isDirectory: BOOLEAN], isTemporary => [isTemporary: BOOLEAN], modifiedBy => [modifiedBy: CHNameP2V0.ThreePartName], modifiedOn => [modifiedOn: CARD32], name => [name: ROPE], numberOfChildren => [numberOfChildren: CARD16], ordering => [ordering: Ordering], parentID => [parentID: FileID], position => [position: Position], readBy => [readBy: CHNameP2V0.ThreePartName], readOn => [readOn: CARD32], dataSize => [dataSize: CARD32], type => [type: CARD32], version => [version: CARD16], accessList => [accessList: AccessList], defaultAccessList => [defaultAccessList: AccessList], pathname => [pathname: ROPE], unused22 => [unused22: CARD32], unused23 => [unused23: CARD32], unused24 => [unused24: CARD32], unused25 => [unused25: CARD32], storedSize => [storedSize: CARD32], subtreeSize => [subtreeSize: CARD32], subtreeSizeLimit => [subtreeSizeLimit: CARD32] ENDCASE ]; Unused: TYPE ~ CARD32; Checksum: TYPE ~ CARD16; BytePairSequence: TYPE ~ REF BytePairSequenceObject; BytePairSequenceObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF CARD16 ]; ReadBy: TYPE ~ CHNameP2V0.ThreePartName; NumberOfChildren: TYPE ~ CARD16; AccessEntry: TYPE ~ RECORD [ key: CHNameP2V0.ThreePartName, access: AccessSequence]; IsTemporary: TYPE ~ BOOLEAN; CreatedBy: TYPE ~ CHNameP2V0.ThreePartName; AsciiString: TYPE ~ RECORD [ lastByteIsSignificant: BOOLEAN, data: BytePairSequence]; nullSubtreeSizeLimit: CARD32 ~ 4294967295; highestVersion: CARD16 ~ 65535; WellKnownType: TYPE ~ MACHINE DEPENDENT { tUnspecified(0), tDirectory(1), tText(2), tSerialized(3), tEmpty(4), tAscii(6), tAsciiText(7)}; unknownChecksum: CARD16 ~ 65535; AccessEntrySequence: TYPE ~ REF AccessEntrySequenceObject; AccessEntrySequenceObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF AccessEntry ]; AsciiStringList: TYPE ~ RECORD [ line: AsciiString]; SerializedContentBytes: TYPE ~ RECORD [ data: StreamOfUnspecified, lastByteIsSignificant: BOOLEAN]; StreamOfAsciiText: TYPE ~ REF StreamOfAsciiTextObject; StreamOfAsciiTextObject: TYPE ~ RECORD [ SELECT type: StringStreamKind FROM nextLine => [nextLine: AsciiStringList], lastLine => [lastLine: AsciiString] ENDCASE ]; defaultOrdering: Ordering ~ [key~9, ascending~TRUE, interpretation~string]; SubtreeSize: TYPE ~ CARD32; AttributeType: TYPE ~ CARD32; AttributeSequenceSequence: TYPE ~ REF AttributeSequenceSequenceObject; AttributeSequenceSequenceObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF AttributeSequence ]; lowestVersion: CARD16 ~ 0; AttributeSequence: TYPE ~ REF AttributeSequenceObject; AttributeSequenceObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF Attribute ]; Interpretation: TYPE ~ MACHINE DEPENDENT { interpretationNone(0), boolean(1), cardinal(2), longCardinal(3), time(4), integer(5), longInteger(6), string(7)}; Ordering: TYPE ~ RECORD [ key: CARD32, ascending: BOOLEAN, interpretation: Interpretation]; currentVersion: CARD32 ~ 3; User: TYPE ~ CHNameP2V0.ThreePartName; StreamOfUnspecified: TYPE ~ REF StreamOfUnspecifiedObject; StreamOfUnspecifiedObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF CARD16 ]; ReadOn: TYPE ~ CARD32; ModifiedBy: TYPE ~ CHNameP2V0.ThreePartName; DefaultAccessList: TYPE ~ AccessList; DataSize: TYPE ~ CARD32; Pathname: TYPE ~ ROPE; name: CARD32 ~ 9; SerializedFile: TYPE ~ RECORD [ version: CARD32, file: SerializedTree]; Name: TYPE ~ ROPE; nullFileID: FileID ~ [0, 0, 0, 0, 0]; ChildrenUniquelyNamed: TYPE ~ BOOLEAN; lastPosition: READONLY Position; StringStreamKind: TYPE ~ MACHINE DEPENDENT { nextLine(0), lastLine(1)}; AttributeValue: TYPE ~ REF AttributeValueObject; AttributeValueObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF CARD16 ]; CreatedOn: TYPE ~ CARD32; AccessType: TYPE ~ MACHINE DEPENDENT { read(0), write(1), owner(2), add(3), remove(4), fullAccess(65535)}; AccessSequence: TYPE ~ REF AccessSequenceObject; AccessSequenceObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF AccessType ]; InterpretedAttributeType: TYPE ~ MACHINE DEPENDENT { checksum(0), childrenUniquelyNamed(1), createdBy(2), createdOn(3), fileID(4), isDirectory(5), isTemporary(6), modifiedBy(7), modifiedOn(8), name(9), numberOfChildren(10), ordering(11), parentID(12), position(13), readBy(14), readOn(15), dataSize(16), type(17), version(18), accessList(19), defaultAccessList(20), pathname(21), unused22(22), unused23(23), unused24(24), unused25(25), storedSize(26), subtreeSize(27), subtreeSizeLimit(28)}; }...