Versions in this module Expand all Collapse all v0 v0.2.0 Mar 13, 2019 v0.1.0 Jul 23, 2018 Changes in this version + var ErrCyclic = errors.New("service has cyclic dependencies") + var ErrInvalidStatus = errors.New("service has invalid status") + var ErrMissingServiceID = errors.New("a service ID is required") + var ErrNeeded = errors.New("service is needed by other services") + var ErrNotFound = errors.New("service is not registered") + type Exposer interface + Expose func() interface{} + type Friendly interface + Befriend func(serviceID string, exposed interface{}) + Likes func() map[string]struct{} + type GRPCManager interface + List func() []string + Proto func(string) (*pb.Service, error) + Prune func() + Start func(string) error + Stop func(string) error + type Manager struct + func New() *Manager + func (m *Manager) Deps(servID string) (deps []string, err error) + func (m *Manager) Errored(servID string) (<-chan error, error) + func (m *Manager) Expose(servID string) (interface{}, error) + func (m *Manager) Fgraph(w io.Writer, servID string, prefix string) error + func (m *Manager) Find(servID string) (serv Service, err error) + func (m *Manager) List() (servIDs []string) + func (m *Manager) Proto(servID string) (*pb.Service, error) + func (m *Manager) Prunable(servID string) (bool, error) + func (m *Manager) Prune() + func (m *Manager) Register(serv Service) + func (m *Manager) RegisterService() + func (m *Manager) Running(servID string) (<-chan struct{}, error) + func (m *Manager) Start(servID string) error + func (m *Manager) Starting(servID string) (<-chan struct{}, error) + func (m *Manager) Status(servID string) (StatusCode, error) + func (m *Manager) Stop(servID string) error + func (m *Manager) StopAll() + func (m *Manager) Stoppable(servID string) (bool, error) + func (m *Manager) Stopped(servID string) (<-chan struct{}, error) + func (m *Manager) Stopping(servID string) (<-chan struct{}, error) + func (m *Manager) Work(ctx context.Context) error + type Needy interface + Needs func() map[string]struct{} + type Pluggable interface + Plug func(exposed map[string]interface{}) error + type Queue struct + func NewQueue() *Queue + func (q *Queue) Do(task func()) + func (q *Queue) DoError(task func() error) error + func (q *Queue) DoErrorHi(task func() error) error + func (q *Queue) DoHi(task func()) + func (q *Queue) Stop() + func (q *Queue) Work(ctx context.Context) error + type Runner interface + Run func(ctx context.Context, running, stopping func()) error + type Service interface + Desc func() string + ID func() string + Name func() string + type ServiceGroup struct + GroupDesc string + GroupID string + GroupName string + Services map[string]struct{} + func (s *ServiceGroup) Desc() string + func (s *ServiceGroup) ID() string + func (s *ServiceGroup) Name() string + func (s *ServiceGroup) Needs() map[string]struct{} + type StatusCode int8 + const Errored + const Running + const Starting + const Stopped + const Stopping + func (s StatusCode) String() string