X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2FFileMonitor.h;h=3f0b91785b3a56917b946b52344781942551d519;hb=8d640dc77608bedddb5b00982c23665584f52d21;hp=809403ad88c529d02c11a08179257ee5adcceced;hpb=92d522b7f1be6046adcac062c558bbf0bf021612;p=lyx.git diff --git a/src/support/FileMonitor.h b/src/support/FileMonitor.h index 809403ad88..3f0b91785b 100644 --- a/src/support/FileMonitor.h +++ b/src/support/FileMonitor.h @@ -6,7 +6,7 @@ * * \author Angus Leeming * - * Full author contact details are available in file CREDITS + * Full author contact details are available in file CREDITS. * * FileMonitor monitors a file and informs a listener when that file has * changed. @@ -15,30 +15,31 @@ #ifndef FILEMONITOR_H #define FILEMONITOR_H -#include "LString.h" - -#include -#include -#include +#include namespace lyx { namespace support { -class FileMonitor : boost::noncopyable { +class FileName; + +class FileMonitor +{ public: /** Once monitoring begins, the file will be monitored every * interval ms. + * + * FIXME: rewrite and simplify using an encapsulation of QFileSystemWatcher. */ - FileMonitor(string const & file_with_path, int interval); + FileMonitor(FileName const & file_with_path, int interval); - /// Define an empty d-tor out-of-line to keep boost::scoped_ptr happy. + /// Destructor ~FileMonitor(); /// - void reset(string const & file_with_path) const; + void reset(FileName const & file_with_path) const; /// - string const & filename() const; + FileName const & filename() const; /// Begin monitoring the file void start() const; @@ -54,16 +55,20 @@ public: unsigned long checksum() const; /// Connect and you'll be informed when the file has changed. - typedef boost::signal0::slot_type slot_type; + typedef boost::signal FileChangedSig; + typedef FileChangedSig::slot_type slot_type; /// boost::signals::connection connect(slot_type const &) const; private: + /// noncopyable + FileMonitor(FileMonitor const &); + void operator=(FileMonitor const &); + /// Use the Pimpl idiom to hide the internals. class Impl; - /// The pointer never changes although *pimpl_'s contents may. - boost::scoped_ptr const pimpl_; + Impl * const pimpl_; }; } // namespace support