code: public static long getLong(final DirectBuffer buffer, final int index, final Encoding encoding)
      {
          switch (encoding.primitiveType())
          {
              case CHAR:
                  return buffer.getByte(index);
  
              case INT8:
                  return buffer.getByte(index);
  
              case INT16:
                  return buffer.getShort(index, encoding.byteOrder());
  
              case INT32:
                  return buffer.getInt(index, encoding.byteOrder());
  
              case INT64:
                  return buffer.getLong(index, encoding.byteOrder());
  
              case UINT8:
                  return (short)(buffer.getByte(index) & 0xFF);
  
              case UINT16:
                  return buffer.getShort(index, encoding.byteOrder()) & 0xFFFF;
  
              case UINT32:
                  return buffer.getInt(index, encoding.byteOrder()) & 0xFFFF_FFFFL;
  
              case UINT64:
                  return buffer.getLong(index, encoding.byteOrder());
  
              default:
                  throw new IllegalArgumentException("Unsupported type for long: " + encoding.primitiveType());
          }
      }
docs: Get a long value from a buffer at a given index for a given {@link Encoding}.
  
  @param buffer   from which to read.
  @param index    at which he integer should be read.
  @param encoding of the value.
  @return the value of the encoded long.