예제 #1
0
파일: polling.py 프로젝트: skcript/watchdog
 def __init__(self, event_queue, watch, timeout=DEFAULT_EMITTER_TIMEOUT,
              stat=default_stat, listdir=os.listdir):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self._snapshot = None
     self._lock = threading.Lock()
     self._take_snapshot = lambda: DirectorySnapshot(
         self.watch.path, self.watch.is_recursive, stat=stat, listdir=listdir)
예제 #2
0
    def __init__(self, event_queue, watch, timeout=DEFAULT_EMITTER_TIMEOUT):
      EventEmitter.__init__(self, event_queue, watch, timeout)
      self._lock = threading.Lock()

      self._directory_handle = get_directory_handle(watch.path,
                                                    WATCHDOG_FILE_FLAGS)
      self._buffer = ctypes.create_string_buffer(BUFFER_SIZE)
예제 #3
0
 def __init__(self, event_queue, watch, timeout=DEFAULT_EMITTER_TIMEOUT):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self.wm = pyinotify.WatchManager()
     self.notifier = pyinotify.Notifier(self.wm, InotifyEventHandler(emitter=self))
     self.wm.add_watch(watch.path, mask, rec=watch.is_recursive)
     self.stopped = threading.Event()
     self.path = watch.path
예제 #4
0
 def queue_event(self, event):
     EventEmitter.queue_event(self, event)
     if event.event_type == EVENT_TYPE_CREATED:
         self._register_kevent(event.src_path, event.is_directory)
     elif event.event_type == EVENT_TYPE_MOVED:
         self._unregister_kevent(event.src_path)
         self._register_kevent(event.dest_path, event.is_directory)
     elif event.event_type == EVENT_TYPE_DELETED:
         self._unregister_kevent(event.src_path)
예제 #5
0
    def __init__(self, event_queue, watch, timeout = DEFAULT_EMITTER_TIMEOUT):
        EventEmitter.__init__(self, event_queue, watch, timeout)
        self._kq = select.kqueue()
        self._lock = threading.RLock()
        self._descriptors = KeventDescriptorSet()

        def walker_callback(path, stat_info, self = self):
            self._register_kevent(path, stat.S_ISDIR(stat_info.st_mode))

        self._snapshot = DirectorySnapshot(watch.path, watch.is_recursive, walker_callback)
예제 #6
0
파일: kqueue.py 프로젝트: Witos/watchdog
    def queue_event(self, event):
        """
        Handles queueing a single event object.

        :param event:
            An instance of :class:`watchdog.events.FileSystemEvent`
            or a subclass.
        """
        # Handles all the book keeping for queued events.
        # We do not need to fire moved/deleted events for all subitems in
        # a directory tree here, because this function is called by kqueue
        # for all those events anyway.
        EventEmitter.queue_event(self, event)
        if event.event_type == EVENT_TYPE_CREATED:
            self._register_kevent(event.src_path, event.is_directory)
        elif event.event_type == EVENT_TYPE_MOVED:
            self._unregister_kevent(event.src_path)
            self._register_kevent(event.dest_path, event.is_directory)
        elif event.event_type == EVENT_TYPE_DELETED:
            self._unregister_kevent(event.src_path)
예제 #7
0
 def __init__(self, event_queue, watch, timeout=DEFAULT_EMITTER_TIMEOUT):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self._lock = threading.Lock()
     self._inotify = Inotify(watch.path, watch.is_recursive)
예제 #8
0
 def __init__(self, event_queue, watch, timeout=DEFAULT_EMITTER_TIMEOUT):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self._lock = threading.Lock()
     self._inotify = None
예제 #9
0
 def __init__(self, event_queue, watch, timeout=DEFAULT_EMITTER_TIMEOUT):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self._fsevents = FSEventsQueue(watch.path)
     self._fsevents.start()
 def __init__(self, event_queue, watch, timeout=DEFAULT_EMITTER_TIMEOUT):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self._lock = threading.Lock()
     self._handle = get_directory_handle(watch.path)
예제 #11
0
 def __init__(self, event_queue, watch, timeout=DEFAULT_EMITTER_TIMEOUT):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self._lock = threading.Lock()
     self._handle = None
