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
|
|
|
}
|