I'm trying to dynamically add directories from a config file before I enter my programs main loop using the ASIO dir monitor example. I've not been
able to understand the internals yet. Below is my current iteration of what
I'm trying. I have been able to get the simple examples running just like in the async.cpp file. But I can't get adding dirs dynamically working and was hoping someone could offer suggestions.
Any help much appreciated.
void my_file_handler(const boost::system::error_code &ec,
const boost::asio::dir_monitor_event &ev)
{
// event stuff ...
return;
}
boost::asio::dir_monitor *dm;
boost::asio::io_service io_service;
vector<boost::asio::dir_monitor *> vecdm;
for (vector<Directories>::iterator it = dirs->begin();
it != dirs->end(); ++it) {
dm = new boost::asio::dir_monitor(io_service);
dm->add_directory((*it).abs_dir_path);
vecdm.push_back(dm);
}
boost::thread t =
boost::thread(boost::bind(&boost::asio::io_service::run,
boost::ref(io_service)));
while (true) {
// MAIN PROGRAM LOOP
for (vector<boost::asio::dir_monitor *>::iterator it =
vecdm.begin(); it != vecdm.end(); ++it) {
(*it)->async_monitor(my_file_handler);
}
io_service.reset();
// DO PROGRAM STUFF ...
}
~
~