Documentation ¶
Index ¶
- Variables
- func IgnoreShutdownError(err error) error
- type ErrorHandler
- type ErrorHandlerFunc
- type Group
- type GroupInfo
- type HandlerProvider
- type HandlerReference
- type HandlerRegistry
- type Host
- type HostBuilder
- type Link
- type ListenerEndpoint
- type ListenerGroup
- func (lg *ListenerGroup) AddErrorHandler(eh ErrorHandler)
- func (lg *ListenerGroup) ConfigureEndpoint(name string, le *ListenerEndpoint)
- func (lg *ListenerGroup) ConfiguredEndpoints() (eps []string)
- func (lg *ListenerGroup) GroupByTLS() (plainGrp, tlsGrp *Group, err error)
- func (lg *ListenerGroup) Serve(ctx context.Context) error
- func (lg *ListenerGroup) SetupMux(mux cmux.CMux, grp *Group)
- func (lg *ListenerGroup) Shutdown(ctx context.Context) (err error)
- type ListenerSpec
- type Mapping
- type MappingFunc
- type MultiplexHandler
- type MuxServer
- type OptionByTypeDecoderBuilder
- func (o *OptionByTypeDecoderBuilder) AddMappingToMapper(typeName string, mapper Mapping) *OptionByTypeDecoderBuilder
- func (o *OptionByTypeDecoderBuilder) AddMappingToProvider(typeName string, provider func() interface{}) *OptionByTypeDecoderBuilder
- func (o *OptionByTypeDecoderBuilder) AddMappingToType(typeName string, targetType reflect.Type) *OptionByTypeDecoderBuilder
- func (o OptionByTypeDecoderBuilder) Build() mapstructure.DecodeHookFuncType
- type ProtocolHandler
- type Registration
- type Server
- func (s *Server) ConfigureGroup(grp *ListenerGroup)
- func (s *Server) ConfiguredGroups() []GroupInfo
- func (s *Server) ServeGroup(ctx context.Context, groupName string) error
- func (s *Server) ServeGroups(ctx context.Context) error
- func (s *Server) Shutdown(ctx context.Context) error
- func (s *Server) ShutdownGroup(ctx context.Context, groupName string) error
- func (s *Server) ShutdownOnCancel(ctx context.Context)
- type ServerBuilder
- type Spec
- type StartupSpec
- type StoppableHandler
- type UnmarshalOption
- type Uplink
Constants ¶
This section is empty.
Variables ¶
View Source
var ( WithDecodeHook = func(decodeHook mapstructure.DecodeHookFunc) UnmarshalOption { return func(cfg *mapstructure.DecoderConfig) { cfg.DecodeHook = decodeHook } } WithErrorUnused = UnmarshalOption(func(cfg *mapstructure.DecoderConfig) { cfg.ErrorUnused = true }) WithZeroFields = UnmarshalOption(func(cfg *mapstructure.DecoderConfig) { cfg.ZeroFields = true }) WithWeaklyTypedInput = UnmarshalOption(func(cfg *mapstructure.DecoderConfig) { cfg.WeaklyTypedInput = true }) WithSquash = UnmarshalOption(func(cfg *mapstructure.DecoderConfig) { cfg.Squash = true }) )
View Source
var ( ErrUDPMultiplexer = errors.New("UDP listeners don't support multiplexing") ErrMultiplexingNotSupported = errors.New("not all handlers do support multiplexing") ErrUnsupportedProtocol = errors.New("protocol not supported") )
View Source
var ( ErrUnknownHandlerRef = errors.New("no handler for given key registered") ErrNoEndpoints = errors.New("no endpoints configured in ListenerGroup") )
View Source
var (
ErrNoSuchGroup = errors.New("no group with given name configured")
)
Functions ¶
func IgnoreShutdownError ¶ added in v0.9.0
Types ¶
type ErrorHandler ¶ added in v0.9.0
type ErrorHandler interface {
OnError(err error)
}
type ErrorHandlerFunc ¶ added in v0.9.0
type ErrorHandlerFunc func(err error)
func (ErrorHandlerFunc) OnError ¶ added in v0.9.0
func (f ErrorHandlerFunc) OnError(err error)
type Group ¶ added in v0.9.0
type Group struct { Names []string Handlers map[string]MultiplexHandler }
type HandlerProvider ¶ added in v0.5.1
type HandlerProvider func() ProtocolHandler
type HandlerReference ¶ added in v0.2.0
type HandlerReference string
func (HandlerReference) ToLower ¶ added in v0.2.0
func (h HandlerReference) ToLower() HandlerReference
type HandlerRegistry ¶ added in v0.2.0
type HandlerRegistry interface { RegisterHandler(handlerRef HandlerReference, handlerProvider HandlerProvider) AvailableHandlers() []HandlerReference HandlerForName(handlerRef HandlerReference) (ProtocolHandler, bool) }
func NewHandlerRegistry ¶ added in v0.2.0
func NewHandlerRegistry() HandlerRegistry
type HostBuilder ¶ added in v0.9.0
type HostBuilder interface { ConfigureGroup(spec ListenerSpec) (err error) ConfiguredGroups() []GroupInfo }
type ListenerEndpoint ¶ added in v0.9.0
type ListenerEndpoint struct { Name string TLS bool Handler ProtocolHandler Uplink Uplink Options map[string]interface{} }
func NewListenerEndpoint ¶ added in v0.9.0
func NewListenerEndpoint(spec Spec, handler ProtocolHandler) *ListenerEndpoint
type ListenerGroup ¶ added in v0.9.0
type ListenerGroup struct { CloseTimeout time.Duration Name string Unmanaged bool Addr net.Addr // contains filtered or unexported fields }
func NewListenerGroup ¶ added in v0.9.0
func NewListenerGroup(spec ListenerSpec) (grp *ListenerGroup, err error)
func (*ListenerGroup) AddErrorHandler ¶ added in v0.9.0
func (lg *ListenerGroup) AddErrorHandler(eh ErrorHandler)
func (*ListenerGroup) ConfigureEndpoint ¶ added in v0.9.0
func (lg *ListenerGroup) ConfigureEndpoint(name string, le *ListenerEndpoint)
func (*ListenerGroup) ConfiguredEndpoints ¶ added in v0.9.0
func (lg *ListenerGroup) ConfiguredEndpoints() (eps []string)
func (*ListenerGroup) GroupByTLS ¶ added in v0.9.0
func (lg *ListenerGroup) GroupByTLS() (plainGrp, tlsGrp *Group, err error)
func (*ListenerGroup) Serve ¶ added in v0.9.0
func (lg *ListenerGroup) Serve(ctx context.Context) error
type ListenerSpec ¶ added in v0.2.0
type Mapping ¶ added in v0.6.0
type Mapping interface {
MapTo(in interface{}) (interface{}, error)
}
type MappingFunc ¶ added in v0.6.0
type MappingFunc func(in interface{}) (interface{}, error)
func (MappingFunc) MapTo ¶ added in v0.6.0
func (m MappingFunc) MapTo(in interface{}) (interface{}, error)
type MultiplexHandler ¶ added in v0.2.0
type MultiplexHandler interface { ProtocolHandler Matchers() []cmux.Matcher }
type MuxServer ¶ added in v0.9.0
type MuxServer interface { Serve() error Close() HandleError(cmux.ErrorHandler) SetReadTimeout(time.Duration) }
type OptionByTypeDecoderBuilder ¶ added in v0.6.0
func NewOptionByTypeDecoderBuilderFor ¶ added in v0.6.0
func NewOptionByTypeDecoderBuilderFor(opt interface{}) OptionByTypeDecoderBuilder
func (*OptionByTypeDecoderBuilder) AddMappingToMapper ¶ added in v0.6.0
func (o *OptionByTypeDecoderBuilder) AddMappingToMapper( typeName string, mapper Mapping, ) *OptionByTypeDecoderBuilder
func (*OptionByTypeDecoderBuilder) AddMappingToProvider ¶ added in v0.6.0
func (o *OptionByTypeDecoderBuilder) AddMappingToProvider(typeName string, provider func() interface{}) *OptionByTypeDecoderBuilder
func (*OptionByTypeDecoderBuilder) AddMappingToType ¶ added in v0.6.0
func (o *OptionByTypeDecoderBuilder) AddMappingToType(typeName string, targetType reflect.Type) *OptionByTypeDecoderBuilder
func (OptionByTypeDecoderBuilder) Build ¶ added in v0.6.0
func (o OptionByTypeDecoderBuilder) Build() mapstructure.DecodeHookFuncType
type ProtocolHandler ¶ added in v0.2.0
type ProtocolHandler interface {
Start(ctx context.Context, ss *StartupSpec) error
}
type Registration ¶ added in v0.2.0
type Registration func(registry HandlerRegistry) error
type Server ¶ added in v0.9.0
type Server struct { TLSConfig *tls.Config ErrorHandler []ErrorHandler Logger logging.Logger // contains filtered or unexported fields }
func (*Server) ConfigureGroup ¶ added in v0.9.0
func (s *Server) ConfigureGroup(grp *ListenerGroup)
func (*Server) ConfiguredGroups ¶ added in v0.9.0
func (*Server) ServeGroup ¶ added in v0.9.0
func (*Server) ServeGroups ¶ added in v0.9.0
func (*Server) ShutdownGroup ¶ added in v0.9.0
func (*Server) ShutdownOnCancel ¶ added in v0.9.0
type ServerBuilder ¶ added in v0.9.0
type ServerBuilder struct {
// contains filtered or unexported fields
}
func NewServerBuilder ¶ added in v0.9.0
func NewServerBuilder( tlsConfig *tls.Config, registry HandlerRegistry, logger logging.Logger, ) *ServerBuilder
func (*ServerBuilder) ConfigureGroup ¶ added in v0.9.0
func (e *ServerBuilder) ConfigureGroup(spec ListenerSpec) (err error)
func (*ServerBuilder) ConfiguredGroups ¶ added in v0.9.0
func (e *ServerBuilder) ConfiguredGroups() []GroupInfo
func (*ServerBuilder) Server ¶ added in v0.9.0
func (e *ServerBuilder) Server() *Server
type Spec ¶ added in v0.2.0
type Spec struct { HandlerRef HandlerReference `mapstructure:"handler"` TLS bool Handler ProtocolHandler `mapstructure:"-"` Options map[string]interface{} }
type StartupSpec ¶ added in v0.9.0
func NewStartupSpec ¶ added in v0.9.0
func NewStartupSpec(name string, uplink Uplink, opts map[string]interface{}) *StartupSpec
func (StartupSpec) UnmarshalOptions ¶ added in v0.9.0
func (s StartupSpec) UnmarshalOptions(cfg interface{}, opts ...UnmarshalOption) error
type StoppableHandler ¶ added in v0.9.0
type StoppableHandler interface { ProtocolHandler Stop(ctx context.Context) error }
type UnmarshalOption ¶ added in v0.6.0
type UnmarshalOption func(cfg *mapstructure.DecoderConfig)
Click to show internal directories.
Click to hide internal directories.