# Gio::DBus::SubtreeVTable Class Reference
D-Bus API

This represents a virtual table for subtrees registered with Gio::DBus::Connection::register_subtree(). More...

`#include <giomm/dbussubtreevtable.h>`

List of all members.

## Public Types

typedef sigc::slot < std::vector< Glib::ustring > , const Glib::RefPtr < Connection >&, const Glib::ustring&, const Glib::ustring& > | SlotSubtreeEnumerate
| The type for a slot which handles enumerating child nodes.
typedef sigc::slot < std::vector< Glib::RefPtr < Gio::DBus::InterfaceInfo > >, const Glib::RefPtr < Connection >&, const Glib::ustring&, const Glib::ustring&, const Glib::ustring& > | SlotSubtreeIntrospect
| The type for a slot which handles introspecting a child node.
typedef sigc::slot< const InterfaceVTable*, const Glib::RefPtr< Connection > &, const Glib::ustring &, const Glib::ustring &, const Glib::ustring &, const Glib::ustring& > | SlotSubtreeDispatch
| The type for a slot which handles dispatching a remote call on a child node.

## Public Member Functions

| SubtreeVTable (const SlotSubtreeEnumerate& slot_enumerate, const SlotSubtreeIntrospect& slot_introspect=SlotSubtreeIntrospect(), const SlotSubtreeDispatch& slot_dispatch=SlotSubtreeDispatch())
| Constructs a new SubtreeVTable using specified slots.
virtual | ~SubtreeVTable ()
| Destructor.
GDBusSubtreeVTable* | gobj ()
| Provides access to the underlying C object.
const GDBusSubtreeVTable* | gobj () const
| Provides access to the underlying C object.

## Protected Attributes

GDBusSubtreeVTable | gobject_
SlotSubtreeEnumerate* | slot_enumerate_
SlotSubtreeIntrospect* | slot_introspect_
SlotSubtreeDispatch* | slot_dispatch_

## Detailed Description

This represents a virtual table for subtrees registered with Gio::DBus::Connection::register_subtree().

The only correct use of this class is to declare a global instance of it (or an instance local to the main function) and pass pointers to the instance to the methods that require such a parameter. The instance can be used for multiple registrations and the memory it uses will be freed at the end of execution. Any other use (like creating an instance local to a function and using that) may cause memory leaks or errors (if the instance is destroyed too early).

Since glibmm 2.28:

## Member Typedef Documentation

typedef sigc::slot< const InterfaceVTable*, const Glib::RefPtr<Connection>&, const Glib::ustring&, const Glib::ustring&, const Glib::ustring&, const Glib::ustring& > Gio::DBus::SubtreeVTable::SlotSubtreeDispatch

The type for a slot which handles dispatching a remote call on a child node.

Subtrees are flat. node, if non-`0`, is always exactly one segment of the object path (ie: it never contains a slash).

for example,

     const Gio::DBus::InterfaceVTable* on_subtree_dispatch(const
     Glib::RefPtr<Gio::DBus::Connection>& connection, const Glib::ustring&
     sender, const Glib::ustring& object_path, const Glib::ustring&
     interface_name, const Glib::ustring& node);

typedef sigc::slot< std::vector<Glib::ustring>, const Glib::RefPtr<Connection>&, const Glib::ustring&, const Glib::ustring& > Gio::DBus::SubtreeVTable::SlotSubtreeEnumerate

The type for a slot which handles enumerating child nodes.

This slot is called when generating introspection data and also when preparing to dispatch incoming messages in the event that the Gio::DBus::SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES flag is not specified (ie: to verify that the object path is valid).

Hierarchies are not supported; the items that you return should not contain the '/' character.

For example,

     std::vector<Glib::ustring> on_subtree_enumerate(const
     Glib::RefPtr<Gio::DBus::Connection>& connection, const Glib::ustring&
     sender, const Glib::ustring& object_path);

typedef sigc::slot< std::vector< Glib::RefPtr<Gio::DBus::InterfaceInfo> >, const Glib::RefPtr<Connection>&, const Glib::ustring&, const Glib::ustring&, const Glib::ustring& > Gio::DBus::SubtreeVTable::SlotSubtreeIntrospect

The type for a slot which handles introspecting a child node.

Subtrees are flat. node, if non-`0`, is always exactly one segment of the object path (ie: it never contains a slash).

This function should return an empty vector to indicate that there is no object at this node.

If this function returns a non-empty vector, the return value is expected to be a list of InterfaceInfo structures describing the interfaces implemented by node.

for example,

     std::vector< Glib::RefPtr<Gio::DBus::InterFaceInfo> >
     on_subtree_introspect(const Glib::RefPtr<Gio::DBus::Connection>&
     connection, const Glib::ustring& sender, const Glib::ustring&
     object_path, const Glib::ustring& node);

## Constructor & Destructor Documentation

Gio::DBus::SubtreeVTable::SubtreeVTable | ( | const SlotSubtreeEnumerate & | slot_enumerate,
|  | const SlotSubtreeIntrospect & | slot_introspect = `SlotSubtreeIntrospect()`,
|  | const SlotSubtreeDispatch & | slot_dispatch = `SlotSubtreeDispatch()`
| ) |  | `[explicit]`

Constructs a new SubtreeVTable using specified slots.

Parameters:

  slot_enumerate | The slot for handling incoming method calls.
  slot_introspect | The slot for getting a property.
  slot_dispatch | The slot for setting a property.

virtual Gio::DBus::SubtreeVTable::~SubtreeVTable | ( |  | ) | `[virtual]`

Destructor.

## Member Function Documentation

GDBusSubtreeVTable* Gio::DBus::SubtreeVTable::gobj | ( |  | ) | `[inline]`

Provides access to the underlying C object.

const GDBusSubtreeVTable* Gio::DBus::SubtreeVTable::gobj | ( |  | ) | const`[inline]`

Provides access to the underlying C object.

## Member Data Documentation

GDBusSubtreeVTable Gio::DBus::SubtreeVTable::gobject_ `[protected]`

SlotSubtreeDispatch* Gio::DBus::SubtreeVTable::slot_dispatch_ `[protected]`

SlotSubtreeEnumerate* Gio::DBus::SubtreeVTable::slot_enumerate_ `[protected]`

SlotSubtreeIntrospect* Gio::DBus::SubtreeVTable::slot_introspect_ `[protected]`