glibmm 2.30.1
Public Types | Public Member Functions | Protected Attributes
Gio::DBus::SubtreeVTable Class Reference

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_
SlotSubtreeEnumerateslot_enumerate_
SlotSubtreeIntrospectslot_introspect_
SlotSubtreeDispatchslot_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
 Glib::RefPtr<Gio::DBus::Connection>& connection, const Glib::ustring&
 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
 Glib::RefPtr<Gio::DBus::Connection>& connection, const Glib::ustring&
 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,

 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_enumerateThe slot for handling incoming method calls.
slot_introspectThe slot for getting a property.
slot_dispatchThe 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]