Пример #1
0
// Writes write needles to the block.
func (b *SuperBlock) Writes(ns *needle.Needles) (err error) {
	if b.LastErr != nil {
		return b.LastErr
	}
	if _maxOffset-ns.IncrOffset < b.Offset {
		err = errors.ErrSuperBlockNoSpace
		return
	}
	if _, err = b.w.Write(ns.Buffer()); err == nil {
		err = b.flush(false)
	} else {
		b.LastErr = err
		return
	}
	b.Offset += ns.IncrOffset
	b.Size += int64(ns.TotalSize)
	return
}