qnet

package
v0.4.8 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2022 License: BSD-3-Clause Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StatBytesRecv   int = iota // bytes received
	StatBytesSent              // bytes sent
	StatPacketsRecv            // packets received
	StatPacketsSent            // packets sent
	NumStat
)
View Source
const EndpointMapShardCount = 16

Variables

View Source
var (
	ErrConnIsClosing        = errors.New("connection is closing when sending")
	ErrConnOutboundOverflow = errors.New("connection outbound queue overflow")
	ErrConnForceClose       = errors.New("connection forced to close")
)
View Source
var ErrBufferOutOfRange = errors.New("buffer out of range")
View Source
var (
	TConnReadTimeout = 200 // seconds
)

Functions

func NewFakeConn

func NewFakeConn(node fatchoy.NodeID, addr string) fatchoy.Endpoint

func NewFakeEndpoint added in v0.3.10

func NewFakeEndpoint(node fatchoy.NodeID, ud interface{}) fatchoy.Endpoint

Types

type Buffer

type Buffer struct {
	bytes.Buffer
}

func (*Buffer) PeekBool

func (b *Buffer) PeekBool() bool

func (*Buffer) PeekFloat32

func (b *Buffer) PeekFloat32() float32

func (*Buffer) PeekFloat64

func (b *Buffer) PeekFloat64() float64

func (*Buffer) PeekInt16

func (b *Buffer) PeekInt16() int16

func (*Buffer) PeekInt32

func (b *Buffer) PeekInt32() int32

func (*Buffer) PeekInt64

func (b *Buffer) PeekInt64() int64

func (*Buffer) PeekInt8

func (b *Buffer) PeekInt8() int8

func (*Buffer) PeekUint16

func (b *Buffer) PeekUint16() uint16

func (*Buffer) PeekUint32

func (b *Buffer) PeekUint32() uint32

func (*Buffer) PeekUint64

func (b *Buffer) PeekUint64() uint64

func (*Buffer) PeekUint8

func (b *Buffer) PeekUint8() uint8

func (*Buffer) ReadBool

func (b *Buffer) ReadBool() bool

func (*Buffer) ReadFloat32

func (b *Buffer) ReadFloat32() float32

func (*Buffer) ReadFloat64

func (b *Buffer) ReadFloat64() float64

func (*Buffer) ReadInt16

func (b *Buffer) ReadInt16() int16

func (*Buffer) ReadInt32

func (b *Buffer) ReadInt32() int32

func (*Buffer) ReadInt64

func (b *Buffer) ReadInt64() int64

func (*Buffer) ReadInt8

func (b *Buffer) ReadInt8() int8

func (*Buffer) ReadUint16

func (b *Buffer) ReadUint16() uint16

func (*Buffer) ReadUint32

func (b *Buffer) ReadUint32() uint32

func (*Buffer) ReadUint64

func (b *Buffer) ReadUint64() uint64

func (*Buffer) ReadUint8

func (b *Buffer) ReadUint8() uint8

func (*Buffer) WriteBool

func (b *Buffer) WriteBool(v bool)

func (*Buffer) WriteFloat32

func (b *Buffer) WriteFloat32(f float32)

func (*Buffer) WriteFloat64

func (b *Buffer) WriteFloat64(f float64)

func (*Buffer) WriteInt16

func (b *Buffer) WriteInt16(n int16)

func (*Buffer) WriteInt32

func (b *Buffer) WriteInt32(n int32)

func (*Buffer) WriteInt64

func (b *Buffer) WriteInt64(n int64)

func (*Buffer) WriteInt8

func (b *Buffer) WriteInt8(n int8)

func (*Buffer) WriteUInt8

func (b *Buffer) WriteUInt8(n uint8)

func (*Buffer) WriteUint16

func (b *Buffer) WriteUint16(n uint16)

func (*Buffer) WriteUint32

func (b *Buffer) WriteUint32(n uint32)

func (*Buffer) WriteUint64

func (b *Buffer) WriteUint64(n uint64)

type ConcurrentEndpointMap added in v0.3.10

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

线程安全的EndpointMap,适合数据量很大的场景

func NewConcurrentEndpointMap added in v0.3.10

func NewConcurrentEndpointMap() *ConcurrentEndpointMap

func (*ConcurrentEndpointMap) Clear added in v0.3.10

func (m *ConcurrentEndpointMap) Clear()

func (*ConcurrentEndpointMap) Foreach added in v0.3.10

func (m *ConcurrentEndpointMap) Foreach(action func(fatchoy.Endpoint) bool)

action应该对map是read-only

func (*ConcurrentEndpointMap) Get added in v0.3.10

func (*ConcurrentEndpointMap) Has added in v0.3.10

func (*ConcurrentEndpointMap) IsEmpty added in v0.3.10

