flare_core/server/events/
handler.rs1use crate::common::error::Result;
6use crate::common::protocol::{
7 Frame, NotificationCommand, PayloadCommand, flare::core::commands::CustomCommand,
8};
9use async_trait::async_trait;
10
11#[async_trait]
16pub trait ServerEventHandler: Send + Sync {
17 async fn handle_connect(&self, frame: &Frame, connection_id: &str) -> Result<Option<Frame>> {
21 let _ = (frame, connection_id);
22 Ok(None)
23 }
24
25 async fn handle_ping(&self, frame: &Frame, connection_id: &str) -> Result<Option<Frame>> {
29 let _ = (frame, connection_id);
30 Ok(None)
31 }
32
33 async fn handle_pong(&self, frame: &Frame, connection_id: &str) -> Result<Option<Frame>> {
37 let _ = (frame, connection_id);
38 Ok(None)
39 }
40
41 async fn handle_message(
43 &self,
44 command: &PayloadCommand,
45 connection_id: &str,
46 ) -> Result<Option<Frame>> {
47 let _ = (command, connection_id);
48 Ok(None)
49 }
50
51 async fn handle_event(
53 &self,
54 command: &PayloadCommand,
55 connection_id: &str,
56 ) -> Result<Option<Frame>> {
57 let _ = (command, connection_id);
58 Ok(None)
59 }
60
61 async fn handle_ack(
63 &self,
64 command: &PayloadCommand,
65 connection_id: &str,
66 ) -> Result<Option<Frame>> {
67 let _ = (command, connection_id);
68 Ok(None)
69 }
70
71 async fn handle_data(
73 &self,
74 command: &PayloadCommand,
75 connection_id: &str,
76 ) -> Result<Option<Frame>> {
77 let _ = (command, connection_id);
78 Ok(None)
79 }
80
81 async fn handle_notification_command(
90 &self,
91 command: &NotificationCommand,
92 connection_id: &str,
93 ) -> Result<Option<Frame>> {
94 let _ = (command, connection_id);
95 Ok(None)
96 }
97
98 async fn on_disconnect(&self, connection_id: &str, reason: Option<&str>) -> Result<()> {
104 let _ = (connection_id, reason);
105 Ok(())
106 }
107
108 async fn on_error(&self, connection_id: &str, error: &str) -> Result<()> {
114 let _ = (connection_id, error);
115 Ok(())
116 }
117
118 async fn handle_custom_command(
131 &self,
132 command: &CustomCommand,
133 connection_id: &str,
134 ) -> Result<Option<Frame>> {
135 let _ = (command, connection_id);
136 Ok(None)
137 }
138
139 async fn on_connect(&self, connection_id: &str) -> Result<()> {
148 let _ = connection_id;
149 Ok(())
150 }
151
152 async fn handle_system_event(
165 &self,
166 frame: &Frame,
167 connection_id: &str,
168 ) -> Result<Option<Frame>> {
169 let _ = (frame, connection_id);
170 Ok(None)
171 }
172}