Prechádzať zdrojové kódy

move to real_decoder and privatize.

see https://github.com/Shopify/sarama/pull/690#discussion_r69310446
Dieter Plaetinck 8 rokov pred
rodič
commit
70f640ef06
2 zmenil súbory, kde vykonal 12 pridanie a 12 odobranie
  1. 0 5
      errors.go
  2. 12 7
      real_decoder.go

+ 0 - 5
errors.go

@@ -37,11 +37,6 @@ var ErrShuttingDown = errors.New("kafka: message received by producer in process
 // ErrMessageTooLarge is returned when the next message to consume is larger than the configured Consumer.Fetch.Max
 var ErrMessageTooLarge = errors.New("kafka: message is larger than Consumer.Fetch.Max")
 
-var ErrInvalidArrayLength = PacketDecodingError{"invalid array length"}
-var ErrInvalidByteSliceLength = PacketDecodingError{"invalid byteslice length"}
-var ErrInvalidStringLength = PacketDecodingError{"invalid string length"}
-var ErrInvalidSubsetSize = PacketDecodingError{"invalid subset size"}
-
 // PacketEncodingError is returned from a failure while encoding a Kafka packet. This can happen, for example,
 // if you try to encode a string over 2^15 characters in length, since Kafka's encoding rules do not permit that.
 type PacketEncodingError struct {

+ 12 - 7
real_decoder.go

@@ -5,6 +5,11 @@ import (
 	"math"
 )
 
+var errInvalidArrayLength = PacketDecodingError{"invalid array length"}
+var errInvalidByteSliceLength = PacketDecodingError{"invalid byteslice length"}
+var errInvalidStringLength = PacketDecodingError{"invalid string length"}
+var errInvalidSubsetSize = PacketDecodingError{"invalid subset size"}
+
 type realDecoder struct {
 	raw   []byte
 	off   int
@@ -64,7 +69,7 @@ func (rd *realDecoder) getArrayLength() (int, error) {
 		rd.off = len(rd.raw)
 		return -1, ErrInsufficientData
 	} else if tmp > 2*math.MaxUint16 {
-		return -1, ErrInvalidArrayLength
+		return -1, errInvalidArrayLength
 	}
 	return tmp, nil
 }
@@ -82,7 +87,7 @@ func (rd *realDecoder) getBytes() ([]byte, error) {
 
 	switch {
 	case n < -1:
-		return nil, ErrInvalidByteSliceLength
+		return nil, errInvalidByteSliceLength
 	case n == -1:
 		return nil, nil
 	case n == 0:
@@ -108,7 +113,7 @@ func (rd *realDecoder) getString() (string, error) {
 
 	switch {
 	case n < -1:
-		return "", ErrInvalidStringLength
+		return "", errInvalidStringLength
 	case n == -1:
 		return "", nil
 	case n == 0:
@@ -141,7 +146,7 @@ func (rd *realDecoder) getInt32Array() ([]int32, error) {
 	}
 
 	if n < 0 {
-		return nil, ErrInvalidArrayLength
+		return nil, errInvalidArrayLength
 	}
 
 	ret := make([]int32, n)
@@ -170,7 +175,7 @@ func (rd *realDecoder) getInt64Array() ([]int64, error) {
 	}
 
 	if n < 0 {
-		return nil, ErrInvalidArrayLength
+		return nil, errInvalidArrayLength
 	}
 
 	ret := make([]int64, n)
@@ -194,7 +199,7 @@ func (rd *realDecoder) getStringArray() ([]string, error) {
 	}
 
 	if n < 0 {
-		return nil, ErrInvalidArrayLength
+		return nil, errInvalidArrayLength
 	}
 
 	ret := make([]string, n)
@@ -216,7 +221,7 @@ func (rd *realDecoder) remaining() int {
 
 func (rd *realDecoder) getSubset(length int) (packetDecoder, error) {
 	if length < 0 {
-		return nil, ErrInvalidSubsetSize
+		return nil, errInvalidSubsetSize
 	} else if length > rd.remaining() {
 		rd.off = len(rd.raw)
 		return nil, ErrInsufficientData