27#ifndef SDBUS_CXX_CONVENIENCEAPICLASSES_H_
28#define SDBUS_CXX_CONVENIENCEAPICLASSES_H_
48 class PendingAsyncCall;
57 void forInterface(std::string interfaceName);
59 [[nodiscard]] Slot forInterface(std::string interfaceName,
return_slot_t);
67 std::vector<VTableItem> vtable_;
76 template <
typename... _Args>
void withArguments(_Args&&... args);
88 const char* signalName_;
100 template <
typename _Rep,
typename _Period>
101 MethodInvoker& withTimeout(
const std::chrono::duration<_Rep, _Period>& timeout);
102 template <
typename... _Args>
MethodInvoker& withArguments(_Args&&... args);
103 template <
typename... _Args>
void storeResultsTo(_Args&... args);
104 void dontExpectReply();
116 const char* methodName_;
120 bool methodCalled_{};
130 template <
typename _Rep,
typename _Period>
133 template <
typename _Function>
PendingAsyncCall uponReplyInvoke(_Function&& callback);
134 template <
typename _Function> [[nodiscard]] Slot uponReplyInvoke(_Function&& callback,
return_slot_t);
138 template <
typename... _Args> std::future<future_return_t<_Args...>> getResultAsFuture();
144 template <
typename _Function> async_reply_handler makeAsyncReplyHandler(_Function&& callback);
148 const char* methodName_;
159 template <
typename _Function>
void call(_Function&& callback);
160 template <
typename _Function> [[nodiscard]] Slot call(_Function&& callback,
return_slot_t);
166 template <
typename _Function> signal_handler makeSignalHandler(_Function&& callback);
170 const char* signalName_;
171 const char* interfaceName_{};
177 Variant onInterface(std::string_view interfaceName);
183 static constexpr const char* DBUS_PROPERTIES_INTERFACE_NAME =
"org.freedesktop.DBus.Properties";
187 std::string_view propertyName_;
194 template <
typename _Function>
PendingAsyncCall uponReplyInvoke(_Function&& callback);
195 template <
typename _Function> [[nodiscard]] Slot uponReplyInvoke(_Function&& callback,
return_slot_t);
196 std::future<Variant> getResultAsFuture();
202 static constexpr const char* DBUS_PROPERTIES_INTERFACE_NAME =
"org.freedesktop.DBus.Properties";
206 std::string_view propertyName_;
207 std::string_view interfaceName_;
214 template <
typename _Value>
void toValue(
const _Value& value);
216 void toValue(
const Variant& value);
223 static constexpr const char* DBUS_PROPERTIES_INTERFACE_NAME =
"org.freedesktop.DBus.Properties";
227 std::string_view propertyName_;
228 std::string_view interfaceName_;
237 template <
typename _Function>
PendingAsyncCall uponReplyInvoke(_Function&& callback);
238 template <
typename _Function> [[nodiscard]] Slot uponReplyInvoke(_Function&& callback,
return_slot_t);
239 std::future<void> getResultAsFuture();
245 static constexpr const char* DBUS_PROPERTIES_INTERFACE_NAME =
"org.freedesktop.DBus.Properties";
249 std::string_view propertyName_;
250 std::string_view interfaceName_;
257 std::map<PropertyName, Variant> onInterface(std::string_view interfaceName);
263 static constexpr const char* DBUS_PROPERTIES_INTERFACE_NAME =
"org.freedesktop.DBus.Properties";
273 template <
typename _Function>
PendingAsyncCall uponReplyInvoke(_Function&& callback);
274 template <
typename _Function> [[nodiscard]] Slot uponReplyInvoke(_Function&& callback,
return_slot_t);
275 std::future<std::map<PropertyName, Variant>> getResultAsFuture();
281 static constexpr const char* DBUS_PROPERTIES_INTERFACE_NAME =
"org.freedesktop.DBus.Properties";
285 std::string_view interfaceName_;
Definition ConvenienceApiClasses.h:255
Definition ConvenienceApiClasses.h:270
Definition ConvenienceApiClasses.h:124
Definition ConvenienceApiClasses.h:191
Definition ConvenienceApiClasses.h:232
Definition ConvenienceApiClasses.h:94
Definition ConvenienceApiClasses.h:175
Definition ConvenienceApiClasses.h:211
Definition ConvenienceApiClasses.h:71
Definition ConvenienceApiClasses.h:154
Definition ConvenienceApiClasses.h:54
Definition TypeTraits.h:107
Definition TypeTraits.h:88