Exemple #1
0
// Encode
func (e *Encoder) Encode(m raftpb.Message) error {
	var buf [4]byte
	b := buf[:4]
	s := m.Size()
	if s == 0 {
		return ErrEmptyMessage
	}
	binary.BigEndian.PutUint32(b, uint32(s))
	e.w.Write(b)
	e.off += 4
	b, err := m.Marshal()
	if err != nil {
		return err
	}
	e.w.Write(b)
	e.off += s
	return nil
}