import "github.com/byte-mug/golibs/streamprotoc"
const MZ1 = 12444583056938131134
-
const MZ2 = 7945676850369339463
-
var EAgain = errors.New("Ooops, try again")
-
var ETimeout = errors.New("Deadline timed out")
-
func DecodeMessage(tr *textproto.Reader, msg Message) error
-
func EncodeMessage(tw *textproto.Writer, msg Message) error
-
type Client struct { // contains filtered or unexported fields }
-
func NewClient(c net.Conn) *Client
-
func (c *Client) DoDeadline(req, resp Message, dl time.Time) error
-
func (c *Client) ReadMsg(r *bufio.Reader) error
Don't call this method directly!
func (c *Client) WriteMsg(w *bufio.Writer) error
Don't call this method!
type Message interface { WriteMsg(w *bufio.Writer) error ReadMsg(r *bufio.Reader) error }
-
type SendMessage struct { Inner Message ConnID uint64 ReqID uint64 }
-
func (s *SendMessage) ReadMsg(r *bufio.Reader) error
-
func (s *SendMessage) WriteMsg(w *bufio.Writer) error
-
type Server struct { NewMessage func() *SendMessage Handler func(r *SendMessage, c *ServerConn) }
-
func (s *Server) Handle(c net.Conn)
-
type ServerConn struct { *Server // contains filtered or unexported fields }
-
func (c *ServerConn) WriteMessage(msg *SendMessage) error
-
import "bufio"
import "bytes"
import "encoding/binary"
import "errors"
import "github.com/byte-mug/golibs/base128"
import "io"
import "io/ioutil"
import "math/rand"
import "net"
import "net/textproto"
import "sync"
import "time"