File |
Line |
org\djutils\serialization\TypedMessage.java |
1564 |
org\djutils\serialization\TypedMessage.java |
1641 |
Serializer[] serializers = buildEncoderList(false, objectArray);
for (int i = 0; i < objectArray.length; i++)
{
buffer[pointer.getAndIncrement(1)] = serializers[i].fieldType();
}
for (int i = 0; i < objects.length; i++)
{
List<Object> row = objects[i].exportAsList();
Throw.when(row.size() != objectArray.length, SerializationException.class,
"List in row %d has %d elements which differs from the %d elements in row 0", i, row.size(),
objectArray.length);
for (int j = 0; j < row.size(); j++)
{
serializers[j].serialize(row.get(j), buffer, pointer, endianUtil);
}
}
}
@Override
public SerializableObject<?>[] deSerialize(final byte[] buffer, final Pointer pointer,
final EndianUtil endianUtil) throws SerializationException
{
int arraySize = endianUtil.decodeInt(buffer, pointer.getAndIncrement(4));
int fieldCount = endianUtil.decodeInt(buffer, pointer.getAndIncrement(4));
Serializer<?>[] deSerializers = new Serializer[fieldCount];
for (int i = 0; i < fieldCount; i++)
{
Byte key = buffer[pointer.getAndIncrement(1)];
Serializer<?> deSerializer = PRIMITIVE_DATA_DECODERS.get(key);
Throw.whenNull(SerializationException.class, "No decoder for %d", key);
deSerializers[i] = deSerializer;
}
MinimalSerializableObject[] result = new MinimalSerializableObject[arraySize];
for (int i = 0; i < arraySize; i++)
{
List<Object> element = new ArrayList<>();
for (int j = 0; j < fieldCount; j++)
{
element.add(deSerializers[j].deSerialize(buffer, pointer, endianUtil));
}
result[i] = new MinimalSerializableObject(element);
}
return result;
}
}; |
File |
Line |
org\djutils\serialization\TypedMessage.java |
1545 |
org\djutils\serialization\TypedMessage.java |
1622 |
Serializer[] serializers = buildEncoderList(false, objectArray);
result += serializers.length;
// TODO this assumes that objectArray does not contain money types that use a multi-byte field type
for (int i = 0; i < objectArray.length; i++)
{
result += objects.length * serializers[i].size(objectArray[i]);
}
return result;
}
@SuppressWarnings({"unchecked", "rawtypes"})
@Override
public void serialize(final SerializableObject<?>[] objects, final byte[] buffer, final Pointer pointer,
final EndianUtil endianUtil) throws SerializationException
{
SerializableObject<?> so = objects[0];
Object[] objectArray = so.exportAsList().toArray();
endianUtil.encodeInt(objects.length, buffer, pointer.getAndIncrement(4));
endianUtil.encodeInt(objectArray.length, buffer, pointer.getAndIncrement(4));
Serializer[] serializers = buildEncoderList(false, objectArray); |
File |
Line |
org\djutils\serialization\EndianUtil.java |
262 |
org\djutils\serialization\EndianUtil.java |
292 |
message[p++] = (byte) ((v >> 24) & 0xFF);
message[p++] = (byte) ((v >> 16) & 0xFF);
message[p++] = (byte) ((v >> 8) & 0xFF);
message[p++] = (byte) (v & 0xFF);
}
else
{
message[p++] = (byte) (v & 0xFF);
message[p++] = (byte) ((v >> 8) & 0xFF);
message[p++] = (byte) ((v >> 16) & 0xFF);
message[p++] = (byte) ((v >> 24) & 0xFF); |
File |
Line |
org\djutils\serialization\SerialDataDecoder.java |
260 |
org\djutils\serialization\SerialDataDecoder.java |
346 |
if (this.currentSerializer.getNumberOfDimensions() > 0 && 0 == this.rowCount)
{
this.columnCount = this.endianUtil.decodeInt(this.dataElementBytes, 0);
this.currentRow = 0;
this.currentColumn = 0;
if (this.dataElementBytes.length == 8)
{
this.rowCount = this.columnCount;
this.columnCount = this.endianUtil.decodeInt(this.dataElementBytes, 4);
this.buffer.append(String.format("%s height %d, width %d", this.currentSerializer.dataClassName(),
this.rowCount, this.columnCount));
}
else
{
this.rowCount = 1;
this.buffer.append(
String.format("%s length %d", this.currentSerializer.dataClassName(), this.columnCount));
} |
File |
Line |
org\djutils\serialization\TypedMessage.java |
690 |
org\djutils\serialization\TypedMessage.java |
1074 |
public void serialize(final byte[][] matrix, final byte[] buffer, final Pointer pointer,
final EndianUtil endianUtil) throws SerializationException
{
int height = matrix.length;
int width = matrix[0].length;
endianUtil.encodeInt(height, buffer, pointer.getAndIncrement(4));
endianUtil.encodeInt(width, buffer, pointer.getAndIncrement(4));
for (int i = 0; i < height; i++)
{
Throw.when(matrix[i].length != width, SerializationException.class, "Jagged matrix is not allowed");
for (int j = 0; j < width; j++)
{
buffer[pointer.getAndIncrement(getElementSize())] = matrix[i][j]; |
File |
Line |
org\djutils\serialization\TypedMessage.java |
754 |
org\djutils\serialization\TypedMessage.java |
818 |
org\djutils\serialization\TypedMessage.java |
882 |
org\djutils\serialization\TypedMessage.java |
946 |
org\djutils\serialization\TypedMessage.java |
1010 |
public void serialize(final short[][] matrix, final byte[] buffer, final Pointer pointer,
final EndianUtil endianUtil) throws SerializationException
{
int height = matrix.length;
int width = matrix[0].length;
endianUtil.encodeInt(height, buffer, pointer.getAndIncrement(4));
endianUtil.encodeInt(width, buffer, pointer.getAndIncrement(4));
for (int i = 0; i < height; i++)
{
Throw.when(matrix[i].length != width, SerializationException.class, "Jagged matrix is not allowed");
for (int j = 0; j < width; j++)
{
endianUtil.encodeShort(matrix[i][j], buffer, pointer.getAndIncrement(getElementSize())); |
File |
Line |
org\djutils\serialization\TypedMessage.java |
690 |
org\djutils\serialization\TypedMessage.java |
754 |
org\djutils\serialization\TypedMessage.java |
818 |
org\djutils\serialization\TypedMessage.java |
882 |
org\djutils\serialization\TypedMessage.java |
946 |
org\djutils\serialization\TypedMessage.java |
1010 |
org\djutils\serialization\TypedMessage.java |
1074 |
public void serialize(final byte[][] matrix, final byte[] buffer, final Pointer pointer,
final EndianUtil endianUtil) throws SerializationException
{
int height = matrix.length;
int width = matrix[0].length;
endianUtil.encodeInt(height, buffer, pointer.getAndIncrement(4));
endianUtil.encodeInt(width, buffer, pointer.getAndIncrement(4));
for (int i = 0; i < height; i++)
{
Throw.when(matrix[i].length != width, SerializationException.class, "Jagged matrix is not allowed");
for (int j = 0; j < width; j++)
{ |