From 571d32b4678b1ec9574d9628f9fbcb8ddd6dfb6e Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 29 May 2025 22:24:50 +0200 Subject: [PATCH] Added Message Hanlder Boilerplate --- message_handler.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 message_handler.go diff --git a/message_handler.go b/message_handler.go new file mode 100644 index 0000000..e8d0594 --- /dev/null +++ b/message_handler.go @@ -0,0 +1,36 @@ +package main + +type ReaderWriter interface { + Write(p []byte) (n int, err error) + Read(b []byte) (n int, err error) +} + +type Parser interface { + ParseBytes(p []byte) (n int, err error) + IsMessageAvailable() bool + GetNextMessage() (typeByte byte, payload []byte, err error) +} + +type HandlerFunc func(byte, []byte) + +type MessageHandler struct { + WriterReader ReaderWriter + Conf MessageHandlerConfig + MessageParser Parser + handlers map[byte]HandlerFunc +} + +type MessageHandlerConfig struct { +} + +func NewMessageHandlerConfig() *MessageHandlerConfig { + return &MessageHandlerConfig{} +} + +func NewMessageHandler(con ReaderWriter, conf MessageHandlerConfig, msgParser Parser) *MessageHandler { + return &MessageHandler{ + WriterReader: con, + Conf: conf, + MessageParser: msgParser, + } +}