tendermint/peer/msg.go

60 lines
1.1 KiB
Go
Raw Normal View History

2014-06-24 17:28:40 -07:00
package peer
2014-06-25 21:37:20 -07:00
import (
. "github.com/tendermint/tendermint/binary"
"io"
)
/* Packet */
2014-06-24 17:28:40 -07:00
type Packet struct {
Channel String
2014-06-24 17:28:40 -07:00
Bytes ByteSlice
// Hash
}
func NewPacket(chName String, bytes ByteSlice) Packet {
return Packet{
Channel: chName,
Bytes: bytes,
}
}
func (p Packet) WriteTo(w io.Writer) (n int64, err error) {
n, err = WriteOnto(&p.Channel, w, n, err)
n, err = WriteOnto(&p.Bytes, w, n, err)
return
}
func ReadPacketSafe(r io.Reader) (pkt Packet, err error) {
chName, err := ReadStringSafe(r)
if err != nil { return }
// TODO: packet length sanity check.
bytes, err := ReadByteSliceSafe(r)
if err != nil { return }
return NewPacket(chName, bytes), nil
2014-06-24 17:28:40 -07:00
}
/* InboundPacket */
2014-06-24 17:28:40 -07:00
type InboundPacket struct {
2014-06-24 17:28:40 -07:00
Peer *Peer
Channel *Channel
Time Time
Packet
2014-06-24 17:28:40 -07:00
}
/* NewFilterMsg */
type NewFilterMsg struct {
ChName String
2014-06-28 13:09:04 -07:00
Filter interface{} // todo
2014-06-24 17:28:40 -07:00
}
func (m *NewFilterMsg) WriteTo(w io.Writer) (int64, error) {
panic("TODO: implement")
2014-06-24 17:28:40 -07:00
return 0, nil // TODO
}