27 #ifndef SDBUS_CXX_CONVENIENCEAPICLASSES_H_
28 #define SDBUS_CXX_CONVENIENCEAPICLASSES_H_
35 #include <type_traits>
45 class PendingAsyncCall;
58 template <
typename _Function>
MethodRegistrator& implementedAs(_Function&& callback);
60 template <
typename... _String>
MethodRegistrator& withInputParamNames(_String... paramNames);
62 template <
typename... _String>
MethodRegistrator& withOutputParamNames(_String... paramNames);
69 const std::string& methodName_;
70 std::string interfaceName_;
71 std::string inputSignature_;
72 std::vector<std::string> inputParamNames_;
73 std::string outputSignature_;
74 std::vector<std::string> outputParamNames_;
75 method_callback methodCallback_;
89 template <
typename... _Args>
SignalRegistrator& withParameters(std::vector<std::string> paramNames);
90 template <
typename... _Args,
typename... _String>
SignalRegistrator& withParameters(_String... paramNames);
95 const std::string& signalName_;
96 std::string interfaceName_;
97 std::string signalSignature_;
98 std::vector<std::string> paramNames_;
119 const std::string& propertyName_;
120 std::string interfaceName_;
121 std::string propertySignature_;
122 property_get_callback getter_;
123 property_set_callback setter_;
142 const std::string& interfaceName_;
153 SignalEmitter& onInterface(
const std::string& interfaceName);
154 template <
typename... _Args>
void withArguments(_Args&&... args);
158 const std::string& signalName_;
170 MethodInvoker& onInterface(
const std::string& interfaceName);
172 template <
typename _Rep,
typename _Period>
173 MethodInvoker& withTimeout(
const std::chrono::duration<_Rep, _Period>& timeout);
174 template <
typename... _Args>
MethodInvoker& withArguments(_Args&&... args);
175 template <
typename... _Args>
void storeResultsTo(_Args&... args);
177 void dontExpectReply();
181 const std::string& methodName_;
185 bool methodCalled_{};
194 template <
typename _Rep,
typename _Period>
197 template <
typename _Function>
PendingAsyncCall uponReplyInvoke(_Function&& callback);
201 const std::string& methodName_;
211 template <
typename _Function>
void call(_Function&& callback);
215 const std::string& signalName_;
216 std::string interfaceName_;
227 const std::string& propertyName_;
235 template <
typename _Value>
void toValue(
const _Value& value);
240 const std::string& propertyName_;
241 std::string interfaceName_;