Documentation ¶
Index ¶
- Variables
- func DefaultErrorFilter(err error) error
- type Backoff
- type ErrorFilter
- type ReconnectListenerWrapper
- func (rw *ReconnectListenerWrapper) Close() error
- func (rw *ReconnectListenerWrapper) Connect(addr net.Addr) error
- func (rw *ReconnectListenerWrapper) LocalAddr() net.Addr
- func (rw *ReconnectListenerWrapper) Read(b []byte) (n int, err error)
- func (rw *ReconnectListenerWrapper) RemoteAddr() net.Addr
- func (rw *ReconnectListenerWrapper) SetDeadline(t time.Time) error
- func (rw *ReconnectListenerWrapper) SetReadDeadline(t time.Time) error
- func (rw *ReconnectListenerWrapper) SetWriteDeadline(t time.Time) error
- func (rw *ReconnectListenerWrapper) Write(b []byte) (n int, err error)
- type ReconnectWrapper
- func (rw *ReconnectWrapper) Close() error
- func (rw *ReconnectWrapper) Connect(addr net.Addr) error
- func (rw *ReconnectWrapper) LocalAddr() net.Addr
- func (rw *ReconnectWrapper) Read(b []byte) (n int, err error)
- func (rw *ReconnectWrapper) RemoteAddr() net.Addr
- func (rw *ReconnectWrapper) SetDeadline(t time.Time) error
- func (rw *ReconnectWrapper) SetReadDeadline(t time.Time) error
- func (rw *ReconnectWrapper) SetWriteDeadline(t time.Time) error
- func (rw *ReconnectWrapper) Write(b []byte) (n int, err error)
- type TCP4Connection
- func (tc *TCP4Connection) Close() error
- func (tc *TCP4Connection) Connect(addr net.Addr) error
- func (tc *TCP4Connection) LocalAddr() net.Addr
- func (tc *TCP4Connection) Read(b []byte) (n int, err error)
- func (tc *TCP4Connection) RemoteAddr() net.Addr
- func (tc *TCP4Connection) SetDeadline(t time.Time) error
- func (tc *TCP4Connection) SetReadDeadline(t time.Time) error
- func (tc *TCP4Connection) SetWriteDeadline(t time.Time) error
- func (tc *TCP4Connection) Write(b []byte) (n int, err error)
- type TCP4Listener
- type TCP4TlsConnection
- func (tc *TCP4TlsConnection) Close() error
- func (tc *TCP4TlsConnection) Connect(addr net.Addr) error
- func (tc *TCP4TlsConnection) LocalAddr() net.Addr
- func (tc *TCP4TlsConnection) Read(b []byte) (n int, err error)
- func (tc *TCP4TlsConnection) RemoteAddr() net.Addr
- func (tc *TCP4TlsConnection) SetDeadline(t time.Time) error
- func (tc *TCP4TlsConnection) SetReadDeadline(t time.Time) error
- func (tc *TCP4TlsConnection) SetWriteDeadline(t time.Time) error
- func (t4tc *TCP4TlsConnection) WithRootCA(rootCAPath string) error
- func (tc *TCP4TlsConnection) Write(b []byte) (n int, err error)
- type TCP4TlsListener
Constants ¶
This section is empty.
Variables ¶
var ErrNotConnected = errors.New("not connected")
Functions ¶
func DefaultErrorFilter ¶ added in v0.1.2
Types ¶
type ErrorFilter ¶ added in v0.1.2
ErrorFilter match the errors at which you want to retry the request. If err does not match the error you want, return nil.
type ReconnectListenerWrapper ¶ added in v0.1.6
type ReconnectListenerWrapper struct {
// contains filtered or unexported fields
}
ReconnectListenerWrapper enrich the underlying connection with a reconnect mechanism.
func NewReconnectListenerWrapper ¶ added in v0.1.6
func NewReconnectListenerWrapper(ctx context.Context, baseConn watermillnet.Connection, log watermill.LoggerAdapter, readWriteTimeout time.Duration, l watermillnet.Listener) *ReconnectListenerWrapper
NewReconnectListenerWrapper enrich the underlying connection with a reconnect mechanism.
func (*ReconnectListenerWrapper) Close ¶ added in v0.1.6
func (rw *ReconnectListenerWrapper) Close() error
Close closes the connection. Any blocked Read or Write operations will be unblocked and return errors.
func (*ReconnectListenerWrapper) Connect ¶ added in v0.1.6
func (rw *ReconnectListenerWrapper) Connect(addr net.Addr) error
Establish connection with remote side. LocalAddr get local addr.
func (*ReconnectListenerWrapper) LocalAddr ¶ added in v0.1.6
func (rw *ReconnectListenerWrapper) LocalAddr() net.Addr
LocalAddr returns the local network address, if known.
func (*ReconnectListenerWrapper) Read ¶ added in v0.1.6
func (rw *ReconnectListenerWrapper) Read(b []byte) (n int, err error)
Read reads data from the connection. Read can be made to time out and return an error after a fixed time limit; see SetDeadline and SetReadDeadline.
func (*ReconnectListenerWrapper) RemoteAddr ¶ added in v0.1.6
func (rw *ReconnectListenerWrapper) RemoteAddr() net.Addr
RemoteAddr returns the remote network address, if known.
func (*ReconnectListenerWrapper) SetDeadline ¶ added in v0.1.6
func (rw *ReconnectListenerWrapper) SetDeadline(t time.Time) error
SetDeadline sets the read and write deadlines associated with the connection. It is equivalent to calling both SetReadDeadline and SetWriteDeadline.
A deadline is an absolute time after which I/O operations fail instead of blocking. The deadline applies to all future and pending I/O, not just the immediately following call to Read or Write. After a deadline has been exceeded, the connection can be refreshed by setting a deadline in the future.
If the deadline is exceeded a call to Read or Write or to other I/O methods will return an error that wraps os.ErrDeadlineExceeded. This can be tested using errors.Is(err, os.ErrDeadlineExceeded). The error's Timeout method will return true, but note that there are other possible errors for which the Timeout method will return true even if the deadline has not been exceeded.
An idle timeout can be implemented by repeatedly extending the deadline after successful Read or Write calls.
A zero value for t means I/O operations will not time out.
func (*ReconnectListenerWrapper) SetReadDeadline ¶ added in v0.1.6
func (rw *ReconnectListenerWrapper) SetReadDeadline(t time.Time) error
SetReadDeadline sets the deadline for future Read calls and any currently-blocked Read call. A zero value for t means Read will not time out.
func (*ReconnectListenerWrapper) SetWriteDeadline ¶ added in v0.1.6
func (rw *ReconnectListenerWrapper) SetWriteDeadline(t time.Time) error
SetWriteDeadline sets the deadline for future Write calls and any currently-blocked Write call. Even if write times out, it may return n > 0, indicating that some of the data was successfully written. A zero value for t means Write will not time out.
type ReconnectWrapper ¶ added in v0.1.2
type ReconnectWrapper struct {
// contains filtered or unexported fields
}
ReconnectWrapper enrich the underlying connection with a reconnect mechanism.
func NewReconnectWrapper ¶ added in v0.1.2
func NewReconnectWrapper(ctx context.Context, baseConn watermillnet.Connection, backoff Backoff, log watermill.LoggerAdapter, remoteAddr net.Addr, efilter ErrorFilter, readWriteTimeout time.Duration) *ReconnectWrapper
NewReconnectWrapper enrich the underlying connection with a reconnect mechanism.
func (*ReconnectWrapper) Close ¶ added in v0.1.2
func (rw *ReconnectWrapper) Close() error
Close closes the connection. Any blocked Read or Write operations will be unblocked and return errors.
func (*ReconnectWrapper) Connect ¶ added in v0.1.2
func (rw *ReconnectWrapper) Connect(addr net.Addr) error
Establish connection with remote side. LocalAddr get local addr.
func (*ReconnectWrapper) LocalAddr ¶ added in v0.1.2
func (rw *ReconnectWrapper) LocalAddr() net.Addr
LocalAddr returns the local network address, if known.
func (*ReconnectWrapper) Read ¶ added in v0.1.2
func (rw *ReconnectWrapper) Read(b []byte) (n int, err error)
Read reads data from the connection. Read can be made to time out and return an error after a fixed time limit; see SetDeadline and SetReadDeadline.
func (*ReconnectWrapper) RemoteAddr ¶ added in v0.1.2
func (rw *ReconnectWrapper) RemoteAddr() net.Addr
RemoteAddr returns the remote network address, if known.
func (*ReconnectWrapper) SetDeadline ¶ added in v0.1.2
func (rw *ReconnectWrapper) SetDeadline(t time.Time) error
SetDeadline sets the read and write deadlines associated with the connection. It is equivalent to calling both SetReadDeadline and SetWriteDeadline.
A deadline is an absolute time after which I/O operations fail instead of blocking. The deadline applies to all future and pending I/O, not just the immediately following call to Read or Write. After a deadline has been exceeded, the connection can be refreshed by setting a deadline in the future.
If the deadline is exceeded a call to Read or Write or to other I/O methods will return an error that wraps os.ErrDeadlineExceeded. This can be tested using errors.Is(err, os.ErrDeadlineExceeded). The error's Timeout method will return true, but note that there are other possible errors for which the Timeout method will return true even if the deadline has not been exceeded.
An idle timeout can be implemented by repeatedly extending the deadline after successful Read or Write calls.
A zero value for t means I/O operations will not time out.
func (*ReconnectWrapper) SetReadDeadline ¶ added in v0.1.2
func (rw *ReconnectWrapper) SetReadDeadline(t time.Time) error
SetReadDeadline sets the deadline for future Read calls and any currently-blocked Read call. A zero value for t means Read will not time out.
func (*ReconnectWrapper) SetWriteDeadline ¶ added in v0.1.2
func (rw *ReconnectWrapper) SetWriteDeadline(t time.Time) error
SetWriteDeadline sets the deadline for future Write calls and any currently-blocked Write call. Even if write times out, it may return n > 0, indicating that some of the data was successfully written. A zero value for t means Write will not time out.
type TCP4Connection ¶
type TCP4Connection struct { Closed bool // contains filtered or unexported fields }
func NewTCPConnection ¶
func NewTCPConnection(keepAlive time.Duration) *TCP4Connection
func (*TCP4Connection) Close ¶
func (tc *TCP4Connection) Close() error
Close closes the connection. Any blocked Read or Write operations will be unblocked and return errors.
func (*TCP4Connection) Connect ¶
func (tc *TCP4Connection) Connect(addr net.Addr) error
Establish connection with remote side. LocalAddr get local addr.
func (*TCP4Connection) LocalAddr ¶
func (tc *TCP4Connection) LocalAddr() net.Addr
LocalAddr returns the local network address, if known.
func (*TCP4Connection) Read ¶
func (tc *TCP4Connection) Read(b []byte) (n int, err error)
Read reads data from the connection. Read can be made to time out and return an error after a fixed time limit; see SetDeadline and SetReadDeadline.
func (*TCP4Connection) RemoteAddr ¶
func (tc *TCP4Connection) RemoteAddr() net.Addr
RemoteAddr returns the remote network address, if known.
func (*TCP4Connection) SetDeadline ¶
func (tc *TCP4Connection) SetDeadline(t time.Time) error
SetDeadline sets the read and write deadlines associated with the connection. It is equivalent to calling both SetReadDeadline and SetWriteDeadline.
A deadline is an absolute time after which I/O operations fail instead of blocking. The deadline applies to all future and pending I/O, not just the immediately following call to Read or Write. After a deadline has been exceeded, the connection can be refreshed by setting a deadline in the future.
If the deadline is exceeded a call to Read or Write or to other I/O methods will return an error that wraps os.ErrDeadlineExceeded. This can be tested using errors.Is(err, os.ErrDeadlineExceeded). The error's Timeout method will return true, but note that there are other possible errors for which the Timeout method will return true even if the deadline has not been exceeded.
An idle timeout can be implemented by repeatedly extending the deadline after successful Read or Write calls.
A zero value for t means I/O operations will not time out.
func (*TCP4Connection) SetReadDeadline ¶
func (tc *TCP4Connection) SetReadDeadline(t time.Time) error
SetReadDeadline sets the deadline for future Read calls and any currently-blocked Read call. A zero value for t means Read will not time out.
func (*TCP4Connection) SetWriteDeadline ¶
func (tc *TCP4Connection) SetWriteDeadline(t time.Time) error
SetWriteDeadline sets the deadline for future Write calls and any currently-blocked Write call. Even if write times out, it may return n > 0, indicating that some of the data was successfully written. A zero value for t means Write will not time out.
type TCP4Listener ¶
type TCP4Listener struct {
// contains filtered or unexported fields
}
func NewTCP4Listener ¶
func NewTCP4Listener(addr string) (*TCP4Listener, error)
func NewTCP4TlsListener ¶ added in v0.1.6
func NewTCP4TlsListener(addr string, config *tls.Config) (*TCP4Listener, error)
func (*TCP4Listener) Accept ¶
func (tl *TCP4Listener) Accept() (watermillnet.Connection, error)
Accept waits for and returns the next connection to the listener.
func (*TCP4Listener) Addr ¶
func (tl *TCP4Listener) Addr() net.Addr
Addr returns the listener's network address.
func (*TCP4Listener) Close ¶
func (tl *TCP4Listener) Close() error
Close closes the listener. Any blocked Accept operations will be unblocked and return errors.
type TCP4TlsConnection ¶ added in v0.1.6
type TCP4TlsConnection struct { Closed bool // contains filtered or unexported fields }
func NewTCPTlsConnection ¶ added in v0.1.6
func NewTCPTlsConnection(keepAlive time.Duration, config *tls.Config) *TCP4TlsConnection
NewTCPTlsConnection create new TCP4TlsConnection with predefined tls config.
func (*TCP4TlsConnection) Close ¶ added in v0.1.6
func (tc *TCP4TlsConnection) Close() error
Close closes the connection. Any blocked Read or Write operations will be unblocked and return errors.
func (*TCP4TlsConnection) Connect ¶ added in v0.1.6
func (tc *TCP4TlsConnection) Connect(addr net.Addr) error
Establish connection with remote side. LocalAddr get local addr.
func (*TCP4TlsConnection) LocalAddr ¶ added in v0.1.6
func (tc *TCP4TlsConnection) LocalAddr() net.Addr
LocalAddr returns the local network address, if known.
func (*TCP4TlsConnection) Read ¶ added in v0.1.6
func (tc *TCP4TlsConnection) Read(b []byte) (n int, err error)
Read reads data from the connection. Read can be made to time out and return an error after a fixed time limit; see SetDeadline and SetReadDeadline.
func (*TCP4TlsConnection) RemoteAddr ¶ added in v0.1.6
func (tc *TCP4TlsConnection) RemoteAddr() net.Addr
RemoteAddr returns the remote network address, if known.
func (*TCP4TlsConnection) SetDeadline ¶ added in v0.1.6
func (tc *TCP4TlsConnection) SetDeadline(t time.Time) error
SetDeadline sets the read and write deadlines associated with the connection. It is equivalent to calling both SetReadDeadline and SetWriteDeadline.
A deadline is an absolute time after which I/O operations fail instead of blocking. The deadline applies to all future and pending I/O, not just the immediately following call to Read or Write. After a deadline has been exceeded, the connection can be refreshed by setting a deadline in the future.
If the deadline is exceeded a call to Read or Write or to other I/O methods will return an error that wraps os.ErrDeadlineExceeded. This can be tested using errors.Is(err, os.ErrDeadlineExceeded). The error's Timeout method will return true, but note that there are other possible errors for which the Timeout method will return true even if the deadline has not been exceeded.
An idle timeout can be implemented by repeatedly extending the deadline after successful Read or Write calls.
A zero value for t means I/O operations will not time out.
func (*TCP4TlsConnection) SetReadDeadline ¶ added in v0.1.6
func (tc *TCP4TlsConnection) SetReadDeadline(t time.Time) error
SetReadDeadline sets the deadline for future Read calls and any currently-blocked Read call. A zero value for t means Read will not time out.
func (*TCP4TlsConnection) SetWriteDeadline ¶ added in v0.1.6
func (tc *TCP4TlsConnection) SetWriteDeadline(t time.Time) error
SetWriteDeadline sets the deadline for future Write calls and any currently-blocked Write call. Even if write times out, it may return n > 0, indicating that some of the data was successfully written. A zero value for t means Write will not time out.
func (*TCP4TlsConnection) WithRootCA ¶ added in v0.1.6
func (t4tc *TCP4TlsConnection) WithRootCA(rootCAPath string) error
WithRootCA add root certificate authority to connection.
type TCP4TlsListener ¶ added in v0.1.6
type TCP4TlsListener struct {
// contains filtered or unexported fields
}
func (*TCP4TlsListener) Accept ¶ added in v0.1.6
func (tl *TCP4TlsListener) Accept() (watermillnet.Connection, error)
Accept waits for and returns the next connection to the listener.
func (*TCP4TlsListener) Addr ¶ added in v0.1.6
func (tl *TCP4TlsListener) Addr() net.Addr
Addr returns the listener's network address.
func (*TCP4TlsListener) Close ¶ added in v0.1.6
func (tl *TCP4TlsListener) Close() error
Close closes the listener. Any blocked Accept operations will be unblocked and return errors.