summaryrefslogtreecommitdiff
path: root/include/CommonAPI/DBus/DBusProxy.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/CommonAPI/DBus/DBusProxy.hpp')
-rw-r--r--include/CommonAPI/DBus/DBusProxy.hpp29
1 files changed, 14 insertions, 15 deletions
diff --git a/include/CommonAPI/DBus/DBusProxy.hpp b/include/CommonAPI/DBus/DBusProxy.hpp
index 072e356..cc9bd06 100644
--- a/include/CommonAPI/DBus/DBusProxy.hpp
+++ b/include/CommonAPI/DBus/DBusProxy.hpp
@@ -64,12 +64,12 @@ public:
const std::string& interfaceName,
const std::string& interfaceMemberName,
const std::string& interfaceMemberSignature,
- DBusProxyConnection::DBusSignalHandler* dbusSignalHandler,
+ std::weak_ptr<DBusProxyConnection::DBusSignalHandler> dbusSignalHandler,
uint32_t tag);
COMMONAPI_EXPORT void insertSelectiveSubscription(
const std::string& interfaceMemberName,
- DBusProxyConnection::DBusSignalHandler* dbusSignalHandler,
+ std::weak_ptr<DBusProxyConnection::DBusSignalHandler> dbusSignalHandler,
uint32_t tag, std::string interfaceMemberSignature);
COMMONAPI_EXPORT void unsubscribeFromSelectiveBroadcast(const std::string& eventName,
DBusProxyConnection::DBusSignalHandlerToken subscription,
@@ -82,7 +82,7 @@ public:
const std::string &interfaceName,
const std::string &signalName,
const std::string &signalSignature,
- DBusProxyConnection::DBusSignalHandler *dbusSignalHandler,
+ std::weak_ptr<DBusProxyConnection::DBusSignalHandler> dbusSignalHandler,
const bool justAddFilter);
COMMONAPI_EXPORT virtual DBusProxyConnection::DBusSignalHandlerToken addSignalMemberHandler(
@@ -91,25 +91,25 @@ public:
const std::string &signalName,
const std::string &signalSignature,
const std::string &getMethodName,
- DBusProxyConnection::DBusSignalHandler *dbusSignalHandler,
+ std::weak_ptr<DBusProxyConnection::DBusSignalHandler> dbusSignalHandler,
const bool justAddFilter);
COMMONAPI_EXPORT virtual bool removeSignalMemberHandler(
const DBusProxyConnection::DBusSignalHandlerToken &_dbusSignalHandlerToken,
- const DBusProxyConnection::DBusSignalHandler *_dbusSignalHandler = NULL);
+ const DBusProxyConnection::DBusSignalHandler* _dbusSignalHandler = NULL);
COMMONAPI_EXPORT virtual void getCurrentValueForSignalListener(
const std::string &getMethodName,
- DBusProxyConnection::DBusSignalHandler *dbusSignalHandler,
+ std::weak_ptr<DBusProxyConnection::DBusSignalHandler> dbusSignalHandler,
const uint32_t subscription);
COMMONAPI_EXPORT virtual void freeDesktopGetCurrentValueForSignalListener(
- DBusProxyConnection::DBusSignalHandler *dbusSignalHandler,
+ std::weak_ptr<DBusProxyConnection::DBusSignalHandler> dbusSignalHandler,
const uint32_t subscription,
const std::string &interfaceName,
const std::string &propertyName);
- COMMONAPI_EXPORT virtual void notifySpecificListener(std::weak_ptr<DBusProxy> _dbusProxy,
+ COMMONAPI_EXPORT static void notifySpecificListener(std::weak_ptr<DBusProxy> _dbusProxy,
const ProxyStatusEvent::Listener &_listener,
const ProxyStatusEvent::Subscription _subscription);
@@ -120,21 +120,22 @@ private:
const std::string,
const std::string,
const std::string,
- DBusProxyConnection::DBusSignalHandler*,
+ std::weak_ptr<DBusProxyConnection::DBusSignalHandler>,
const bool,
bool
> SignalMemberHandlerTuple;
COMMONAPI_EXPORT DBusProxy(const DBusProxy &) = delete;
- COMMONAPI_EXPORT void onDBusServiceInstanceStatus(const AvailabilityStatus& availabilityStatus);
+ COMMONAPI_EXPORT void onDBusServiceInstanceStatus(std::shared_ptr<DBusProxy> _proxy,
+ const AvailabilityStatus& availabilityStatus);
COMMONAPI_EXPORT void signalMemberCallback(const CallStatus dbusMessageCallStatus,
const DBusMessage& dbusMessage,
- DBusProxyConnection::DBusSignalHandler* dbusSignalHandlers,
+ std::weak_ptr<DBusProxyConnection::DBusSignalHandler> dbusSignalHandlers,
const uint32_t tag);
COMMONAPI_EXPORT void signalInitialValueCallback(const CallStatus dbusMessageCallStatus,
const DBusMessage& dbusMessage,
- DBusProxyConnection::DBusSignalHandler* dbusSignalHandlers,
+ std::weak_ptr<DBusProxyConnection::DBusSignalHandler> dbusSignalHandlers,
const uint32_t tag);
COMMONAPI_EXPORT void addSignalMemberHandlerToQueue(SignalMemberHandlerTuple& _signalMemberHandler);
@@ -155,7 +156,7 @@ private:
mutable std::mutex signalMemberHandlerQueueMutex_;
std::map<std::string,
- std::tuple<DBusProxyConnection::DBusSignalHandler*, uint32_t,
+ std::tuple<std::weak_ptr<DBusProxyConnection::DBusSignalHandler>, uint32_t,
std::string>> selectiveBroadcastHandlers;
mutable std::mutex selectiveBroadcastHandlersMutex_;
@@ -170,8 +171,6 @@ private:
std::promise<AvailabilityStatus>
> AvailabilityTimeout_t;
mutable std::list<AvailabilityTimeout_t> timeouts_;
-
- std::weak_ptr<DBusProxy> selfReference_;
};