From 4a67a2cc5960edd7b9a2c9e5592ac4c9ca453719 Mon Sep 17 00:00:00 2001 From: inpos Date: Thu, 10 Mar 2016 15:26:19 +0300 Subject: [PATCH] alert_manager.hpp --- libpyrr/headers/alert_manager_h.py | 65 ++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 libpyrr/headers/alert_manager_h.py diff --git a/libpyrr/headers/alert_manager_h.py b/libpyrr/headers/alert_manager_h.py new file mode 100644 index 0000000..0ec45da --- /dev/null +++ b/libpyrr/headers/alert_manager_h.py @@ -0,0 +1,65 @@ +class plugin(object): + pass + +class alert_manager(object): + operator = '(alert_manager const&)' + m_mutex = None + m_condition = None + m_alert_mask = 0 + m_queue_size_limit = 0 + m_generation = 0 + m_alerts = [] + m_allocations = [] + def __init__(self, queue_limit, alert_mask = 'alert::error_notification'): # XXX + pass + def emplace_alert(self, *args): + ''' + mutex::scoped_lock lock(m_mutex); + // don't add more than this number of alerts, unless it's a + // high priority alert, in which case we try harder to deliver it + // for high priority alerts, double the upper limit + if (m_alerts[m_generation].size() >= m_queue_size_limit + * (1 + T::priority)) + return; + + T alert(m_allocations[m_generation], std::forward(args)...); + m_alerts[m_generation].push_back(alert); + + maybe_notify(&alert, lock); +''' + def pending(self): + pass + def get_all(self, alerts): + pass + def should_post(self): + ''' + mutex::scoped_lock lock(m_mutex); + if (m_alerts[m_generation].size() >= m_queue_size_limit + * (1 + T::priority)) + { + return false; + } + return (m_alert_mask & T::static_category) != 0; +''' + def wait_for_alert(self): + pass + def set_alert_mask(self, m): + ''' + mutex::scoped_lock lock(m_mutex); + m_alert_mask = m; +''' + def alert_queue_size_limit(self): + return m_queue_size_limit + def set_alert_queue_size_limit(self, queue_size_limit_): + pass + def set_notify_function(self, fun): + pass + def maybe_notify(self): + pass + def m_notify(self): + pass + + + + + \ No newline at end of file