peco.peco/peco_test.go
2014-08-27 14:17:13 +09:00

37 lines
616 B
Go

package peco
import "sync"
type interceptorArgs []interface{}
type interceptor struct {
m *sync.Mutex
events map[string][]interceptorArgs
}
func newInterceptor() *interceptor {
return &interceptor{
&sync.Mutex{},
make(map[string][]interceptorArgs),
}
}
func (i *interceptor) reset() {
i.m.Lock()
defer i.m.Unlock()
i.events = make(map[string][]interceptorArgs)
}
func (i *interceptor) record(name string, args []interface{}) {
i.m.Lock()
defer i.m.Unlock()
events := i.events
v, ok := events[name]
if !ok {
v = []interceptorArgs{}
}
events[name] = append(v, interceptorArgs(args))
}