aboutsummaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'core/src')
-rw-r--r--core/src/event.rs68
-rw-r--r--core/src/lib.rs2
2 files changed, 35 insertions, 35 deletions
diff --git a/core/src/event.rs b/core/src/event.rs
index 709dbd9..8437ea3 100644
--- a/core/src/event.rs
+++ b/core/src/event.rs
@@ -18,14 +18,14 @@ pub type EventListenerID = u32;
type Listeners<T> = HashMap<T, HashMap<String, HashMap<EventListenerID, Sender<Event>>>>;
-/// EventSys emits events to registered listeners based on topics.
+/// EventEmitter emits events to registered listeners based on topics.
/// # Example
///
/// ```
-/// use karyon_core::event::{EventSys, EventValueTopic, EventValue};
+/// use karyon_core::event::{EventEmitter, EventValueTopic, EventValue};
///
/// async {
-/// let event_sys = EventSys::new();
+/// let event_emitter = EventEmitter::new();
///
/// #[derive(Hash, PartialEq, Eq, Debug, Clone)]
/// enum Topic {
@@ -42,9 +42,9 @@ type Listeners<T> = HashMap<T, HashMap<String, HashMap<EventListenerID, Sender<E
/// }
/// }
///
-/// let listener = event_sys.register::<A>(&Topic::TopicA).await;
+/// let listener = event_emitter.register::<A>(&Topic::TopicA).await;
///
-/// event_sys.emit_by_topic(&Topic::TopicA, &A(3)) .await;
+/// event_emitter.emit_by_topic(&Topic::TopicA, &A(3)) .await;
/// let msg: A = listener.recv().await.unwrap();
///
/// #[derive(Clone, Debug, PartialEq)]
@@ -63,9 +63,9 @@ type Listeners<T> = HashMap<T, HashMap<String, HashMap<EventListenerID, Sender<E
/// }
/// }
///
-/// let listener = event_sys.register::<B>(&Topic::TopicB).await;
+/// let listener = event_emitter.register::<B>(&Topic::TopicB).await;
///
-/// event_sys.emit(&B(3)) .await;
+/// event_emitter.emit(&B(3)) .await;
/// let msg: B = listener.recv().await.unwrap();
///
/// // ....
@@ -73,24 +73,24 @@ type Listeners<T> = HashMap<T, HashMap<String, HashMap<EventListenerID, Sender<E
///
/// ```
///
-pub struct EventSys<T> {
+pub struct EventEmitter<T> {
listeners: Mutex<Listeners<T>>,
listener_buffer_size: usize,
}
-impl<T> EventSys<T>
+impl<T> EventEmitter<T>
where
T: std::hash::Hash + Eq + std::fmt::Debug + Clone,
{
- /// Creates a new [`EventSys`]
- pub fn new() -> Arc<EventSys<T>> {
+ /// Creates a new [`EventEmitter`]
+ pub fn new() -> Arc<EventEmitter<T>> {
Arc::new(Self {
listeners: Mutex::new(HashMap::new()),
listener_buffer_size: CHANNEL_BUFFER_SIZE,
})
}
- /// Creates a new [`EventSys`] with the provided buffer size for the
+ /// Creates a new [`EventEmitter`] with the provided buffer size for the
/// [`EventListener`] channel.
///
/// This is important to control the memory used by the listener channel.
@@ -100,7 +100,7 @@ where
/// starts to consume the buffered events.
///
/// If `size` is zero, this function will panic.
- pub fn with_buffer_size(size: usize) -> Arc<EventSys<T>> {
+ pub fn with_buffer_size(size: usize) -> Arc<EventEmitter<T>> {
Arc::new(Self {
listeners: Mutex::new(HashMap::new()),
listener_buffer_size: size,
@@ -240,11 +240,11 @@ where
}
}
-/// EventListener listens for and receives events from the [`EventSys`].
+/// EventListener listens for and receives events from the [`EventEmitter`].
pub struct EventListener<T, E> {
id: EventListenerID,
recv_chan: Receiver<Event>,
- event_sys: Weak<EventSys<T>>,
+ event_emitter: Weak<EventEmitter<T>>,
event_id: String,
topic: T,
phantom: PhantomData<E>,
@@ -258,7 +258,7 @@ where
/// Creates a new [`EventListener`].
fn new(
id: EventListenerID,
- event_sys: Weak<EventSys<T>>,
+ event_emitter: Weak<EventEmitter<T>>,
recv_chan: Receiver<Event>,
event_id: &str,
topic: &T,
@@ -266,7 +266,7 @@ where
Self {
id,
recv_chan,
- event_sys,
+ event_emitter,
event_id: event_id.to_string(),
topic: topic.clone(),
phantom: PhantomData,
@@ -288,9 +288,9 @@ where
}
}
- /// Cancels the event listener and removes it from the [`EventSys`].
+ /// Cancels the event listener and removes it from the [`EventEmitter`].
pub async fn cancel(&self) {
- if let Some(es) = self.event_sys.upgrade() {
+ if let Some(es) = self.event_emitter.upgrade() {
es.remove(&self.topic, &self.event_id, &self.id).await;
}
}
@@ -306,7 +306,7 @@ where
}
}
-/// An event within the [`EventSys`].
+/// An event within the [`EventEmitter`].
#[derive(Clone, Debug)]
pub struct Event {
/// The time at which the event was created.
@@ -432,18 +432,18 @@ mod tests {
}
#[test]
- fn test_event_sys() {
+ fn test_event_emitter() {
block_on(async move {
- let event_sys = EventSys::<Topic>::new();
+ let event_emitter = EventEmitter::<Topic>::new();
- let a_listener = event_sys.register::<A>(&Topic::TopicA).await;
- let b_listener = event_sys.register::<B>(&Topic::TopicB).await;
+ let a_listener = event_emitter.register::<A>(&Topic::TopicA).await;
+ let b_listener = event_emitter.register::<B>(&Topic::TopicB).await;
- event_sys
+ event_emitter
.emit_by_topic(&Topic::TopicA, &A { a_value: 3 })
.await
.expect("Emit event");
- event_sys
+ event_emitter
.emit_by_topic(&Topic::TopicB, &B { b_value: 5 })
.await
.expect("Emit event");
@@ -455,17 +455,17 @@ mod tests {
assert_eq!(msg, B { b_value: 5 });
// register the same event type to different topics
- let c_listener = event_sys.register::<C>(&Topic::TopicC).await;
- let d_listener = event_sys.register::<C>(&Topic::TopicD).await;
+ let c_listener = event_emitter.register::<C>(&Topic::TopicC).await;
+ let d_listener = event_emitter.register::<C>(&Topic::TopicD).await;
- event_sys
+ event_emitter
.emit(&C { c_value: 10 })
.await
.expect("Emit event");
let msg = c_listener.recv().await.unwrap();
assert_eq!(msg, C { c_value: 10 });
- event_sys
+ event_emitter
.emit_by_topic(&Topic::TopicD, &C { c_value: 10 })
.await
.expect("Emit event");
@@ -473,10 +473,10 @@ mod tests {
assert_eq!(msg, C { c_value: 10 });
// register different event types to the same topic
- let e_listener = event_sys.register::<E>(&Topic::TopicE).await;
- let f_listener = event_sys.register::<F>(&Topic::TopicE).await;
+ let e_listener = event_emitter.register::<E>(&Topic::TopicE).await;
+ let f_listener = event_emitter.register::<F>(&Topic::TopicE).await;
- event_sys
+ event_emitter
.emit_by_topic(&Topic::TopicE, &E { e_value: 5 })
.await
.expect("Emit event");
@@ -484,7 +484,7 @@ mod tests {
let msg = e_listener.recv().await.unwrap();
assert_eq!(msg, E { e_value: 5 });
- event_sys
+ event_emitter
.emit_by_topic(&Topic::TopicE, &F { f_value: 5 })
.await
.expect("Emit event");
diff --git a/core/src/lib.rs b/core/src/lib.rs
index 62052a8..a7192d9 100644
--- a/core/src/lib.rs
+++ b/core/src/lib.rs
@@ -13,7 +13,7 @@ pub mod async_util;
/// Represents karyon's Core Error.
pub mod error;
-/// [`event::EventSys`] implementation.
+/// [`event::EventEmitter`] implementation.
pub mod event;
/// A simple publish-subscribe system [`Read More`](./pubsub/struct.Publisher.html)