Documentation ¶
Index ¶
Constants ¶
const ( // StatusUndefined when service bus can not find the service. StatusUndefined = iota // StatusInactive when service has been registered in container. StatusInactive // StatusOK when service has been properly configured. StatusOK // StatusServing when service is currently done. StatusServing // StatusStopping when service is currently stopping. StatusStopping // StatusStopped when service being stopped. StatusStopped )
const InitMethod = "Init"
InitMethod contains name of the method to be automatically invoked while service initialization. Must return (bool, error). Container can be requested as well. Config can be requested in a form of service.Config or pointer to service specific config struct (automatically unmarshalled), config argument must implement service.HydrateConfig.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config interface { // get nested config section (sub-map), returns nil if section not found. Get(service string) Config // Unmarshal unmarshal config data into given struct. Unmarshal(out interface{}) error }
Config provides ability to slice configuration sections and unmarshal configuration data into given structure.
type Container ¶
type Container interface { // Register add new service to the container under given name. Register(name string, service interface{}) // Reconfigure configures all underlying services with given configuration. Init(cfg Config) error // Check if svc has been registered. Has(service string) bool // get returns svc instance by it's name or nil if svc not found. Method returns current service status // as second value. Get(service string) (svc interface{}, status int) // Serve all configured services. Non blocking. Serve() error // Close all active services. Stop() // List service names. List() []string }
Container controls all internal RR services and provides plugin based system.
func NewContainer ¶
func NewContainer(log logrus.FieldLogger) Container
NewContainer creates new service container.
type DefaultsConfig ¶ added in v1.6.5
type DefaultsConfig interface { // InitDefaults allows to init blank config with pre-defined set of default values. InitDefaults() error }
DefaultsConfig declares ability to be initated without config data provided.
type HydrateConfig ¶ added in v1.6.5
type HydrateConfig interface { // Hydrate must populate config values using given config source. // Must return error if config is not valid. Hydrate(cfg Config) error }
HydrateConfig provides ability to automatically hydrate config with values using service.Config as the source.