vendor dependencies with dep
This commit is contained in:
parent
93d8310491
commit
1384296a47
2712 changed files with 965742 additions and 0 deletions
106
vendor/github.com/go-pg/pg/internal/pool/conn.go
generated
vendored
Normal file
106
vendor/github.com/go-pg/pg/internal/pool/conn.go
generated
vendored
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
package pool
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"io"
|
||||
"net"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
var noDeadline = time.Time{}
|
||||
|
||||
type Conn struct {
|
||||
netConn net.Conn
|
||||
|
||||
Reader *bufio.Reader
|
||||
readBuf []byte
|
||||
Columns [][]byte
|
||||
|
||||
Writer *WriteBuffer
|
||||
|
||||
InitedAt time.Time
|
||||
UsedAt time.Time
|
||||
|
||||
ProcessId int32
|
||||
SecretKey int32
|
||||
|
||||
_lastId int64
|
||||
}
|
||||
|
||||
func NewConn(netConn net.Conn) *Conn {
|
||||
cn := &Conn{
|
||||
Reader: bufio.NewReader(netConn),
|
||||
readBuf: make([]byte, 0, 512),
|
||||
|
||||
Writer: NewWriteBuffer(),
|
||||
|
||||
UsedAt: time.Now(),
|
||||
}
|
||||
cn.SetNetConn(netConn)
|
||||
return cn
|
||||
}
|
||||
|
||||
func (cn *Conn) RemoteAddr() net.Addr {
|
||||
return cn.netConn.RemoteAddr()
|
||||
}
|
||||
|
||||
func (cn *Conn) SetNetConn(netConn net.Conn) {
|
||||
cn.netConn = netConn
|
||||
cn.Reader.Reset(netConn)
|
||||
}
|
||||
|
||||
func (cn *Conn) NetConn() net.Conn {
|
||||
return cn.netConn
|
||||
}
|
||||
|
||||
func (cn *Conn) NextId() string {
|
||||
cn._lastId++
|
||||
return strconv.FormatInt(cn._lastId, 10)
|
||||
}
|
||||
|
||||
func (cn *Conn) SetTimeout(rt, wt time.Duration) {
|
||||
cn.UsedAt = time.Now()
|
||||
if rt > 0 {
|
||||
cn.netConn.SetReadDeadline(cn.UsedAt.Add(rt))
|
||||
} else {
|
||||
cn.netConn.SetReadDeadline(noDeadline)
|
||||
}
|
||||
if wt > 0 {
|
||||
cn.netConn.SetWriteDeadline(cn.UsedAt.Add(wt))
|
||||
} else {
|
||||
cn.netConn.SetWriteDeadline(noDeadline)
|
||||
}
|
||||
}
|
||||
|
||||
func (cn *Conn) ReadN(n int) ([]byte, error) {
|
||||
if d := n - cap(cn.readBuf); d > 0 {
|
||||
cn.readBuf = cn.readBuf[:cap(cn.readBuf)]
|
||||
cn.readBuf = append(cn.readBuf, make([]byte, d)...)
|
||||
} else {
|
||||
cn.readBuf = cn.readBuf[:n]
|
||||
}
|
||||
_, err := io.ReadFull(cn.Reader, cn.readBuf)
|
||||
return cn.readBuf, err
|
||||
}
|
||||
|
||||
func (cn *Conn) FlushWriter() error {
|
||||
_, err := cn.netConn.Write(cn.Writer.Bytes)
|
||||
cn.Writer.Reset()
|
||||
return err
|
||||
}
|
||||
|
||||
func (cn *Conn) Close() error {
|
||||
return cn.netConn.Close()
|
||||
}
|
||||
|
||||
func (cn *Conn) CheckHealth() error {
|
||||
if cn.Reader.Buffered() != 0 {
|
||||
b, _ := cn.Reader.Peek(cn.Reader.Buffered())
|
||||
err := fmt.Errorf("connection has unread data:\n%s", hex.Dump(b))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue