Skip to main content

GateNode

Struct GateNode 

Source
pub struct GateNode { /* private fields */ }
Expand description

Gate node wrapper.

The Gate node acts as a valve that controls whether messages flow from its input port to its output port. The gate state (open / closed / open for N messages) is controlled at runtime by sending GateControl messages to its inputControl port.

§Example (v3.4.0+)

let gate = pipeline.create::<GateNode>()?;

// Wire camera output → gate input; consume from gate output.
cam_out.link(&gate.input()?)?;
let out_queue = gate.output()?.create_message_queue(8, false)?;

// Create a queue to send control messages at runtime.
let ctrl_queue = gate.inputControl()?.create_input_queue(4, false)?;

pipeline.start()?;

// Open the gate (passes all messages through).
ctrl_queue.send_buffer(&GateControl::open_all()?)?;

// Close the gate.
ctrl_queue.send_buffer(&GateControl::close()?)?;

// Open for exactly 5 messages at default fps.
ctrl_queue.send_buffer(&GateControl::open_n(5, -1)?)?;

Implementations§

Source§

impl GateNode

Source

pub fn as_node(&self) -> &Node

View this node as a generic erased pipeline node.

Source§

impl GateNode

Source

pub fn input(&self) -> Result<Input>

Source

pub fn inputControl(&self) -> Result<Input>

Source

pub fn output(&self) -> Result<Output>

Source§

impl GateNode

Source

pub fn set_run_on_host(&self, run_on_host: bool) -> Result<()>

Configure whether the Gate node runs on the host CPU or on device.

By default the node runs on device.

Source

pub fn run_on_host(&self) -> Result<bool>

Returns true if the gate is currently configured to run on the host.

Trait Implementations§

Source§

impl DeviceNode for GateNode

Source§

fn create_in_pipeline(pipeline: &Pipeline) -> Result<Self>

Create a new instance of this device node within the given pipeline Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CreateInPipeline for T
where T: DeviceNode,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.