Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrUnknownMessageKind = fmt.Errorf("unknown message kind")
Functions ¶
This section is empty.
Types ¶
type Host ¶
type Host interface {
// Listen listens for incoming requests.
// This function never returns unless an error occurs, or Close is called.
Listen(ctx context.Context) error
// Close closes the host.
Close(ctx context.Context) error
}
Host is the interface implemented by types that can host a Bastion server.
func NewHost ¶
func NewHost(address string, messageProcessor MessageProcessor) Host
NewHost creates a new Host listening on the given address.
type MessageHandler ¶
type MessageHandler interface {
// Register registers the given application.
Register(ctx context.Context, message messages.RegistrationMessage) (*messages.RegistrationResponse, error)
// Deregister removes the registration of the application with the given name.
Deregister(ctx context.Context, message messages.DeregistrationMessage) (*messages.DeregistrationResponse, error)
// ForwardRequest forwards the given request to the application specified in the request.
ForwardRequest(ctx context.Context, message messages.ForwardRequestMessage) (*messages.ForwardRequestResponse, error)
}
MessageHandler allows the handling of incoming valid Bastion requests.
type MessageProcessor ¶
type MessageProcessor interface {
// ProcessMessage processes the given message and returns a response.
ProcessMessage(ctx context.Context, message *funcie.Message) (*funcie.Response, error)
}
MessageProcessor dispatches messages to the appropriate handler.
func NewCachingMessageProcessor ¶
func NewCachingMessageProcessor(underlyingProcessor MessageProcessor) MessageProcessor
NewCachingMessageProcessor creates a new caching MessageProcessor, forwarding requests to the underlying processor. If the underlying processor returns ErrNoConsumerFound, that result is cached for a minute or until registered.
func NewMessageProcessor ¶
func NewMessageProcessor(handler MessageHandler) MessageProcessor
NewMessageProcessor creates a new MessageProcessor.
Click to show internal directories.
Click to hide internal directories.