provider

package
v1.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2021 License: GPL-3.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ReservedName = "default"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CompatibleProvider added in v0.18.0

type CompatibleProvider struct {
	// contains filtered or unexported fields
}

for auto gc

func NewCompatibleProvider added in v0.18.0

func NewCompatibleProvider(name string, proxies []C.Proxy, hc *HealthCheck) (*CompatibleProvider, error)

func (CompatibleProvider) HealthCheck added in v0.18.0

func (cp CompatibleProvider) HealthCheck()

func (CompatibleProvider) Initial added in v0.18.0

func (cp CompatibleProvider) Initial() error

func (CompatibleProvider) MarshalJSON added in v0.18.0

func (cp CompatibleProvider) MarshalJSON() ([]byte, error)

func (CompatibleProvider) Name added in v0.18.0

func (cp CompatibleProvider) Name() string

func (CompatibleProvider) Proxies added in v0.18.0

func (cp CompatibleProvider) Proxies() []C.Proxy

func (CompatibleProvider) ProxiesWithTouch added in v1.3.0

func (cp CompatibleProvider) ProxiesWithTouch() []C.Proxy

func (CompatibleProvider) Type added in v0.18.0

func (cp CompatibleProvider) Type() ProviderType

func (CompatibleProvider) Update added in v0.18.0

func (cp CompatibleProvider) Update() error

func (CompatibleProvider) VehicleType added in v0.18.0

func (cp CompatibleProvider) VehicleType() VehicleType

type FileVehicle

type FileVehicle struct {
	// contains filtered or unexported fields
}

func NewFileVehicle

func NewFileVehicle(path string) *FileVehicle

func (*FileVehicle) Path

func (f *FileVehicle) Path() string

func (*FileVehicle) Read

func (f *FileVehicle) Read() ([]byte, error)

func (*FileVehicle) Type

func (f *FileVehicle) Type() VehicleType

type HTTPVehicle

type HTTPVehicle struct {
	// contains filtered or unexported fields
}

func NewHTTPVehicle

func NewHTTPVehicle(url string, path string) *HTTPVehicle

func (*HTTPVehicle) Path

func (h *HTTPVehicle) Path() string

func (*HTTPVehicle) Read

func (h *HTTPVehicle) Read() ([]byte, error)

func (*HTTPVehicle) Type

func (h *HTTPVehicle) Type() VehicleType

type HealthCheck

type HealthCheck struct {
	// contains filtered or unexported fields
}

func NewHealthCheck

func NewHealthCheck(proxies []C.Proxy, url string, interval uint, lazy bool) *HealthCheck

type HealthCheckOption

type HealthCheckOption struct {
	URL      string
	Interval uint
}

type Provider

type Provider interface {
	Name() string
	VehicleType() VehicleType
	Type() ProviderType
	Initial() error
	Update() error
}

Provider interface

type ProviderType

type ProviderType int

ProviderType defined

const (
	Proxy ProviderType = iota
	Rule
)

Provider Type

func (ProviderType) String

func (pt ProviderType) String() string

type ProxyProvider

type ProxyProvider interface {
	Provider
	Proxies() []C.Proxy
	// ProxiesWithTouch is used to inform the provider that the proxy is actually being used while getting the list of proxies.
	// Commonly used in Dial and DialUDP
	ProxiesWithTouch() []C.Proxy
	HealthCheck()
}

ProxyProvider interface

func ParseProxyProvider

func ParseProxyProvider(name string, mapping map[string]interface{}) (ProxyProvider, error)

type ProxySchema

type ProxySchema struct {
	Proxies []map[string]interface{} `yaml:"proxies"`
}

type ProxySetProvider

type ProxySetProvider struct {
	// contains filtered or unexported fields
}

for auto gc

func NewProxySetProvider

func NewProxySetProvider(name string, interval time.Duration, vehicle Vehicle, hc *HealthCheck) *ProxySetProvider

func (ProxySetProvider) HealthCheck

func (pp ProxySetProvider) HealthCheck()

func (ProxySetProvider) Initial

func (pp ProxySetProvider) Initial() error

func (ProxySetProvider) MarshalJSON

func (pp ProxySetProvider) MarshalJSON() ([]byte, error)

func (ProxySetProvider) Name

func (pp ProxySetProvider) Name() string

func (ProxySetProvider) Proxies

func (pp ProxySetProvider) Proxies() []C.Proxy

func (ProxySetProvider) ProxiesWithTouch added in v1.3.0

func (pp ProxySetProvider) ProxiesWithTouch() []C.Proxy

func (ProxySetProvider) Type

func (pp ProxySetProvider) Type() ProviderType

func (ProxySetProvider) Update

func (pp ProxySetProvider) Update() error

type Vehicle

type Vehicle interface {
	Read() ([]byte, error)
	Path() string
	Type() VehicleType
}

type VehicleType

type VehicleType int

VehicleType defined

const (
	File VehicleType = iota
	HTTP
	Compatible
)

Vehicle Type

func (VehicleType) String

func (v VehicleType) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL