pool

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2021 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Handler added in v0.1.0

type Handler interface {
	Handle(proto.Message) error
}

Handler Hub的处理接口

type HandlerFunc added in v0.1.0

type HandlerFunc func(proto.Message) error

HandlerFunc 函数形式的Handler

func (HandlerFunc) Handle added in v0.1.0

func (hf HandlerFunc) Handle(val proto.Message) error

Handle 实现Handler的必要接口

type Hub added in v0.1.0

type Hub struct {
	io.Closer
	// contains filtered or unexported fields
}

Hub 存储资源

func NewHub added in v0.1.0

func NewHub(ctx context.Context, limit *LimitMux) *Hub

NewHub 创建新的Hub

func (*Hub) Push added in v0.1.0

func (hub *Hub) Push(res proto.Message)

Push 将资源送入Hub

func (*Hub) SetHandler added in v0.1.0

func (hub *Hub) SetHandler(handler Handler)

SetHandler 设置handler

type HubPool added in v0.1.0

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

HubPool 客户端,每种类型的协议使用唯一的客户端

func NewHubPool added in v0.1.0

func NewHubPool(ctx context.Context) *HubPool

NewHubPool 新建一个HubPool

func (*HubPool) AutoHub added in v0.1.0

func (hp *HubPool) AutoHub(key string) (hub *Hub, isNew bool)

AutoHub 自动获取Hub,有则返回,无则创建 如果是新建了Hub,isNew将为true,需要外部设置Handler

func (*HubPool) GetHub added in v0.1.0

func (hp *HubPool) GetHub(key string) *Hub

GetHub 获取指定的Hub

func (*HubPool) Remove added in v0.1.0

func (hp *HubPool) Remove(key string)

Remove 删除指定Hub

func (*HubPool) RemoveAll added in v0.1.0

func (hp *HubPool) RemoveAll()

RemoveAll 移除所有hub 这个方法主要是希望将所有缓存的Hub执行一次Close

type LimitMux added in v0.1.0

type LimitMux struct {
	Max int //NOTE: 最大值
	// contains filtered or unexported fields
}

LimitMux 限制器,用于限制

func (*LimitMux) Locked added in v0.1.0

func (lm *LimitMux) Locked() bool

Locked 限制器是否出发

func (*LimitMux) Release added in v0.1.0

func (lm *LimitMux) Release()

Release 释放一个操作

func (*LimitMux) Retain added in v0.1.0

func (lm *LimitMux) Retain() (ok bool)

Retain 索引值+1

type ListMux added in v0.1.0

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

ListMux 线程安全list

func NewListMux added in v0.1.0

func NewListMux() *ListMux

NewListMux 创建一个ListMux

func (*ListMux) Push added in v0.1.0

func (lm *ListMux) Push(val proto.Message)

Push 将数据安全的送到list中

func (*ListMux) Shift added in v0.1.0

func (lm *ListMux) Shift() (val proto.Message)

Shift 取出最前面的数据

Jump to

Keyboard shortcuts

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