summaryrefslogtreecommitdiff
path: root/include/CommonAPI/DBus/DBusSelectiveEvent.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/CommonAPI/DBus/DBusSelectiveEvent.hpp')
-rw-r--r--include/CommonAPI/DBus/DBusSelectiveEvent.hpp35
1 files changed, 20 insertions, 15 deletions
diff --git a/include/CommonAPI/DBus/DBusSelectiveEvent.hpp b/include/CommonAPI/DBus/DBusSelectiveEvent.hpp
index 65c61f9..05f2f5f 100644
--- a/include/CommonAPI/DBus/DBusSelectiveEvent.hpp
+++ b/include/CommonAPI/DBus/DBusSelectiveEvent.hpp
@@ -15,37 +15,42 @@
namespace CommonAPI {
namespace DBus {
-template<typename _EventType, typename... _Arguments>
-class DBusSelectiveEvent: public DBusEvent<_EventType, _Arguments...> {
+template<typename EventType_, typename... Arguments_>
+class DBusSelectiveEvent: public DBusEvent<EventType_, Arguments_...> {
public:
- typedef typename DBusEvent<_EventType, _Arguments...>::Listener Listener;
- typedef DBusEvent<_EventType, _Arguments...> DBusEventBase;
+ typedef typename DBusEvent<EventType_, Arguments_...>::Listener Listener;
+ typedef DBusEvent<EventType_, Arguments_...> DBusEventBase;
DBusSelectiveEvent(DBusProxy &_proxy,
- const char *_name, const char *_signature,
- std::tuple<_Arguments...> _arguments)
- : DBusEventBase(_proxy, _name, _signature, _arguments) {
+ const char *_name, const char *_signature,
+ std::tuple<Arguments_...> _arguments)
+ : DBusEventBase(_proxy, _name, _signature, _arguments) {
}
DBusSelectiveEvent(DBusProxy &_proxy,
- const char *_name, const char *_signature,
+ const char *_name, const char *_signature,
const char *_path, const char *_interface,
- std::tuple<_Arguments...> _arguments)
- : DBusEventBase(_proxy, _name, _signature, _path, _interface, _arguments) {
+ std::tuple<Arguments_...> _arguments)
+ : DBusEventBase(_proxy, _name, _signature, _path, _interface, _arguments) {
}
virtual ~DBusSelectiveEvent() {}
protected:
void onFirstListenerAdded(const Listener &) {
- bool success;
- this->subscription_
- = static_cast<DBusProxy&>(this->proxy_).subscribeForSelectiveBroadcastOnConnection(
- success, this->path_, this->interface_, this->name_, this->signature_, this);
+ bool success;
+ this->subscription_
+ = static_cast<DBusProxy&>(this->proxy_).subscribeForSelectiveBroadcastOnConnection(
+ success, this->path_, this->interface_, this->name_, this->signature_, this);
+
+ if (success == false) {
+ // Call error listener with an error code
+ this->notifyError(CommonAPI::CallStatus::SUBSCRIPTION_REFUSED);
+ }
}
void onLastListenerRemoved(const Listener &) {
- static_cast<DBusProxy&>(this->proxy_).unsubscribeFromSelectiveBroadcast(
+ static_cast<DBusProxy&>(this->proxy_).unsubscribeFromSelectiveBroadcast(
this->name_, this->subscription_, this);
}
};