bitbucket.org/Aishee/synsec@v0.0.0-20210414005726-236fc01a153d/pkg/leakybucket/processor.go (about) 1 package leakybucket 2 3 import "bitbucket.org/Aishee/synsec/pkg/types" 4 5 type Processor interface { 6 OnBucketInit(Bucket *BucketFactory) error 7 OnBucketPour(Bucket *BucketFactory) func(types.Event, *Leaky) *types.Event 8 OnBucketOverflow(Bucket *BucketFactory) func(*Leaky, types.RuntimeAlert, *Queue) (types.RuntimeAlert, *Queue) 9 } 10 11 type DumbProcessor struct { 12 } 13 14 func (d *DumbProcessor) OnBucketInit(bucketFactory *BucketFactory) error { 15 return nil 16 } 17 18 func (d *DumbProcessor) OnBucketPour(bucketFactory *BucketFactory) func(types.Event, *Leaky) *types.Event { 19 return func(msg types.Event, leaky *Leaky) *types.Event { 20 return &msg 21 } 22 } 23 24 func (d *DumbProcessor) OnBucketOverflow(b *BucketFactory) func(*Leaky, types.RuntimeAlert, *Queue) (types.RuntimeAlert, *Queue) { 25 return func(leaky *Leaky, alert types.RuntimeAlert, queue *Queue) (types.RuntimeAlert, *Queue) { 26 return alert, queue 27 } 28 29 }