core

package
v0.0.0-...-342d0c6 Latest Latest
Warning

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

Go to latest
Published: May 13, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const DEFAULT_BUFFER_LIMIT = 64 << 20
View Source
const DEFAULT_BUFFER_SIZE = 256 << 10
View Source
const DEFAULT_TIMEOUT = 60 * 60
View Source
const DEFAULT_UDP_BUFFER_SIZE = 2 << 10
View Source
const DEFAULT_UDP_TIMEOUT = 60

Variables

This section is empty.

Functions

func CloseRead

func CloseRead(c net.Conn) error

func CloseWrite

func CloseWrite(c net.Conn) error

func CreateBarebonesTLSConfig

func CreateBarebonesTLSConfig(proto string) (*tls.Config, error)

func MakePipe

func MakePipe() (pipe [2]net.Conn)

From the implementation, if p[0].Read(b0) and p[1].Write(b1), len(b1) <= len(b0), it can be served as PacketConn.

func RunSimpleSwitch

func RunSimpleSwitch(p0, p1 Port)

func SyncMapSize

func SyncMapSize(m *sync.Map) int

func Tr

func Tr(err error) error

Types

type AcceptResult

type AcceptResult struct {
	Port
	Addr string
}

type Backend

type Backend interface {
	Dial(addr string) chan DialResult
}

type Codec

type Codec interface {
	Encode(RouteId, *IoVec) error
	Decode(*IoVec) (RouteId, error)
}

type DialResult

type DialResult struct {
	Port
}

type EventRecorder

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

func (*EventRecorder) AddRecord

func (self *EventRecorder) AddRecord(e string) uint64

func (*EventRecorder) HappenedBefore

func (self *EventRecorder) HappenedBefore(a, b string) bool

type Frontend

type Frontend interface {
	Accept() chan AcceptResult
}

type GobRPC

type GobRPC struct {
	P Port
}

func (*GobRPC) ReadRequest

func (self *GobRPC) ReadRequest(req interface{}) error

func (*GobRPC) Request

func (self *GobRPC) Request(req interface{}, resp interface{}) error

func (*GobRPC) SendResponse

func (self *GobRPC) SendResponse(resp interface{}) error

type IoVec

type IoVec net.Buffers

func FromSlice

func FromSlice(s []byte) *IoVec

func (IoVec) At

func (self IoVec) At(i int) (byte, error)

func (IoVec) Concat

func (self IoVec) Concat() []byte

func (*IoVec) Consume

func (self *IoVec) Consume() []byte

func (*IoVec) Drop

func (self *IoVec) Drop(s int) error

func (IoVec) LastByte

func (self IoVec) LastByte() (byte, error)

func (IoVec) Len

func (self IoVec) Len() (l int)

func (*IoVec) Read

func (self *IoVec) Read(p []byte) (int, error)

func (*IoVec) Split

func (self *IoVec) Split(i int) (tail IoVec)

func (*IoVec) Take

func (self *IoVec) Take(s []byte) *IoVec

func (*IoVec) Write

func (self *IoVec) Write(s []byte) (n int, err error)

func (*IoVec) WriteTo

func (self *IoVec) WriteTo(w io.Writer) (int64, error)

type JsonRPC

type JsonRPC struct {
	P Port
}

func (*JsonRPC) ReadRequest

func (self *JsonRPC) ReadRequest(req interface{}) error

func (*JsonRPC) Request

func (self *JsonRPC) Request(req interface{}, resp interface{}) error

func (*JsonRPC) SendResponse

func (self *JsonRPC) SendResponse(resp interface{}) error

type Map

type Map[K comparable, V any] struct {
	// contains filtered or unexported fields
}

func (*Map[K, V]) Delete

func (self *Map[K, V]) Delete(key K)

func (*Map[K, V]) Load

func (self *Map[K, V]) Load(key K) (value V, ok bool)

func (*Map[K, V]) LoadAndDelete

func (self *Map[K, V]) LoadAndDelete(key K) (value V, loaded bool)

func (*Map[K, V]) LoadOrStore

func (self *Map[K, V]) LoadOrStore(key K, value V) (actual V, loaded bool)

func (*Map[K, V]) Range

func (self *Map[K, V]) Range(f func(K, V) bool)

func (*Map[K, V]) Size

func (self *Map[K, V]) Size() int

func (*Map[K, V]) Store

func (self *Map[K, V]) Store(key K, value V)

type MonoActor

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

func NewMonoActor

func NewMonoActor() *MonoActor

func (*MonoActor) Do

func (self *MonoActor) Do(t uint64, doit func(uint64))

type NetPort

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

func NewNetPort

func NewNetPort(c net.Conn, pack, unpack Pass) *NetPort

func NewNetPortWithTimeout

func NewNetPortWithTimeout(c net.Conn, timeout int, pack, unpack Pass) *NetPort

func (*NetPort) Close

func (self *NetPort) Close() error

func (*NetPort) CloseRead

