server-go/web/server-handler.go

36 lines
544 B
Go
Raw Normal View History

2018-08-22 08:37:12 +00:00
package web
import (
"sync/atomic"
"git.loafle.net/overflow/server-go"
)
type ServerHandler interface {
server.ServerHandler
server.ReadWriteHandler
}
type ServerHandlers struct {
server.ServerHandlers
server.ReadWriteHandlers
validated atomic.Value
}
func (sh *ServerHandlers) Validate() error {
if nil != sh.validated.Load() {
return nil
}
sh.validated.Store(true)
if err := sh.ServerHandlers.Validate(); nil != err {
return err
}
if err := sh.ReadWriteHandlers.Validate(); nil != err {
return err
}
return nil
}