📄 filing4.cr
字号:
Create: PROCEDURE [ directory: Handle, attributes: AttributeSequence, controls: ControlSequence, session: Session ] RETURNS [ file: Handle ] REPORTS [ AccessError, AttributeTypeError, AttributeValueError, AuthenticationError, ControlTypeError, ControlValueError, HandleError, InsertionError, SessionError, SpaceError, UndefinedError ] = 4;Delete: PROCEDURE [ file: Handle, session: Session ] REPORTS [ AccessError, AuthenticationError, HandleError, SessionError, UndefinedError ] = 5;-- Getting and Changing Controls (transient) --GetControls: PROCEDURE [ file: Handle, types: ControlTypeSequence, session: Session ] RETURNS [ controls: ControlSequence ] REPORTS [ AccessError, AuthenticationError, ControlTypeError, HandleError, SessionError, UndefinedError ] = 6;ChangeControls: PROCEDURE [ file: Handle, controls: ControlSequence, session: Session ] REPORTS [ AccessError, AuthenticationError, ControlTypeError, ControlValueError, HandleError, SessionError, UndefinedError ] = 7;-- Getting and Changing Attributes (permanent) --GetAttributes: PROCEDURE [ file: Handle, types: AttributeTypeSequence, session: Session ] RETURNS [ attributes: AttributeSequence ] REPORTS [ AccessError, AttributeTypeError, AuthenticationError, HandleError, SessionError, UndefinedError ] = 8;ChangeAttributes: PROCEDURE [file: Handle, attributes: AttributeSequence, session: Session ] REPORTS [ AccessError, AttributeTypeError, AttributeValueError, AuthenticationError, HandleError, InsertionError, SessionError, SpaceError, UndefinedError ] = 9;UnifyAccessLists: PROCEDURE [directory: Handle, session: Session ] REPORTS [ AccessError, AuthenticationError, HandleError, SessionError, UndefinedError ] = 20;-- Copying and Moving Files --Copy: PROCEDURE [ file, destinationDirectory: Handle , attributes: AttributeSequence, controls: ControlSequence, session: Session ] RETURNS [ newFile: Handle ] REPORTS [ AccessError, AttributeTypeError, AttributeValueError, AuthenticationError, ControlTypeError, ControlValueError, HandleError, InsertionError, SessionError, SpaceError, UndefinedError ] = 10;Move: PROCEDURE [ file, destinationDirectory: Handle , attributes: AttributeSequence, session: Session ] REPORTS [ AccessError, AttributeTypeError, AttributeValueError, AuthenticationError, HandleError, InsertionError, SessionError, SpaceError, UndefinedError ] = 11;-- Transfering Bulk Data (File Content) --Store: PROCEDURE [ directory: Handle, attributes: AttributeSequence, controls: ControlSequence, content: BulkData.Source, session: Session ] RETURNS [ file: Handle ] REPORTS [ AccessError, AttributeTypeError, AttributeValueError, AuthenticationError, ConnectionError, ControlTypeError, ControlValueError, HandleError, InsertionError, SessionError, SpaceError, TransferError, UndefinedError ] = 12;Retrieve: PROCEDURE [ file: Handle, content: BulkData.Sink, session: Session ] REPORTS [ AccessError, AuthenticationError, ConnectionError, HandleError, SessionError, TransferError, UndefinedError ] = 13;Replace: PROCEDURE [ file: Handle, attributes: AttributeSequence, content: BulkData.Source, session: Session ] REPORTS [ AccessError, AttributeTypeError, AttributeValueError, AuthenticationError, ConnectionError, HandleError, SessionError, SpaceError, TransferError, UndefinedError ] = 14;-- Transferring Bulk Data (Serialized Files) --Serialize: PROCEDURE [ file: Handle, serializedFile: BulkData.Sink, session: Session ] REPORTS [ AccessError, AuthenticationError, ConnectionError, HandleError, SessionError, TransferError, UndefinedError ] = 15;Deserialize: PROCEDURE [ directory: Handle, attributes: AttributeSequence, controls: ControlSequence, serializedFile: BulkData.Source, session: Session ] RETURNS [ file: Handle ] REPORTS [ AccessError, AttributeTypeError, AttributeValueError, AuthenticationError, ConnectionError, ControlTypeError, ControlValueError, HandleError, InsertionError, SessionError, SpaceError, TransferError, UndefinedError ] = 16;-- Random Access to File Data --RetrieveBytes: PROCEDURE [ file: Handle, range: ByteRange, sink: BulkData.Sink, session: Session ] REPORTS [ AccessError, HandleError, RangeError, SessionError, UndefinedError ] = 22;ReplaceBytes: PROCEDURE [ file: Handle, range: ByteRange, source: BulkData.Source, session: Session ] REPORTS [ AccessError, HandleError, RangeError, SessionError, SpaceError, UndefinedError ] = 23;-- Locating and Listing Files in a Directory --Find: PROCEDURE [ directory: Handle, scope: ScopeSequence, controls: ControlSequence, session: Session ] RETURNS [ file: Handle ] REPORTS [ AccessError, AuthenticationError, ControlTypeError, ControlValueError, HandleError, ScopeTypeError, ScopeValueError, SessionError, UndefinedError ] = 17;List: PROCEDURE [ directory: Handle, types: AttributeTypeSequence, scope: ScopeSequence, listing: BulkData.Sink, session: Session ] REPORTS [ AccessError, AttributeTypeError, AuthenticationError, ConnectionError, HandleError, ScopeTypeError, ScopeValueError, SessionError, TransferError, UndefinedError ] = 18;-- INTERPRETED ATTRIBUTE DEFINITIONS ---- common definitions --Time: TYPE = Time.Time; -- seconds --nullTime: Time = Time.earliestTime;User: TYPE = Clearinghouse.Name;-- attributes --accessList: AttributeType = 19;AccessEntry: TYPE = RECORD [key: Clearinghouse.Name, access: AccessSequence ];AccessList: TYPE = RECORD [entries: SEQUENCE OF AccessEntry, defaulted: BOOLEAN];checksum: AttributeType = 0;Checksum: TYPE = CARDINAL;unknownChecksum: Checksum = 177777B;childrenUniquelyNamed: AttributeType = 1;ChildrenUniquelyNamed: TYPE = BOOLEAN;createdBy: AttributeType = 2;CreatedBy: TYPE = User;createdOn: AttributeType = 3;CreatedOn: TYPE = Time;dataSize: AttributeType = 16;DataSize: TYPE = LONG CARDINAL;defaultAccessList: AttributeType = 20;DefaultAccessList: TYPE = AccessList;fileID: AttributeType = 4;FileID: TYPE = ARRAY 5 OF UNSPECIFIED;nullFileID: FileID = [0,0,0,0,0];isDirectory: AttributeType = 5;IsDirectory: TYPE = BOOLEAN;isTemporary: AttributeType = 6;IsTemporary: TYPE = BOOLEAN;modifiedBy: AttributeType = 7;ModifiedBy: TYPE = User;modifiedOn: AttributeType = 8;ModifiedOn: TYPE = Time;name: AttributeType = 9; -- name relative to parent --Name: TYPE = STRING; -- must not exceed 100 bytes --numberOfChildren: AttributeType = 10;NumberOfChildren: TYPE = CARDINAL;ordering: AttributeType = 11;Ordering: TYPE = RECORD [key: AttributeType, ascending: BOOLEAN, interpretation: Interpretation];-- see below for defaultOrdering, byAscendingPosition, byDescendingPosition --parentID: AttributeType = 12;ParentID: TYPE = FileID;pathname: AttributeType = 21;Pathname: TYPE = STRING;position: AttributeType = 11;Position: TYPE = SEQUENCE 100 OF UNSPECIFIED;firstPosition: Position = [0];lastPosition: Position = [177777B];readBy: AttributeType = 14;ReadBy: TYPE = User;readOn: AttributeType = 15;ReadOn: TYPE = Time;storedSize: AttributeType = 26;StoredSize: TYPE = LONG CARDINAL;subtreeSize: AttributeType = 27;SubtreeSize: TYPE = LONG CARDINAL;subtreeSizeLimit: AttributeType = 28;SubtreeSizeLimit: TYPE = LONG CARDINAL;nullSubtreeSizeLimit: SubtreeSizeLimit = 37777777777B;type: AttributeType = 17;Type: TYPE = LONG CARDINAL;version: AttributeType = 18;Version: TYPE = CARDINAL;lowestVersion: Version = 0;highestVersion: Version = 177777B;defaultOrdering: Ordering = [key: name, ascending: TRUE, interpretation: string];byAscendingPosition: Ordering = [key: position, ascending: TRUE, interpretation: interpretationNone];byDescendingPosition: Ordering = [key: position, ascending: FALSE, interpretation: interpretationNone];-- BULK DATA FORMATS ---- Serialized File Format, used in Serialize and Deserialize ---- SerializedTree should contain following but compiler won't allow it-- Use Sequence of Unspecified to get around it for now.-- -- SerializedTree: TYPE = RECORD [-- attributes: AttributeSequence,-- content: RECORD [ data: BulkData.StreamOfUnspecified ,-- lastByteIsSignificant: BOOLEAN ],-- children: SEQUENCE OF SerializedTree ];SerializedTree: TYPE = RECORD [ attributes: AttributeSequence, content: RECORD [ data: BulkData.StreamOfUnspecified , lastByteIsSignificant: BOOLEAN ], children: SEQUENCE OF UNSPECIFIED ];SerializedFile: TYPE = RECORD [ version: LONG CARDINAL, file: SerializedTree ];currentVersion: LONG CARDINAL = 3;-- Attribute Series Format, used in List --StreamOfAttributeSequence: TYPE = CHOICE OF { nextSegment(0) => RECORD [ segment: SEQUENCE OF AttributeSequence, restOfStream: StreamOfAttributeSequence], lastSegment(1) => SEQUENCE OF AttributeSequence};-- FILE TYPES --tUnspecified: Type = 0;tDirectory: Type = 1;tText: Type = 2;tSerialized: Type = 3;tEmpty: Type = 4;END. -- of Filing --
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -