Чтобы быть более конкретным, мне нужно отправлять данные на сервер каждые n секунд, а если данные не могут быть отправлены, то сохранять их в файл каждые m секунд.
- Нужно ли мне оформлять их по-другому? как мне спроектировать классы, чтобы избавиться от циклической зависимости (между Менеджером и задачами)
- Может быть, у вас есть идеи, как проще отправлять и сохранять?
class Manager {
Poco::AutoPtr sendTask;
Poco::AutoPtr saveTask;
Poco::Util::Timer timer;
public:
void start() {
timer.scheduleAtFixedRate(sendTask, 15000, 15000);
}
void setSendTask() {
timer.cancel();
sendTaskPtr_.reset(new SendTimerTask( sender_, saver_, *this, agent_ ));
timer.scheduleAtFixedRate(sendTaskPtr_, 0, 15000);
}
void setSaveTask() {
timer.cancel();
saveTaskPtr_.reset(new SaveTimerTask( saver_, sender_, *this, agent_ ));
timer.scheduleAtFixedRate(saveTaskPtr_, 0, 20000);
}
};
class SendTask : public Poco::Util::TimerTask{
public:
void run() override {
// sending to server
if (condition) {
manager.setSaveTask();
}
}
private:
Manager manager;
};
Подробнее здесь: https://stackoverflow.com/questions/792 ... livered-th
Мобильная версия