forked from Kistler-Group/sdbus-cpp
Add object proxy factory overload that takes unique_ptr to connection
This commit is contained in:
@ -225,6 +225,27 @@ namespace sdbus {
|
|||||||
, std::string destination
|
, std::string destination
|
||||||
, std::string objectPath );
|
, std::string objectPath );
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @brief Creates object proxy instance
|
||||||
|
*
|
||||||
|
* @param[in] connection D-Bus connection to be used by the proxy object
|
||||||
|
* @param[in] destination Bus name that provides a D-Bus object
|
||||||
|
* @param[in] objectPath Path of the D-Bus object
|
||||||
|
* @return Pointer to the object proxy instance
|
||||||
|
*
|
||||||
|
* The provided connection will be used by the proxy to issue calls against the object,
|
||||||
|
* and signals, if any, will be subscribed to on this connection. Object proxy becomes
|
||||||
|
* an exclusive owner of this connection.
|
||||||
|
*
|
||||||
|
* Code example:
|
||||||
|
* @code
|
||||||
|
* auto proxy = sdbus::createObjectProxy(std::move(connection), "com.kistler.foo", "/com/kistler/foo");
|
||||||
|
* @endcode
|
||||||
|
*/
|
||||||
|
std::unique_ptr<sdbus::IObjectProxy> createObjectProxy( std::unique_ptr<sdbus::IConnection>&& connection
|
||||||
|
, std::string destination
|
||||||
|
, std::string objectPath );
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Creates object proxy instance that uses its own D-Bus connection
|
* @brief Creates object proxy instance that uses its own D-Bus connection
|
||||||
*
|
*
|
||||||
|
@ -166,6 +166,20 @@ std::unique_ptr<sdbus::IObjectProxy> createObjectProxy( IConnection& connection
|
|||||||
, std::move(objectPath) );
|
, std::move(objectPath) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<sdbus::IObjectProxy> createObjectProxy( std::unique_ptr<IConnection>&& connection
|
||||||
|
, std::string destination
|
||||||
|
, std::string objectPath )
|
||||||
|
{
|
||||||
|
auto* sdbusConnection = dynamic_cast<sdbus::internal::IConnection*>(connection.get());
|
||||||
|
SDBUS_THROW_ERROR_IF(!sdbusConnection, "Connection is not a real sdbus-c++ connection", EINVAL);
|
||||||
|
|
||||||
|
connection.release();
|
||||||
|
|
||||||
|
return std::make_unique<sdbus::internal::ObjectProxy>( std::unique_ptr<sdbus::internal::IConnection>(sdbusConnection)
|
||||||
|
, std::move(destination)
|
||||||
|
, std::move(objectPath) );
|
||||||
|
}
|
||||||
|
|
||||||
std::unique_ptr<sdbus::IObjectProxy> createObjectProxy( std::string destination
|
std::unique_ptr<sdbus::IObjectProxy> createObjectProxy( std::string destination
|
||||||
, std::string objectPath )
|
, std::string objectPath )
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user