pub struct Command<M: Model>(/* private fields */);Expand description
A command of a single device, which is what the server runs when a client asks for it: one of its interface, around the definition it was defined with, or one of the three every device has whatever its class: the State, the Status and the Init.
The definition is shared with the class when the class defines it, and owned by the
device alone when the device added it for itself, see Dev::add_command.
Implementations§
Source§impl<M: Model> Command<M>
impl<M: Model> Command<M>
Sourcepub fn info(&self) -> CommandInfo
pub fn info(&self) -> CommandInfo
What a client is told of that command: what its definition advertises, a side of it no execution function derived a kind for being void. The three every device has are described by the server itself, the State and the Status as their attribute is.
Sourcepub fn push_history(
&self,
result: Result<Value>,
valid_for: Option<Duration>,
) -> Result<()>
pub fn push_history( &self, result: Result<Value>, valid_for: Option<Duration>, ) -> Result<()>
Record that result in the history of that command, the oldest one being dropped
when the history is full, see Self::set_history_depth. A run that failed is
recorded as well, as the error it failed with.
The latest result is what a request from the cache is answered with, for that long when given a validity, after which the command is executed again, or a request from the cache alone fails as outdated; without one, it answers until the next is recorded.
Only a command taking no argument is recorded, as with the polling of cppTango: the
result of one taking an argument depends on it. The State and the Status are
recorded in the history of their attribute, see Attr::push_history, and the Init
is never recorded.
Sourcepub fn history(&self, max: usize) -> Vec<RecordedResult<Value>> ⓘ
pub fn history(&self, max: usize) -> Vec<RecordedResult<Value>> ⓘ
The latest results recorded in the history of that command, oldest first and at
most max of them, see Self::push_history.
Sourcepub fn clear_history(&self)
pub fn clear_history(&self)
Forget every result recorded in the history of that command, so that a request from the cache finds none.
Sourcepub fn history_depth(&self) -> usize
pub fn history_depth(&self) -> usize
How many results the history of that command keeps at most, none for the Init.
Sourcepub fn set_history_depth(&self, depth: usize)
pub fn set_history_depth(&self, depth: usize)
Set how many results the history of that command keeps at most, the oldest ones beyond that being dropped now. A depth of zero records nothing.