v2ray-core: github.com/v2ray/v2ray-core/common Index | Files | Directories

package common

import "github.com/v2ray/v2ray-core/common"

Package common contains common utilities that are shared among other packages. See each sub-package for detail.

Index

Package Files

common.go errors.generated.go interfaces.go type.go

Variables

var (
    // ErrNoClue is for the situation that existing information is not enough to make a decision. For example, Router may return this error when there is no suitable route.
    ErrNoClue = errors.New("not enough information for making a decision")
)

func Close Uses

func Close(obj interface{}) error

Close closes the obj if it is a Closable.

v2ray:api:beta

func CreateObject Uses

func CreateObject(ctx context.Context, config interface{}) (interface{}, error)

CreateObject creates an object by its config. The config type must be registered through RegisterConfig().

func Error2 Uses

func Error2(v interface{}, err error) error

Error2 returns the err from the 2nd parameter.

func GetGOBIN Uses

func GetGOBIN() string

GetGOBIN returns GOBIN environment variable as a string. It will NOT be empty.

func GetGOPATH Uses

func GetGOPATH() string

GetGOPATH returns GOPATH environment variable as a string. It will NOT be empty.

func GetModuleName Uses

func GetModuleName(pathToProjectRoot string) (string, error)

GetModuleName returns the value of module in `go.mod` file.

func GetRuntimeEnv Uses

func GetRuntimeEnv(key string) (string, error)

GetRuntimeEnv returns the value of runtime environment variable, that is set by running following command: `go env -w key=value`.

func Interrupt Uses

func Interrupt(obj interface{}) error

Interrupt calls Interrupt() if object implements Interruptible interface, or Close() if the object implements Closable interface.

v2ray:api:beta

func Must Uses

func Must(err error)

Must panics if err is not nil.

func Must2 Uses

func Must2(v interface{}, err error) interface{}

Must2 panics if the second parameter is not nil, otherwise returns the first parameter.

func RegisterConfig Uses

func RegisterConfig(config interface{}, configCreator ConfigCreator) error

RegisterConfig registers a global config creator. The config can be nil but must have a type.

type ChainedClosable Uses

type ChainedClosable []Closable

ChainedClosable is a Closable that consists of multiple Closable objects.

func (ChainedClosable) Close Uses

func (cc ChainedClosable) Close() error

Close implements Closable.

type Closable Uses

type Closable interface {
    // Close release all resources used by this object, including goroutines.
    Close() error
}

Closable is the interface for objects that can release its resources.

v2ray:api:beta

type ConfigCreator Uses

type ConfigCreator func(ctx context.Context, config interface{}) (interface{}, error)

ConfigCreator is a function to create an object by a config.

type HasType Uses

type HasType interface {
    // Type returns the type of the object.
    // Usually it returns (*Type)(nil) of the object.
    Type() interface{}
}

HasType is the interface for objects that knows its type.

type Interruptible Uses

type Interruptible interface {
    Interrupt()
}

Interruptible is an interface for objects that can be stopped before its completion.

v2ray:api:beta

type Runnable Uses

type Runnable interface {
    // Start starts the runnable object. Upon the method returning nil, the object begins to function properly.
    Start() error

    Closable
}

Runnable is the interface for objects that can start to work and stop on demand.

Directories

PathSynopsis
antireplay
bitmask
bytespool
cmdarg
crypto/internal
errors/errorgen
mux
peer
platform/filesystem
protocol/http
serial
signal
signal/done
signal/pubsub
signal/semaphore
stack
strmatcher
task

Package common imports 9 packages (graph) and is imported by 11 packages. Updated 2020-12-29. Refresh now. Tools for package owners.