overflow_discovery/server/server_handlers.go

63 lines
1.2 KiB
Go
Raw Normal View History

2017-10-26 21:55:55 +09:00
package server
import (
2017-11-15 15:59:43 +09:00
"fmt"
2017-12-05 11:52:14 +09:00
"net"
2017-10-26 21:55:55 +09:00
2017-11-15 15:59:43 +09:00
"git.loafle.net/commons_go/logging"
2017-11-15 21:09:38 +09:00
"git.loafle.net/overflow/overflow_discovery/discovery"
2017-11-15 15:59:43 +09:00
"git.loafle.net/commons_go/server"
2017-10-26 21:55:55 +09:00
)
2017-11-29 14:19:36 +09:00
func newServerHandler(addr string, socketHandler SocketHandler) ServerHandler {
2017-11-15 15:59:43 +09:00
sh := &ServerHandlers{
2017-11-29 14:19:36 +09:00
addr: addr,
2017-11-15 15:59:43 +09:00
}
2017-11-01 15:35:03 +09:00
2017-11-29 14:19:36 +09:00
sh.Name = "Discovery"
sh.SocketHandler = socketHandler
2017-10-26 21:55:55 +09:00
return sh
}
type ServerHandlers struct {
2017-11-01 15:35:03 +09:00
server.ServerHandlers
2017-10-26 21:55:55 +09:00
2017-11-29 14:19:36 +09:00
addr string
2017-11-15 15:59:43 +09:00
}
2017-11-29 14:19:36 +09:00
func (sh *ServerHandlers) Init(serverCTX server.ServerContext) error {
if err := sh.ServerHandlers.Init(serverCTX); nil != err {
return err
2017-11-15 15:59:43 +09:00
}
2017-11-23 18:34:07 +09:00
2017-11-29 14:19:36 +09:00
return nil
2017-11-15 15:59:43 +09:00
}
2017-12-05 11:52:14 +09:00
func (sh *ServerHandlers) Listen(serverCTX server.ServerContext) (net.Listener, error) {
return net.Listen("tcp", "localhost:50006")
}
2017-11-29 14:19:36 +09:00
func (sh *ServerHandlers) OnStart(serverCTX server.ServerContext) {
sh.ServerHandlers.OnStart(serverCTX)
2017-11-29 09:36:19 +09:00
2017-11-29 14:19:36 +09:00
discovery.DiscoveryInit()
2017-11-15 15:59:43 +09:00
}
2017-11-29 14:19:36 +09:00
func (sh *ServerHandlers) OnStop(serverCTX server.ServerContext) {
2017-11-23 18:34:07 +09:00
2017-11-15 21:09:38 +09:00
discovery.DiscoveryDestroy()
2017-11-29 14:19:36 +09:00
sh.ServerHandlers.OnStop(serverCTX)
2017-11-01 15:35:03 +09:00
}
2017-10-26 22:18:20 +09:00
2017-11-15 15:59:43 +09:00
func (sh *ServerHandlers) Validate() {
sh.ServerHandlers.Validate()
if "" == sh.addr {
logging.Logger().Panic(fmt.Sprintf("Server: Address of server must be specified"))
2017-10-26 22:18:20 +09:00
}
2017-11-01 15:35:03 +09:00
2017-11-29 09:36:19 +09:00
}