Skip to main content

GatherProcessor

Struct GatherProcessor 

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

Pure gather processing logic: merges arrays from multiple upstream ports into a single output stream.

Multi-source subscription is achieved at the IOC wiring level: NDGatherConfigure registers the same NDArraySender with multiple upstream NDArrayOutputs, so arrays from any configured source arrive on the plugin’s single input channel.

The processor stores the configured source port names and addresses as params (GATHER_NDARRAY_PORT_1..8, GATHER_NDARRAY_ADDR_1..8) for introspection and runtime reconfiguration via PVs.

Implementations§

Source§

impl GatherProcessor

Source

pub fn new() -> Self

Source

pub fn with_ports(ports: &[&str]) -> Self

Create a GatherProcessor pre-configured with the given source port names.

Source

pub fn total_received(&self) -> u64

Source

pub fn num_ports(&self) -> usize

Number of configured source ports.

Source

pub fn source_port(&self, index: usize) -> &str

Get the configured source port name for the given index (0-based).

Trait Implementations§

Source§

impl Default for GatherProcessor

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl NDPluginProcess for GatherProcessor

Source§

fn process_array( &mut self, array: &NDArray, _pool: &NDArrayPool, ) -> ProcessResult

Process one array. Return output arrays and param updates.
Source§

fn plugin_type(&self) -> &str

Plugin type name for PLUGIN_TYPE param.
Source§

fn register_params(&mut self, base: &mut PortDriverBase) -> AsynResult<()>

Register plugin-specific params on the base. Called once during construction.
Source§

fn on_param_change( &mut self, reason: usize, params: &PluginParamSnapshot, ) -> ParamChangeResult

Called when a param changes. Reason is the param index. Return param updates to be written back to the port driver.
Source§

fn array_data_handle( &self, ) -> Option<Arc<Mutex<RawMutex, Option<Arc<NDArray>>>>>

Return a handle to the latest NDArray data for array reads. Override this in plugins like NDPluginStdArrays that serve pixel data via readInt8Array/readInt16Array/etc.

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more