serialAlox/message_handler.go

37 lines
800 B
Go

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,
}
}