Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChannelBinding ¶
type ChannelBinding struct {
Transport mcpclient.ForwardingTransport
Priority int
Routable func() bool
SupportsMCP bool
SupportsOAuth bool
SupportsSessionTermination bool
}
ChannelBinding describes routing behavior for a specific tunnel-service channel. SupportsMCP gates normal JSON-RPC forwarding; SupportsOAuth is kept on the main channel only because OAuth discovery is derived from the primary MCP server URL rather than arbitrary auxiliary channels.
type Processor ¶
type Processor interface {
Process(ctx context.Context, cmd controlplane.PolledCommand) error
}
Processor forwards polled control plane commands to the downstream MCP server.
func NewProcessor ¶
NewProcessor constructs a Processor from channel bindings.
type QueueListener ¶
type QueueListener struct {
// contains filtered or unexported fields
}
QueueListener drains the polled command queue and forwards work to the processor using a bounded worker pool.
func NewQueueListener ¶
func NewQueueListener(logger *slog.Logger, processor Processor, queue controlplane.PolledCommandQueue, mcpConfig *config.MCPConfig, meterProvider *sdkmetric.MeterProvider) (*QueueListener, error)
NewQueueListener constructs a QueueListener with a worker pool sized according to the MCP configuration.
func (*QueueListener) Start ¶
func (l *QueueListener) Start(ctx context.Context)
Start begins draining the queue until the provided context is canceled or the queue is closed.
func (*QueueListener) Wait ¶
func (l *QueueListener) Wait()
Wait blocks until the listener has stopped processing commands.