func (m *ConcurrentEndpointMap) IsEmpty() bool

func (*ConcurrentEndpointMap) IterBuffered added in v0.3.10

func (m *ConcurrentEndpointMap) IterBuffered() <-chan Tuple

IterBuffered returns a buffered iterator which could be used in a for range loop.

func (*ConcurrentEndpointMap) Keys added in v0.3.10

func (m *ConcurrentEndpointMap) Keys() []fatchoy.NodeID

func (*ConcurrentEndpointMap) Pop added in v0.3.10

Pop removes an element from the map and returns it

func (*ConcurrentEndpointMap) Put added in v0.3.10

func (m *ConcurrentEndpointMap) Put(node fatchoy.NodeID, endpoint fatchoy.Endpoint)

func (*ConcurrentEndpointMap) PutIfAbsent added in v0.3.10

func (m *ConcurrentEndpointMap) PutIfAbsent(node fatchoy.NodeID, endpoint fatchoy.Endpoint)

func (*ConcurrentEndpointMap) Remove added in v0.3.10

func (m *ConcurrentEndpointMap) Remove(node fatchoy.NodeID)

func (*ConcurrentEndpointMap) Size added in v0.3.10

func (m *ConcurrentEndpointMap) Size() int

func (*ConcurrentEndpointMap) Values added in v0.3.10

func (m *ConcurrentEndpointMap) Values() []fatchoy.Endpoint

type EndpointHashMap added in v0.3.10

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

线程安全的EndpointMap,适合数据量不是很大的场景

func NewEndpointHashMap added in v0.3.10

func NewEndpointHashMap() *EndpointHashMap

func (*EndpointHashMap) Clear added in v0.3.10

func (m *EndpointHashMap) Clear()

func (*EndpointHashMap) Foreach added in v0.3.10

func (m *EndpointHashMap) Foreach(action func(fatchoy.Endpoint) bool)

action应该对map是read-only

func (*EndpointHashMap) Get added in v0.3.10

func (*EndpointHashMap) Has added in v0.3.10

func (m *EndpointHashMap) Has(node fatchoy.NodeID) bool

func (*EndpointHashMap) IsEmpty added in v0.3.10

func (m *EndpointHashMap) IsEmpty() bool

func (*EndpointHashMap) Keys added in v0.3.10

func (m *EndpointHashMap) Keys() []fatchoy.NodeID

func (*EndpointHashMap) Pop added in v0.3.10

Pop removes an element from the map and returns it

func (*EndpointHashMap) Put added in v0.3.10

func (m *EndpointHashMap) Put(node fatchoy.NodeID, endpoint fatchoy.Endpoint)

func (*EndpointHashMap) PutIfAbsent added in v0.3.10

func (m *EndpointHashMap) PutIfAbsent(node fatchoy.NodeID, endpoint fatchoy.Endpoint)

func (*EndpointHashMap) Remove added in v0.3.10

func (m *EndpointHashMap) Remove(node fatchoy.NodeID)

func (*EndpointHashMap) Size added in v0.3.10

func (m *EndpointHashMap) Size() int

func (*EndpointHashMap) Values added in v0.3.10

func (m *EndpointHashMap) Values() []fatchoy.Endpoint

type EndpointMapShard added in v0.3.10

type EndpointMapShard struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*EndpointMapShard) Clear added in v0.3.10

func (s *EndpointMapShard) Clear()

func (*EndpointMapShard) Range added in v0.3.10

func (s *EndpointMapShard) Range(action func(fatchoy.Endpoint) bool)

type Error

type Error struct {
	Err      error
	Endpoint fatchoy.Endpoint
}

func NewError

func NewError(err error, endpoint fatchoy.Endpoint) *Error

func (Error) Error

func (e Error) Error() string

type FakeConn

type FakeConn struct {
	StreamConn
}

a fake endpoint

func (*FakeConn) Close

func (c *FakeConn) Close() error

func (*FakeConn) ForceClose

func (c *FakeConn) ForceClose(error)

func (*FakeConn) Go

func (c *FakeConn) Go(flag fatchoy.EndpointFlag)

func (*FakeConn) RawConn

func (c *FakeConn) RawConn() net.Conn

func (*FakeConn) Send added in v0.4.1

func (c *FakeConn) Send(message *fatchoy.Message) error

type FakeEndpoint added in v0.3.10

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

func (*FakeEndpoint) Close added in v0.3.10

func (e *FakeEndpoint) Close() error

关闭读/写

func (*FakeEndpoint) ErrorChan added in v0.3.10

func (e *FakeEndpoint) ErrorChan() <-chan error

func (*FakeEndpoint) ForceClose added in v0.3.10

func (e *FakeEndpoint) ForceClose(error)

