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  }