Package de.gsi.serializer.spi.iobuffer
Class DataSetSerialiser
- java.lang.Object
-
- de.gsi.serializer.spi.iobuffer.DataSetSerialiser
-
public class DataSetSerialiser extends java.lang.ObjectClass to efficiently serialise and de-serialise DataSet objects into binary byte arrays. The performance can be tuned through:- using floats (ie. memory-IO vs network-IO bound serialisation), or
- via
setDataLablesSerialised(boolean)(default: true) to control whether data labels and styles shall be processed - via
setMetaDataSerialised(boolean)(default: true) to control whether meta data shall be processed
- Author:
- rstein
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected FieldDescriptioncheckFieldCompatibility(FieldDescription rootField, int fieldNameHashCode, java.lang.String fieldName, DataType... requireDataTypes)protected static intgetDimIndex(java.lang.String fieldName, java.lang.String prefix)protected static double[]getDoubleArray(IoSerialiser ioSerialiser, double[] origArray, DataType dataType)booleanisDataLablesSerialised()booleanisMetaDataSerialised()protected voidparseDataLabels(de.gsi.dataset.spi.DataSetBuilder builder, FieldDescription fieldRoot)protected voidparseHeaders(IoSerialiser ioSerialiser, de.gsi.dataset.spi.DataSetBuilder builder, FieldDescription fieldRoot)protected voidparseMetaData(IoSerialiser ioSerialiser, de.gsi.dataset.spi.DataSetBuilder builder, FieldDescription rootField)protected voidparseNumericData(IoSerialiser ioSerialiser, de.gsi.dataset.spi.DataSetBuilder builder, de.gsi.dataset.DataSet origDataSet, FieldDescription rootField)de.gsi.dataset.DataSetread()Read a Dataset from a byte array containing comma separated values.
The data format is a custom extension of csv with an additional #-commented Metadata Header and a $-commented column header.de.gsi.dataset.DataSetread(de.gsi.dataset.DataSet dataSet)Read a Dataset from a byte array containing comma separated values.
The data format is a custom extension of csv with an additional #-commented Metadata Header and a $-commented column header.DataSetSerialisersetDataLablesSerialised(boolean state)DataSetSerialisersetMetaDataSerialised(boolean state)static DataSetSerialiserwithIoSerialiser(IoSerialiser ioSerialiser)voidwrite(de.gsi.dataset.DataSet dataSet, boolean asFloat)Write data set into byte buffer.protected voidwriteDataLabelsToStream(de.gsi.dataset.DataSet dataSet)protected voidwriteHeaderDataToStream(de.gsi.dataset.DataSet dataSet)protected voidwriteMetaDataToStream(de.gsi.dataset.DataSet dataSet)protected voidwriteNumericBinaryDataToBufferDouble(de.gsi.dataset.DataSet dataSet)protected voidwriteNumericBinaryDataToBufferFloat(de.gsi.dataset.DataSet dataSet)
-
-
-
Method Detail
-
isDataLablesSerialised
public boolean isDataLablesSerialised()
-
isMetaDataSerialised
public boolean isMetaDataSerialised()
-
read
public de.gsi.dataset.DataSet read()
Read a Dataset from a byte array containing comma separated values.
The data format is a custom extension of csv with an additional #-commented Metadata Header and a $-commented column header. Expects the following columns in this order to be present: index, x, y, eyn, eyp.- Returns:
- DataSet with the data and metadata read from the file
-
read
public de.gsi.dataset.DataSet read(de.gsi.dataset.DataSet dataSet)
Read a Dataset from a byte array containing comma separated values.
The data format is a custom extension of csv with an additional #-commented Metadata Header and a $-commented column header. Expects the following columns in this order to be present: index, x, y, eyn, eyp.- Parameters:
dataSet- inplace DataSet that is being overwritten if non-null andDataSet.set(DataSet, boolean)is implemented- Returns:
- DataSet with the data and metadata read from the file
-
setDataLablesSerialised
public DataSetSerialiser setDataLablesSerialised(boolean state)
-
setMetaDataSerialised
public DataSetSerialiser setMetaDataSerialised(boolean state)
-
write
public void write(de.gsi.dataset.DataSet dataSet, boolean asFloat)Write data set into byte buffer.- Parameters:
dataSet- The DataSet to exportasFloat-true: encode data as binary floats (smaller size, performance), orfalseas double (better precision)
-
checkFieldCompatibility
protected FieldDescription checkFieldCompatibility(FieldDescription rootField, int fieldNameHashCode, java.lang.String fieldName, DataType... requireDataTypes)
-
getDimIndex
protected static int getDimIndex(java.lang.String fieldName, java.lang.String prefix)
-
getDoubleArray
protected static double[] getDoubleArray(IoSerialiser ioSerialiser, double[] origArray, DataType dataType)
-
parseDataLabels
protected void parseDataLabels(de.gsi.dataset.spi.DataSetBuilder builder, FieldDescription fieldRoot)
-
parseHeaders
protected void parseHeaders(IoSerialiser ioSerialiser, de.gsi.dataset.spi.DataSetBuilder builder, FieldDescription fieldRoot)
-
parseMetaData
protected void parseMetaData(IoSerialiser ioSerialiser, de.gsi.dataset.spi.DataSetBuilder builder, FieldDescription rootField)
-
parseNumericData
protected void parseNumericData(IoSerialiser ioSerialiser, de.gsi.dataset.spi.DataSetBuilder builder, de.gsi.dataset.DataSet origDataSet, FieldDescription rootField)
-
writeDataLabelsToStream
protected void writeDataLabelsToStream(de.gsi.dataset.DataSet dataSet)
-
writeHeaderDataToStream
protected void writeHeaderDataToStream(de.gsi.dataset.DataSet dataSet)
-
writeMetaDataToStream
protected void writeMetaDataToStream(de.gsi.dataset.DataSet dataSet)
-
writeNumericBinaryDataToBufferDouble
protected void writeNumericBinaryDataToBufferDouble(de.gsi.dataset.DataSet dataSet)
- Parameters:
dataSet- to be exported
-
writeNumericBinaryDataToBufferFloat
protected void writeNumericBinaryDataToBufferFloat(de.gsi.dataset.DataSet dataSet)
- Parameters:
dataSet- to be exported
-
withIoSerialiser
public static DataSetSerialiser withIoSerialiser(IoSerialiser ioSerialiser)
-
-