glibmm 2.80.0
|
A type for representing D-Bus messages that can be sent or received on a Connection. More...
#include <giomm/dbusmessage.h>
Public Types | |
enum class | ByteOrder { BIG_ENDIAN_ORDER = 'B' , LITTLE_ENDIAN_ORDER = 'l' } |
Public Types inherited from Glib::Object | |
using | DestroyNotify = void(*)(gpointer data) |
Public Member Functions | |
Message (Message &&src) noexcept | |
Message & | operator= (Message &&src) noexcept |
~Message () noexcept override | |
GDBusMessage * | gobj () |
Provides access to the underlying C GObject. | |
const GDBusMessage * | gobj () const |
Provides access to the underlying C GObject. | |
GDBusMessage * | gobj_copy () |
Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. | |
Glib::ustring | print (guint indent) |
Produces a human-readable multi-line description of message. | |
bool | get_locked () const |
Checks whether message is locked. | |
void | lock () |
If message is locked, does nothing. | |
Glib::RefPtr< Message > | copy () const |
Copies message. | |
MessageType | get_message_type () const |
Gets the type of message. | |
void | set_message_type (MessageType type) |
Sets message to be of type. | |
ByteOrder | get_byte_order () const |
Gets the byte order of message. | |
void | set_byte_order (ByteOrder byte_order) |
Sets the byte order of message. | |
guint32 | get_serial () const |
Gets the serial for message. | |
void | set_serial (guint32 serial) |
Sets the serial for message. | |
MessageFlags | get_flags () const |
Gets the flags for message. | |
void | set_flags (MessageFlags flags) |
Sets the flags to set on message. | |
void | get_body (Glib::VariantBase & value) const |
Gets the body of a message. | |
void | set_body (const Glib::VariantBase &body) |
Sets the body message. | |
Glib::RefPtr< UnixFDList > | get_unix_fd_list () |
Gets the UNIX file descriptors associated with message, if any. | |
Glib::RefPtr< const UnixFDList > | get_unix_fd_list () const |
Gets the UNIX file descriptors associated with message, if any. | |
void | set_unix_fd_list (const Glib::RefPtr< UnixFDList > &fd_list) |
Sets the UNIX file descriptors associated with message. | |
void | unset_unix_fd_list () |
Clears the existing UNIX file descriptor list. | |
guint32 | get_num_unix_fds () const |
Convenience getter for the Gio::DBus::MessageHeaderField::NUM_UNIX_FDS header field. | |
void | set_num_unix_fds (guint32 value) |
Convenience setter for the Gio::DBus::MessageHeaderField::NUM_UNIX_FDS header field. | |
void | get_header (Glib::VariantBase & value, MessageHeaderField header_field) const |
Gets a header field on the message. | |
void | set_header (MessageHeaderField header_field, const Glib::VariantBase & value) |
Sets a header field on message. | |
std::vector< guchar > | get_header_fields () const |
Gets an array of all header fields on message that are set. | |
Glib::ustring | get_destination () const |
Convenience getter for the Gio::DBus::MessageHeaderField::DESTINATION header field. | |
void | set_destination (const Glib::ustring & value) |
Convenience setter for the Gio::DBus::MessageHeaderField::DESTINATION header field. | |
Glib::ustring | get_error_name () const |
Convenience getter for the Gio::DBus::MessageHeaderField::ERROR_NAME header field. | |
void | set_error_name (const Glib::ustring & value) |
Convenience setter for the Gio::DBus::MessageHeaderField::ERROR_NAME header field. | |
Glib::ustring | get_interface () const |
Convenience getter for the Gio::DBus::MessageHeaderField::INTERFACE header field. | |
void | set_interface (const Glib::ustring & value) |
Convenience setter for the Gio::DBus::MessageHeaderField::INTERFACE header field. | |
Glib::ustring | get_member () const |
Convenience getter for the Gio::DBus::MessageHeaderField::MEMBER header field. | |
void | set_member (const Glib::ustring & value) |
Convenience setter for the Gio::DBus::MessageHeaderField::MEMBER header field. | |
Glib::ustring | get_path () const |
Convenience getter for the Gio::DBus::MessageHeaderField::PATH header field. | |
void | set_path (const Glib::ustring & value) |
Convenience setter for the Gio::DBus::MessageHeaderField::PATH header field. | |
guint32 | get_reply_serial () const |
Convenience getter for the Gio::DBus::MessageHeaderField::REPLY_SERIAL header field. | |
void | set_reply_serial (guint32 value) |
Convenience setter for the Gio::DBus::MessageHeaderField::REPLY_SERIAL header field. | |
Glib::ustring | get_sender () const |
Convenience getter for the Gio::DBus::MessageHeaderField::SENDER header field. | |
void | set_sender (const Glib::ustring & value) |
Convenience setter for the Gio::DBus::MessageHeaderField::SENDER header field. | |
Glib::ustring | get_signature () const |
Convenience getter for the Gio::DBus::MessageHeaderField::SIGNATURE header field. | |
void | set_signature (const Glib::ustring & value) |
Convenience setter for the Gio::DBus::MessageHeaderField::SIGNATURE header field. | |
Glib::ustring | get_arg0 () const |
Convenience to get the first item in the body of message. | |
Glib::DBusObjectPathString | get_arg0_path () const |
Convenience to get the first item in the body of message. | |
guchar * | to_blob (gsize &out_size, CapabilityFlags capabilities=CapabilityFlags::NONE) |
Serializes message to a blob. | |
void | to_exception () |
If message is not of type Gio::DBus::MessageType::ERROR does nothing and returns false . | |
Glib::PropertyProxy_ReadOnly< bool > | property_locked () const |
Default value: false | |
Public Member Functions inherited from Glib::Object | |
Object (const Object &)=delete | |
Object & | operator= (const Object &)=delete |
Object (Object &&src) noexcept | |
Object & | operator= (Object &&src) noexcept |
void * | get_data (const QueryQuark & key) |
void | set_data (const Quark & key, void *data) |
void | set_data_with_c_callback (const Quark & key, void *data, GDestroyNotify notify) |
void | set_data (const Quark & key, void *data, DestroyNotify notify) |
Prefer set_data_with_c_callback() with a callback with C linkage. | |
void | remove_data (const QueryQuark &quark) |
void * | steal_data (const QueryQuark &quark) |
Public Member Functions inherited from Glib::ObjectBase | |
ObjectBase (const ObjectBase &)=delete | |
ObjectBase & | operator= (const ObjectBase &)=delete |
void | set_property_value (const Glib::ustring & property_name, const Glib::ValueBase & value) |
You probably want to use a specific property_*() accessor method instead. | |
void | get_property_value (const Glib::ustring & property_name, Glib::ValueBase & value) const |
You probably want to use a specific property_*() accessor method instead. | |
template<class PropertyType > | |
void | set_property (const Glib::ustring & property_name, const PropertyType & value) |
You probably want to use a specific property_*() accessor method instead. | |
template<class PropertyType > | |
void | get_property (const Glib::ustring & property_name, PropertyType & value) const |
You probably want to use a specific property_*() accessor method instead. | |
template<class PropertyType > | |
PropertyType | get_property (const Glib::ustring & property_name) const |
You probably want to use a specific property_*() accessor method instead. | |
sigc::connection | connect_property_changed (const Glib::ustring & property_name, const sigc::slot< void()> &slot) |
You can use the signal_changed() signal of the property proxy instead. | |
sigc::connection | connect_property_changed (const Glib::ustring & property_name, sigc::slot< void()> &&slot) |
You can use the signal_changed() signal of the property proxy instead. | |
void | freeze_notify () |
Increases the freeze count on object. | |
void | thaw_notify () |
Reverts the effect of a previous call to freeze_notify(). | |
virtual void | reference () const |
Increment the reference count for this object. | |
virtual void | unreference () const |
Decrement the reference count for this object. | |
GObject * | gobj () |
Provides access to the underlying C GObject. | |
const GObject * | gobj () const |
Provides access to the underlying C GObject. | |
GObject * | gobj_copy () const |
Give a ref-ed copy to someone. Use for direct struct access. | |
Protected Member Functions | |
Message () | |
Protected Member Functions inherited from Glib::Object | |
Object () | |
Object (const Glib::ConstructParams &construct_params) | |
Object (GObject *castitem) | |
~Object () noexcept override | |
Protected Member Functions inherited from Glib::ObjectBase | |
ObjectBase () | |
This default constructor is called implicitly from the constructor of user-derived classes, even if, for instance, Gtk::Button calls a different ObjectBase constructor. | |
ObjectBase (const char *custom_type_name) | |
A derived constructor always overrides this choice. | |
ObjectBase (const std::type_info &custom_type_info) | |
This constructor is a special feature to allow creation of derived types on the fly, without having to use g_object_new() manually. | |
ObjectBase (ObjectBase &&src) noexcept | |
ObjectBase & | operator= (ObjectBase &&src) noexcept |
virtual | ~ObjectBase () noexcept=0 |
void | initialize (GObject *castitem) |
void | initialize_move (GObject *castitem, Glib::ObjectBase *previous_wrapper) |
Related Symbols | |
(Note that these are not member symbols.) | |
Glib::RefPtr< Gio::DBus::Message > | wrap (GDBusMessage *object, bool take_copy=false) |
A Glib::wrap() method for this object. | |
Related Symbols inherited from Glib::Object | |
Glib::RefPtr< Glib::Object > | wrap (GObject *object, bool take_copy=false) |
A type for representing D-Bus messages that can be sent or received on a Connection.
|
noexcept |
|
overridenoexcept |
|
protected |
Utility function to calculate how many bytes are needed to completely deserialize the D-Bus message stored at blob.
blob | A blob representing a binary D-Bus message. |
blob_len | The length of blob (must be at least 16). |
Gio::Error |
Glib::RefPtr< Message > Gio::DBus::Message::copy | ( | ) | const |
Copies message.
The copy is a deep copy and the returned Gio::DBus::Message is completely identical except that it is guaranteed to not be locked.
This operation can fail if e.g. message contains file descriptors and the per-process or system-wide open files limit is reached.
nullptr
if error is set. Free with Glib::object_unref().Gio::Error |
|
static |
Creates a new empty Gio::DBus::Message.
|
static |
Creates a new Gio::DBus::Message from the data stored at blob.
The byte order that the message was in can be retrieved using g_dbus_message_get_byte_order().
If the blob cannot be parsed, contains invalid fields, or contains invalid headers, Gio::Error::INVALID_ARGUMENT will be returned.
blob | A blob representing a binary D-Bus message. |
blob_len | The length of blob. |
capabilities | A DBusCapabilityFlags describing what protocol features are supported. |
nullptr
if error is set. Free with Glib::object_unref().Gio::Error |
|
static |
Creates a new Gio::DBus::Message for a method call.
name | A valid D-Bus name or nullptr . |
path | A valid object path. |
iface | A valid D-Bus interface name or nullptr . |
method | A valid method name. |
|
static |
Creates a new Gio::DBus::Message that is an error reply to method_call_message.
method_call_message | A message of type Gio::DBus::MessageType::METHOD_CALL to create a reply message to. |
error_name | A valid D-Bus error name. |
error_message | The D-Bus error message. |
|
static |
Creates a new Gio::DBus::Message that is a reply to method_call_message.
method_call_message | A message of type Gio::DBus::MessageType::METHOD_CALL to create a reply message to. |
|
static |
Creates a new Gio::DBus::Message for a signal emission.
path | A valid object path. |
iface | A valid D-Bus interface name. |
signal | A valid signal name. |
Glib::ustring Gio::DBus::Message::get_arg0 | ( | ) | const |
Convenience to get the first item in the body of message.
See Gio::DBusMessage::get_arg0_path() for returning object-path-typed arg0 values.
nullptr
if the first item in the body of message is not a string. Glib::DBusObjectPathString Gio::DBus::Message::get_arg0_path | ( | ) | const |
Convenience to get the first item in the body of message.
See Gio::DBusMessage::get_arg0() for returning string-typed arg0 values.
nullptr
if the first item in the body of message is not an object path. void Gio::DBus::Message::get_body | ( | Glib::VariantBase & | value | ) | const |
Gets the body of a message.
The body is returned in value.
value | Location in which to store the header. |
ByteOrder Gio::DBus::Message::get_byte_order | ( | ) | const |
Gets the byte order of message.
Glib::ustring Gio::DBus::Message::get_destination | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::DESTINATION header field.
Glib::ustring Gio::DBus::Message::get_error_name | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::ERROR_NAME header field.
MessageFlags Gio::DBus::Message::get_flags | ( | ) | const |
Gets the flags for message.
void Gio::DBus::Message::get_header | ( | Glib::VariantBase & | value, |
MessageHeaderField | header_field | ||
) | const |
Gets a header field on the message.
The header is returned in value.
value | Location in which to store the header. |
header_field | The header field type. |
std::vector< guchar > Gio::DBus::Message::get_header_fields | ( | ) | const |
Gets an array of all header fields on message that are set.
Glib::ustring Gio::DBus::Message::get_interface | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::INTERFACE header field.
bool Gio::DBus::Message::get_locked | ( | ) | const |
Checks whether message is locked.
To monitor changes to this value, conncet to the Object::signal_notify() signal to listen for changes on the Gio::DBus::Message::property_locked() property.
true
if message is locked, false
otherwise. Glib::ustring Gio::DBus::Message::get_member | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::MEMBER header field.
MessageType Gio::DBus::Message::get_message_type | ( | ) | const |
Gets the type of message.
guint32 Gio::DBus::Message::get_num_unix_fds | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::NUM_UNIX_FDS header field.
Glib::ustring Gio::DBus::Message::get_path | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::PATH header field.
guint32 Gio::DBus::Message::get_reply_serial | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::REPLY_SERIAL header field.
Glib::ustring Gio::DBus::Message::get_sender | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::SENDER header field.
guint32 Gio::DBus::Message::get_serial | ( | ) | const |
Glib::ustring Gio::DBus::Message::get_signature | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::SIGNATURE header field.
This will always be non-nullptr
, but may be an empty string.
Get the GType for this class, for use with the underlying GObject type system.
Glib::RefPtr< UnixFDList > Gio::DBus::Message::get_unix_fd_list | ( | ) |
Gets the UNIX file descriptors associated with message, if any.
This method is only available on UNIX.
The file descriptors normally correspond to G_VARIANT_TYPE_HANDLE values in the body of the message. For example, if Glib::variant_get_handle() returns 5, that is intended to be a reference to the file descriptor that can be accessed by g_unix_fd_list_get (list, 5, ...)
.
nullptr
if no file descriptors are associated. Do not free, this object is owned by message. Glib::RefPtr< const UnixFDList > Gio::DBus::Message::get_unix_fd_list | ( | ) | const |
Gets the UNIX file descriptors associated with message, if any.
This method is only available on UNIX.
The file descriptors normally correspond to G_VARIANT_TYPE_HANDLE values in the body of the message. For example, if Glib::variant_get_handle() returns 5, that is intended to be a reference to the file descriptor that can be accessed by g_unix_fd_list_get (list, 5, ...)
.
nullptr
if no file descriptors are associated. Do not free, this object is owned by message.
|
inline |
Provides access to the underlying C GObject.
|
inline |
Provides access to the underlying C GObject.
GDBusMessage * Gio::DBus::Message::gobj_copy | ( | ) |
Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
void Gio::DBus::Message::lock | ( | ) |
Glib::ustring Gio::DBus::Message::print | ( | guint | indent | ) |
Produces a human-readable multi-line description of message.
The contents of the description has no ABI guarantees, the contents and formatting is subject to change at any time. Typical output looks something like this:
or
indent | Indentation level. |
Glib::PropertyProxy_ReadOnly< bool > Gio::DBus::Message::property_locked | ( | ) | const |
Default value: false
void Gio::DBus::Message::set_body | ( | const Glib::VariantBase & | body | ) |
Sets the body message.
As a side-effect the Gio::DBus::MessageHeaderField::SIGNATURE header field is set to the type string of body (or cleared if body is nullptr
).
If body is floating, message assumes ownership of body.
body | Either nullptr or a Variant that is a tuple. |
Sets the byte order of message.
byte_order | The byte order. |
void Gio::DBus::Message::set_destination | ( | const Glib::ustring & | value | ) |
Convenience setter for the Gio::DBus::MessageHeaderField::DESTINATION header field.
value | The value to set. |
void Gio::DBus::Message::set_error_name | ( | const Glib::ustring & | value | ) |
Convenience setter for the Gio::DBus::MessageHeaderField::ERROR_NAME header field.
value | The value to set. |
void Gio::DBus::Message::set_flags | ( | MessageFlags | flags | ) |
Sets the flags to set on message.
flags | Flags for message that are set (typically values from the DBusMessageFlags enumeration bitwise ORed together). |
void Gio::DBus::Message::set_header | ( | MessageHeaderField | header_field, |
const Glib::VariantBase & | value | ||
) |
Sets a header field on message.
If value is floating, message assumes ownership of value.
header_field | A 8-bit unsigned integer (typically a value from the DBusMessageHeaderField enumeration). |
value | A Variant to set the header field or nullptr to clear the header field. |
void Gio::DBus::Message::set_interface | ( | const Glib::ustring & | value | ) |
Convenience setter for the Gio::DBus::MessageHeaderField::INTERFACE header field.
value | The value to set. |
void Gio::DBus::Message::set_member | ( | const Glib::ustring & | value | ) |
Convenience setter for the Gio::DBus::MessageHeaderField::MEMBER header field.
value | The value to set. |
void Gio::DBus::Message::set_message_type | ( | MessageType | type | ) |
Sets message to be of type.
type | A 8-bit unsigned integer (typically a value from the DBusMessageType enumeration). |
Convenience setter for the Gio::DBus::MessageHeaderField::NUM_UNIX_FDS header field.
value | The value to set. |
void Gio::DBus::Message::set_path | ( | const Glib::ustring & | value | ) |
Convenience setter for the Gio::DBus::MessageHeaderField::PATH header field.
value | The value to set. |
Convenience setter for the Gio::DBus::MessageHeaderField::REPLY_SERIAL header field.
value | The value to set. |
void Gio::DBus::Message::set_sender | ( | const Glib::ustring & | value | ) |
Convenience setter for the Gio::DBus::MessageHeaderField::SENDER header field.
value | The value to set. |
void Gio::DBus::Message::set_signature | ( | const Glib::ustring & | value | ) |
Convenience setter for the Gio::DBus::MessageHeaderField::SIGNATURE header field.
value | The value to set. |
void Gio::DBus::Message::set_unix_fd_list | ( | const Glib::RefPtr< UnixFDList > & | fd_list | ) |
Sets the UNIX file descriptors associated with message.
As a side-effect the Gio::DBus::MessageHeaderField::NUM_UNIX_FDS header field is set to the number of fds in fd_list (or cleared if fd_list is nullptr
).
This method is only available on UNIX.
When designing D-Bus APIs that are intended to be interoperable, please note that non-GDBus implementations of D-Bus can usually only access file descriptors if they are referenced by a value of type G_VARIANT_TYPE_HANDLE in the body of the message.
fd_list | A UnixFDList or nullptr . |
guchar * Gio::DBus::Message::to_blob | ( | gsize & | out_size, |
CapabilityFlags | capabilities = CapabilityFlags::NONE |
||
) |
Serializes message to a blob.
The byte order returned by g_dbus_message_get_byte_order() will be used.
out_size | Return location for size of generated blob. |
capabilities | A DBusCapabilityFlags describing what protocol features are supported. |
nullptr
if error is set.Gio::Error |
void Gio::DBus::Message::to_exception | ( | ) |
If message is not of type Gio::DBus::MessageType::ERROR does nothing and returns false
.
Otherwise this method encodes the error in message as a Error using g_dbus_error_set_dbus_error() using the information in the Gio::DBus::MessageHeaderField::ERROR_NAME header field of message as well as the first string item in message's body.
Glib::Error |
void Gio::DBus::Message::unset_unix_fd_list | ( | ) |
Clears the existing UNIX file descriptor list.
|
related |
A Glib::wrap() method for this object.
object | The C instance. |
take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref. |