diff options
Diffstat (limited to 'python2')
-rwxr-xr-x | python2/pyinotify.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/python2/pyinotify.py b/python2/pyinotify.py index 7733337..a12ce3f 100755 --- a/python2/pyinotify.py +++ b/python2/pyinotify.py @@ -1604,6 +1604,37 @@ class TornadoAsyncNotifier(Notifier): self.handle_read_callback(self) +class AsyncioNotifier(Notifier): + """ + + asyncio/trollius event loop adapter. + + """ + def __init__(self, watch_manager, loop, callback=None, + default_proc_fun=None, read_freq=0, threshold=0, timeout=None): + """ + + @param loop: asyncio or trollius event loop instance. + @type loop: asyncio.BaseEventLoop or trollius.BaseEventLoop instance. + @param callback: Functor called at the end of each call to handle_read. + Expects to receive the notifier object (self) as + single parameter. + @type callback: callable object or function + + """ + self.loop = loop + self.handle_read_callback = callback + Notifier.__init__(self, watch_manager, default_proc_fun, read_freq, + threshold, timeout) + loop.add_reader(self._fd, self.handle_read) + + def handle_read(self, *args, **kwargs): + self.read_events() + self.process_events() + if self.handle_read_callback is not None: + self.handle_read_callback(self) + + class Watch: """ Represent a watch, i.e. a file or directory being watched. |