43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
package gus
|
|
|
|
// Server is a type which can serve a protocol.
|
|
type Server interface {
|
|
// Serve blocks listening for connections on an interface.
|
|
//
|
|
// It will only return after Close() has been called.
|
|
Serve() error
|
|
|
|
// Close initiates a graceful shutdown of the server.
|
|
//
|
|
// It blocks until all resources have been cleaned up and all
|
|
// outstanding requests have been handled and responses sent.
|
|
Close()
|
|
|
|
// Closed indicates whether Close has been called.
|
|
//
|
|
// It may be true even if the graceful shutdown procedure
|
|
// hasn't yet completed.
|
|
Closed() bool
|
|
|
|
// Protocol returns the protocol being served by the server.
|
|
Protocol() string
|
|
|
|
// Network returns the network type on which the server is running.
|
|
Network() string
|
|
|
|
// Address returns the address on which the server is listening.
|
|
Address() string
|
|
|
|
// Hostname returns just the hostname portion of the listen address.
|
|
Hostname() string
|
|
|
|
// Port returns the port on which the server is listening.
|
|
//
|
|
// It will return the empty string if the network type does not
|
|
// have ports (unix sockets, for example).
|
|
Port() string
|
|
|
|
// LogError sends a log message to the server's error log.
|
|
LogError(keyvals ...any) error
|
|
}
|