func (self *NetPort) CloseRead() error

func (*NetPort) CloseWrite

func (self *NetPort) CloseWrite() error

func (*NetPort) LocalAddr

func (self *NetPort) LocalAddr() net.Addr

func (*NetPort) Pack

func (self *NetPort) Pack(b *IoVec) error

func (*NetPort) RemoteAddr

func (self *NetPort) RemoteAddr() net.Addr

func (*NetPort) Unpack

func (self *NetPort) Unpack(b *IoVec) error

type PackUnpackPassManagerBuilder

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

func (*PackUnpackPassManagerBuilder) AddPairedPasses

func (self *PackUnpackPassManagerBuilder) AddPairedPasses(pack Pass, unpack Pass)

func (*PackUnpackPassManagerBuilder) BuildPackPassManager

func (self *PackUnpackPassManagerBuilder) BuildPackPassManager() *PassManager

func (*PackUnpackPassManagerBuilder) BuildUnpackPassManager

func (self *PackUnpackPassManagerBuilder) BuildUnpackPassManager() *PassManager

type Pass

type Pass interface {
	Run(*IoVec) error
}

type PassManager

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

func NewPassManager

func NewPassManager(passes []Pass) *PassManager

func (*PassManager) AddPass

func (self *PassManager) AddPass(p Pass) *PassManager

func (*PassManager) Run

func (self *PassManager) Run(b *IoVec) (err error)

type Port

type Port interface {
	Pack(*IoVec) error
	Unpack(*IoVec) error
	CloseRead() error
	CloseWrite() error
	Close() error
	LocalAddr() net.Addr
	RemoteAddr() net.Addr
}

func AsSyncPort

func AsSyncPort(p Port) Port

type PortCreator

type PortCreator interface {
	Create(net.Conn) Port
}

type RawNetPort

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

func NewRawNetPort

func NewRawNetPort(c net.Conn) *RawNetPort

func NewRawNetPortWithTimeout

func NewRawNetPortWithTimeout(c net.Conn, timeout int) *RawNetPort

func (*RawNetPort) Close

func (self *RawNetPort) Close() error

func (*RawNetPort) CloseRead

func (self *RawNetPort) CloseRead() error

func (*RawNetPort) CloseWrite

func (self *RawNetPort) CloseWrite() error

func (*RawNetPort) LocalAddr

func (self *RawNetPort) LocalAddr() net.Addr

func (*RawNetPort) Pack

func (self *RawNetPort) Pack(b *IoVec) error

func (*RawNetPort) RemoteAddr

func (self *RawNetPort) RemoteAddr() net.Addr

func (*RawNetPort) Unpack

func (self *RawNetPort) Unpack(b *IoVec) (err error)

type ReadWriterWithTimeout

type ReadWriterWithTimeout struct {
	C            net.Conn
	ReadTimeout  time.Duration
	WriteTimeout time.Duration
}

func (*ReadWriterWithTimeout) Read

func (self *ReadWriterWithTimeout) Read(b []byte) (int, error)

func (*ReadWriterWithTimeout) Write

func (self *ReadWriterWithTimeout) Write(b []byte) (int, error)

type Relayer

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

func NewRelayer

func NewRelayer(fe Frontend, be Backend) *Relayer

func (*Relayer) Relay

func (self *Relayer) Relay() error

type RouteId

type RouteId uint64

type RouteInfo

type RouteInfo struct {
	P   *SyncPort
	Err chan error
}

type Set

type Set[V comparable] struct {
	// contains filtered or unexported fields
}

func (*Set[V]) Add

func (self *Set[V]) Add(v V) bool

func (*Set[V]) Delete

func (self *Set[V]) Delete(v V)

func (*Set[V]) Range

func (self *Set[V]) Range(f func(V) bool)

func (*Set[V]) Size

func (self *Set[V]) Size() int

type SimpleRouter

type SimpleRouter struct {
	P *SyncPort
	C Codec
	// contains filtered or unexported fields
}

func (*SimpleRouter) NewRoute

func (self *SimpleRouter) NewRoute(id RouteId, P *SyncPort) (*RouteInfo, error)

func (*SimpleRouter) Run

func (self *SimpleRouter) Run()

type SimpleSwitch

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

SimpleSwitch is not responsible to close ports.

func NewSimpleSwitch

func NewSimpleSwitch(p0, p1 Port) *SimpleSwitch

func (*SimpleSwitch) Run

func (self *SimpleSwitch) Run()

type SyncPort

type SyncPort struct {
	Port
	// contains filtered or unexported fields
}

func NewSyncPortWithTimeout

func NewSyncPortWithTimeout(c net.Conn, timeout int, pack, unpack Pass) *SyncPort

func (*SyncPort) Pack

func (self *SyncPort) Pack(b *IoVec) error

func (*SyncPort) Unpack

func (self *SyncPort) Unpack(b *IoVec) error

Jump to

Keyboard shortcuts

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