namespace CommonAPI {
namespace DBus {
+DBusConnectionStatusEvent::DBusConnectionStatusEvent(DBusConnection* dbusConnection):
+ dbusConnection_(dbusConnection) {
+}
+
+void DBusConnectionStatusEvent::onListenerAdded(const CancellableListener& listener) {
+ if (dbusConnection_->isConnected())
+ listener(AvailabilityStatus::AVAILABLE);
+}
+
DBusObjectPathVTable DBusConnection::libdbusObjectPathVTable_ = {
NULL, // no need to handle unregister callbacks
DBusConnection::DBusConnection(BusType busType) :
busType_(busType),
libdbusConnection_(NULL),
+ dbusConnectionStatusEvent_(this),
isLibdbusSignalFilterAdded_(false),
stopDispatching_(false) {
dbus_threads_init_default();
DBusConnection::DBusConnection(::DBusConnection* libDbusConnection) :
busType_(WRAPPED),
libdbusConnection_(libDbusConnection),
+ dbusConnectionStatusEvent_(this),
isLibdbusSignalFilterAdded_(false),
stopDispatching_(false) {
dbus_threads_init_default();
namespace CommonAPI {
namespace DBus {
-class DBusConnection;
class DBusObjectManager;
class DBusConnectionStatusEvent: public DBusProxyConnection::ConnectionStatusEvent {
friend class DBusConnection;
+
+ public:
+ DBusConnectionStatusEvent(DBusConnection* dbusConnection);
+
+ protected:
+ virtual void onListenerAdded(const CancellableListener& listener);
+
+ DBusConnection* dbusConnection_;
};