mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-25 14:52:17 +00:00
remove unused TxEventBuffer
This commit is contained in:
parent
95980d944b
commit
1377ef1e1f
@ -1,50 +0,0 @@
|
|||||||
package types
|
|
||||||
|
|
||||||
// Interface assertions
|
|
||||||
var _ TxEventPublisher = (*TxEventBuffer)(nil)
|
|
||||||
|
|
||||||
// TxEventBuffer is a buffer of events, which uses a slice to temporarily store
|
|
||||||
// events.
|
|
||||||
type TxEventBuffer struct {
|
|
||||||
next TxEventPublisher
|
|
||||||
capacity int
|
|
||||||
events []EventDataTx
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTxEventBuffer accepts a TxEventPublisher and returns a new buffer with the given
|
|
||||||
// capacity.
|
|
||||||
func NewTxEventBuffer(next TxEventPublisher, capacity int) *TxEventBuffer {
|
|
||||||
return &TxEventBuffer{
|
|
||||||
next: next,
|
|
||||||
capacity: capacity,
|
|
||||||
events: make([]EventDataTx, 0, capacity),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Len returns the number of events cached.
|
|
||||||
func (b TxEventBuffer) Len() int {
|
|
||||||
return len(b.events)
|
|
||||||
}
|
|
||||||
|
|
||||||
// PublishEventTx buffers an event to be fired upon finality.
|
|
||||||
func (b *TxEventBuffer) PublishEventTx(e EventDataTx) error {
|
|
||||||
b.events = append(b.events, e)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Flush publishes events by running next.PublishWithTags on all cached events.
|
|
||||||
// Blocks. Clears cached events.
|
|
||||||
func (b *TxEventBuffer) Flush() error {
|
|
||||||
for _, e := range b.events {
|
|
||||||
err := b.next.PublishEventTx(e)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear out the elements and set the length to 0
|
|
||||||
// but maintain the underlying slice's capacity.
|
|
||||||
// See Issue https://github.com/tendermint/tendermint/issues/1189
|
|
||||||
b.events = b.events[:0]
|
|
||||||
return nil
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
package types
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
)
|
|
||||||
|
|
||||||
type eventBusMock struct{}
|
|
||||||
|
|
||||||
func (eventBusMock) PublishEventTx(e EventDataTx) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestEventBuffer(t *testing.T) {
|
|
||||||
b := NewTxEventBuffer(eventBusMock{}, 1)
|
|
||||||
b.PublishEventTx(EventDataTx{})
|
|
||||||
assert.Equal(t, 1, b.Len())
|
|
||||||
b.Flush()
|
|
||||||
assert.Equal(t, 0, b.Len())
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user