1 Star 2 Fork 0

李文建/light-protoactor-go

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
broadcast_router.go 1.10 KB
一键复制 编辑 原始数据 按行查看 历史
李文建 提交于 2017-07-17 17:46 +08:00 . 1.git.oschina.net替换成gitee.com
package router
import "gitee.com/lwj8507/light-protoactor-go/actor"
type broadcastGroupRouter struct {
GroupRouter
}
type broadcastPoolRouter struct {
PoolRouter
}
type broadcastRouterState struct {
routees *actor.PIDSet
}
func (state *broadcastRouterState) SetRoutees(routees *actor.PIDSet) {
state.routees = routees
}
func (state *broadcastRouterState) GetRoutees() *actor.PIDSet {
return state.routees
}
func (state *broadcastRouterState) RouteMessage(message interface{}, sender *actor.PID) {
state.routees.ForEach(func(i int, pid actor.PID) {
actor.Request(&pid, message, sender)
})
}
func NewBroadcastPool(size int) *actor.Props {
return actor.FromSpawnFunc(spawner(&broadcastPoolRouter{PoolRouter{PoolSize: size}}))
}
func NewBroadcastGroup(routees ...*actor.PID) *actor.Props {
return actor.FromSpawnFunc(spawner(&broadcastGroupRouter{GroupRouter{Routees: actor.NewPIDSet(routees...)}}))
}
func (config *broadcastPoolRouter) CreateRouterState() Interface {
return &broadcastRouterState{}
}
func (config *broadcastGroupRouter) CreateRouterState() Interface {
return &broadcastRouterState{}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/lwj8507/light-protoactor-go.git
git@gitee.com:lwj8507/light-protoactor-go.git
lwj8507
light-protoactor-go
light-protoactor-go
013e33d7022f

搜索帮助