pub struct Message { /* private fields */ }
Expand description
A D-Bus message. A message contains some headers (e g sender and destination address) and a list of MessageItems.
Implementations
sourceimpl Message
impl Message
sourcepub fn new_method_call<'d, 'p, 'i, 'm, D, P, I, M>(
destination: D,
path: P,
iface: I,
method: M
) -> Result<Message, String>where
D: Into<BusName<'d>>,
P: Into<Path<'p>>,
I: Into<Interface<'i>>,
M: Into<Member<'m>>,
pub fn new_method_call<'d, 'p, 'i, 'm, D, P, I, M>(
destination: D,
path: P,
iface: I,
method: M
) -> Result<Message, String>where
D: Into<BusName<'d>>,
P: Into<Path<'p>>,
I: Into<Interface<'i>>,
M: Into<Member<'m>>,
Creates a new method call message.
sourcepub fn method_call(
destination: &BusName<'_>,
path: &Path<'_>,
iface: &Interface<'_>,
name: &Member<'_>
) -> Message
pub fn method_call(
destination: &BusName<'_>,
path: &Path<'_>,
iface: &Interface<'_>,
name: &Member<'_>
) -> Message
Creates a new method call message.
sourcepub fn new_signal<P, I, M>(path: P, iface: I, name: M) -> Result<Message, String>where
P: Into<Vec<u8>>,
I: Into<Vec<u8>>,
M: Into<Vec<u8>>,
pub fn new_signal<P, I, M>(path: P, iface: I, name: M) -> Result<Message, String>where
P: Into<Vec<u8>>,
I: Into<Vec<u8>>,
M: Into<Vec<u8>>,
Creates a new signal message.
sourcepub fn signal(
path: &Path<'_>,
iface: &Interface<'_>,
name: &Member<'_>
) -> Message
pub fn signal(
path: &Path<'_>,
iface: &Interface<'_>,
name: &Member<'_>
) -> Message
Creates a new signal message.
sourcepub fn new_method_return(m: &Message) -> Option<Message>
pub fn new_method_return(m: &Message) -> Option<Message>
Creates a method reply for this method call.
sourcepub fn method_return(&self) -> Message
pub fn method_return(&self) -> Message
Creates a method return (reply) for this method call.
sourcepub fn new_error(
m: &Message,
error_name: &str,
error_message: &str
) -> Option<Message>
pub fn new_error(
m: &Message,
error_name: &str,
error_message: &str
) -> Option<Message>
The old way to create a new error reply
sourcepub fn error(&self, error_name: &ErrorName<'_>, error_message: &CStr) -> Message
pub fn error(&self, error_name: &ErrorName<'_>, error_message: &CStr) -> Message
Creates a new error reply
sourcepub fn get_items(&self) -> Vec<MessageItem>
pub fn get_items(&self) -> Vec<MessageItem>
Get the MessageItems that make up the message.
Note: use iter_init
or get1
/get2
/etc instead for faster access to the arguments.
This method is provided for backwards compatibility.
sourcepub fn get_serial(&self) -> u32
pub fn get_serial(&self) -> u32
Get the D-Bus serial of a message, if one was specified.
sourcepub fn get_reply_serial(&self) -> Option<u32>
pub fn get_reply_serial(&self) -> Option<u32>
Get the serial of the message this message is a reply to, if present.
sourcepub fn get_no_reply(&self) -> bool
pub fn get_no_reply(&self) -> bool
Returns true if the message does not expect a reply.
sourcepub fn set_no_reply(&self, v: bool)
pub fn set_no_reply(&self, v: bool)
Set whether or not the message expects a reply.
Set to true if you send a method call and do not want a reply.
sourcepub fn get_auto_start(&self) -> bool
pub fn get_auto_start(&self) -> bool
Returns true if the message can cause a service to be auto-started.
sourcepub fn set_auto_start(&self, v: bool)
pub fn set_auto_start(&self, v: bool)
Sets whether or not the message can cause a service to be auto-started.
Defaults to true.
sourcepub fn append_items(&mut self, v: &[MessageItem])
pub fn append_items(&mut self, v: &[MessageItem])
Add one or more MessageItems to this Message.
Note: using append1
, append2
or append3
might be faster, especially for large arrays.
This method is provided for backwards compatibility.
sourcepub fn append<I: Into<MessageItem>>(self, v: I) -> Self
pub fn append<I: Into<MessageItem>>(self, v: I) -> Self
Appends one MessageItem to a message.
Use in builder style: e g m.method_return().append(7i32)
Note: using append1
, append2
or append3
might be faster, especially for large arrays.
This method is provided for backwards compatibility.
sourcepub fn append1<A: Append>(self, a: A) -> Self
pub fn append1<A: Append>(self, a: A) -> Self
Appends one argument to this message.
Use in builder style: e g m.method_return().append1(7i32)
sourcepub fn append2<A1: Append, A2: Append>(self, a1: A1, a2: A2) -> Self
pub fn append2<A1: Append, A2: Append>(self, a1: A1, a2: A2) -> Self
Appends two arguments to this message.
Use in builder style: e g m.method_return().append2(7i32, 6u8)
sourcepub fn append3<A1: Append, A2: Append, A3: Append>(
self,
a1: A1,
a2: A2,
a3: A3
) -> Self
pub fn append3<A1: Append, A2: Append, A3: Append>(
self,
a1: A1,
a2: A2,
a3: A3
) -> Self
Appends three arguments to this message.
Use in builder style: e g m.method_return().append3(7i32, 6u8, true)
sourcepub fn append_ref<A: RefArg>(self, r: &[A]) -> Self
pub fn append_ref<A: RefArg>(self, r: &[A]) -> Self
Appends RefArgs to this message.
Use in builder style: e g m.method_return().append_ref(&[7i32, 6u8, true])
sourcepub fn get1<'a, G1: Get<'a>>(&'a self) -> Option<G1>
pub fn get1<'a, G1: Get<'a>>(&'a self) -> Option<G1>
Gets the first argument from the message, if that argument is of type G1. Returns None if there are not enough arguments, or if types don’t match.
sourcepub fn get2<'a, G1: Get<'a>, G2: Get<'a>>(&'a self) -> (Option<G1>, Option<G2>)
pub fn get2<'a, G1: Get<'a>, G2: Get<'a>>(&'a self) -> (Option<G1>, Option<G2>)
Gets the first two arguments from the message, if those arguments are of type G1 and G2. Returns None if there are not enough arguments, or if types don’t match.
sourcepub fn get3<'a, G1: Get<'a>, G2: Get<'a>, G3: Get<'a>>(
&'a self
) -> (Option<G1>, Option<G2>, Option<G3>)
pub fn get3<'a, G1: Get<'a>, G2: Get<'a>, G3: Get<'a>>(
&'a self
) -> (Option<G1>, Option<G2>, Option<G3>)
Gets the first three arguments from the message, if those arguments are of type G1, G2 and G3. Returns None if there are not enough arguments, or if types don’t match.
sourcepub fn get4<'a, G1: Get<'a>, G2: Get<'a>, G3: Get<'a>, G4: Get<'a>>(
&'a self
) -> (Option<G1>, Option<G2>, Option<G3>, Option<G4>)
pub fn get4<'a, G1: Get<'a>, G2: Get<'a>, G3: Get<'a>, G4: Get<'a>>(
&'a self
) -> (Option<G1>, Option<G2>, Option<G3>, Option<G4>)
Gets the first four arguments from the message, if those arguments are of type G1, G2, G3 and G4. Returns None if there are not enough arguments, or if types don’t match.
sourcepub fn get5<'a, G1: Get<'a>, G2: Get<'a>, G3: Get<'a>, G4: Get<'a>, G5: Get<'a>>(
&'a self
) -> (Option<G1>, Option<G2>, Option<G3>, Option<G4>, Option<G5>)
pub fn get5<'a, G1: Get<'a>, G2: Get<'a>, G3: Get<'a>, G4: Get<'a>, G5: Get<'a>>(
&'a self
) -> (Option<G1>, Option<G2>, Option<G3>, Option<G4>, Option<G5>)
Gets the first five arguments from the message, if those arguments are of type G1, G2, G3 and G4.
Returns None if there are not enough arguments, or if types don’t match.
Note: If you need more than five arguments, use iter_init
instead.
sourcepub fn read1<'a, G1: Arg + Get<'a>>(&'a self) -> Result<G1, TypeMismatchError>
pub fn read1<'a, G1: Arg + Get<'a>>(&'a self) -> Result<G1, TypeMismatchError>
Gets the first argument from the message, if that argument is of type G1.
Returns a TypeMismatchError if there are not enough arguments, or if types don’t match.
sourcepub fn read2<'a, G1: Arg + Get<'a>, G2: Arg + Get<'a>>(
&'a self
) -> Result<(G1, G2), TypeMismatchError>
pub fn read2<'a, G1: Arg + Get<'a>, G2: Arg + Get<'a>>(
&'a self
) -> Result<(G1, G2), TypeMismatchError>
Gets the first two arguments from the message, if those arguments are of type G1 and G2.
Returns a TypeMismatchError if there are not enough arguments, or if types don’t match.
sourcepub fn read3<'a, G1: Arg + Get<'a>, G2: Arg + Get<'a>, G3: Arg + Get<'a>>(
&'a self
) -> Result<(G1, G2, G3), TypeMismatchError>
pub fn read3<'a, G1: Arg + Get<'a>, G2: Arg + Get<'a>, G3: Arg + Get<'a>>(
&'a self
) -> Result<(G1, G2, G3), TypeMismatchError>
Gets the first three arguments from the message, if those arguments are of type G1, G2 and G3.
Returns a TypeMismatchError if there are not enough arguments, or if types don’t match.
sourcepub fn read4<'a, G1: Arg + Get<'a>, G2: Arg + Get<'a>, G3: Arg + Get<'a>, G4: Arg + Get<'a>>(
&'a self
) -> Result<(G1, G2, G3, G4), TypeMismatchError>
pub fn read4<'a, G1: Arg + Get<'a>, G2: Arg + Get<'a>, G3: Arg + Get<'a>, G4: Arg + Get<'a>>(
&'a self
) -> Result<(G1, G2, G3, G4), TypeMismatchError>
Gets the first four arguments from the message, if those arguments are of type G1, G2, G3 and G4.
Returns a TypeMismatchError if there are not enough arguments, or if types don’t match.
sourcepub fn read5<'a, G1: Arg + Get<'a>, G2: Arg + Get<'a>, G3: Arg + Get<'a>, G4: Arg + Get<'a>, G5: Arg + Get<'a>>(
&'a self
) -> Result<(G1, G2, G3, G4, G5), TypeMismatchError>
pub fn read5<'a, G1: Arg + Get<'a>, G2: Arg + Get<'a>, G3: Arg + Get<'a>, G4: Arg + Get<'a>, G5: Arg + Get<'a>>(
&'a self
) -> Result<(G1, G2, G3, G4, G5), TypeMismatchError>
Gets the first five arguments from the message, if those arguments are of type G1, G2, G3, G4 and G5.
Returns a TypeMismatchError if there are not enough arguments, or if types don’t match.
Note: If you need more than five arguments, use iter_init
instead.
sourcepub fn iter_init<'a>(&'a self) -> Iter<'a> ⓘ
pub fn iter_init<'a>(&'a self) -> Iter<'a> ⓘ
Returns a struct for retreiving the arguments from a message. Supersedes get_items().
sourcepub fn msg_type(&self) -> MessageType
pub fn msg_type(&self) -> MessageType
Gets the MessageType of the Message.
sourcepub fn sender<'a>(&'a self) -> Option<BusName<'a>>
pub fn sender<'a>(&'a self) -> Option<BusName<'a>>
Gets the name of the connection that originated this message.
sourcepub fn headers(
&self
) -> (MessageType, Option<String>, Option<String>, Option<String>)
pub fn headers(
&self
) -> (MessageType, Option<String>, Option<String>, Option<String>)
Returns a tuple of (Message type, Path, Interface, Member) of the current message.
sourcepub fn path<'a>(&'a self) -> Option<Path<'a>>
pub fn path<'a>(&'a self) -> Option<Path<'a>>
Gets the object path this Message is being sent to.
sourcepub fn destination<'a>(&'a self) -> Option<BusName<'a>>
pub fn destination<'a>(&'a self) -> Option<BusName<'a>>
Gets the destination this Message is being sent to.
sourcepub fn set_destination(&mut self, dest: Option<BusName<'_>>)
pub fn set_destination(&mut self, dest: Option<BusName<'_>>)
Sets the destination of this Message
If dest is none, that means broadcast to all relevant destinations.