blob: 8fc5b204a34bf8ea6077ab308bdec0dbd6272185 [file] [log] [blame]
package disruptor
type SimpleReader struct {
reader *Reader
callback Consumer
}
func NewSimpleReader(reader *Reader, callback Consumer) *SimpleReader {
return &SimpleReader{reader: reader, callback: callback}
}
func (this *SimpleReader) Receive() (int64, int64) {
lower, upper := this.reader.Receive()
if lower <= upper {
for sequence := lower; sequence <= upper; sequence++ {
this.callback.Consume(sequence, upper-sequence)
}
this.reader.Commit(upper)
}
return lower, upper
}