summaryrefslogtreecommitdiff
path: root/include/CommonAPI/DBus/DBusMultiEvent.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/CommonAPI/DBus/DBusMultiEvent.hpp')
-rw-r--r--include/CommonAPI/DBus/DBusMultiEvent.hpp122
1 files changed, 61 insertions, 61 deletions
diff --git a/include/CommonAPI/DBus/DBusMultiEvent.hpp b/include/CommonAPI/DBus/DBusMultiEvent.hpp
index 8215d4f..db0c1e5 100644
--- a/include/CommonAPI/DBus/DBusMultiEvent.hpp
+++ b/include/CommonAPI/DBus/DBusMultiEvent.hpp
@@ -18,98 +18,98 @@
namespace CommonAPI {
namespace DBus {
-template <typename... _Arguments>
+template <typename... Arguments_>
class DBusMultiEvent {
public:
- typedef std::function<SubscriptionStatus(const std::string&, const _Arguments&...)> Listener;
- typedef std::unordered_multimap<std::string, Listener> ListenersMap;
- typedef typename ListenersMap::iterator Subscription;
+ typedef std::function<SubscriptionStatus(const std::string&, const Arguments_&...)> Listener;
+ typedef std::unordered_multimap<std::string, Listener> ListenersMap;
+ typedef typename ListenersMap::iterator Subscription;
- virtual ~DBusMultiEvent() {}
+ virtual ~DBusMultiEvent() {}
- Subscription subscribeAll(const Listener& listener);
- Subscription subscribe(const std::string& eventName, const Listener& listener);
+ Subscription subscribeAll(const Listener& listener);
+ Subscription subscribe(const std::string& eventName, const Listener& listener);
- void unsubscribe(Subscription listenerSubscription);
+ void unsubscribe(Subscription listenerSubscription);
protected:
- SubscriptionStatus notifyListeners(const std::string& name, const _Arguments&... eventArguments);
+ SubscriptionStatus notifyListeners(const std::string& name, const Arguments_&... eventArguments);
- virtual void onFirstListenerAdded(const std::string& name, const Listener& listener) { }
- virtual void onListenerAdded(const std::string& name, const Listener& listener) { }
+ virtual void onFirstListenerAdded(const std::string& name, const Listener& listener) { }
+ virtual void onListenerAdded(const std::string& name, const Listener& listener) { }
- virtual void onListenerRemoved(const std::string& name, const Listener& listener) { }
- virtual void onLastListenerRemoved(const std::string& name, const Listener& listener) { }
+ virtual void onListenerRemoved(const std::string& name, const Listener& listener) { }
+ virtual void onLastListenerRemoved(const std::string& name, const Listener& listener) { }
private:
- typedef std::pair<typename ListenersMap::iterator, typename ListenersMap::iterator> IteratorRange;
- SubscriptionStatus notifyListenersRange(const std::string& name, IteratorRange listenersRange, const _Arguments&... eventArguments);
+ typedef std::pair<typename ListenersMap::iterator, typename ListenersMap::iterator> IteratorRange;
+ SubscriptionStatus notifyListenersRange(const std::string& name, IteratorRange listenersRange, const Arguments_&... eventArguments);
- ListenersMap listenersMap_;
+ ListenersMap listenersMap_;
};
-template <typename... _Arguments>
-typename DBusMultiEvent<_Arguments...>::Subscription
-DBusMultiEvent<_Arguments...>::subscribeAll(const Listener& listener) {
- return subscribe(std::string(), listener);
+template <typename... Arguments_>
+typename DBusMultiEvent<Arguments_...>::Subscription
+DBusMultiEvent<Arguments_...>::subscribeAll(const Listener& listener) {
+ return subscribe(std::string(), listener);
}
-template <typename... _Arguments>
-typename DBusMultiEvent<_Arguments...>::Subscription
-DBusMultiEvent<_Arguments...>::subscribe(const std::string& eventName, const Listener& listener) {
- const bool firstListenerAdded = listenersMap_.empty();
+template <typename... Arguments_>
+typename DBusMultiEvent<Arguments_...>::Subscription
+DBusMultiEvent<Arguments_...>::subscribe(const std::string& eventName, const Listener& listener) {
+ const bool firstListenerAdded = listenersMap_.empty();
- auto listenerSubscription = listenersMap_.insert({eventName, listener});
+ auto listenerSubscription = listenersMap_.insert({eventName, listener});
- if (firstListenerAdded) {
- onFirstListenerAdded(eventName, listener);
- }
+ if (firstListenerAdded) {
+ onFirstListenerAdded(eventName, listener);
+ }
- onListenerAdded(eventName, listener);
+ onListenerAdded(eventName, listener);
- return listenerSubscription;
+ return listenerSubscription;
}
-template <typename... _Arguments>
-void DBusMultiEvent<_Arguments...>::unsubscribe(Subscription listenerSubscription) {
- const std::string name = listenerSubscription->first;
- const Listener listener = listenerSubscription->second;
+template <typename... Arguments_>
+void DBusMultiEvent<Arguments_...>::unsubscribe(Subscription listenerSubscription) {
+ const std::string name = listenerSubscription->first;
+ const Listener listener = listenerSubscription->second;
- listenersMap_.erase(listenerSubscription);
+ listenersMap_.erase(listenerSubscription);
- onListenerRemoved(name, listener);
+ onListenerRemoved(name, listener);
- const bool lastListenerRemoved = listenersMap_.empty();
- if (lastListenerRemoved)
- onLastListenerRemoved(name, listener);
+ const bool lastListenerRemoved = listenersMap_.empty();
+ if (lastListenerRemoved)
+ onLastListenerRemoved(name, listener);
}
-template <typename... _Arguments>
-SubscriptionStatus DBusMultiEvent<_Arguments...>::notifyListeners(const std::string& name, const _Arguments&... eventArguments) {
- const SubscriptionStatus subscriptionStatus = notifyListenersRange(name, listenersMap_.equal_range(name), eventArguments...);
+template <typename... Arguments_>
+SubscriptionStatus DBusMultiEvent<Arguments_...>::notifyListeners(const std::string& name, const Arguments_&... eventArguments) {
+ const SubscriptionStatus subscriptionStatus = notifyListenersRange(name, listenersMap_.equal_range(name), eventArguments...);
- if (subscriptionStatus == SubscriptionStatus::CANCEL)
- return SubscriptionStatus::CANCEL;
+ if (subscriptionStatus == SubscriptionStatus::CANCEL)
+ return SubscriptionStatus::CANCEL;
- return notifyListenersRange(name, listenersMap_.equal_range(std::string()), eventArguments...);
+ return notifyListenersRange(name, listenersMap_.equal_range(std::string()), eventArguments...);
}
-template <typename... _Arguments>
-SubscriptionStatus DBusMultiEvent<_Arguments...>::notifyListenersRange(
- const std::string& name,
- IteratorRange listenersRange,
- const _Arguments&... eventArguments) {
- for (auto iterator = listenersRange.first; iterator != listenersRange.second; iterator++) {
- const Listener& listener = iterator->second;
- const SubscriptionStatus listenerSubcriptionStatus = listener(name, eventArguments...);
-
- if (listenerSubcriptionStatus == SubscriptionStatus::CANCEL) {
- auto listenerIterator = iterator;
- listenersMap_.erase(listenerIterator);
- }
- }
-
- return listenersMap_.empty() ? SubscriptionStatus::CANCEL : SubscriptionStatus::RETAIN;
+template <typename... Arguments_>
+SubscriptionStatus DBusMultiEvent<Arguments_...>::notifyListenersRange(
+ const std::string& name,
+ IteratorRange listenersRange,
+ const Arguments_&... eventArguments) {
+ for (auto iterator = listenersRange.first; iterator != listenersRange.second; iterator++) {
+ const Listener& listener = iterator->second;
+ const SubscriptionStatus listenerSubcriptionStatus = listener(name, eventArguments...);
+
+ if (listenerSubcriptionStatus == SubscriptionStatus::CANCEL) {
+ auto listenerIterator = iterator;
+ listenersMap_.erase(listenerIterator);
+ }
+ }
+
+ return listenersMap_.empty() ? SubscriptionStatus::CANCEL : SubscriptionStatus::RETAIN;
}
} // namespace DBus