pub struct ApplicationSource { /* private fields */ }Expand description
A source that allows applications to programmatically inject events.
This source receives events from an ApplicationSourceHandle and forwards
them to the Drasi query processing pipeline.
§Fields
base: Common source functionality (dispatchers, status, lifecycle, bootstrap)config: Application source configurationapp_rx: Receiver for events from the handleapp_tx: Sender for creating additional handles
Implementations§
Source§impl ApplicationSource
impl ApplicationSource
Sourcepub fn new(
id: impl Into<String>,
config: ApplicationSourceConfig,
) -> Result<(Self, ApplicationSourceHandle)>
pub fn new( id: impl Into<String>, config: ApplicationSourceConfig, ) -> Result<(Self, ApplicationSourceHandle)>
Create a new application source and its handle.
The event channel is automatically injected when the source is added
to DrasiLib via add_source().
§Arguments
id- Unique identifier for this source instanceconfig- Application source configuration
§Returns
A tuple of (ApplicationSource, ApplicationSourceHandle) where the handle
can be used to send events to the source.
§Errors
Returns an error if the base source cannot be initialized.
§Example
ⓘ
use drasi_source_application::{ApplicationSource, ApplicationSourceConfig};
let config = ApplicationSourceConfig::default();
let (source, handle) = ApplicationSource::new("my-source", config)?;Sourcepub fn get_handle(&self) -> ApplicationSourceHandle
pub fn get_handle(&self) -> ApplicationSourceHandle
Get a new handle for this source
Trait Implementations§
Source§impl Source for ApplicationSource
impl Source for ApplicationSource
Source§fn properties(&self) -> HashMap<String, Value>
fn properties(&self) -> HashMap<String, Value>
Get the source’s configuration properties for inspection Read more
Source§fn auto_start(&self) -> bool
fn auto_start(&self) -> bool
Whether this source should auto-start when DrasiLib starts Read more
Source§fn start<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn start<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Start the source Read more
Source§fn stop<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stop<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stop the source Read more
Source§fn status<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ComponentStatus> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn status<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ComponentStatus> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get the current status of the source
Source§fn subscribe<'life0, 'async_trait>(
&'life0 self,
settings: SourceSubscriptionSettings,
) -> Pin<Box<dyn Future<Output = Result<SubscriptionResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn subscribe<'life0, 'async_trait>(
&'life0 self,
settings: SourceSubscriptionSettings,
) -> Pin<Box<dyn Future<Output = Result<SubscriptionResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Subscribe to this source for change events Read more
Source§fn initialize<'life0, 'async_trait>(
&'life0 self,
context: SourceRuntimeContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn initialize<'life0, 'async_trait>(
&'life0 self,
context: SourceRuntimeContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Initialize the source with runtime context. Read more
Source§fn set_bootstrap_provider<'life0, 'async_trait>(
&'life0 self,
provider: Box<dyn BootstrapProvider + 'static>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn set_bootstrap_provider<'life0, 'async_trait>(
&'life0 self,
provider: Box<dyn BootstrapProvider + 'static>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Set the bootstrap provider for this source Read more
Source§fn dispatch_mode(&self) -> DispatchMode
fn dispatch_mode(&self) -> DispatchMode
Get the dispatch mode for this source (Channel or Broadcast) Read more
Auto Trait Implementations§
impl Freeze for ApplicationSource
impl !RefUnwindSafe for ApplicationSource
impl Send for ApplicationSource
impl Sync for ApplicationSource
impl Unpin for ApplicationSource
impl UnsafeUnpin for ApplicationSource
impl !UnwindSafe for ApplicationSource
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