* feat(backend): refactored heuristics service * feat(backend): refactored db service (moved several events to heuristics)
58 lines
898 B
Go
58 lines
898 B
Go
package messages
|
|
|
|
import (
|
|
"log"
|
|
)
|
|
|
|
// RawMessage is a not decoded message
|
|
type RawMessage struct {
|
|
tp uint64
|
|
data []byte
|
|
broken *bool
|
|
meta *message
|
|
}
|
|
|
|
func (m *RawMessage) Encode() []byte {
|
|
return m.data
|
|
}
|
|
|
|
func (m *RawMessage) Decode() Message {
|
|
msg, err := ReadMessage(m.tp, NewBytesReader(m.data[1:]))
|
|
if err != nil {
|
|
log.Printf("decode err: %s", err)
|
|
*m.broken = true
|
|
return nil
|
|
}
|
|
msg = transformDeprecated(msg)
|
|
msg.Meta().SetMeta(m.meta)
|
|
return msg
|
|
}
|
|
|
|
func (m *RawMessage) TypeID() int {
|
|
return int(m.tp)
|
|
}
|
|
|
|
func (m *RawMessage) Meta() *message {
|
|
return m.meta
|
|
}
|
|
|
|
func (m *RawMessage) SessionID() uint64 {
|
|
if m.meta != nil {
|
|
return m.meta.SessionID()
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *RawMessage) MsgID() uint64 {
|
|
if m.meta != nil {
|
|
return m.meta.Index
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *RawMessage) Time() uint64 {
|
|
if m.meta != nil {
|
|
return m.meta.Timestamp
|
|
}
|
|
return 0
|
|
}
|