glibmm: Gio::DBus::SubtreeVTable Class Reference

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

#include <giomm/dbussubtreevtable.h>

Public Types

using SlotSubtreeEnumerate = sigc::slot < std::vector < Glib::ustring >, const Glib::RefPtr < Connection >&, const Glib::ustring &, const Glib::ustring & >
The type for a slot which handles enumerating child nodes. More...

using SlotSubtreeIntrospect = sigc::slot < std::vector < Glib::RefPtr < Gio::DBus::InterfaceInfo > >, const Glib::RefPtr < Connection >&, const Glib::ustring &, const Glib::ustring &, const Glib::ustring & >
The type for a slot which handles introspecting a child node. More...

using SlotSubtreeDispatch = sigc::slot < const InterfaceVTable *, const Glib::RefPtr < Connection >&, const Glib::ustring &, const Glib::ustring &, const Glib::ustring &, const Glib::ustring & >
The type for a slot which handles dispatching a remote call on a child node. More...

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. More...

SubtreeVTable (const SubtreeVTable & other)=delete
SubtreeVTable & operator= (const SubtreeVTable & other)=delete
SubtreeVTable ( SubtreeVTable && other) noexcept
SubtreeVTable & operator= ( SubtreeVTable && other) noexcept
virtual ~SubtreeVTable ()
Destructor. More...

GDBusSubtreeVTable* gobj ()
Provides access to the underlying C object. More...

const GDBusSubtreeVTable* gobj () const
Provides access to the underlying C object. More...

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

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
sender, const Glib::ustring & object_path, const Glib::ustring &
interface_name, const Glib::ustring & node);

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
sender, const Glib::ustring & object_path);

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,

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.
Gio::DBus::SubtreeVTable::SubtreeVTable ( const SubtreeVTable & other )
delete
Gio::DBus::SubtreeVTable::SubtreeVTable ( SubtreeVTable && other )
noexcept
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.

SubtreeVTable & Gio::DBus::SubtreeVTable::operator= ( const SubtreeVTable & other )
delete
SubtreeVTable & Gio::DBus::SubtreeVTable::operator= ( SubtreeVTable && other )
noexcept

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