2 using Notifiers.Notifier;
4 struct IONotifierInfo virtual {
5 guid: "E38D4FC2-36C7-11DA-B2D1-000A95BB581A";
19 guid: "6A2E42D6-EAB6-11D9-AD6A-000A95BB581A";
21 read(octet[] buf out, ulong len inout);
22 read_async(octet[] buf shared, ulong len, Notifier notifier) async;
26 guid: "76004CA4-EAB6-11D9-A808-000A95BB581A";
28 write(octet[] buf, ulong len inout);
29 write_async(octet[] buf, ulong len, Notifier notifier) async;
32 interface IOStream : IStream, OStream {
33 guid: "76621658-EAB6-11D9-8884-000A95BB581A";
37 guid: "76C2638F-EAB6-11D9-BE5C-000A95BB581A";
42 interface ReadableFile : File {
43 guid: "4B46E7A0-E66B-49F5-BB8A-D63833A4D79A";
45 read(ulong pos, octet[] buf out, ulong len inout);
46 read_async(ulong pos, octet[] buf shared,
47 ulong len, Notifier notifier) async;
50 interface WriteableFile : File {
51 guid: "310C44B2-D5F8-4439-A7DB-0BDBFD0C306C";
53 write(ulong pos, octet[] buf, ulong len inout);
54 write_async(ulong pos, octet[] buf,
55 ulong len, Notifier notifier) async;
58 interface ReadWriteFile : ReadableFile, WriteableFile {
59 guid: "61E259EF-A929-449C-A8B8-1870A744F160";
63 guid: "540020D6-23AC-4061-9CD7-EEC4118BBAAC";
70 guid: "772A2170-EAB6-11D9-BAA4-000A95BB581A";
78 // If the backing file is changed, the position resets to the
81 // The offset can be considered unsigned if access to the full 2^64
82 // bytes of the underlying file is required. Overflow and underflow
85 seek(long offset, SeekType type);
86 get_pos(ulong offset out);