Add support for ObjectManager and other standard D-Bus interfaces (#55)

Fixes #50
This commit is contained in:
Stanislav Angelovič
2019-05-29 22:28:15 +02:00
committed by GitHub
parent 4b0c23204d
commit 91fa35140b
36 changed files with 541 additions and 235 deletions
+6 -1
View File
@@ -80,6 +80,10 @@ namespace internal {
sdbus::IConnection& getConnection() const override;
void addObjectManager() override;
void removeObjectManager() override;
bool hasObjectManager() const override;
private:
using InterfaceName = std::string;
struct InterfaceData
@@ -112,7 +116,7 @@ namespace internal {
std::vector<sd_bus_vtable> vtable_;
Flags flags_;
std::unique_ptr<sd_bus_slot, std::function<void(sd_bus_slot*)>> slot_;
SlotPtr slot_;
};
static const std::vector<sd_bus_vtable>& createInterfaceVTable(InterfaceData& interfaceData);
@@ -143,6 +147,7 @@ namespace internal {
sdbus::internal::IConnection& connection_;
std::string objectPath_;
std::map<InterfaceName, InterfaceData> interfaces_;
SlotPtr objectManagerSlot_;
};
}