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
impl GatherProcessor
pub fn new() -> Self
Sourcepub fn with_ports(ports: &[&str]) -> Self
pub fn with_ports(ports: &[&str]) -> Self
Create a GatherProcessor pre-configured with the given source port names.
pub fn total_received(&self) -> u64
Sourcepub fn source_port(&self, index: usize) -> &str
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
impl Default for GatherProcessor
Source§impl NDPluginProcess for GatherProcessor
impl NDPluginProcess for GatherProcessor
Source§fn process_array(
&mut self,
array: &NDArray,
_pool: &NDArrayPool,
) -> ProcessResult
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
fn plugin_type(&self) -> &str
Plugin type name for PLUGIN_TYPE param.
Source§fn register_params(&mut self, base: &mut PortDriverBase) -> AsynResult<()>
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
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.
Auto Trait Implementations§
impl Freeze for GatherProcessor
impl RefUnwindSafe for GatherProcessor
impl Send for GatherProcessor
impl Sync for GatherProcessor
impl Unpin for GatherProcessor
impl UnsafeUnpin for GatherProcessor
impl UnwindSafe for GatherProcessor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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