Package org.djutils.serialization
Class EndianUtil
- java.lang.Object
-
- org.djutils.serialization.EndianUtil
-
public final class EndianUtil extends Object
Method to help with Little Endian / Big Endian conversions for the Sim0MQ messages. All Sim0MQ messages are encoded Big Endian over the wire.Copyright (c) 2016-2017 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See Sim0MQ License.- Author:
- Alexander Verbraeck
-
-
Field Summary
Fields Modifier and Type Field Description static EndianUtilBIG_ENDIANDirectly usable bigEndian EndianUtil.static EndianUtilLITTLE_ENDIANDirectly usable littleEndian EndianUtil.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static EndianUtilbigEndian()Construct an EndianUtil object that uses bigEndian encoding.chardecodeChar(byte[] message, int pointer)Decode a char (16 bits).doubledecodeDouble(byte[] message, int pointer)Decode a double.floatdecodeFloat(byte[] message, int pointer)Decode a float.intdecodeInt(byte[] message, int pointer)Decode a int.longdecodeLong(byte[] message, int pointer)Decode a long.shortdecodeShort(byte[] message, int pointer)Decode a short.StringdecodeUTF16String(byte[] message, int pointer)Decode a String including the length int from the message byte array.StringdecodeUTF8String(byte[] message, int pointer)Decode a String including the length int from the message byte array.intencodeChar(char v, byte[] message, int pointer)Encode a char (16 bits) into a message buffer.intencodeDouble(double v, byte[] message, int pointer)Encode a double into a message buffer.voidencodeFloat(float v, byte[] message, int pointer)Encode a float into a message buffer.voidencodeInt(int v, byte[] message, int pointer)Encode a int into a message buffer.intencodeLong(long v, byte[] message, int pointer)Encode a long into a message buffer.intencodeShort(short v, byte[] message, int pointer)Encode a short into a message buffer.booleanisBigEndian()Report if this EndianUtil is bigEndian.static booleanisPlatformBigEndian()Report whether this platform is bigEndian, or littleEndian.static EndianUtillittleEndian()Construct an EndianUtil object that uses littleEndian encoding.StringtoString()
-
-
-
Field Detail
-
BIG_ENDIAN
public static final EndianUtil BIG_ENDIAN
Directly usable bigEndian EndianUtil.
-
LITTLE_ENDIAN
public static final EndianUtil LITTLE_ENDIAN
Directly usable littleEndian EndianUtil.
-
-
Method Detail
-
isPlatformBigEndian
public static boolean isPlatformBigEndian()
Report whether this platform is bigEndian, or littleEndian.- Returns:
- boolean; true if this platform is bigEndian; false if this platform is littleEndian
-
bigEndian
public static EndianUtil bigEndian()
Construct an EndianUtil object that uses bigEndian encoding.- Returns:
- EndianUtil that uses bigEndian encoding
-
littleEndian
public static EndianUtil littleEndian()
Construct an EndianUtil object that uses littleEndian encoding.- Returns:
- EndianUtil that uses littleEndian encoding
-
isBigEndian
public boolean isBigEndian()
Report if this EndianUtil is bigEndian.- Returns:
- bigEndian boolean; true if this EndianUtil is bigEndian; false if this EndianUtil is littleEndian
-
decodeShort
public short decodeShort(byte[] message, int pointer)Decode a short.- Parameters:
message- byte[]; the ZeroMQ byte array to decodepointer- int; the first byte to consider- Returns:
- the short value
-
decodeInt
public int decodeInt(byte[] message, int pointer)Decode a int.- Parameters:
message- byte[]; the ZeroMQ byte array to decodepointer- int; the first byte to consider- Returns:
- the integer value
-
decodeLong
public long decodeLong(byte[] message, int pointer)Decode a long.- Parameters:
message- byte[]; the ZeroMQ byte array to decodepointer- int; the first byte to consider- Returns:
- the long value
-
decodeFloat
public float decodeFloat(byte[] message, int pointer)Decode a float.- Parameters:
message- byte[]; the ZeroMQ byte array to decodepointer- int; the first byte to consider- Returns:
- the float value
-
decodeDouble
public double decodeDouble(byte[] message, int pointer)Decode a double.- Parameters:
message- byte[]; the ZeroMQ byte array to decodepointer- int; the first byte to consider- Returns:
- the double value
-
decodeChar
public char decodeChar(byte[] message, int pointer)Decode a char (16 bits).- Parameters:
message- byte[]; the ZeroMQ byte array to decodepointer- int; the first byte to consider- Returns:
- the short value
-
decodeUTF8String
public String decodeUTF8String(byte[] message, int pointer) throws SerializationException
Decode a String including the length int from the message byte array.- Parameters:
message- byte[]; the message byte arraypointer- int; the start position in the array- Returns:
- the Java String at position pointer
- Throws:
SerializationException- when the bytes cannot be parsed as UTF8
-
decodeUTF16String
public String decodeUTF16String(byte[] message, int pointer)
Decode a String including the length int from the message byte array.- Parameters:
message- byte[]; the message byte arraypointer- int; the start position in the array- Returns:
- the Java String at position pointer
-
encodeShort
public int encodeShort(short v, byte[] message, int pointer)Encode a short into a message buffer.- Parameters:
v- short; the variable to encodemessage- byte[]; the message buffer to encode the variable intopointer- int; the pointer to start writing- Returns:
- the new pointer after writing
-
encodeChar
public int encodeChar(char v, byte[] message, int pointer)Encode a char (16 bits) into a message buffer.- Parameters:
v- char; the variable to encodemessage- byte[]; the message buffer to encode the variable intopointer- int; the pointer to start writing- Returns:
- the new pointer after writing
-
encodeInt
public void encodeInt(int v, byte[] message, int pointer)Encode a int into a message buffer.- Parameters:
v- int; the variable to encodemessage- byte[]; the message buffer to encode the variable intopointer- int; the pointer to start writing
-
encodeLong
public int encodeLong(long v, byte[] message, int pointer)Encode a long into a message buffer.- Parameters:
v- long; the variable to encodemessage- byte[]; the message buffer to encode the variable intopointer- int; the pointer to start writing- Returns:
- the new pointer after writing
-
encodeFloat
public void encodeFloat(float v, byte[] message, int pointer)Encode a float into a message buffer.- Parameters:
v- float; the variable to encodemessage- byte[]; the message buffer to encode the variable intopointer- int; the pointer to start writing
-
encodeDouble
public int encodeDouble(double v, byte[] message, int pointer)Encode a double into a message buffer.- Parameters:
v- double; the variable to encodemessage- byte[]; the message buffer to encode the variable intopointer- int; the pointer to start writing- Returns:
- the new pointer after writing
-
-