Ai
1 Star 0 Fork 0

李文建/protoactor-go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
remote_process.go 1.24 KB
一键复制 编辑 原始数据 按行查看 历史
Potter Dai 提交于 2019-02-01 15:09 +08:00 . Double quote comments.
package remote
import (
"github.com/AsynkronIT/protoactor-go/actor"
)
type process struct {
pid *actor.PID
}
func newProcess(pid *actor.PID) actor.Process {
return &process{
pid: pid,
}
}
func (ref *process) SendUserMessage(pid *actor.PID, message interface{}) {
header, msg, sender := actor.UnwrapEnvelope(message)
SendMessage(pid, header, msg, sender, -1)
}
func SendMessage(pid *actor.PID, header actor.ReadonlyMessageHeader, message interface{}, sender *actor.PID, serializerID int32) {
rd := &remoteDeliver{
header: header,
message: message,
sender: sender,
target: pid,
serializerID: serializerID,
}
endpointManager.remoteDeliver(rd)
}
func (ref *process) SendSystemMessage(pid *actor.PID, message interface{}) {
// intercept any Watch messages and direct them to the endpoint manager
switch msg := message.(type) {
case *actor.Watch:
rw := &remoteWatch{
Watcher: msg.Watcher,
Watchee: pid,
}
endpointManager.remoteWatch(rw)
case *actor.Unwatch:
ruw := &remoteUnwatch{
Watcher: msg.Watcher,
Watchee: pid,
}
endpointManager.remoteUnwatch(ruw)
default:
SendMessage(pid, nil, message, nil, -1)
}
}
func (ref *process) Stop(pid *actor.PID) {
ref.SendSystemMessage(pid, stopMessage)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/lwj8507/protoactor-go.git
git@gitee.com:lwj8507/protoactor-go.git
lwj8507
protoactor-go
protoactor-go
v0.0.1

搜索帮助