#ifndef _MAP_UPDATER_H_INCLUDED #define _MAP_UPDATER_H_INCLUDED #include #include #include "DelayExecutor.h" class Map; class MapUpdater { public: MapUpdater(); virtual ~MapUpdater(); friend class MapUpdateRequest; int schedule_update(Map& map, ACE_UINT32 diff); int wait(); int activate(size_t num_threads); int deactivate(); bool activated(); private: DelayExecutor m_executor; ACE_Condition_Thread_Mutex m_condition; ACE_Thread_Mutex m_mutex; size_t pending_requests; void update_finished(); }; #endif //_MAP_UPDATER_H_INCLUDED