Class BDecoder

java.lang.Object
com.biglybt.core.util.BDecoder

public class BDecoder extends Object
A set of utility methods to decode a bencoded array of byte into a Map. integer are represented as Long, String as byte[], dictionaries as Map, and list as List.
  • Field Details

    • MAX_BYTE_ARRAY_SIZE

      public static final int MAX_BYTE_ARRAY_SIZE
      See Also:
    • MAX_MAP_KEY_SIZE

      private static final int MAX_MAP_KEY_SIZE
      See Also:
    • NEWDECODER_FOR_DEF_CHARSET

      private static final boolean NEWDECODER_FOR_DEF_CHARSET
    • TRACE

      private static final boolean TRACE
      See Also:
    • PORTABLE_ROOT

      private static final byte[] PORTABLE_ROOT
    • recovery_mode

      private boolean recovery_mode
    • verify_map_order

      private boolean verify_map_order
    • useNewDecoder

      private boolean useNewDecoder
    • keyDecoder

      private final CharsetDecoder keyDecoder
    • keyCharset

      private final Charset keyCharset
    • keyDecoderUTF8

      private CharsetDecoder keyDecoderUTF8
    • keyCharsetUTF8

      private Charset keyCharsetUTF8
    • keyBytesLen

      private int keyBytesLen
    • keyBytesBuffer

      private ByteBuffer keyBytesBuffer
    • keyBytes

      private byte[] keyBytes
    • keyCharsBuffer

      private CharBuffer keyCharsBuffer
    • mapDecodeListener

      private BDecoder.MapDecodeListener mapDecodeListener
    • force_utf8_keys

      private boolean force_utf8_keys
    • numberChars

      private final char[] numberChars
      only create the array once per decoder instance (no issues with recursion as it's only used in a leaf method)
  • Constructor Details

    • BDecoder

      public BDecoder()
      Create a BDecoder using BYTE_ENCODING_CHARSET (ISO_8859_1)
    • BDecoder

      public BDecoder(Charset keyCharset)
      Create a BDecoder using specified charset.

      New decoder will be used, which can handle UTF-8 properly

    • BDecoder

      private BDecoder(Charset keyCharset, boolean useNewDecoder)
  • Method Details