summaryrefslogtreecommitdiffstats
path: root/sdbusplus/vtable.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'sdbusplus/vtable.hpp')
-rw-r--r--sdbusplus/vtable.hpp61
1 files changed, 11 insertions, 50 deletions
diff --git a/sdbusplus/vtable.hpp b/sdbusplus/vtable.hpp
index 939346e..1a15526 100644
--- a/sdbusplus/vtable.hpp
+++ b/sdbusplus/vtable.hpp
@@ -113,27 +113,19 @@ constexpr auto explicit_ = SD_BUS_VTABLE_PROPERTY_EXPLICIT;
constexpr vtable_t start(decltype(vtable_t::flags) flags)
{
- vtable_t v{};
- v.type = _SD_BUS_VTABLE_START;
- v.flags = flags;
- v.x.start = decltype(v.x.start){sizeof(vtable_t)};
-
- return v;
+ return SD_BUS_VTABLE_START(flags);
}
constexpr vtable_t end()
{
- vtable_t v{};
- v.type = _SD_BUS_VTABLE_END;
-
- return v;
+ return SD_BUS_VTABLE_END;
}
constexpr vtable_t method(const char* member, const char* signature,
const char* result, sd_bus_message_handler_t handler,
decltype(vtable_t::flags) flags)
{
- return method_o(member, signature, result, handler, 0, flags);
+ return SD_BUS_METHOD(member, signature, result, handler, flags);
}
constexpr vtable_t method_o(const char* member, const char* signature,
@@ -141,36 +133,21 @@ constexpr vtable_t method_o(const char* member, const char* signature,
sd_bus_message_handler_t handler, size_t offset,
decltype(vtable_t::flags) flags)
{
- vtable_t v{};
- v.type = _SD_BUS_VTABLE_METHOD;
- v.flags = flags;
- v.x.method =
- decltype(v.x.method){member, signature, result, handler, offset};
-
- return v;
+ return SD_BUS_METHOD_WITH_OFFSET(member, signature, result, handler, offset,
+ flags);
}
constexpr vtable_t signal(const char* member, const char* signature,
decltype(vtable_t::flags) flags)
{
- vtable_t v{};
- v.type = _SD_BUS_VTABLE_SIGNAL;
- v.flags = flags;
- v.x.signal = decltype(v.x.signal){member, signature};
-
- return v;
+ return SD_BUS_SIGNAL(member, signature, flags);
}
constexpr vtable_t property(const char* member, const char* signature,
sd_bus_property_get_t get,
decltype(vtable_t::flags) flags)
{
- vtable_t v{};
- v.type = _SD_BUS_VTABLE_PROPERTY;
- v.flags = flags;
- v.x.property = decltype(v.x.property){member, signature, get, nullptr, 0};
-
- return v;
+ return SD_BUS_PROPERTY(member, signature, get, 0, flags);
}
constexpr vtable_t property(const char* member, const char* signature,
@@ -178,37 +155,21 @@ constexpr vtable_t property(const char* member, const char* signature,
sd_bus_property_set_t set,
decltype(vtable_t::flags) flags)
{
- vtable_t v{};
- v.type = _SD_BUS_VTABLE_WRITABLE_PROPERTY;
- v.flags = flags;
- v.x.property = decltype(v.x.property){member, signature, get, set, 0};
-
- return v;
+ return SD_BUS_WRITABLE_PROPERTY(member, signature, get, set, 0, flags);
}
constexpr vtable_t property_o(const char* member, const char* signature,
size_t offset, decltype(vtable_t::flags) flags)
{
- vtable_t v{};
- v.type = _SD_BUS_VTABLE_PROPERTY;
- v.flags = flags;
- v.x.property =
- decltype(v.x.property){member, signature, nullptr, nullptr, offset};
-
- return v;
+ return SD_BUS_PROPERTY(member, signature, nullptr, offset, flags);
}
constexpr vtable_t property_o(const char* member, const char* signature,
sd_bus_property_set_t set, size_t offset,
decltype(vtable_t::flags) flags)
{
- vtable_t v{};
- v.type = _SD_BUS_VTABLE_WRITABLE_PROPERTY;
- v.flags = flags;
- v.x.property =
- decltype(v.x.property){member, signature, nullptr, set, offset};
-
- return v;
+ return SD_BUS_WRITABLE_PROPERTY(member, signature, nullptr, set, offset,
+ flags);
}
} // namespace vtable
OpenPOWER on IntegriCloud