summaryrefslogtreecommitdiff
path: root/src/thread
diff options
context:
space:
mode:
authorluwenpeng <[email protected]>2023-08-29 18:43:04 +0800
committerluwenpeng <[email protected]>2023-08-31 18:42:25 +0800
commitccf658df8cd062fedb66bb64d3c5a25b2d847f25 (patch)
tree182d74d33ba8ad914be2772620f073e62262ae55 /src/thread
parentab66a023549901674110176256df5564ae039ce6 (diff)
[feature] Integration Test Passed
1.Receive packets through pcap 2.Packet decapsulate 3.Trigger events 4.Dispatch event management 5.Call plugin handle 6.Plugin manipulate session
Diffstat (limited to 'src/thread')
-rw-r--r--src/thread/mod.rs1
-rw-r--r--src/thread/thread.rs26
2 files changed, 27 insertions, 0 deletions
diff --git a/src/thread/mod.rs b/src/thread/mod.rs
new file mode 100644
index 0000000..0910418
--- /dev/null
+++ b/src/thread/mod.rs
@@ -0,0 +1 @@
+pub mod thread; \ No newline at end of file
diff --git a/src/thread/thread.rs b/src/thread/thread.rs
new file mode 100644
index 0000000..d13c271
--- /dev/null
+++ b/src/thread/thread.rs
@@ -0,0 +1,26 @@
+use crate::event::manager::EventManager;
+use crate::session::manager::SessionManager;
+use std::cell::RefCell;
+use std::rc::Rc;
+
+pub struct ThreadContex {
+ event_mgr: Rc<RefCell<EventManager>>,
+ session_mgr: Rc<RefCell<SessionManager>>,
+}
+
+impl ThreadContex {
+ pub fn new() -> Self {
+ ThreadContex {
+ event_mgr: Rc::new(RefCell::new(EventManager::new())),
+ session_mgr: Rc::new(RefCell::new(SessionManager::new(4096))),
+ }
+ }
+
+ pub fn get_event_mgr(&self) -> Rc<RefCell<EventManager>> {
+ self.event_mgr.clone()
+ }
+
+ pub fn get_session_mgr(&self) -> Rc<RefCell<SessionManager>> {
+ self.session_mgr.clone()
+ }
+}