package client import ( "bufio" "net" "time" "github.com/ngaut/deadline" ) // Conn is the connection for timestamp oracle server, it is not thread safe. type Conn struct { addr string net.Conn closed bool r *bufio.Reader w *bufio.Writer netTimeout time.Duration } // NewConnection creates a conn. func NewConnection(addr string, netTimeout time.Duration) (*Conn, error) { conn, err := net.DialTimeout("tcp", addr, netTimeout) if err != nil { return nil, err } return &Conn{ addr: addr, Conn: conn, r: bufio.NewReaderSize(deadline.NewDeadlineReader(conn, netTimeout), 512*1024), w: bufio.NewWriterSize(deadline.NewDeadlineWriter(conn, netTimeout), 512*1024), netTimeout: netTimeout, }, nil } // Read reads data and stores it into p. func (c *Conn) Read(p []byte) (int, error) { return c.r.Read(p) } // Flush flushs buffered data. func (c *Conn) Flush() error { return c.w.Flush() } // Write writes p. func (c *Conn) Write(p []byte) (int, error) { return c.w.Write(p) }