When this flag is set then its member will not be shown in the
introspection data. Also, properties with this flag set will not be
included in GetAll() responses.
for (; v->type != _SD_BUS_VTABLE_END; v++) {
+ if (v->type != _SD_BUS_VTABLE_START && (v->flags & SD_BUS_VTABLE_HIDDEN))
+ continue;
+
switch (v->type) {
case _SD_BUS_VTABLE_START:
assert(path);
assert(c);
+ if (c->vtable[0].flags & SD_BUS_VTABLE_HIDDEN)
+ return 1;
+
for (v = c->vtable+1; v->type != _SD_BUS_VTABLE_END; v++) {
if (v->type != _SD_BUS_VTABLE_PROPERTY && v->type != _SD_BUS_VTABLE_WRITABLE_PROPERTY)
continue;
+ if (v->flags & SD_BUS_VTABLE_HIDDEN)
+ continue;
+
r = sd_bus_message_open_container(reply, 'e', "sv");
if (r < 0)
return r;
empty = false;
+ if (c->vtable[0].flags & SD_BUS_VTABLE_HIDDEN)
+ continue;
+
if (!streq_ptr(previous_interface, c->interface)) {
if (previous_interface)
SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE = 1ULL << 2,
SD_BUS_VTABLE_PROPERTY_INVALIDATE_ONLY = 1ULL << 3,
SD_BUS_VTABLE_UNPRIVILEGED = 1ULL << 4,
+ SD_BUS_VTABLE_HIDDEN = 1ULL << 5,
_SD_BUS_VTABLE_CAPABILITY_MASK = 0xFFFFULL << 40
};