| 123456789101112131415161718192021222324252627282930313233 |
- package socket
- import (
- "log"
- "rocommon"
- "rocommon/util"
- )
- type serverCreate func() rocommon.ServerNode
- var serverNodeByName = map[string]serverCreate{}
- func RegisterServerNode(f serverCreate) {
- node := f()
- if _, ok := serverNodeByName[node.TypeOfName()]; ok {
- log.Fatalf("serverNode type has register name:[%v]", node.TypeOfName())
- }
- serverNodeByName[node.TypeOfName()] = f
- }
- func NewServerNode(serverType, serverName, addr string, que rocommon.NetEventQueue) rocommon.ServerNode {
- f := serverNodeByName[serverType]
- if f == nil {
- util.PanicF("serverNoe type not found %v", serverType)
- }
- node := f()
- nodeProperty := node.(rocommon.ServerNodeProperty)
- nodeProperty.SetAddr(addr)
- nodeProperty.SetName(serverName)
- nodeProperty.SetQueue(que)
- return node
- }
|