Jump To …

ByteIterableUtil.coffee

This class contains simple util methods.

class ByteIterableUtil

Compares two buffers.

@param key1 first ByteIterable. @param key2 second ByteIterable. @return > 0 of key1 > key2, < 0 if key1 < key2 and 0 if they are equal.

  @compare$ByteIterable$ByteIterable: (key1, key2) ->
    return @compare$Buffer$int$Buffer$int key1.getBytesUnsafe(),
            key1.getLength(), key2.getBytesUnsafe(), key2.getLength()

Compares two buffers.

@param key1 first buffer. @param len1 length of first buffer. @param key2 second buffer. @param len2 length of second buffer. @return > 0 of key1 > key2, < 0 if key1 < key2 and 0 if they are equal.

  @compare$Buffer$int$Buffer$int: (key1, len1, key2, len2) ->
    min = Math.min(len1, len2)
    for i in [0..min - 1]
      b1 = key1[i]
      b2 = key2[i]
      if (b1 != b2)
        return (b1 & 0xff) - (b2 & 0xff)
    return (len1 - len2)

Compares two buffers.

@param key1 first buffer. @param len1 length of first buffer. @param offset1 offset inside first buffer. @param key2 second buffer. @param len2 length of second buffer. @return > 0 of key1 > key2, < 0 if key1 < key2 and 0 if they are equal.

  @compare$Buffer$int$int$Buffer$int: (key1, len1, offset1, key2, len2) ->
    min = Math.min(len1 - offset1, len2)
    for i in [0..min - 1]
      b1 = key1[i + offset1]
      b2 = key2[i]
      if (b1 != b2)
        return (b1 & 0xff) - (b2 & 0xff)
    return (len1 - offset1 - len2)

exports.ByteIterableUtil = ByteIterableUtil