9 #include <boost/asio.hpp> 10 #include <boost/filesystem.hpp> 36 : path(p), type(t) { }
38 const char* type_cstr()
const 41 case boost::asio::dir_monitor_event::added:
return "ADDED";
42 case boost::asio::dir_monitor_event::removed:
return "REMOVED";
43 case boost::asio::dir_monitor_event::modified:
return "MODIFIED";
44 case boost::asio::dir_monitor_event::renamed_old_name:
return "RENAMED (OLD NAME)";
45 case boost::asio::dir_monitor_event::renamed_new_name:
return "RENAMED (NEW NAME)";
47 default:
return "UNKNOWN";
51 boost::filesystem::path path;
57 os <<
"dir_monitor_event " << ev.type_cstr() <<
" " << ev.path;
61 template <
typename Service>
63 :
public boost::asio::basic_io_object<Service>
67 : boost::asio::basic_io_object<Service>(io_service)
71 void add_directory(
const std::string &dirname)
73 this->get_service().add_directory(this->get_implementation(), dirname);
76 void remove_directory(
const std::string &dirname)
78 this->get_service().remove_directory(this->get_implementation(), dirname);
83 boost::system::error_code ec;
84 dir_monitor_event ev = this->get_service().monitor(this->get_implementation(), ec);
85 boost::asio::detail::throw_error(ec);
91 return this->get_service().monitor(this->get_implementation(), ec);
94 template <
typename Handler>
95 void async_monitor(Handler handler)
97 this->get_service().async_monitor(this->get_implementation(), handler);
Definition: basic_dir_monitor.hpp:16
Definition: basic_dir_monitor.hpp:13
event_type
Definition: basic_dir_monitor.hpp:18
In some cases a recursive scan of directory under dirname is required.
Definition: basic_dir_monitor.hpp:29
Definition: basic_dir_monitor.hpp:62