Browse Source

DirectoryWatcher: file added and file removed events

master
c-mendoza 8 years ago
parent
commit
e231300b84
  1. 10
      src/MediaServer/DirectoryWatcher.cpp
  2. 14
      src/MediaServer/DirectoryWatcher.h

10
src/MediaServer/DirectoryWatcher.cpp

@ -67,11 +67,17 @@ void DirectoryWatcher::threadedFunction() {
while (isThreadRunning()) {
int newSize = _directory.listDir();
if (newSize != dirSize) {
if (newSize > dirSize) {
ofLogVerbose("DirectoryWatcher") << "Directory changed";
ofNotifyEvent(directoryFileCountChangedEvent, this);
dirSize = newSize;
ofNotifyEvent(directoryFileAddedEvent, this);
} else if (newSize < dirSize) {
dirSize = newSize;
ofNotifyEvent(directoryFileRemovedEvent, this);
}
sleep(watchInterval);
}
}

14
src/MediaServer/DirectoryWatcher.h

@ -10,7 +10,7 @@ class DirectoryWatcher : public ofThread {
public:
DirectoryWatcher(string path, int watcherMediaType);
virtual ~DirectoryWatcher();
vector<string> & getFilePaths();
vector<string> &getFilePaths();
int getMediaType();
void beginWatch(int intervalInMillis = 5000);
@ -18,12 +18,16 @@ class DirectoryWatcher : public ofThread {
void threadedFunction();
/**
* Triggered when the file count of a directory increases
* or decreases.
*
* Notifies when files are added to this directory.
* Sender is a pointer to this DirectoryWatcher
*/
ofEvent<void> directoryFileCountChangedEvent;
ofEvent<void> directoryFileAddedEvent;
/**
* Notifies when files are removed from this directory.
* Sender is a pointer to this DirectoryWatcher
*/
ofEvent<void> directoryFileRemovedEvent;
private:
ofDirectory _directory;
vector<string> _filePaths;

Loading…
Cancel
Save