return std::hash<DBusClientId>()(this);
}
+const char * DBusClientId::getDBusId() {
+ return dbusId_.c_str();
+}
+
DBusMessage DBusClientId::createMessage(const std::string objectPath, const std::string interfaceName, const std::string signalName) const
{
DBusMessage returnMessage = DBusMessage::createSignal(objectPath, interfaceName, signalName);
bool operator==(DBusClientId& clientIdToCompare);
size_t hashCode();
+ const char * getDBusId();
+
DBusMessage createMessage(const std::string objectPath, const std::string interfaceName, const std::string signalName) const;
protected:
std::string dbusId_;
const bool dbusMessageSent = dbusStub.getDBusConnection()->sendDBusMessage(dbusMessage);
return dbusMessageSent;
}
+
+ template <typename _DBusStub = DBusStubAdapter>
+ static bool sendSignal( const char* target,
+ const _DBusStub& dbusStub,
+ const char* signalName,
+ const char* signalSignature,
+ const _InArgs&... inArgs) {
+ DBusMessage dbusMessage = DBusMessage::createSignal(
+ dbusStub.getObjectPath().c_str(),
+ dbusStub.getInterfaceName(),
+ signalName,
+ signalSignature);
+
+ dbusMessage.setDestination(target);
+
+ if (sizeof...(_InArgs) > 0) {
+ DBusOutputStream outputStream(dbusMessage);
+ const bool success = DBusSerializableArguments<_InArgs...>::serialize(outputStream, inArgs...);
+ if (!success) {
+ return false;
+ }
+ outputStream.flush();
+ }
+
+ const bool dbusMessageSent = dbusStub.getDBusConnection()->sendDBusMessage(dbusMessage);
+ return dbusMessageSent;
+ }
};