Object <- PositionStream <- MacStream |
|
|
Close Flush LookupVRefNum MacintoshRomanToUnicode MacintoshShiftJISToUnicode Open |
OpenMacintoshFile Read TextFromMacintoshString TextToMacintoshString UnicodeToMacintoshRoman Write |
|
Length Length Position Position |
| Field | Type | |
|---|---|---|
| Stream: | target: | Object |
| PositionStream: | position: | Unsigned |
| length: | Unsigned | |
| MacStream: | refNum: | SignedShort |
instance MacStream tag; target: nilObject; position: 0; length: 0; refNum: 0; end instance;
Define Class MacStream; inherits from PositionStream; field refNum: SignedShort; // HFS file refNum, when open overrides Open, Close; operation OpenMacintoshFile(volumeRefNum: SignedShort; directoryID: Signed; fileName: HasText; forWriting: Boolean; permissions: SignedByte; creator: Signed; type: Signed); overrides Read, Write; overrides Flush; overrides Length, SetLength; overrides Position, SetPosition; intrinsic LookupVRefNum(fileRefNum: SignedShort; var vRefNum: SignedShort): SignedShort; intrinsic MacintoshShiftJISToUnicode(source: ReadOnlyUnsignedByteArrayPointer; var inputLength: Unsigned; destination: CharactersPointer; var outputLength: Unsigned); intrinsic MacintoshRomanToUnicode(source: ReadOnlyUnsignedByteArrayPointer; destination: CharactersPointer; characterCount: Unsigned); intrinsic UnicodeToMacintoshRoman(source: ReadOnlyCharactersPointer; destination: UnsignedByteArrayPointer; characterCount: Unsigned); intrinsic TextToMacintoshString(source: HasText; string: Pointer); intrinsic TextFromMacintoshString(string: Pointer): Text; end class;