27 #ifndef SDBUS_CXX_IPROXY_H_ 28 #define SDBUS_CXX_IPROXY_H_ 41 class PendingAsyncCall;
66 virtual ~
IProxy() =
default;
81 virtual MethodCall createMethodCall(
const std::string& interfaceName,
const std::string& methodName) = 0;
106 template <
typename _Rep,
typename _Period>
107 MethodReply callMethod(
const MethodCall& message,
const std::chrono::duration<_Rep, _Period>& timeout);
125 virtual PendingAsyncCall callMethod(
const MethodCall& message, async_reply_handler asyncReplyCallback, uint64_t timeout = 0) = 0;
130 template <
typename _Rep,
typename _Period>
131 PendingAsyncCall callMethod(
const MethodCall& message, async_reply_handler asyncReplyCallback,
const std::chrono::duration<_Rep, _Period>& timeout);
142 virtual void registerSignalHandler(
const std::string& interfaceName
143 ,
const std::string& signalName
144 , signal_handler signalHandler ) = 0;
154 virtual void finishRegistration() = 0;
165 virtual void unregister() = 0;
186 [[nodiscard]]
MethodInvoker callMethod(
const std::string& methodName);
249 [[nodiscard]]
PropertyGetter getProperty(
const std::string& propertyName);
268 [[nodiscard]]
PropertySetter setProperty(
const std::string& propertyName);
273 virtual const std::string& getObjectPath()
const = 0;
306 bool isPending()
const;
309 friend internal::Proxy;
313 std::weak_ptr<void> callData_;
318 template <
typename _Rep,
typename _Period>
321 auto microsecs = std::chrono::duration_cast<std::chrono::microseconds>(timeout);
322 return callMethod(message, microsecs.count());
325 template <
typename _Rep,
typename _Period>
328 auto microsecs = std::chrono::duration_cast<std::chrono::microseconds>(timeout);
329 return callMethod(message, std::move(asyncReplyCallback), microsecs.count());
377 , std::string destination
378 , std::string objectPath );
399 [[nodiscard]] std::unique_ptr<sdbus::IProxy> createProxy( std::unique_ptr<sdbus::IConnection>&& connection
400 , std::string destination
401 , std::string objectPath );
420 [[nodiscard]] std::unique_ptr<sdbus::IProxy> createProxy( std::string destination
421 , std::string objectPath );
Definition: Message.h:192
Definition: ConvenienceApiClasses.h:188
SignalSubscriber uponSignal(const std::string &signalName)
Registers signal handler for a given signal of the proxied D-Bus object.
Definition: IProxy.h:342
AsyncMethodInvoker callMethodAsync(const std::string &methodName)
Calls method on the proxied D-Bus object asynchronously.
Definition: IProxy.h:337
Definition: ConvenienceApiClasses.h:163
std::unique_ptr< sdbus::IProxy > createProxy(sdbus::IConnection &connection, std::string destination, std::string objectPath)
Creates a proxy object for a specific remote D-Bus object.
Definition: ConvenienceApiClasses.h:219
Definition: ConvenienceApiClasses.h:230
PropertySetter setProperty(const std::string &propertyName)
Sets value of a property of the proxied D-Bus object.
Definition: IProxy.h:352
PropertyGetter getProperty(const std::string &propertyName)
Gets value of a property of the proxied D-Bus object.
Definition: IProxy.h:347
virtual MethodReply callMethod(const MethodCall &message, uint64_t timeout=0)=0
Calls method on the proxied D-Bus object.
Definition: AdaptorInterfaces.h:36
Definition: IConnection.h:47
Definition: ConvenienceApiClasses.h:206
Definition: Message.h:167