X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Ffs%2Ffilemonitor.cpp;h=5ff6392a352fe4e06af3e97f0371d1b19d67c10b;hp=5cc990d2d52d6df1b6f3237db6c68b92c1879e20;hb=HEAD;hpb=ffab0509a65f6f32851e64d66a5f7eeb453ab29f diff --git a/source/fs/filemonitor.cpp b/source/fs/filemonitor.cpp index 5cc990d..5ff6392 100644 --- a/source/fs/filemonitor.cpp +++ b/source/fs/filemonitor.cpp @@ -1,3 +1,5 @@ +#include +#include #include "filemonitor.h" #include "filemonitor_platform.h" @@ -7,8 +9,7 @@ namespace Msp { namespace FS { FileMonitor::FileMonitor(): - priv(new Private(*this)), - event_disp(0) + priv(new Private(*this)) { } FileMonitor::~FileMonitor() @@ -19,7 +20,7 @@ FileMonitor::~FileMonitor() void FileMonitor::use_event_dispatcher(IO::EventDispatcher &ed) { if(event_disp) - throw logic_error("event_disp!=0"); + throw already_called("FileMonitor::use_event_dispatcher"); event_disp = &ed; platform_use_event_dispatcher(); @@ -29,22 +30,20 @@ void FileMonitor::add_file(const FS::Path &path) { MonitoredFile file; file.path = path; - file.modified = false; prepare_file(file); files.push_back(file); } void FileMonitor::remove_file(const FS::Path &path) { - for(vector::iterator i=files.begin(); i!=files.end(); ++i) - if(i->path==path) - { - cleanup_file(*i); - if(&*i!=&files.back()) - *i = files.back(); - files.pop_back(); - break; - } + auto i = find_member(files, path, &MonitoredFile::path); + if(i!=files.end()) + { + cleanup_file(*i); + if(&*i!=&files.back()) + *i = files.back(); + files.pop_back(); + } } } // namespace FS