server-go/web/server-handler.go

36 lines
543 B
Go
Raw Permalink Normal View History

2018-04-05 15:15:29 +00:00
package web
import (
2018-04-13 07:11:43 +00:00
"sync/atomic"
2018-04-05 15:15:29 +00:00
"git.loafle.net/commons/server-go"
)
type ServerHandler interface {
server.ServerHandler
2018-04-05 16:21:13 +00:00
server.ReadWriteHandler
2018-04-05 15:15:29 +00:00
}
type ServerHandlers struct {
server.ServerHandlers
2018-04-05 16:21:13 +00:00
server.ReadWriteHandlers
2018-04-13 07:11:43 +00:00
validated atomic.Value
2018-04-05 15:15:29 +00:00
}
func (sh *ServerHandlers) Validate() error {
2018-04-13 07:11:43 +00:00
if nil != sh.validated.Load() {
return nil
}
sh.validated.Store(true)
2018-04-05 15:15:29 +00:00
if err := sh.ServerHandlers.Validate(); nil != err {
return err
}
2018-04-05 16:21:13 +00:00
if err := sh.ReadWriteHandlers.Validate(); nil != err {
return err
}
2018-04-05 15:15:29 +00:00
return nil
}