func (*FakeEndpoint) Go added in v0.3.10

开启read/write线程

func (*FakeEndpoint) IsRunning added in v0.3.10

func (e *FakeEndpoint) IsRunning() bool

func (*FakeEndpoint) NodeID added in v0.3.10

func (e *FakeEndpoint) NodeID() fatchoy.NodeID

func (*FakeEndpoint) OutMsgChan added in v0.4.1

func (e *FakeEndpoint) OutMsgChan() chan<- *fatchoy.Message

func (*FakeEndpoint) RawConn added in v0.3.10

func (e *FakeEndpoint) RawConn() net.Conn

func (*FakeEndpoint) RemoteAddr added in v0.3.10

func (e *FakeEndpoint) RemoteAddr() string

func (*FakeEndpoint) Send added in v0.4.1

func (e *FakeEndpoint) Send(message *fatchoy.Message) error

发送消息

func (*FakeEndpoint) SetEncryptPair added in v0.3.10

func (e *FakeEndpoint) SetEncryptPair(cipher.BlockCryptor, cipher.BlockCryptor)

设置加解密

func (*FakeEndpoint) SetNodeID added in v0.3.10

func (e *FakeEndpoint) SetNodeID(v fatchoy.NodeID)

func (*FakeEndpoint) SetUserData added in v0.3.10

func (e *FakeEndpoint) SetUserData(v interface{})

绑定自定义数据

func (*FakeEndpoint) Stats added in v0.3.10

func (e *FakeEndpoint) Stats() *stats.Stats

发送/接收计数数据

func (*FakeEndpoint) UserData added in v0.3.10

func (e *FakeEndpoint) UserData() interface{}

type StreamConn

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

stream connection

func (*StreamConn) ErrorChan added in v0.3.5

func (c *StreamConn) ErrorChan() <-chan error

func (*StreamConn) Init added in v0.1.14

func (c *StreamConn) Init(node fatchoy.NodeID, enc codec.Encoder, incoming chan<- *fatchoy.Message,
	outQueueSize int, stat *stats.Stats)

func (*StreamConn) IsRunning added in v0.1.20

func (c *StreamConn) IsRunning() bool

func (*StreamConn) NodeID

func (c *StreamConn) NodeID() fatchoy.NodeID

func (*StreamConn) OutMsgChan added in v0.4.1

func (c *StreamConn) OutMsgChan() chan<- *fatchoy.Message

func (*StreamConn) RemoteAddr

func (c *StreamConn) RemoteAddr() string

func (*StreamConn) SetEncryptPair

func (c *StreamConn) SetEncryptPair(encrypt cipher.BlockCryptor, decrypt cipher.BlockCryptor)

func (*StreamConn) SetNodeID

func (c *StreamConn) SetNodeID(node fatchoy.NodeID)

func (*StreamConn) SetRemoteAddr

func (c *StreamConn) SetRemoteAddr(addr string)

func (*StreamConn) SetUserData

func (c *StreamConn) SetUserData(ud interface{})

func (*StreamConn) Stats

func (c *StreamConn) Stats() *stats.Stats

func (*StreamConn) UserData

func (c *StreamConn) UserData() interface{}

type TcpConn

type TcpConn struct {
	StreamConn
	// contains filtered or unexported fields
}

TCP connection

func NewTcpConn

func NewTcpConn(node fatchoy.NodeID, conn net.Conn, enc codec.Encoder, incoming chan<- *fatchoy.Message, outsize int, stats *stats.Stats) *TcpConn

func (*TcpConn) Close

func (t *TcpConn) Close() error

func (*TcpConn) ForceClose

func (t *TcpConn) ForceClose(err error)

func (*TcpConn) Go

func (t *TcpConn) Go(flag fatchoy.EndpointFlag)

func (*TcpConn) RawConn

func (t *TcpConn) RawConn() net.Conn

func (*TcpConn) Send added in v0.4.1

func (t *TcpConn) Send(pkt *fatchoy.Message) error

type TcpServer

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

func NewTcpServer

func NewTcpServer(enc codec.Encoder, incoming chan *fatchoy.Message, outsize int) *TcpServer

func (*TcpServer) BacklogChan

func (s *TcpServer) BacklogChan() chan fatchoy.Endpoint

func (*TcpServer) Close

func (s *TcpServer) Close()

func (*TcpServer) ErrorChan

func (s *TcpServer) ErrorChan() chan error

func (*TcpServer) Listen

func (s *TcpServer) Listen(addr string) error

func (*TcpServer) Shutdown

func (s *TcpServer) Shutdown()

type Tuple added in v0.3.10

type Tuple struct {
	Key fatchoy.NodeID
	Val fatchoy.Endpoint
}

Jump to

Keyboard shortcuts

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