tutus-consensus/internal/consensus/recovery_request.go

43 lines
902 B
Go

package consensus
import (
"encoding/gob"
"git.marketally.com/tutus-one/tutus-consensus"
)
type (
recoveryRequest struct {
timestamp uint32
}
// recoveryRequestAux is an auxiliary structure for recoveryRequest encoding.
recoveryRequestAux struct {
Timestamp uint32
}
)
var _ dbft.RecoveryRequest = (*recoveryRequest)(nil)
// EncodeBinary implements Serializable interface.
func (m recoveryRequest) EncodeBinary(w *gob.Encoder) error {
return w.Encode(&recoveryRequestAux{
Timestamp: m.timestamp,
})
}
// DecodeBinary implements Serializable interface.
func (m *recoveryRequest) DecodeBinary(r *gob.Decoder) error {
aux := new(recoveryRequestAux)
if err := r.Decode(aux); err != nil {
return err
}
m.timestamp = aux.Timestamp
return nil
}
// Timestamp implements RecoveryRequest interface.
func (m *recoveryRequest) Timestamp() uint64 {
return secToNanoSec(m.timestamp)
}