35 lines
665 B
Go
35 lines
665 B
Go
package messages
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
)
|
|
|
|
type SessionFinished struct {
|
|
message
|
|
Timestamp uint64
|
|
}
|
|
|
|
func (msg *SessionFinished) Encode() []byte {
|
|
buf := make([]byte, 11)
|
|
buf[0] = 127
|
|
p := 1
|
|
p = WriteUint(msg.Timestamp, buf, p)
|
|
return buf[:p]
|
|
}
|
|
|
|
func (msg *SessionFinished) TypeID() int {
|
|
return 127
|
|
}
|
|
|
|
func DecodeExtraMessage(code string, reader io.Reader) (Message, error) {
|
|
var err error
|
|
if code != "127" {
|
|
return nil, fmt.Errorf("unknown message code: %s", code)
|
|
}
|
|
trigger := &SessionFinished{}
|
|
if trigger.Timestamp, err = ReadUint(reader); err != nil {
|
|
return nil, fmt.Errorf("can't read message timestamp: %s", err)
|
|
}
|
|
return trigger, nil
|
|
}
|