saito_rust/
io_event.rs

1use std::sync::Mutex;
2
3use lazy_static::lazy_static;
4
5use saito_core::core::io::network_event::NetworkEvent;
6
7#[derive(Debug)]
8pub struct IoEvent {
9    pub event_processor_id: u8,
10    pub event_id: u64,
11    pub event: NetworkEvent,
12}
13
14lazy_static! {
15    static ref EVENT_COUNTER: Mutex<u64> = Mutex::new(0);
16}
17
18impl IoEvent {
19    pub fn new(event: NetworkEvent) -> IoEvent {
20        let mut value = EVENT_COUNTER.lock().unwrap();
21        *value = *value + 1;
22        assert_ne!(*value, 0);
23        // trace!("new event created : {:?}", *value);
24        IoEvent {
25            event_processor_id: 0,
26            event_id: value.clone(),
27            event,
28        }
29    }
30}