22 #include <unordered_map> 47 bool valid()
const {
return handler_.get();}
60 using map_t = std::unordered_map<std::string, handler_list>;
61 using id_map_t = std::unordered_map<std::string, weak_handler_ptr>;
82 void finish_adding_event_handler(
handler_ptr new_handler);
86 static std::string standardize_name(
const std::string& name);
117 pending_event_handler add_event_handler(
const std::string& name,
const std::string&
id,
bool repeat,
bool is_menu_item =
false);
120 void remove_event_handler(
const std::string&
id);
128 void clean_up_expired_handlers(
const std::string& event_name);
131 const handler_ptr get_event_handler_by_id(
const std::string&
id);
136 return active_.size();
handler_list & get_dynamic()
Access to the handlers with varying event names.
Represents a handler that is about to be added to the events manager but is still waiting for some da...
std::unordered_map< std::string, handler_list > map_t
pending_event_handler & operator=(const pending_event_handler &)=delete
pending_event_handler(event_handlers &list, handler_ptr handler)
bool valid() const
Check if this handler is valid.
id_map_t id_map_
Allows quick locating of handlers by id.
Definitions for the interface to Wesnoth Markup Language (WML).
const handler_queue_t & get_active() const
Read-only access to the active event handlers.
std::deque< handler_ptr > handler_queue_t
handler_queue_t & get_active()
std::size_t size() const
The number of active event handlers.
handler_list dynamic_
Active event handlers with variables in their event names.
handler_queue_t active_
Active event handlers.
std::unordered_map< std::string, weak_handler_ptr > id_map_t
map_t by_name_
Active event handlers with fixed event names, organized by event name.
event_handler * operator->()
Access the event handler.
std::list< weak_handler_ptr > handler_list
event_handler & operator*()
std::shared_ptr< event_handler > handler_ptr
friend pending_event_handler
pending_event_handler(const pending_event_handler &)=delete