Package de.gsi.serializer.spi
Class CmwLightSerialiser
- java.lang.Object
-
- de.gsi.serializer.spi.CmwLightSerialiser
-
- All Implemented Interfaces:
IoSerialiser
public class CmwLightSerialiser extends java.lang.Object implements IoSerialiser
Light-weight open-source implementation of a (de-)serialiser that is binary-compatible to the serialiser used by CMW, a proprietary closed-source middle-ware used in some accelerator laboratories. N.B. this implementation is intended only for performance/functionality comparison and to enable a backward compatible transition to theBinarySerialiserimplementation which is a bit more flexible, has some additional (optional) features, and a better IO performance. See the corresponding benchmarks for details;- Author:
- rstein
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringNOT_IMPLEMENTED
-
Constructor Summary
Constructors Constructor Description CmwLightSerialiser(IoBuffer buffer)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ProtocolInfocheckHeaderInfo()Reads and checks protocol header information.int[]getArraySizeDescriptor()booleangetBoolean()boolean[]getBooleanArray(boolean[] dst, int length)IoBuffergetBuffer()intgetBufferIncrements()bytegetByte()byte[]getByteArray(byte[] dst, int length)chargetChar()char[]getCharArray(char[] dst, int length)<E> java.util.Collection<E>getCollection(java.util.Collection<E> collection)<E> EgetCustomData(FieldSerialiser<E> serialiser)static DataTypegetDataType(byte byteValue)static bytegetDataType(DataType dataType)doublegetDouble()double[]getDoubleArray(double[] dst, int length)<E extends java.lang.Enum<E>>
java.lang.Enum<E>getEnum(java.lang.Enum<E> enumeration)java.lang.StringgetEnumTypeList()WireDataFieldDescriptiongetFieldHeader()floatgetFloat()float[]getFloatArray(float[] dst, int length)intgetInt()int[]getIntArray(int[] dst, int length)<E> java.util.List<E>getList(java.util.List<E> collection)longgetLong()long[]getLongArray(long[] dst, int length)<K,V,E>
java.util.Map<K,V>getMap(java.util.Map<K,V> map)WireDataFieldDescriptiongetParent()<E> java.util.Queue<E>getQueue(java.util.Queue<E> collection)java.util.function.BiFunction<java.lang.reflect.Type,java.lang.reflect.Type[],FieldSerialiser<java.lang.Object>>getSerialiserLookupFunction()<E> java.util.Set<E>getSet(java.util.Set<E> collection)shortgetShort()short[]getShortArray(short[] dst, int length)java.lang.StringgetString()java.lang.String[]getStringArray(java.lang.String[] dst, int length)java.lang.StringgetStringISO8859()booleanisEnforceSimpleStringEncoding()booleanisPutFieldMetaData()WireDataFieldDescriptionparseIoStream(boolean readHeader)voidparseIoStream(WireDataFieldDescription fieldRoot, int recursionDepth)voidput(FieldDescription fieldDescription, boolean value)voidput(FieldDescription fieldDescription, boolean[] values, int n)voidput(FieldDescription fieldDescription, boolean[] values, int[] dims)voidput(FieldDescription fieldDescription, byte value)voidput(FieldDescription fieldDescription, byte[] values, int n)voidput(FieldDescription fieldDescription, byte[] values, int[] dims)voidput(FieldDescription fieldDescription, char value)voidput(FieldDescription fieldDescription, char[] values, int n)voidput(FieldDescription fieldDescription, char[] values, int[] dims)voidput(FieldDescription fieldDescription, double value)voidput(FieldDescription fieldDescription, double[] values, int n)voidput(FieldDescription fieldDescription, double[] values, int[] dims)voidput(FieldDescription fieldDescription, float value)voidput(FieldDescription fieldDescription, float[] values, int n)voidput(FieldDescription fieldDescription, float[] values, int[] dims)voidput(FieldDescription fieldDescription, int value)voidput(FieldDescription fieldDescription, int[] values, int n)voidput(FieldDescription fieldDescription, int[] values, int[] dims)voidput(FieldDescription fieldDescription, long value)voidput(FieldDescription fieldDescription, long[] values, int n)voidput(FieldDescription fieldDescription, long[] values, int[] dims)voidput(FieldDescription fieldDescription, short value)voidput(FieldDescription fieldDescription, short[] values, int n)voidput(FieldDescription fieldDescription, short[] values, int[] dims)voidput(FieldDescription fieldDescription, java.lang.Enum<?> enumeration)voidput(FieldDescription fieldDescription, java.lang.String string)voidput(FieldDescription fieldDescription, java.lang.String[] values, int n)voidput(FieldDescription fieldDescription, java.lang.String[] values, int[] dims)<E> voidput(FieldDescription fieldDescription, java.util.Collection<E> collection, java.lang.reflect.Type valueType)<K,V,E>
voidput(FieldDescription fieldDescription, java.util.Map<K,V> map, java.lang.reflect.Type keyType, java.lang.reflect.Type valueType)voidput(java.lang.String fieldName, boolean value)voidput(java.lang.String fieldName, boolean[] values, int n)voidput(java.lang.String fieldName, boolean[] values, int[] dims)voidput(java.lang.String fieldName, byte value)voidput(java.lang.String fieldName, byte[] values, int n)voidput(java.lang.String fieldName, byte[] values, int[] dims)voidput(java.lang.String fieldName, char value)voidput(java.lang.String fieldName, char[] values, int n)voidput(java.lang.String fieldName, char[] values, int[] dims)voidput(java.lang.String fieldName, double value)voidput(java.lang.String fieldName, double[] values, int n)voidput(java.lang.String fieldName, double[] values, int[] dims)voidput(java.lang.String fieldName, float value)voidput(java.lang.String fieldName, float[] values, int n)voidput(java.lang.String fieldName, float[] values, int[] dims)voidput(java.lang.String fieldName, int value)voidput(java.lang.String fieldName, int[] values, int n)voidput(java.lang.String fieldName, int[] values, int[] dims)voidput(java.lang.String fieldName, long value)voidput(java.lang.String fieldName, long[] values, int n)voidput(java.lang.String fieldName, long[] values, int[] dims)voidput(java.lang.String fieldName, short value)voidput(java.lang.String fieldName, short[] values, int n)voidput(java.lang.String fieldName, short[] values, int[] dims)voidput(java.lang.String fieldName, java.lang.Enum<?> enumeration)voidput(java.lang.String fieldName, java.lang.String string)voidput(java.lang.String fieldName, java.lang.String[] values, int n)voidput(java.lang.String fieldName, java.lang.String[] values, int[] dims)<E> voidput(java.lang.String fieldName, java.util.Collection<E> collection, java.lang.reflect.Type valueType)<K,V,E>
voidput(java.lang.String fieldName, java.util.Map<K,V> map, java.lang.reflect.Type keyType, java.lang.reflect.Type valueType)intputArraySizeDescriptor(int n)intputArraySizeDescriptor(int[] dims)<E> WireDataFieldDescriptionputCustomData(FieldDescription fieldDescription, E rootObject, java.lang.Class<? extends E> type, FieldSerialiser<E> serialiser)voidputEndMarker(FieldDescription fieldDescription)WireDataFieldDescriptionputFieldHeader(FieldDescription fieldDescription)WireDataFieldDescriptionputFieldHeader(FieldDescription fieldDescription, DataType customDataType)WireDataFieldDescriptionputFieldHeader(java.lang.String fieldName, DataType dataType)voidputHeaderInfo(FieldDescription... field)Adds header and version informationvoidputStartMarker(FieldDescription fieldDescription)voidsetBuffer(IoBuffer buffer)voidsetEnforceSimpleStringEncoding(boolean state)voidsetFieldSerialiserLookupFunction(java.util.function.BiFunction<java.lang.reflect.Type,java.lang.reflect.Type[],FieldSerialiser<java.lang.Object>> serialiserLookupFunction)voidsetPutFieldMetaData(boolean putFieldMetaData)voidsetQueryFieldName(java.lang.String fieldName, int dataStartPosition)voidupdateDataEndMarker(WireDataFieldDescription fieldHeader)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.gsi.serializer.IoSerialiser
getBooleanArray, getBooleanArray, getByteArray, getByteArray, getCharArray, getCharArray, getDoubleArray, getDoubleArray, getFloatArray, getFloatArray, getIntArray, getIntArray, getLongArray, getLongArray, getShortArray, getShortArray, getStringArray, getStringArray, put, put, put, put, put, put, put, put, put, put, put, put, put, put, put, put, put, put
-
-
-
-
Field Detail
-
NOT_IMPLEMENTED
public static final java.lang.String NOT_IMPLEMENTED
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CmwLightSerialiser
public CmwLightSerialiser(IoBuffer buffer)
-
-
Method Detail
-
checkHeaderInfo
public ProtocolInfo checkHeaderInfo()
Description copied from interface:IoSerialiserReads and checks protocol header information.- Specified by:
checkHeaderInfoin interfaceIoSerialiser- Returns:
- ProtocolInfo info Object (extends FieldHeader)
-
getArraySizeDescriptor
public int[] getArraySizeDescriptor()
- Specified by:
getArraySizeDescriptorin interfaceIoSerialiser
-
getBoolean
public boolean getBoolean()
- Specified by:
getBooleanin interfaceIoSerialiser
-
getBooleanArray
public boolean[] getBooleanArray(boolean[] dst, int length)- Specified by:
getBooleanArrayin interfaceIoSerialiser
-
getBuffer
public IoBuffer getBuffer()
- Specified by:
getBufferin interfaceIoSerialiser
-
setBuffer
public void setBuffer(IoBuffer buffer)
- Specified by:
setBufferin interfaceIoSerialiser
-
getBufferIncrements
public int getBufferIncrements()
-
getByte
public byte getByte()
- Specified by:
getBytein interfaceIoSerialiser
-
getByteArray
public byte[] getByteArray(byte[] dst, int length)- Specified by:
getByteArrayin interfaceIoSerialiser
-
getChar
public char getChar()
- Specified by:
getCharin interfaceIoSerialiser
-
getCharArray
public char[] getCharArray(char[] dst, int length)- Specified by:
getCharArrayin interfaceIoSerialiser
-
getCollection
public <E> java.util.Collection<E> getCollection(java.util.Collection<E> collection)
- Specified by:
getCollectionin interfaceIoSerialiser
-
getCustomData
public <E> E getCustomData(FieldSerialiser<E> serialiser)
- Specified by:
getCustomDatain interfaceIoSerialiser
-
getDouble
public double getDouble()
- Specified by:
getDoublein interfaceIoSerialiser
-
getDoubleArray
public double[] getDoubleArray(double[] dst, int length)- Specified by:
getDoubleArrayin interfaceIoSerialiser
-
getEnum
public <E extends java.lang.Enum<E>> java.lang.Enum<E> getEnum(java.lang.Enum<E> enumeration)
- Specified by:
getEnumin interfaceIoSerialiser
-
getEnumTypeList
public java.lang.String getEnumTypeList()
- Specified by:
getEnumTypeListin interfaceIoSerialiser
-
getFieldHeader
public WireDataFieldDescription getFieldHeader()
- Specified by:
getFieldHeaderin interfaceIoSerialiser
-
getFloat
public float getFloat()
- Specified by:
getFloatin interfaceIoSerialiser
-
getFloatArray
public float[] getFloatArray(float[] dst, int length)- Specified by:
getFloatArrayin interfaceIoSerialiser
-
getInt
public int getInt()
- Specified by:
getIntin interfaceIoSerialiser
-
getIntArray
public int[] getIntArray(int[] dst, int length)- Specified by:
getIntArrayin interfaceIoSerialiser
-
getList
public <E> java.util.List<E> getList(java.util.List<E> collection)
- Specified by:
getListin interfaceIoSerialiser
-
getLong
public long getLong()
- Specified by:
getLongin interfaceIoSerialiser
-
getLongArray
public long[] getLongArray(long[] dst, int length)- Specified by:
getLongArrayin interfaceIoSerialiser
-
getMap
public <K,V,E> java.util.Map<K,V> getMap(java.util.Map<K,V> map)
- Specified by:
getMapin interfaceIoSerialiser
-
getParent
public WireDataFieldDescription getParent()
-
getQueue
public <E> java.util.Queue<E> getQueue(java.util.Queue<E> collection)
- Specified by:
getQueuein interfaceIoSerialiser
-
getSet
public <E> java.util.Set<E> getSet(java.util.Set<E> collection)
- Specified by:
getSetin interfaceIoSerialiser
-
getShort
public short getShort()
- Specified by:
getShortin interfaceIoSerialiser
-
getShortArray
public short[] getShortArray(short[] dst, int length)- Specified by:
getShortArrayin interfaceIoSerialiser
-
getString
public java.lang.String getString()
- Specified by:
getStringin interfaceIoSerialiser
-
getStringArray
public java.lang.String[] getStringArray(java.lang.String[] dst, int length)- Specified by:
getStringArrayin interfaceIoSerialiser
-
getStringISO8859
public java.lang.String getStringISO8859()
- Specified by:
getStringISO8859in interfaceIoSerialiser
-
isEnforceSimpleStringEncoding
public boolean isEnforceSimpleStringEncoding()
- Returns:
truethe ISO-8859-1 character encoding is being enforced for data fields (better performance), otherwise UTF-8 is being used (more generic encoding)
-
setEnforceSimpleStringEncoding
public void setEnforceSimpleStringEncoding(boolean state)
- Parameters:
state-truethe ISO-8859-1 character encoding is being enforced for data fields (better performance), otherwise UTF-8 is being used (more generic encoding)
-
isPutFieldMetaData
public boolean isPutFieldMetaData()
- Specified by:
isPutFieldMetaDatain interfaceIoSerialiser
-
setPutFieldMetaData
public void setPutFieldMetaData(boolean putFieldMetaData)
- Specified by:
setPutFieldMetaDatain interfaceIoSerialiser
-
parseIoStream
public WireDataFieldDescription parseIoStream(boolean readHeader)
- Specified by:
parseIoStreamin interfaceIoSerialiser
-
parseIoStream
public void parseIoStream(WireDataFieldDescription fieldRoot, int recursionDepth)
-
put
public <E> void put(FieldDescription fieldDescription, java.util.Collection<E> collection, java.lang.reflect.Type valueType)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, java.lang.Enum<?> enumeration)
- Specified by:
putin interfaceIoSerialiser
-
put
public <K,V,E> void put(FieldDescription fieldDescription, java.util.Map<K,V> map, java.lang.reflect.Type keyType, java.lang.reflect.Type valueType)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, boolean value)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, boolean[] values, int n)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, boolean[] values, int[] dims)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, byte value)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, byte[] values, int n)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, byte[] values, int[] dims)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, char value)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, char[] values, int n)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, char[] values, int[] dims)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, double value)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, double[] values, int n)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, double[] values, int[] dims)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, float value)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, float[] values, int n)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, float[] values, int[] dims)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, int value)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, int[] values, int n)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, int[] values, int[] dims)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, long value)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, long[] values, int n)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, long[] values, int[] dims)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, short value)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, short[] values, int n)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, short[] values, int[] dims)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, java.lang.String string)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, java.lang.String[] values, int n)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(FieldDescription fieldDescription, java.lang.String[] values, int[] dims)
- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, boolean value)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, boolean[] values, int n)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, boolean[] values, int[] dims)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, byte value)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, byte[] values, int n)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, byte[] values, int[] dims)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, char value)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, char[] values, int n)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, char[] values, int[] dims)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, double value)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, double[] values, int n)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, double[] values, int[] dims)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, float value)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, float[] values, int n)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, float[] values, int[] dims)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, int value)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, int[] values, int n)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, int[] values, int[] dims)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, long value)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, long[] values, int n)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, long[] values, int[] dims)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, short value)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, short[] values, int n)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, short[] values, int[] dims)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, java.lang.String string)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, java.lang.String[] values, int n)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, java.lang.String[] values, int[] dims)- Specified by:
putin interfaceIoSerialiser
-
put
public <E> void put(java.lang.String fieldName, java.util.Collection<E> collection, java.lang.reflect.Type valueType)- Specified by:
putin interfaceIoSerialiser
-
put
public void put(java.lang.String fieldName, java.lang.Enum<?> enumeration)- Specified by:
putin interfaceIoSerialiser
-
put
public <K,V,E> void put(java.lang.String fieldName, java.util.Map<K,V> map, java.lang.reflect.Type keyType, java.lang.reflect.Type valueType)- Specified by:
putin interfaceIoSerialiser
-
putArraySizeDescriptor
public int putArraySizeDescriptor(int n)
- Specified by:
putArraySizeDescriptorin interfaceIoSerialiser
-
putArraySizeDescriptor
public int putArraySizeDescriptor(int[] dims)
- Specified by:
putArraySizeDescriptorin interfaceIoSerialiser
-
putCustomData
public <E> WireDataFieldDescription putCustomData(FieldDescription fieldDescription, E rootObject, java.lang.Class<? extends E> type, FieldSerialiser<E> serialiser)
- Specified by:
putCustomDatain interfaceIoSerialiser
-
putEndMarker
public void putEndMarker(FieldDescription fieldDescription)
- Specified by:
putEndMarkerin interfaceIoSerialiser
-
putFieldHeader
public WireDataFieldDescription putFieldHeader(FieldDescription fieldDescription)
- Specified by:
putFieldHeaderin interfaceIoSerialiser
-
putFieldHeader
public WireDataFieldDescription putFieldHeader(FieldDescription fieldDescription, DataType customDataType)
-
putFieldHeader
public WireDataFieldDescription putFieldHeader(java.lang.String fieldName, DataType dataType)
- Specified by:
putFieldHeaderin interfaceIoSerialiser
-
putHeaderInfo
public void putHeaderInfo(FieldDescription... field)
Description copied from interface:IoSerialiserAdds header and version information- Specified by:
putHeaderInfoin interfaceIoSerialiser- Parameters:
field- optional FieldDescription (ie. to allow to attach MetaData to the start/stop marker)
-
putStartMarker
public void putStartMarker(FieldDescription fieldDescription)
- Specified by:
putStartMarkerin interfaceIoSerialiser
-
setQueryFieldName
public void setQueryFieldName(java.lang.String fieldName, int dataStartPosition)- Specified by:
setQueryFieldNamein interfaceIoSerialiser
-
updateDataEndMarker
public void updateDataEndMarker(WireDataFieldDescription fieldHeader)
- Specified by:
updateDataEndMarkerin interfaceIoSerialiser
-
getDataType
public static byte getDataType(DataType dataType)
-
getDataType
public static DataType getDataType(byte byteValue)
-
setFieldSerialiserLookupFunction
public void setFieldSerialiserLookupFunction(java.util.function.BiFunction<java.lang.reflect.Type,java.lang.reflect.Type[],FieldSerialiser<java.lang.Object>> serialiserLookupFunction)
- Specified by:
setFieldSerialiserLookupFunctionin interfaceIoSerialiser
-
getSerialiserLookupFunction
public java.util.function.BiFunction<java.lang.reflect.Type,java.lang.reflect.Type[],FieldSerialiser<java.lang.Object>> getSerialiserLookupFunction()
- Specified by:
getSerialiserLookupFunctionin interfaceIoSerialiser
-
-