| 12345678910111213141516171819202122232425 |
- package store
- type eventQueue struct {
- Events []*Event
- Size int
- Front int
- Capacity int
- }
- func (eq *eventQueue) back() int {
- return (eq.Front + eq.Size - 1 + eq.Capacity) % eq.Capacity
- }
- func (eq *eventQueue) insert(e *Event) {
- index := (eq.back() + 1) % eq.Capacity
- eq.Events[index] = e
- if eq.Size == eq.Capacity { //dequeue
- eq.Front = (index + 1) % eq.Capacity
- } else {
- eq.Size++
- }
- }
|