Struct souk::main::dbus_proxy::TaskResponse
source · pub struct TaskResponse(Arc<Message>);
Expand description
A TaskResponse
signal.
Tuple Fields§
§0: Arc<Message>
Implementations§
source§impl TaskResponse
impl TaskResponse
sourcepub fn args<'s>(&'s self) -> Result<TaskResponseArgs<'s>>
pub fn args<'s>(&'s self) -> Result<TaskResponseArgs<'s>>
Retrieve the signal arguments.
Methods from Deref<Target = Message>§
pub fn take_fds(&self) -> Vec<OwnedFd, Global> ⓘ
pub fn take_fds(&self) -> Vec<OwnedFd, Global> ⓘ
Take ownership of the associated file descriptors in the message.
When a message is received over a AF_UNIX socket, it may contain associated FDs. To prevent the message from closing those FDs on drop, call this method that returns all the received FDs with their ownership.
This function is Unix-specific.
Note: the message will continue to reference the files, so you must keep them open for as long as the message itself.
pub fn body_signature(&self) -> Result<Signature<'_>, Error>
pub fn body_signature(&self) -> Result<Signature<'_>, Error>
The signature of the body.
Note: While zbus treats multiple arguments as a struct (to allow you to use the tuple syntax), D-Bus does not. Since this method gives you the signature expected on the wire by D-Bus, the trailing and leading STRUCT signature parenthesis will not be present in case of multiple arguments.
pub fn primary_header(&self) -> &MessagePrimaryHeader
pub fn header(&self) -> Result<MessageHeader<'_>, Error>
pub fn header(&self) -> Result<MessageHeader<'_>, Error>
Deserialize the header.
Note: prefer using the direct access methods if possible; they are more efficient.
pub fn fields(&self) -> Result<MessageFields<'_>, Error>
pub fn fields(&self) -> Result<MessageFields<'_>, Error>
Deserialize the fields.
Note: prefer using the direct access methods if possible; they are more efficient.
pub fn message_type(&self) -> MessageType
pub fn message_type(&self) -> MessageType
The message type.
pub fn path(&self) -> Option<ObjectPath<'_>>
pub fn path(&self) -> Option<ObjectPath<'_>>
The object to send a call to, or the object a signal is emitted from.
pub fn interface(&self) -> Option<InterfaceName<'_>>
pub fn interface(&self) -> Option<InterfaceName<'_>>
The interface to invoke a method call on, or that a signal is emitted from.
pub fn reply_serial(&self) -> Option<u32>
pub fn reply_serial(&self) -> Option<u32>
The serial number of the message this message is a reply to.
pub fn body_unchecked<'d, 'm, B>(&'m self) -> Result<B, Error>where
'm: 'd,
B: Deserialize<'d> + Type,
pub fn body_unchecked<'d, 'm, B>(&'m self) -> Result<B, Error>where
'm: 'd,
B: Deserialize<'d> + Type,
Deserialize the body (without checking signature matching).
pub fn body<'d, 'm, B>(&'m self) -> Result<B, Error>where
'm: 'd,
B: DynamicDeserialize<'d>,
pub fn body<'d, 'm, B>(&'m self) -> Result<B, Error>where
'm: 'd,
B: DynamicDeserialize<'d>,
Deserialize the body using the contained signature.
Example
let send_body = (7i32, (2i32, "foo"), vec!["bar"]);
let message = Message::method(None::<&str>, Some("zbus.test"), "/", Some("zbus.test"), "ping", &send_body)?;
let body : zvariant::Structure = message.body()?;
let fields = body.fields();
assert!(matches!(fields[0], zvariant::Value::I32(7)));
assert!(matches!(fields[1], zvariant::Value::Structure(_)));
assert!(matches!(fields[2], zvariant::Value::Array(_)));
let reply_msg = Message::method_reply(None::<&str>, &message, &body)?;
let reply_value : (i32, (i32, &str), Vec<String>) = reply_msg.body()?;
assert_eq!(reply_value.0, 7);
assert_eq!(reply_value.2.len(), 1);
pub fn body_as_bytes(&self) -> Result<&[u8], Error>
pub fn body_as_bytes(&self) -> Result<&[u8], Error>
Get a reference to the byte encoding of the body of the message.
pub fn recv_position(&self) -> MessageSequence
pub fn recv_position(&self) -> MessageSequence
Get the receive ordering of a message.
This may be used to identify how two events were ordered on the bus. It only produces a
useful ordering for messages that were produced by the same [zbus::Connection
].
This is completely unrelated to the serial number on the message, which is set by the peer and might not be ordered at all.
Trait Implementations§
source§impl AsRef<Arc<Message>> for TaskResponse
impl AsRef<Arc<Message>> for TaskResponse
source§impl AsRef<Message> for TaskResponse
impl AsRef<Message> for TaskResponse
source§impl Clone for TaskResponse
impl Clone for TaskResponse
source§fn clone(&self) -> TaskResponse
fn clone(&self) -> TaskResponse
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more