53 void sendDBusReply(
const std::string& destination, dbus_uint32_t serial,
const T& argument)
58 m_dbusConnection->sendMessage(reply);
63 void sendDBusReply(
const std::string& destination, dbus_uint32_t serial,
const std::vector<T>& array)
68 m_dbusConnection->sendMessage(reply);
78 static void dbusObjectPathUnregisterFunction(DBusConnection* connection,
void* data);
79 static DBusHandlerResult dbusObjectPathMessageFunction(DBusConnection* connection, DBusMessage* message,
void* data);
81 std::shared_ptr<CDBusConnection> m_dbusConnection;
82 std::string m_interfaceName;
83 std::string m_objectPath;
86 std::deque<std::function<void()>> m_queuedDBusCalls;
88 const DBusObjectPathVTable m_dbusObjectPathVTable = {dbusObjectPathUnregisterFunction, dbusObjectPathMessageFunction,
nullptr,
nullptr,
nullptr,
nullptr};
void appendArgument(bool value)
Append argument.
static CDBusMessage createReply(const std::string &destination, dbus_uint32_t serial)
Creates a DBus message containing a DBus reply.
void beginArgumentWrite()
Begin writing argument.
virtual void dbusDisconnectedHandler()
Handler which is called when DBusConnection disconnected.
void registerDBusObjectPath(const std::string &interfaceName, const std::string &objectPath)
Register itself with interfaceName and objectPath.
void sendDBusMessage(const CDBusMessage &message)
Send DBus message.
void invokeQueuedDBusCalls()
Invoke all pending DBus calls. They will be executed in the calling thread.
void sendDBusReply(const std::string &destination, dbus_uint32_t serial, const T &argument)
Send DBus reply.
void sendDBusSignal(const std::string &name)
Send DBus signal.
virtual void dbusConnectedHandler()
Handler which is called when DBusCconnection is established.
CDBusObject()=default
Constructor.
void setDBusConnection(const std::shared_ptr< CDBusConnection > &dbusConnection)
Set the assigned DBus connection.
void maybeSendEmptyDBusReply(bool wantsReply, const std::string &destination, dbus_uint32_t serial)
Maybe sends an empty DBus reply (acknowledgement)
virtual DBusHandlerResult dbusMessageHandler(const CDBusMessage &message)=0
DBus message handler.
virtual ~CDBusObject()
Destructor.
void sendDBusReply(const std::string &destination, dbus_uint32_t serial, const std::vector< T > &array)
Send DBus reply.
void queueDBusCall(const std::function< void()> &func)
Queue a DBus call to be executed in a different thread.