forked from Kistler-Group/sdbus-cpp
This introduces strong types for `std::string`-based D-Bus types. This facilitates safer, less error-prone and more expressive API.
What previously was `auto proxy = createProxy("org.sdbuscpp.concatenator", "/org/sdbuscpp/concatenator");` is now written like `auto proxy = createProxy(ServiceName{"org.sdbuscpp.concatenator"}, ObjectPath{"/org/sdbuscpp/concatenator"});`.
These types are:
* `ObjectPath` type for the object path (the type has been around already but now is also used consistently in sdbus-c++ API for object path strings),
* `InterfaceName` type for D-Bus interface names,
* `BusName` (and its aliases `ServiceName` and `ConnectionName`) type for bus/service/connection names,
* `MemberName` (and its aliases `MethodName`, `SignalName` and `PropertyName`) type for D-Bus method, signal and property names,
* `Signature` type for the D-Bus signature (the type has been around already but now is also used consistently in sdbus-c++ API for signature strings),
* `Error::Name` type for D-Bus error names.
61 lines
1.6 KiB
C++
61 lines
1.6 KiB
C++
|
|
/*
|
|
* This file was automatically generated by sdbus-c++-xml2cpp; DO NOT EDIT!
|
|
*/
|
|
|
|
#ifndef __sdbuscpp__perftests_proxy_h__proxy__H__
|
|
#define __sdbuscpp__perftests_proxy_h__proxy__H__
|
|
|
|
#include <sdbus-c++/sdbus-c++.h>
|
|
#include <string>
|
|
#include <tuple>
|
|
|
|
namespace org {
|
|
namespace sdbuscpp {
|
|
|
|
class perftests_proxy
|
|
{
|
|
public:
|
|
static inline const sdbus::InterfaceName INTERFACE_NAME{"org.sdbuscpp.perftests"};
|
|
|
|
protected:
|
|
perftests_proxy(sdbus::IProxy& proxy)
|
|
: proxy_(&proxy)
|
|
{
|
|
}
|
|
|
|
perftests_proxy(const perftests_proxy&) = delete;
|
|
perftests_proxy& operator=(const perftests_proxy&) = delete;
|
|
perftests_proxy(perftests_proxy&&) = default;
|
|
perftests_proxy& operator=(perftests_proxy&&) = default;
|
|
|
|
~perftests_proxy() = default;
|
|
|
|
void registerProxy()
|
|
{
|
|
proxy_->uponSignal("dataSignal").onInterface(INTERFACE_NAME).call([this](const std::string& data){ this->onDataSignal(data); });
|
|
}
|
|
|
|
virtual void onDataSignal(const std::string& data) = 0;
|
|
|
|
public:
|
|
void sendDataSignals(const uint32_t& numberOfSignals, const uint32_t& signalMsgSize)
|
|
{
|
|
proxy_->callMethod("sendDataSignals").onInterface(INTERFACE_NAME).withArguments(numberOfSignals, signalMsgSize);
|
|
}
|
|
|
|
std::string concatenateTwoStrings(const std::string& string1, const std::string& string2)
|
|
{
|
|
std::string result;
|
|
proxy_->callMethod("concatenateTwoStrings").onInterface(INTERFACE_NAME).withArguments(string1, string2).storeResultsTo(result);
|
|
return result;
|
|
}
|
|
|
|
private:
|
|
sdbus::IProxy* proxy_;
|
|
};
|
|
|
|
}} // namespaces
|
|
|
|
#endif
|