Add userData!T properties for all descriptor based primitives.

This commit is contained in:
Sönke Ludwig 2018-03-16 12:22:50 +01:00
parent 68b8f44957
commit 7bfbb64899
12 changed files with 180 additions and 36 deletions

View file

@ -77,6 +77,11 @@ final class InotifyEventDriverWatchers(Events : EventDriverEvents) : EventDriver
return true;
}
final protected override void* rawUserData(WatcherID descriptor, size_t size, DataInitializer initialize, DataInitializer destroy)
@system {
return m_loop.rawUserDataImpl(descriptor, size, initialize, destroy);
}
private void onChanges(FD fd)
{
processEvents(cast(WatcherID)fd);
@ -211,6 +216,12 @@ final class FSEventsEventDriverWatchers(Events : EventDriverEvents) : EventDrive
FSEventStreamRelease*/
assert(false, "TODO!");
}
final protected override void* rawUserData(WatcherID descriptor, size_t size, DataInitializer initialize, DataInitializer destroy)
@system {
return m_loop.rawUserDataImpl(descriptor, size, initialize, destroy);
}
}
@ -294,6 +305,11 @@ final class PollEventDriverWatchers(Events : EventDriverEvents) : EventDriverWat
return true;
}
final protected override void* rawUserData(WatcherID descriptor, size_t size, DataInitializer initialize, DataInitializer destroy)
@system {
return m_events.loop.rawUserDataImpl(cast(EventID)descriptor, size, initialize, destroy);
}
private void onEvent(EventID evt)
{
import std.algorithm.mutation : swap;