glibmm: Gio::DBus::Message Class Reference
A type for representing D-Bus messages that can be sent or received on a Connection. More...
#include <giomm/dbusmessage.h>
Public Types | |
Public Types inherited from Glib::Object | |
using | DestroyNotify = void(*)(gpointer data) |
Public Types inherited from sigc::trackable | |
typedef internal::func_destroy_notify | func_destroy_notify |
Public Types inherited from sigc::notifiable | |
typedef internal::func_destroy_notify | func_destroy_notify |
Public Member Functions | |
Message (Message&& src) noexcept | |
Message& | operator= (Message&& src) noexcept |
~Message () noexcept override | |
GDBusMessage* | gobj () |
Provides access to the underlying C GObject. More... | |
const GDBusMessage* | gobj () const |
Provides access to the underlying C GObject. More... | |
GDBusMessage* | gobj_copy () |
Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More... | |
Glib::ustring | print (guint indent) |
Produces a human-readable multi-line description of message. More... | |
bool | get_locked () const |
Checks whether message is locked. More... | |
void | lock () |
If message is locked, does nothing. More... | |
Glib::RefPtr< Message > | copy () const |
Copies message. More... | |
MessageType | get_message_type () const |
Gets the type of message. More... | |
void | set_message_type (MessageType type) |
Sets message to be of type. More... | |
ByteOrder | get_byte_order () const |
Gets the byte order of message. More... | |
void | set_byte_order (ByteOrder byte_order) |
Sets the byte order of message. More... | |
guint32 | get_serial () const |
Gets the serial for message. More... | |
void | set_serial (guint32 serial) |
Sets the serial for message. More... | |
MessageFlags | get_flags () const |
Gets the flags for message. More... | |
void | set_flags (MessageFlags flags) |
Sets the flags to set on message. More... | |
void | get_body (Glib::VariantBase& value) const |
Gets the body of a message. More... | |
void | set_body (const Glib::VariantBase& body) |
Sets the body message. More... | |
Glib::RefPtr< UnixFDList > | get_unix_fd_list () |
Gets the UNIX file descriptors associated with message, if any. More... | |
Glib::RefPtr< const UnixFDList > | get_unix_fd_list () const |
Gets the UNIX file descriptors associated with message, if any. More... | |
void | set_unix_fd_list (const Glib::RefPtr< UnixFDList >& fd_list) |
Sets the UNIX file descriptors associated with message. More... | |
void | unset_unix_fd_list () |
Clears the existing UNIX file descriptor list. More... | |
guint32 | get_num_unix_fds () const |
Convenience getter for the Gio::DBus::MessageHeaderField::NUM_UNIX_FDS header field. More... | |
void | set_num_unix_fds (guint32 value) |
Convenience setter for the Gio::DBus::MessageHeaderField::NUM_UNIX_FDS header field. More... | |
void | get_header (Glib::VariantBase& value, MessageHeaderField header_field) const |
Gets a header field on the message. More... | |
void | set_header (MessageHeaderField header_field, const Glib::VariantBase& value) |
Sets a header field on message. More... | |
std::vector< guchar > | get_header_fields () const |
Gets an array of all header fields on message that are set. More... | |
Glib::ustring | get_destination () const |
Convenience getter for the Gio::DBus::MessageHeaderField::DESTINATION header field. More... | |
void | set_destination (const Glib::ustring& value) |
Convenience setter for the Gio::DBus::MessageHeaderField::DESTINATION header field. More... | |
Glib::ustring | get_error_name () const |
Convenience getter for the Gio::DBus::MessageHeaderField::ERROR_NAME header field. More... | |
void | set_error_name (const Glib::ustring& value) |
Convenience setter for the Gio::DBus::MessageHeaderField::ERROR_NAME header field. More... | |
Glib::ustring | get_interface () const |
Convenience getter for the Gio::DBus::MessageHeaderField::INTERFACE header field. More... | |
void | set_interface (const Glib::ustring& value) |
Convenience setter for the Gio::DBus::MessageHeaderField::INTERFACE header field. More... | |
Glib::ustring | get_member () const |
Convenience getter for the Gio::DBus::MessageHeaderField::MEMBER header field. More... | |
void | set_member (const Glib::ustring& value) |
Convenience setter for the Gio::DBus::MessageHeaderField::MEMBER header field. More... | |
Glib::ustring | get_path () const |
Convenience getter for the Gio::DBus::MessageHeaderField::PATH header field. More... | |
void | set_path (const Glib::ustring& value) |
Convenience setter for the Gio::DBus::MessageHeaderField::PATH header field. More... | |
guint32 | get_reply_serial () const |
Convenience getter for the Gio::DBus::MessageHeaderField::REPLY_SERIAL header field. More... | |
void | set_reply_serial (guint32 value) |
Convenience setter for the Gio::DBus::MessageHeaderField::REPLY_SERIAL header field. More... | |
Glib::ustring | get_sender () const |
Convenience getter for the Gio::DBus::MessageHeaderField::SENDER header field. More... | |
void | set_sender (const Glib::ustring& value) |
Convenience setter for the Gio::DBus::MessageHeaderField::SENDER header field. More... | |
Glib::ustring | get_signature () const |
Convenience getter for the Gio::DBus::MessageHeaderField::SIGNATURE header field. More... | |
void | set_signature (const Glib::ustring& value) |
Convenience setter for the Gio::DBus::MessageHeaderField::SIGNATURE header field. More... | |
Glib::ustring | get_arg0 () const |
Convenience to get the first item in the body of message. More... | |
guchar* | to_blob (gsize& out_size, CapabilityFlags capabilities=CapabilityFlags::NONE) |
Serializes message to a blob. More... | |
void | to_exception () |
If message is not of type Gio::DBus::MessageType::ERROR does nothing and returns false . More... | |
Glib::PropertyProxy_ReadOnly< bool > | property_locked () const |
Whether the message is locked. More... | |
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 (const Quark& key, void* data, DestroyNotify notify) |
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. More... | |
void | get_property_value (const Glib::ustring& property_name, Glib::ValueBase& value) const |
You probably want to use a specific property_*() accessor method instead. More... | |
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. More... | |
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. More... | |
template<class PropertyType > | |
PropertyType | get_property (const Glib::ustring& property_name) const |
You probably want to use a specific property_*() accessor method instead. More... | |
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. More... | |
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. More... | |
void | freeze_notify () |
Increases the freeze count on object. More... | |
void | thaw_notify () |
Reverts the effect of a previous call to freeze_notify(). More... | |
virtual void | reference () const |
Increment the reference count for this object. More... | |
virtual void | unreference () const |
Decrement the reference count for this object. More... | |
GObject* | gobj () |
Provides access to the underlying C GObject. More... | |
const GObject* | gobj () const |
Provides access to the underlying C GObject. More... | |
GObject* | gobj_copy () const |
Give a ref-ed copy to someone. Use for direct struct access. More... | |
Public Member Functions inherited from sigc::trackable | |
trackable () noexcept | |
trackable (const trackable &src) noexcept | |
trackable (trackable &&src) noexcept | |
~trackable () | |
void | add_destroy_notify_callback (notifiable *data, func_destroy_notify func) const |
void | notify_callbacks () |
trackable & | operator= (const trackable &src) |
trackable & | operator= (trackable &&src) noexcept |
void | remove_destroy_notify_callback (notifiable *data) const |
Static Public Member Functions | |
static GType | get_type () |
Get the GType for this class, for use with the underlying GObject type system. More... | |
static Glib::RefPtr< Message > | create () |
Creates a new empty Gio::DBus::Message. More... | |
static Glib::RefPtr< Message > | create_signal (const Glib::ustring& path, const Glib::ustring& iface, const Glib::ustring& signal) |
Creates a new Gio::DBus::Message for a signal emission. More... | |
static Glib::RefPtr< Message > | create_method_call (const Glib::ustring& name, const Glib::ustring& path, const Glib::ustring& iface, const Glib::ustring& method) |
Creates a new Gio::DBus::Message for a method call. More... | |
static Glib::RefPtr< Message > | create_method_reply (const Glib::RefPtr< Message >& method_call_message) |
Creates a new Gio::DBus::Message that is a reply to method_call_message. More... | |
static Glib::RefPtr< Message > | create_method_error_literal (const Glib::RefPtr< const Message >& method_call_message, const Glib::ustring& error_name, const Glib::ustring& error_message) |
Creates a new Gio::DBus::Message that is an error reply to method_call_message. More... | |
static Glib::RefPtr< Message > | create_from_blob (const guchar* blob, gsize blob_len, CapabilityFlags capabilities=CapabilityFlags::NONE) |
Creates a new Gio::DBus::Message from the data stored at blob. More... | |
static gssize | bytes_needed (const guchar* blob, gsize blob_len) |
Utility function to calculate how many bytes are needed to completely deserialize the D-Bus message stored at blob. More... | |
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. More... | |
ObjectBase (const char* custom_type_name) | |
A derived constructor always overrides this choice. More... | |
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. More... | |
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 Functions | |
(Note that these are not member functions.) | |
Glib::RefPtr< Gio::DBus::Message > | wrap (GDBusMessage* object, bool take_copy=false) |
A Glib::wrap() method for this object. More... | |
Related Functions inherited from Glib::Object | |
Glib::RefPtr< Glib::Object > | wrap (GObject* object, bool take_copy=false) |
Detailed Description
A type for representing D-Bus messages that can be sent or received on a Connection.
Constructor & Destructor Documentation
|
noexcept |
|
overridenoexcept |
|
protected |
Member Function Documentation
|
static |
Utility function to calculate how many bytes are needed to completely deserialize the D-Bus message stored at blob.
- Parameters
-
blob A blob representing a binary D-Bus message. blob_len The length of blob (must be at least 16).
- Returns
- Number of bytes needed or -1 if error is set (e.g. if blob contains invalid data or not enough data is available to determine the size).
- Exceptions
-
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.
- Returns
- A new Gio::DBus::Message or
nullptr
if error is set. Free with Glib::object_unref().
- Exceptions
-
Gio::Error
|
static |
Creates a new empty Gio::DBus::Message.
- Returns
- A Gio::DBus::Message. Free with Glib::object_unref().
|
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.
- Parameters
-
blob A blob representing a binary D-Bus message. blob_len The length of blob. capabilities A DBusCapabilityFlags describing what protocol features are supported.
- Returns
- A new Gio::DBus::Message or
nullptr
if error is set. Free with Glib::object_unref().
- Exceptions
-
Gio::Error
|
static |
Creates a new Gio::DBus::Message for a method call.
- Parameters
-
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.
- Returns
- A Gio::DBus::Message. Free with Glib::object_unref().
|
static |
Creates a new Gio::DBus::Message that is an error reply to method_call_message.
- Parameters
-
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.
- Returns
- A Gio::DBus::Message. Free with Glib::object_unref().
|
static |
Creates a new Gio::DBus::Message that is a reply to method_call_message.
- Parameters
-
method_call_message A message of type Gio::DBus::MessageType::METHOD_CALL to create a reply message to.
- Returns
- Gio::DBus::Message. Free with Glib::object_unref().
|
static |
Creates a new Gio::DBus::Message for a signal emission.
- Parameters
-
path A valid object path. iface A valid D-Bus interface name. signal A valid signal name.
- Returns
- A Gio::DBus::Message. Free with Glib::object_unref().
Glib::ustring Gio::DBus::Message::get_arg0 | ( | ) | const |
Convenience to get the first item in the body of message.
- Returns
- The string item or
nullptr
if the first item in the body of message is not a string.
void Gio::DBus::Message::get_body | ( | Glib::VariantBase& | value | ) | const |
Gets the body of a message.
The body is returned in value.
- Parameters
-
value Location in which to store the header.
ByteOrder Gio::DBus::Message::get_byte_order | ( | ) | const |
Gets the byte order of message.
- Returns
- The byte order.
Glib::ustring Gio::DBus::Message::get_destination | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::DESTINATION header field.
- Returns
- The value.
Glib::ustring Gio::DBus::Message::get_error_name | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::ERROR_NAME header field.
- Returns
- The value.
MessageFlags Gio::DBus::Message::get_flags | ( | ) | const |
Gets the flags for message.
- Returns
- Flags that are set (typically values from the DBusMessageFlags enumeration bitwise ORed together).
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.
- Parameters
-
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.
- Returns
- An array of header fields terminated by Gio::DBus::MessageHeaderField::INVALID. Each element is a #guchar.
Glib::ustring Gio::DBus::Message::get_interface | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::INTERFACE header field.
- Returns
- The value.
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.
- Returns
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.
- Returns
- The value.
MessageType Gio::DBus::Message::get_message_type | ( | ) | const |
Gets the type of message.
- Returns
- A 8-bit unsigned integer (typically a value from the DBusMessageType enumeration).
guint32 Gio::DBus::Message::get_num_unix_fds | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::NUM_UNIX_FDS header field.
- Returns
- The value.
Glib::ustring Gio::DBus::Message::get_path | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::PATH header field.
- Returns
- The value.
guint32 Gio::DBus::Message::get_reply_serial | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::REPLY_SERIAL header field.
- Returns
- The value.
Glib::ustring Gio::DBus::Message::get_sender | ( | ) | const |
Convenience getter for the Gio::DBus::MessageHeaderField::SENDER header field.
- Returns
- The value.
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.
- Returns
- The value.
|
static |
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.
- Returns
- A UnixFDList or
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.
- Returns
- A UnixFDList or
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:
[C example ellipted] or
[C example ellipted]
- Parameters
-
indent Indentation level.
- Returns
- A string.
Glib::PropertyProxy_ReadOnly< bool > Gio::DBus::Message::property_locked | ( | ) | const |
Whether the message is locked.
Default value: false
- Returns
- A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.
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.
- Parameters
-
body Either nullptr
or a Variant that is a tuple.
void Gio::DBus::Message::set_byte_order | ( | ByteOrder | byte_order | ) |
Sets the byte order of message.
- Parameters
-
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.
- Parameters
-
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.
- Parameters
-
value The value to set.
void Gio::DBus::Message::set_flags | ( | MessageFlags | flags | ) |
Sets the flags to set on message.
- Parameters
-
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.
- Parameters
-
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.
- Parameters
-
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.
- Parameters
-
value The value to set.
void Gio::DBus::Message::set_message_type | ( | MessageType | type | ) |
Sets message to be of type.
- Parameters
-
type A 8-bit unsigned integer (typically a value from the DBusMessageType enumeration).
void Gio::DBus::Message::set_num_unix_fds | ( | guint32 | value | ) |
Convenience setter for the Gio::DBus::MessageHeaderField::NUM_UNIX_FDS header field.
- Parameters
-
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.
- Parameters
-
value The value to set.
void Gio::DBus::Message::set_reply_serial | ( | guint32 | value | ) |
Convenience setter for the Gio::DBus::MessageHeaderField::REPLY_SERIAL header field.
- Parameters
-
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.
- Parameters
-
value The value to set.
void Gio::DBus::Message::set_serial | ( | guint32 | serial | ) |
void Gio::DBus::Message::set_signature | ( | const Glib::ustring& | value | ) |
Convenience setter for the Gio::DBus::MessageHeaderField::SIGNATURE header field.
- Parameters
-
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.
- Parameters
-
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.
- Parameters
-
out_size Return location for size of generated blob. capabilities A DBusCapabilityFlags describing what protocol features are supported.
- Returns
- A pointer to a valid binary D-Bus message of out_size bytes generated by message or
nullptr
if error is set.
- Exceptions
-
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.
- Exceptions
-
Glib::Error
void Gio::DBus::Message::unset_unix_fd_list | ( | ) |
Clears the existing UNIX file descriptor list.
Friends And Related Function Documentation
|
related |
A Glib::wrap() method for this object.
- Parameters
-
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.
- Returns
- A C++ instance that wraps this C instance.