Package fasthttputil
Overview ▹
Index ▹
Variables
var (
// ErrTimeout is returned from Read() or Write() on timeout.
ErrTimeout = errors.New("timeout")
)
type InmemoryListener ¶
InmemoryListener provides in-memory dialer<->net.Listener implementation.
It may be used either for fast in-process client<->server communcations without network stack overhead or for client<->server tests.
type InmemoryListener struct {
// contains filtered or unexported fields
}
func NewInmemoryListener ¶
func NewInmemoryListener() *InmemoryListener
NewInmemoryListener returns new in-memory dialer<->net.Listener.
func (*InmemoryListener) Accept ¶
func (ln *InmemoryListener) Accept() (net.Conn, error)
Accept implements net.Listener's Accept.
It is safe calling Accept from concurrently running goroutines.
Accept returns new connection per each Dial call.
func (*InmemoryListener) Addr ¶
func (ln *InmemoryListener) Addr() net.Addr
Addr implements net.Listener's Addr.
func (*InmemoryListener) Close ¶
func (ln *InmemoryListener) Close() error
Close implements net.Listener's Close.
func (*InmemoryListener) Dial ¶
func (ln *InmemoryListener) Dial() (net.Conn, error)
Dial creates new client<->server connection, enqueues server side of the connection to Accept and returns client side of the connection.
It is safe calling Dial from concurrently running goroutines.
type PipeConns ¶
PipeConns provides bi-directional connection pipe, which use in-process memory as a transport.
PipeConns must be created by calling NewPipeConns.
PipeConns has the following additional features comparing to connections returned from net.Pipe():
* It is faster. * It buffers Write calls, so there is no need to have concurrent goroutine calling Read in order to unblock each Write call. * It supports read and write deadlines.
type PipeConns struct {
// contains filtered or unexported fields
}
func NewPipeConns ¶
func NewPipeConns() *PipeConns
NewPipeConns returns new bi-directonal connection pipe.
func (*PipeConns) Close ¶
func (pc *PipeConns) Close() error
Close closes pipe connections.
func (*PipeConns) Conn1 ¶
func (pc *PipeConns) Conn1() net.Conn
Conn1 returns the first end of bi-directional pipe.
Data written to Conn1 may be read from Conn2. Data written to Conn2 may be read from Conn1.
func (*PipeConns) Conn2 ¶
func (pc *PipeConns) Conn2() net.Conn
Conn2 returns the second end of bi-directional pipe.
Data written to Conn2 may be read from Conn1. Data written to Conn1 may be read from Conn2.