nodereg.go 778 B

123456789101112131415161718192021222324252627282930313233
  1. package socket
  2. import (
  3. "log"
  4. "rocommon"
  5. "rocommon/util"
  6. )
  7. type serverCreate func() rocommon.ServerNode
  8. var serverNodeByName = map[string]serverCreate{}
  9. func RegisterServerNode(f serverCreate) {
  10. node := f()
  11. if _, ok := serverNodeByName[node.TypeOfName()]; ok {
  12. log.Fatalf("serverNode type has register name:[%v]", node.TypeOfName())
  13. }
  14. serverNodeByName[node.TypeOfName()] = f
  15. }
  16. func NewServerNode(serverType, serverName, addr string, que rocommon.NetEventQueue) rocommon.ServerNode {
  17. f := serverNodeByName[serverType]
  18. if f == nil {
  19. util.PanicF("serverNoe type not found %v", serverType)
  20. }
  21. node := f()
  22. nodeProperty := node.(rocommon.ServerNodeProperty)
  23. nodeProperty.SetAddr(addr)
  24. nodeProperty.SetName(serverName)
  25. nodeProperty.SetQueue(que)
  26. return node
  27. }