interface/file_watch: Rename MultiFileWatch to FileWatch
This commit is contained in:
parent
d988d518d8
commit
e050dec31d
@ -33,12 +33,12 @@ struct Module: public interface::Module, public client_file::Interface
|
|||||||
{
|
{
|
||||||
interface::Server *m_server;
|
interface::Server *m_server;
|
||||||
sm_<ss_, sp_<FileInfo>> m_files;
|
sm_<ss_, sp_<FileInfo>> m_files;
|
||||||
sp_<interface::MultiFileWatch> m_watch;
|
sp_<interface::FileWatch> m_watch;
|
||||||
|
|
||||||
Module(interface::Server *server):
|
Module(interface::Server *server):
|
||||||
interface::Module("client_file"),
|
interface::Module("client_file"),
|
||||||
m_server(server),
|
m_server(server),
|
||||||
m_watch(interface::createMultiFileWatch())
|
m_watch(interface::createFileWatch())
|
||||||
{
|
{
|
||||||
log_v(MODULE, "client_file construct");
|
log_v(MODULE, "client_file construct");
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
namespace interface {
|
namespace interface {
|
||||||
|
|
||||||
struct CMultiFileWatch: MultiFileWatch
|
struct CFileWatch: FileWatch
|
||||||
{
|
{
|
||||||
struct WatchThing {
|
struct WatchThing {
|
||||||
ss_ path;
|
ss_ path;
|
||||||
@ -26,16 +26,16 @@ struct CMultiFileWatch: MultiFileWatch
|
|||||||
int m_fd = -1;
|
int m_fd = -1;
|
||||||
sm_<int, sp_<WatchThing>> m_watch;
|
sm_<int, sp_<WatchThing>> m_watch;
|
||||||
|
|
||||||
CMultiFileWatch()
|
CFileWatch()
|
||||||
{
|
{
|
||||||
m_fd = inotify_init1(IN_NONBLOCK);
|
m_fd = inotify_init1(IN_NONBLOCK);
|
||||||
log_d(MODULE, "CMultiFileWatch(): m_fd=%i", m_fd);
|
log_d(MODULE, "CFileWatch(): m_fd=%i", m_fd);
|
||||||
if(m_fd == -1){
|
if(m_fd == -1){
|
||||||
throw Exception(ss_()+"inotify_init() failed: "+strerror(errno));
|
throw Exception(ss_()+"inotify_init() failed: "+strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
~CMultiFileWatch()
|
~CFileWatch()
|
||||||
{
|
{
|
||||||
close(m_fd);
|
close(m_fd);
|
||||||
}
|
}
|
||||||
@ -79,12 +79,12 @@ struct CMultiFileWatch: MultiFileWatch
|
|||||||
if(r == -1){
|
if(r == -1){
|
||||||
if(errno == EAGAIN)
|
if(errno == EAGAIN)
|
||||||
break;
|
break;
|
||||||
log_w(MODULE, "CMultiFileWatch::report_fd(): read() failed "
|
log_w(MODULE, "CFileWatch::report_fd(): read() failed "
|
||||||
"on fd=%i: %s", fd, strerror(errno));
|
"on fd=%i: %s", fd, strerror(errno));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(r < (int)INOTIFY_STRUCTSIZE){
|
if(r < (int)INOTIFY_STRUCTSIZE){
|
||||||
throw Exception("CMultiFileWatch::report_fd(): read() -> "+itos(r));
|
throw Exception("CFileWatch::report_fd(): read() -> "+itos(r));
|
||||||
}
|
}
|
||||||
struct inotify_event *in_event = (struct inotify_event*)buf;
|
struct inotify_event *in_event = (struct inotify_event*)buf;
|
||||||
ss_ name;
|
ss_ name;
|
||||||
@ -150,9 +150,9 @@ struct CMultiFileWatch: MultiFileWatch
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
MultiFileWatch* createMultiFileWatch()
|
FileWatch* createFileWatch()
|
||||||
{
|
{
|
||||||
return new CMultiFileWatch();
|
return new CFileWatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,20 +7,20 @@
|
|||||||
|
|
||||||
namespace interface {
|
namespace interface {
|
||||||
|
|
||||||
struct CMultiFileWatch: MultiFileWatch
|
struct CFileWatch: FileWatch
|
||||||
{
|
{
|
||||||
CMultiFileWatch()
|
CFileWatch()
|
||||||
{
|
{
|
||||||
log_e(MODULE, "CMultiFileWatch not implemented");
|
log_e(MODULE, "CFileWatch not implemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
~CMultiFileWatch()
|
~CFileWatch()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void add(const ss_ &path, std::function<void(const ss_ &path)> cb)
|
void add(const ss_ &path, std::function<void(const ss_ &path)> cb)
|
||||||
{
|
{
|
||||||
log_e(MODULE, "CMultiFileWatch::add() not implemented");
|
log_e(MODULE, "CFileWatch::add() not implemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Used on Linux; no-op on Windows
|
// Used on Linux; no-op on Windows
|
||||||
@ -35,13 +35,13 @@ struct CMultiFileWatch: MultiFileWatch
|
|||||||
// Used on Windows; no-op on Linux
|
// Used on Windows; no-op on Linux
|
||||||
void update()
|
void update()
|
||||||
{
|
{
|
||||||
log_e(MODULE, "CMultiFileWatch::update() not implemented");
|
log_e(MODULE, "CFileWatch::update() not implemented");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
MultiFileWatch* createMultiFileWatch()
|
FileWatch* createFileWatch()
|
||||||
{
|
{
|
||||||
return new CMultiFileWatch();
|
return new CFileWatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,9 +6,9 @@
|
|||||||
|
|
||||||
namespace interface
|
namespace interface
|
||||||
{
|
{
|
||||||
struct MultiFileWatch
|
struct FileWatch
|
||||||
{
|
{
|
||||||
virtual ~MultiFileWatch(){}
|
virtual ~FileWatch(){}
|
||||||
|
|
||||||
virtual void add(const ss_ &path,
|
virtual void add(const ss_ &path,
|
||||||
std::function<void(const ss_ &path)> cb) = 0;
|
std::function<void(const ss_ &path)> cb) = 0;
|
||||||
@ -22,6 +22,6 @@ namespace interface
|
|||||||
};
|
};
|
||||||
|
|
||||||
// cb is called at either report_fd() or update().
|
// cb is called at either report_fd() or update().
|
||||||
MultiFileWatch* createMultiFileWatch();
|
FileWatch* createFileWatch();
|
||||||
}
|
}
|
||||||
// vim: set noet ts=4 sw=4:
|
// vim: set noet ts=4 sw=4:
|
||||||
|
@ -219,7 +219,7 @@ struct CState: public State, public interface::Server
|
|||||||
sm_<ss_, interface::ModuleInfo> m_module_info; // Info of every seen module
|
sm_<ss_, interface::ModuleInfo> m_module_info; // Info of every seen module
|
||||||
sm_<ss_, ModuleContainer> m_modules; // Currently loaded modules
|
sm_<ss_, ModuleContainer> m_modules; // Currently loaded modules
|
||||||
set_<ss_> m_unloads_requested;
|
set_<ss_> m_unloads_requested;
|
||||||
sm_<ss_, sp_<interface::MultiFileWatch>> m_module_file_watches;
|
sm_<ss_, sp_<interface::FileWatch>> m_module_file_watches;
|
||||||
// Module modifications are accumulated here and core:module_modified events
|
// Module modifications are accumulated here and core:module_modified events
|
||||||
// are fired every event loop based on this to lump multiple modifications
|
// are fired every event loop based on this to lump multiple modifications
|
||||||
// into one (generally a modification causes many notifications)
|
// into one (generally a modification causes many notifications)
|
||||||
@ -377,7 +377,7 @@ struct CState: public State, public interface::Server
|
|||||||
files_to_watch.insert(files_to_watch.end(), includes.begin(), includes.end());
|
files_to_watch.insert(files_to_watch.end(), includes.begin(), includes.end());
|
||||||
|
|
||||||
if(m_module_file_watches.count(info.name) == 0){
|
if(m_module_file_watches.count(info.name) == 0){
|
||||||
sp_<interface::MultiFileWatch> w(interface::createMultiFileWatch());
|
sp_<interface::FileWatch> w(interface::createFileWatch());
|
||||||
for(const ss_ &watch_path : files_to_watch){
|
for(const ss_ &watch_path : files_to_watch){
|
||||||
ss_ dir_path = interface::Filesystem::strip_file_name(watch_path);
|
ss_ dir_path = interface::Filesystem::strip_file_name(watch_path);
|
||||||
w->add(dir_path, [this, info, watch_path](const ss_ &modified_path){
|
w->add(dir_path, [this, info, watch_path](const ss_ &modified_path){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user