예제 #12
0
 def __init__(self, event_queue, watch, timeout=DEFAULT_EMITTER_TIMEOUT):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self._snapshot = DirectorySnapshot(watch.path, watch.is_recursive)
     self._lock = threading.Lock()
예제 #13
0
 def __init__(self, event_queue, watch, timeout=DEFAULT_EMITTER_TIMEOUT):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self._snapshot = DirectorySnapshot(watch.path, watch.is_recursive)
     self._lock = threading.Lock()
예제 #14
0
def test_event_emitter():
    event_queue = EventQueue()
    watch = ObservedWatch('/foobar', True)
    event_emitter = EventEmitter(event_queue, watch, timeout=1)
    event_emitter.queue_event(FileModifiedEvent('/foobar/blah'))
예제 #15
0
 def queue_event(self, event):
     logger.info("queue_event %s", event)
     EventEmitter.queue_event(self, event)
예제 #16
0
 def queue_event(self, event):
     logger.debug("queue_event %s", event)
     EventEmitter.queue_event(self, event)
예제 #17
0
 def __init__(self, event_queue, watch, timeout = DEFAULT_EMITTER_TIMEOUT, stat = default_stat, listdir = os.listdir):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self._snapshot = None
     self._lock = threading.Lock()
     self._take_snapshot = lambda : DirectorySnapshot(self.watch.path, self.watch.is_recursive, stat=stat, listdir=listdir)
예제 #18
0
            return
        logging.debug(event)

    def on_created(self, event):
        logging.debug(event)

    def on_deleted(self, event):
        logging.debug(event)

    def on_modified(self, event):
        logging.debug(event)

#path = sys.argv[1]
qu = EventQueue()
ob_w = ObservedWatch(path,True)
em = EventEmitter(qu,ob_w,1)

em.start()
t = True
try:
    while 1:
        if qu.task_done():
            time.sleep(3)
        else:
            logging.info("{0:s}".format(qu.get()))

except KeyboardInterrupt:
    em.stop()
em.stop()
em.join()
예제 #19
0
 def __init__(self, event_queue, watch, timeout=DEFAULT_EMITTER_TIMEOUT):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self._fsevents = FSEventsQueue(watch.path)
     self._fsevents.start()
예제 #20
0
 def test___init__(self):
     event_queue = EventQueue()
     watch = ObservedWatch("/foobar", True)
     event_emitter = EventEmitter(event_queue, watch, timeout=1)
     event_emitter.queue_event(FileModifiedEvent("/foobar/blah"))
예제 #21
0
 def test___init__(self):
   event_queue = EventQueue()
   watch = ObservedWatch('/foobar', True)
   event_emitter = EventEmitter(event_queue, watch, timeout=1)
   event_emitter.queue_event(FileModifiedEvent('/foobar/blah'))
예제 #22
0
 def __init__(self, event_queue, watch, timeout = DEFAULT_EMITTER_TIMEOUT):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self._lock = threading.Lock()
     self._directory_handle = get_directory_handle(watch.path, WATCHDOG_FILE_FLAGS)
     self._buffer = ctypes.create_string_buffer(BUFFER_SIZE)
예제 #23
0
 def __init__(self, event_queue, watch, timeout=1):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self._snapshot = None
예제 #24
0
 def __init__(self, event_queue, watch, make_snapshot, timeout):
   EventEmitter.__init__(self, event_queue, watch, timeout)
   self._make_snapshot = make_snapshot
   self._snapshot = make_snapshot(self.watch.path)
예제 #25
0
파일: inotify.py 프로젝트: edevil/watchdog
 def __init__(self, event_queue, watch, timeout=DEFAULT_EMITTER_TIMEOUT):
   EventEmitter.__init__(self, event_queue, watch, timeout)
   self._lock = threading.Lock()
   self._inotify = Inotify(watch.path, watch.is_recursive)
예제 #26
0
 def __init__(self, event_queue, watch, timeout=1):
     EventEmitter.__init__(self, event_queue, watch, timeout)
     self._snapshot = None