glibmm 2.80.0
Public Types | Public Member Functions | Protected Attributes | List of all members
Gio::DBus::InterfaceVTable Class Reference

This represents a virtual table for handling properties and method calls for a D-Bus interface. More...

#include <giomm/dbusinterfacevtable.h>

Public Types

using SlotInterfaceMethodCall = sigc::slot< void(const Glib::RefPtr< Connection > &, const Glib::ustring &, const Glib::ustring &, const Glib::ustring &, const Glib::ustring &, const Glib::VariantContainerBase &, const Glib::RefPtr< MethodInvocation > &) >
 The type for a slot which handles a method call for a D-Bus interface. More...
 
using SlotInterfaceGetProperty = sigc::slot< void(Glib::VariantBase &, const Glib::RefPtr< Connection > &, const Glib::ustring &, const Glib::ustring &, const Glib::ustring &, const Glib::ustring &) >
 The type for a slot which handles getting a property for a D-Bus interface. More...
 
using SlotInterfaceSetProperty = sigc::slot< bool(const Glib::RefPtr< Connection > &, const Glib::ustring &, const Glib::ustring &, const Glib::ustring &, const Glib::ustring &, const Glib::VariantBase &) >
 The type for a slot which handles setting a property for a D-Bus interface. More...
 

Public Member Functions

 InterfaceVTable (const SlotInterfaceMethodCall & slot_method_call, const SlotInterfaceGetProperty & slot_get_property={}, const SlotInterfaceSetProperty & slot_set_property={})
 Constructs a new InterfaceVTable using the specified slots. More...
 
 InterfaceVTable (const InterfaceVTable & other)=delete
 
InterfaceVTableoperator= (const InterfaceVTable & other)=delete
 
 InterfaceVTable (InterfaceVTable && other) noexcept
 
InterfaceVTableoperator= (InterfaceVTable && other) noexcept
 
virtual ~InterfaceVTable ()
 Destructor. More...
 
GDBusInterfaceVTable * gobj ()
 Provides access to the underlying C object. More...
 
const GDBusInterfaceVTable * gobj () const
 Provides access to the underlying C object. More...
 

Protected Attributes

GDBusInterfaceVTable gobject_
 
SlotInterfaceMethodCallslot_method_call_
 
SlotInterfaceGetPropertyslot_get_property_
 
SlotInterfaceSetPropertyslot_set_property_
 

Detailed Description

This represents a virtual table for handling properties and method calls for a D-Bus interface.

If you want to handle getting/setting D-Bus properties asynchronously, simply register an object with the org.freedesktop.DBus.Properties D-Bus interface using Gio::DBus::Connection::register_object().

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

◆ SlotInterfaceGetProperty

The type for a slot which handles getting a property for a D-Bus interface.

for example,

void on_interface_get_property(Glib::VariantBase& property, const
sender, const Glib::ustring& object_path, const Glib::ustring&
interface_name, const Glib::ustring& property_name);
This is the base class for all Variant types.
Definition: variant.h:197
Glib::ustring has much the same interface as std::string, but contains Unicode characters encoded as ...
Definition: ustring.h:336
Exceptions
Glib::Error.

◆ SlotInterfaceMethodCall

The type for a slot which handles a method call for a D-Bus interface.

for example,

void on_interface_method_call(const Glib::RefPtr<Gio::DBus::Connection>&
connection, const Glib::ustring& sender, const Glib::ustring&
object_path, const Glib::ustring& interface_name, const Glib::ustring&
method_name, const Glib::VariantContainerBase& parameters, const
The base class for multiple-item Variants, such as Variants containing tuples or arrays,...
Definition: variant.h:731

◆ SlotInterfaceSetProperty

The type for a slot which handles setting a property for a D-Bus interface.

for example,

bool on_interface_set_property(const Glib::RefPtr<Gio::DBus::Connection>&
connection, const Glib::ustring& sender, const Glib::ustring&
object_path, const Glib::ustring& interface_name, const Glib::ustring&
property_name, const Glib::VariantBase& value);
Exceptions
Glib::Error.

Constructor & Destructor Documentation

◆ InterfaceVTable() [1/3]

Gio::DBus::InterfaceVTable::InterfaceVTable ( const SlotInterfaceMethodCall slot_method_call,
const SlotInterfaceGetProperty slot_get_property = {},
const SlotInterfaceSetProperty slot_set_property = {} 
)
explicit

Constructs a new InterfaceVTable using the specified slots.

Parameters
slot_method_callThe slot for handling incoming method calls.
slot_get_propertyThe slot for getting a property.
slot_set_propertyThe slot for setting a property.

◆ InterfaceVTable() [2/3]

Gio::DBus::InterfaceVTable::InterfaceVTable ( const InterfaceVTable other)
delete

◆ InterfaceVTable() [3/3]

Gio::DBus::InterfaceVTable::InterfaceVTable ( InterfaceVTable &&  other)
noexcept

◆ ~InterfaceVTable()

virtual Gio::DBus::InterfaceVTable::~InterfaceVTable ( )
virtual

Destructor.

Member Function Documentation

◆ gobj() [1/2]

GDBusInterfaceVTable * Gio::DBus::InterfaceVTable::gobj ( )
inline

Provides access to the underlying C object.

◆ gobj() [2/2]

const GDBusInterfaceVTable * Gio::DBus::InterfaceVTable::gobj ( ) const
inline

Provides access to the underlying C object.

◆ operator=() [1/2]

InterfaceVTable & Gio::DBus::InterfaceVTable::operator= ( const InterfaceVTable other)
delete

◆ operator=() [2/2]

InterfaceVTable & Gio::DBus::InterfaceVTable::operator= ( InterfaceVTable &&  other)
noexcept

Member Data Documentation

◆ gobject_

GDBusInterfaceVTable Gio::DBus::InterfaceVTable::gobject_
protected

◆ slot_get_property_

SlotInterfaceGetProperty* Gio::DBus::InterfaceVTable::slot_get_property_
protected

◆ slot_method_call_

SlotInterfaceMethodCall* Gio::DBus::InterfaceVTable::slot_method_call_
protected

◆ slot_set_property_

SlotInterfaceSetProperty* Gio::DBus::InterfaceVTable::slot_set_property_
protected