Add a thread pool based async file implementation.
This commit is contained in:
parent
a2691ff0af
commit
2a8c52f347
6 changed files with 350 additions and 51 deletions
|
@ -104,8 +104,12 @@ interface EventDriverFiles {
|
|||
@safe: /*@nogc:*/ nothrow:
|
||||
FileFD open(string path, FileOpenMode mode);
|
||||
FileFD createTemp();
|
||||
void write(FileFD file, ulong offset, ubyte[] buffer, IOCallback on_write_finish);
|
||||
void read(FileFD file, ulong offset, ubyte[] buffer, IOCallback on_read_finish);
|
||||
void close(FileFD file);
|
||||
|
||||
ulong getSize(FileFD file);
|
||||
|
||||
void write(FileFD file, ulong offset, const(ubyte)[] buffer, FileIOCallback on_write_finish);
|
||||
void read(FileFD file, ulong offset, ubyte[] buffer, FileIOCallback on_read_finish);
|
||||
void cancelWrite(FileFD file);
|
||||
void cancelRead(FileFD file);
|
||||
|
||||
|
@ -191,6 +195,7 @@ interface EventDriverWatchers {
|
|||
alias ConnectCallback = void delegate(StreamSocketFD, ConnectStatus);
|
||||
alias AcceptCallback = void delegate(StreamListenSocketFD, StreamSocketFD);
|
||||
alias IOCallback = void delegate(StreamSocketFD, IOStatus, size_t);
|
||||
alias FileIOCallback = void delegate(FileFD, IOStatus, size_t);
|
||||
alias EventCallback = void delegate(EventID);
|
||||
alias SignalCallback = void delegate(int);
|
||||
alias TimerCallback = void delegate(TimerID);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue