func (c *Client) handleAcked(req server.ReqID, r *bufio.Reader) (res Response, err error) { q, err := r.ReadString(' ') if err != nil { return } q = q[:len(q)-1] s, err := r.ReadString(' ') if err != nil { return } tid, err := strconv.Atoi(string(s[:len(s)-1])) if err != nil { return } res = Response{ ID: req, Data: server.Task{ Queue: server.Queue(q), ID: server.TaskID(tid), }, } return }
func (c *Client) handleEnQed(req server.ReqID, r *bufio.Reader) (res Response, err error) { q, err := r.ReadString(' ') if err != nil { return } q = q[:len(q)-1] s, err := r.ReadString('\n') if err != nil { return } s = s[:len(s)-1] tid, err := strconv.ParseUint(s, 10, 64) if err != nil { return } res = Response{ ID: req, Data: server.TaskID(tid), } return }
func (c *Client) handleDeQed(req server.ReqID, r *bufio.Reader) (res Response, err error) { q, err := r.ReadString(' ') if err != nil { return } q = q[:len(q)-1] s, err := r.ReadString(' ') if err != nil { return } tid, err := strconv.Atoi(string(s[:len(s)-1])) if err != nil { return } s, err = r.ReadString(' ') if err != nil { return } l, err := strconv.Atoi(string(s[:len(s)-1])) if err != nil { return } var d []byte d = make([]byte, l) n, err := io.ReadAtLeast(r, d, l) if err != nil { return } if n != l { err = ErrInvalidResponse return } b, err := r.ReadByte() if err != nil { return } if b != '\n' { err = ErrInvalidResponse return } res = Response{ ID: req, Data: server.Task{ Queue: server.Queue(q), ID: server.TaskID(tid), Body: d, }, } return }