diff --git a/include/sdbus-c++/AdaptorInterfaces.h b/include/sdbus-c++/AdaptorInterfaces.h index 2131ac9..5b2a53d 100644 --- a/include/sdbus-c++/AdaptorInterfaces.h +++ b/include/sdbus-c++/AdaptorInterfaces.h @@ -130,30 +130,6 @@ namespace sdbus { getObject().unregister(); } - /*! - * @brief Adds an ObjectManager interface at the path of this D-Bus object - * - * Creates an ObjectManager interface at the specified object path on - * the connection. This is a convenient way to interrogate a connection - * to see what objects it has. - * - * @throws sdbus::Error in case of failure - */ - void addObjectManager() - { - getObject().addObjectManager(); - } - - /*! - * @brief Removes an ObjectManager interface from the path of this D-Bus object - * - * @throws sdbus::Error in case of failure - */ - void removeObjectManager() - { - getObject().removeObjectManager(); - } - protected: using base_type = AdaptorInterfaces; }; diff --git a/include/sdbus-c++/StandardInterfaces.h b/include/sdbus-c++/StandardInterfaces.h index 6c4a46f..ca68dc2 100644 --- a/include/sdbus-c++/StandardInterfaces.h +++ b/include/sdbus-c++/StandardInterfaces.h @@ -216,6 +216,7 @@ namespace sdbus { ObjectManager_adaptor(sdbus::IObject& object) : object_(object) { + object_.addObjectManager(); } public: diff --git a/tests/integrationtests/AdaptorAndProxy_test.cpp b/tests/integrationtests/AdaptorAndProxy_test.cpp index e3b8e1e..815c4c1 100644 --- a/tests/integrationtests/AdaptorAndProxy_test.cpp +++ b/tests/integrationtests/AdaptorAndProxy_test.cpp @@ -496,22 +496,8 @@ TEST_F(SdbusTestObject, EmitsPropertyChangedSignalForAllProperties) ASSERT_TRUE(waitUntil(signalReceived)); } -TEST_F(SdbusTestObject, DoesNotProvideObjectManagerInterfaceByDefault) -{ - ASSERT_THROW(m_proxy->GetManagedObjects(), sdbus::Error); -} - -TEST_F(SdbusTestObject, ProvidesObjectManagerInterfaceWhenExplicitlyAdded) -{ - m_adaptor->addObjectManager(); - - ASSERT_NO_THROW(m_proxy->GetManagedObjects()); -} - TEST_F(SdbusTestObject, GetsZeroManagedObjectsIfHasNoSubPathObjects) { - m_adaptor->addObjectManager(); - const auto objectsInterfacesAndProperties = m_proxy->GetManagedObjects(); ASSERT_THAT(objectsInterfacesAndProperties, SizeIs(0)); @@ -519,7 +505,6 @@ TEST_F(SdbusTestObject, GetsZeroManagedObjectsIfHasNoSubPathObjects) TEST_F(SdbusTestObject, GetsManagedObjectsSuccessfully) { - m_adaptor->addObjectManager(); auto subObject1 = sdbus::createObject(*s_connection, "/sub/path1"); subObject1->registerProperty("aProperty1").onInterface("org.sdbuscpp.integrationtests.iface1").withGetter([]{return uint8_t{123};}); subObject1->finishRegistration(); @@ -546,7 +531,6 @@ TEST_F(SdbusTestObject, EmitsInterfacesAddedSignalForSelectedObjectInterfaces) EXPECT_THAT(interfacesAndProperties.at(INTERFACE_NAME), SizeIs(3)); signalReceived = true; }; - m_adaptor->addObjectManager(); // ObjectManager interface needs to be activated explicitly m_adaptor->emitInterfacesAddedSignal({INTERFACE_NAME}); @@ -564,7 +548,6 @@ TEST_F(SdbusTestObject, EmitsInterfacesAddedSignalForAllObjectInterfaces) EXPECT_THAT(interfacesAndProperties.at(INTERFACE_NAME), SizeIs(3)); // 3 properties under INTERFACE_NAME signalReceived = true; }; - m_adaptor->addObjectManager(); // ObjectManager interface needs to be activated explicitly m_adaptor->emitInterfacesAddedSignal(); @@ -582,7 +565,6 @@ TEST_F(SdbusTestObject, EmitsInterfacesRemovedSignalForSelectedObjectInterfaces) EXPECT_THAT(interfaces[0], Eq(INTERFACE_NAME)); signalReceived = true; }; - m_adaptor->addObjectManager(); // ObjectManager interface needs to be activated explicitly m_adaptor->emitInterfacesRemovedSignal({INTERFACE_NAME}); @@ -599,7 +581,6 @@ TEST_F(SdbusTestObject, EmitsInterfacesRemovedSignalForAllObjectInterfaces) ASSERT_THAT(interfaces, SizeIs(5)); // INTERFACE_NAME + 4 standard interfaces signalReceived = true; }; - m_adaptor->addObjectManager(); // ObjectManager interface needs to be activated explicitly m_adaptor->emitInterfacesRemovedSignal(); diff --git a/tests/integrationtests/adaptor-glue.h b/tests/integrationtests/adaptor-glue.h index 45371e6..63a09cc 100644 --- a/tests/integrationtests/adaptor-glue.h +++ b/tests/integrationtests/adaptor-glue.h @@ -211,6 +211,19 @@ R"delimiter( + + + + + + + + + + + + +