mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-04-30 01:08:33 +00:00
v1.0.0
This commit is contained in:
parent
47d23e9972
commit
c7f7c08ead
711 changed files with 82154 additions and 2 deletions
45
features/outbound/outbound.go
Normal file
45
features/outbound/outbound.go
Normal file
|
@ -0,0 +1,45 @@
|
|||
package outbound
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/xtls/xray-core/v1/common"
|
||||
"github.com/xtls/xray-core/v1/features"
|
||||
"github.com/xtls/xray-core/v1/transport"
|
||||
)
|
||||
|
||||
// Handler is the interface for handlers that process outbound connections.
|
||||
//
|
||||
// xray:api:stable
|
||||
type Handler interface {
|
||||
common.Runnable
|
||||
Tag() string
|
||||
Dispatch(ctx context.Context, link *transport.Link)
|
||||
}
|
||||
|
||||
type HandlerSelector interface {
|
||||
Select([]string) []string
|
||||
}
|
||||
|
||||
// Manager is a feature that manages outbound.Handlers.
|
||||
//
|
||||
// xray:api:stable
|
||||
type Manager interface {
|
||||
features.Feature
|
||||
// GetHandler returns an outbound.Handler for the given tag.
|
||||
GetHandler(tag string) Handler
|
||||
// GetDefaultHandler returns the default outbound.Handler. It is usually the first outbound.Handler specified in the configuration.
|
||||
GetDefaultHandler() Handler
|
||||
// AddHandler adds a handler into this outbound.Manager.
|
||||
AddHandler(ctx context.Context, handler Handler) error
|
||||
|
||||
// RemoveHandler removes a handler from outbound.Manager.
|
||||
RemoveHandler(ctx context.Context, tag string) error
|
||||
}
|
||||
|
||||
// ManagerType returns the type of Manager interface. Can be used to implement common.HasType.
|
||||
//
|
||||
// xray:api:stable
|
||||
func ManagerType() interface{} {
|
||||
return (*Manager)(nil)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue