github.com/yandex/pandora@v0.5.32/core/register/register.go (about) 1 package register 2 3 import ( 4 "github.com/yandex/pandora/core" 5 "github.com/yandex/pandora/core/plugin" 6 ) 7 8 func RegisterPtr(ptr interface{}, name string, newPlugin interface{}, defaultConfigOptional ...interface{}) { 9 plugin.Register(plugin.PtrType(ptr), name, newPlugin, defaultConfigOptional...) 10 } 11 12 func Provider(name string, newProvider interface{}, defaultConfigOptional ...interface{}) { 13 var ptr *core.Provider 14 RegisterPtr(ptr, name, newProvider, defaultConfigOptional...) 15 } 16 17 func Limiter(name string, newLimiter interface{}, defaultConfigOptional ...interface{}) { 18 var ptr *core.Schedule 19 RegisterPtr(ptr, name, newLimiter, defaultConfigOptional...) 20 } 21 22 func Gun(name string, newGun interface{}, defaultConfigOptional ...interface{}) { 23 var ptr *core.Gun 24 RegisterPtr(ptr, name, newGun, defaultConfigOptional...) 25 } 26 27 func Aggregator(name string, newAggregator interface{}, defaultConfigOptional ...interface{}) { 28 var ptr *core.Aggregator 29 RegisterPtr(ptr, name, newAggregator, defaultConfigOptional...) 30 } 31 32 func DataSource(name string, newDataSource interface{}, defaultConfigOptional ...interface{}) { 33 var ptr *core.DataSource 34 RegisterPtr(ptr, name, newDataSource, defaultConfigOptional...) 35 } 36 37 func DataSink(name string, newDataSink interface{}, defaultConfigOptional ...interface{}) { 38 var ptr *core.DataSink 39 RegisterPtr(ptr, name, newDataSink, defaultConfigOptional...) 40 }