Documentation
¶
Index ¶
- Constants
- Variables
- type Config
- type Conn
- func (c *Conn) Close() error
- func (c *Conn) CloseWithError(err error) error
- func (c *Conn) Execute(f func())
- func (c *Conn) ExecuteLen() int
- func (c *Conn) Hash() int
- func (c *Conn) IsClosed() (bool, error)
- func (c *Conn) LocalAddr() net.Addr
- func (c *Conn) Lock()
- func (c *Conn) MustExecute(f func())
- func (c *Conn) OnData(h func(conn *Conn, data []byte))
- func (c *Conn) Read(b []byte) (int, error)
- func (c *Conn) RemoteAddr() net.Addr
- func (c *Conn) Sendfile(f *os.File, remain int64) (int64, error)
- func (c *Conn) Session() interface{}
- func (c *Conn) SetDeadline(t time.Time) error
- func (c *Conn) SetKeepAlive(keepalive bool) error
- func (c *Conn) SetKeepAlivePeriod(d time.Duration) error
- func (c *Conn) SetLinger(onoff int32, linger int32) error
- func (c *Conn) SetNoDelay(nodelay bool) error
- func (c *Conn) SetReadBuffer(bytes int) error
- func (c *Conn) SetReadDeadline(t time.Time) error
- func (c *Conn) SetSession(session interface{})
- func (c *Conn) SetWriteBuffer(bytes int) error
- func (c *Conn) SetWriteDeadline(t time.Time) error
- func (c *Conn) Unlock()
- func (c *Conn) Write(b []byte) (int, error)
- func (c *Conn) Writev(in [][]byte) (int, error)
- type Gopher
- func (g *Gopher) AddConn(conn net.Conn) (*Conn, error)
- func (g *Gopher) After(timeout time.Duration) <-chan time.Time
- func (g *Gopher) AfterFunc(timeout time.Duration, f func()) *Timer
- func (g *Gopher) AfterRead(h func(c *Conn))
- func (g *Gopher) BeforeRead(h func(c *Conn))
- func (g *Gopher) BeforeWrite(h func(c *Conn))
- func (g *Gopher) OnClose(h func(c *Conn, err error))
- func (g *Gopher) OnData(h func(c *Conn, data []byte))
- func (g *Gopher) OnOpen(h func(c *Conn))
- func (g *Gopher) OnRead(h func(c *Conn))
- func (g *Gopher) OnReadBufferAlloc(h func(c *Conn) []byte)
- func (g *Gopher) OnReadBufferFree(h func(c *Conn, b []byte))
- func (g *Gopher) OnStop(h func())
- func (g *Gopher) OnWriteBufferRelease(h func(c *Conn, b []byte))
- func (g *Gopher) PollerBuffer(c *Conn) []byte
- func (g *Gopher) Start() error
- func (g *Gopher) Stop()
- type Timer
Constants ¶
const ( // DefaultReadBufferSize . DefaultReadBufferSize = 1024 * 32 // DefaultMaxWriteBufferSize . DefaultMaxWriteBufferSize = 1024 * 1024 // DefaultMaxReadTimesPerEventLoop . DefaultMaxReadTimesPerEventLoop = 3 // DefaultMinConnCacheSize . DefaultMinConnCacheSize = 1024 * 2 )
const ( // EPOLLLT . EPOLLLT = 0 // EPOLLET . EPOLLET = 0x80000000 )
Variables ¶
var (
// MaxOpenFiles .
MaxOpenFiles = 1024 * 1024
)
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { // Name describes your gopher name for logging, it's set to "NB" by default. Name string // Network is the listening protocol, used with Addrs toghter. // tcp* supported only by now, there's no plan for other protocol such as udp, // because it's too easy to write udp server/client. Network string // Addrs is the listening addr list for a nbio server. // if it is empty, no listener created, then the Gopher is used for client by default. Addrs []string // NPoller represents poller goroutine num, it's set to runtime.NumCPU() by default. NPoller int // NListener represents poller goroutine num, it's set to runtime.NumCPU() by default. NListener int // Backlog represents backlog arg for syscall.Listen Backlog int // ReadBufferSize represents buffer size for reading, it's set to 16k by default. ReadBufferSize int // MinConnCacheSize represents application layer's Conn write cache buffer size when the kernel sendQ is full MinConnCacheSize int // MaxWriteBufferSize represents max write buffer size for Conn, it's set to 1m by default. // if the connection's Send-Q is full and the data cached by nbio is // more than MaxWriteBufferSize, the connection would be closed by nbio. MaxWriteBufferSize int // MaxReadTimesPerEventLoop represents max read times in one poller loop for one fd MaxReadTimesPerEventLoop int // LockListener represents listener's goroutine to lock thread or not, it's set to false by default. LockListener bool // LockPoller represents poller's goroutine to lock thread or not, it's set to false by default. LockPoller bool // EpollMod sets the epoll mod, EPOLLLT by default. EpollMod int }
Config Of Gopher.
type Conn ¶
type Conn struct { ReadBuffer []byte DataHandler func(c *Conn, data []byte) // contains filtered or unexported fields }
Conn implements net.Conn.
func DialTimeout ¶
DialTimeout wraps net.DialTimeout.
func (*Conn) SetDeadline ¶
SetDeadline implements SetDeadline.
func (*Conn) SetKeepAlive ¶
SetKeepAlive implements SetKeepAlive.
func (*Conn) SetKeepAlivePeriod ¶
SetKeepAlivePeriod implements SetKeepAlivePeriod.
func (*Conn) SetNoDelay ¶
SetNoDelay implements SetNoDelay.
func (*Conn) SetReadBuffer ¶
SetReadBuffer implements SetReadBuffer.
func (*Conn) SetReadDeadline ¶
SetReadDeadline implements SetReadDeadline.
func (*Conn) SetSession ¶
func (c *Conn) SetSession(session interface{})
SetSession sets user session.
func (*Conn) SetWriteBuffer ¶
SetWriteBuffer implements SetWriteBuffer.
func (*Conn) SetWriteDeadline ¶
SetWriteDeadline implements SetWriteDeadline.
type Gopher ¶
type Gopher struct { sync.WaitGroup Name string Execute func(f func()) // contains filtered or unexported fields }
Gopher is a manager of poller.
func (*Gopher) AfterRead ¶
AfterRead registers callback after syscall.Read the handler would be called on *nix.
func (*Gopher) BeforeRead ¶
BeforeRead registers callback before syscall.Read the handler would be called on windows.
func (*Gopher) BeforeWrite ¶
BeforeWrite registers callback befor syscall.Write and syscall.Writev the handler would be called on windows.
func (*Gopher) OnReadBufferAlloc ¶
OnReadBufferAlloc registers callback for memory allocating.
func (*Gopher) OnReadBufferFree ¶
OnReadBufferFree registers callback for memory release.
func (*Gopher) OnStop ¶
func (g *Gopher) OnStop(h func())
OnStop registers callback before Gopher is stopped.
func (*Gopher) OnWriteBufferRelease ¶
OnWriteBufferRelease registers callback for write buffer memory release.
func (*Gopher) PollerBuffer ¶
PollerBuffer returns Poller's buffer by Conn, can be used on linux/bsd.