mirror of https://github.com/XTLS/Xray-core
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
package inbound |
|
|
|
import ( |
|
"context" |
|
|
|
"github.com/xtls/xray-core/common" |
|
"github.com/xtls/xray-core/common/net" |
|
"github.com/xtls/xray-core/features" |
|
) |
|
|
|
// Handler is the interface for handlers that process inbound connections. |
|
// |
|
// xray:api:stable |
|
type Handler interface { |
|
common.Runnable |
|
// The tag of this handler. |
|
Tag() string |
|
|
|
// Deprecated: Do not use in new code. |
|
GetRandomInboundProxy() (interface{}, net.Port, int) |
|
} |
|
|
|
// Manager is a feature that manages InboundHandlers. |
|
// |
|
// xray:api:stable |
|
type Manager interface { |
|
features.Feature |
|
// GetHandlers returns an InboundHandler for the given tag. |
|
GetHandler(ctx context.Context, tag string) (Handler, error) |
|
// AddHandler adds the given handler into this Manager. |
|
AddHandler(ctx context.Context, handler Handler) error |
|
|
|
// RemoveHandler removes a handler from Manager. |
|
RemoveHandler(ctx context.Context, tag string) error |
|
} |
|
|
|
// ManagerType returns the type of Manager interface. Can be used for implementing common.HasType. |
|
// |
|
// xray:api:stable |
|
func ManagerType() interface{} { |
|
return (*Manager)(nil) |
|
}
|
|
|