コード例 #1
0
ファイル: data.go プロジェクト: GitGoldie/cockroach
func (v Value) checksum() uint32 {
	if len(v.RawBytes) < checksumSize {
		return 0
	}
	_, u, err := encoding.DecodeUint32Ascending(v.RawBytes[:checksumSize])
	if err != nil {
		panic(err)
	}
	return u
}
コード例 #2
0
ファイル: clog.go プロジェクト: billhongs/cockroach
// Decode decodes the next log entry into the provided protobuf message.
func (lr *EntryDecoder) Decode(entry *LogEntry) error {
	// Read the next log entry.
	szBuf := make([]byte, 4)
	n, err := lr.in.Read(szBuf)
	if err != nil {
		return err
	}
	_, sz, err := encoding.DecodeUint32Ascending(szBuf)
	if err != nil {
		return err
	}
	buf := make([]byte, sz)
	n, err = lr.in.Read(buf)
	if err != nil {
		return err
	}
	if err := proto.Unmarshal(buf[:n], entry); err != nil {
		return err
	}
	return nil
}