vortex_ipc/messages/
writer_sync.rs1use std::io::Write;
5
6use vortex_error::VortexResult;
7use vortex_session::VortexSession;
8
9use crate::messages::EncoderMessage;
10use crate::messages::MessageEncoder;
11
12pub struct SyncMessageWriter<W> {
13 write: W,
14 encoder: MessageEncoder,
15}
16
17impl<W: Write> SyncMessageWriter<W> {
18 pub fn new(write: W, session: &VortexSession) -> Self {
19 Self {
20 write,
21 encoder: MessageEncoder::new(session.clone()),
22 }
23 }
24
25 pub fn write_message(&mut self, message: EncoderMessage) -> VortexResult<()> {
26 for buffer in self.encoder.encode(message)? {
27 self.write.write_all(&buffer)?;
28 }
29 Ok(())
30 }
31}