Package com.biglybt.core.util
Class BEncoder
- java.lang.Object
-
- com.biglybt.core.util.BEncoder
-
public class BEncoder extends java.lang.Object
A set of utility methods to encode a Map into a bencoded array of byte. integer are represented as Long, String as byte[], dictionnaries as Map, and list as List.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
BEncoder.XMLEncoder
-
Field Summary
Fields Modifier and Type Field Description private static int
BUFFER_DOUBLE_LIMIT
private byte[]
current_buffer
private int
current_buffer_pos
(package private) static byte[]
DigitOnes
(package private) static byte[]
digits
(package private) static byte[]
DigitTens
private byte[]
int_buffer
private static byte[]
MINUS_1_BYTES
private static int
non_ascii_logs
private byte[][]
old_buffers
-
Constructor Summary
Constructors Constructor Description BEncoder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.lang.Object
clone(java.lang.Object obj)
static java.util.List
cloneList(java.util.List list)
static java.util.Map
cloneMap(java.util.Map map)
static byte[]
encode(java.util.Map object)
private boolean
encodeObject(java.lang.Object object, boolean utf_key_expected)
static java.lang.String
encodeToJSON(java.util.Map b_map)
static JSONArray
encodeToJSONArray(java.util.List b_list)
private static java.lang.Object
encodeToJSONGeneric(java.lang.Object obj)
static JSONObject
encodeToJSONObject(java.util.Map<java.lang.Object,java.lang.Object> b_map)
static java.lang.StringBuffer
encodeToXML(java.util.Map map, boolean simple)
private java.lang.String
getEncodedSoFar()
private int
intToBytes(int i)
writes to int_buffer and returns start position in buffer (always runs to end of buffer)static boolean
isEncodable(java.lang.Object toCheck)
static boolean
listsAreIdentical(java.util.List list1, java.util.List list2)
static void
main(java.lang.String[] args)
static boolean
mapsAreIdentical(java.util.Map map1, java.util.Map map2)
private static java.lang.Object
normaliseObject(java.lang.Object o)
static boolean
objectsAreIdentical(java.lang.Object o1, java.lang.Object o2)
private byte[]
toByteArray()
private void
writeByteBuffer(java.nio.ByteBuffer bb)
private void
writeBytes(byte[] bytes)
private void
writeBytes(byte[] bytes, int offset, int length)
private void
writeChar(char c)
private void
writeInt(int i)
private void
writeLong(long l)
-
-
-
Field Detail
-
BUFFER_DOUBLE_LIMIT
private static final int BUFFER_DOUBLE_LIMIT
- See Also:
- Constant Field Values
-
MINUS_1_BYTES
private static final byte[] MINUS_1_BYTES
-
non_ascii_logs
private static volatile int non_ascii_logs
-
current_buffer
private byte[] current_buffer
-
current_buffer_pos
private int current_buffer_pos
-
old_buffers
private byte[][] old_buffers
-
int_buffer
private final byte[] int_buffer
-
digits
static final byte[] digits
-
DigitTens
static final byte[] DigitTens
-
DigitOnes
static final byte[] DigitOnes
-
-
Method Detail
-
encode
public static byte[] encode(java.util.Map object) throws java.io.IOException
- Throws:
java.io.IOException
-
encodeObject
private boolean encodeObject(java.lang.Object object, boolean utf_key_expected) throws java.io.IOException
- Throws:
java.io.IOException
-
writeChar
private void writeChar(char c)
-
writeInt
private void writeInt(int i)
-
writeLong
private void writeLong(long l)
-
writeBytes
private void writeBytes(byte[] bytes)
-
writeBytes
private void writeBytes(byte[] bytes, int offset, int length)
-
writeByteBuffer
private void writeByteBuffer(java.nio.ByteBuffer bb)
-
getEncodedSoFar
private java.lang.String getEncodedSoFar()
-
toByteArray
private byte[] toByteArray()
-
normaliseObject
private static java.lang.Object normaliseObject(java.lang.Object o)
-
isEncodable
public static boolean isEncodable(java.lang.Object toCheck)
-
objectsAreIdentical
public static boolean objectsAreIdentical(java.lang.Object o1, java.lang.Object o2)
-
listsAreIdentical
public static boolean listsAreIdentical(java.util.List list1, java.util.List list2)
-
mapsAreIdentical
public static boolean mapsAreIdentical(java.util.Map map1, java.util.Map map2)
-
cloneMap
public static java.util.Map cloneMap(java.util.Map map)
-
cloneList
public static java.util.List cloneList(java.util.List list)
-
clone
public static java.lang.Object clone(java.lang.Object obj)
-
encodeToXML
public static java.lang.StringBuffer encodeToXML(java.util.Map map, boolean simple)
-
encodeToJSONGeneric
private static java.lang.Object encodeToJSONGeneric(java.lang.Object obj)
-
encodeToJSONArray
public static JSONArray encodeToJSONArray(java.util.List b_list)
-
encodeToJSONObject
public static JSONObject encodeToJSONObject(java.util.Map<java.lang.Object,java.lang.Object> b_map)
-
encodeToJSON
public static java.lang.String encodeToJSON(java.util.Map b_map)
-
intToBytes
private int intToBytes(int i)
writes to int_buffer and returns start position in buffer (always runs to end of buffer)- Parameters:
i
-- Returns:
-
main
public static void main(java.lang.String[] args)
-
-