mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-07 10:12:19 +00:00
49dc0dc4a5
Former-commit-id: 705e95b849818683ab610b80f101278e6241b4d6 [formerly 925da4e8a6ef6d8e9d82ba9073666c2a26cd6c77] Former-commit-id: a43a26be717cb63a0a8c03165e865d875ca11ed4
25 lines
817 B
Go
25 lines
817 B
Go
package sharding
|
|
|
|
import (
|
|
cli "gopkg.in/urfave/cli.v1"
|
|
)
|
|
|
|
// Service defines items that can be registered into a sharding client.
|
|
//
|
|
// life-cycle management is delegated to the sharding client. The service is allowed to
|
|
// initialize itself upon creation, but no goroutines should be spun up outside of the
|
|
// Start method.
|
|
type Service interface {
|
|
// Start is called after all services have been constructed and the networking
|
|
// layer was also initialized to spawn any goroutines required by the service.
|
|
Start() error
|
|
|
|
// Stop terminates all goroutines belonging to the service, blocking until they
|
|
// are all terminated.
|
|
Stop() error
|
|
}
|
|
|
|
// ServiceConstructor defines the callback passed in when registering a service
|
|
// to a sharding node.
|
|
type ServiceConstructor func(ctx *cli.Context) (Service, error)
|