Class BinaryFormatUtils
- java.lang.Object
-
- net.morimekta.providence.serializer.binary.BinaryFormatUtils
-
public class BinaryFormatUtils extends java.lang.ObjectUtilities helping with reading and writing binary format (protocol) messages. NOTE: This class is not meant to be used directly, use theBinarySerializerserializer class instead. It is separated out and made public in order for pre-generated serialization code to be able to use the same utility methods.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classBinaryFormatUtils.FieldInfoField info data holder with convenience methods.
-
Constructor Summary
Constructors Constructor Description BinaryFormatUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidconsumeMessage(net.morimekta.util.io.BigEndianBinaryReader in)Consume a message from the stream without parsing the content into a message.static <T> TreadFieldValue(net.morimekta.util.io.BigEndianBinaryReader in, BinaryFormatUtils.FieldInfo fieldInfo, PDescriptor fieldType, boolean strict)Read a field value from stream.static <Message extends PMessage<Message>>
MessagereadMessage(net.morimekta.util.io.BigEndianBinaryReader input, PMessageDescriptor<Message> descriptor, boolean strict)Read message from reader.static <Message extends PMessage<Message>>
intwriteMessage(net.morimekta.util.io.BigEndianBinaryWriter writer, PMessageOrBuilder<Message> message)Write message to writer.
-
-
-
Method Detail
-
readMessage
public static <Message extends PMessage<Message>> Message readMessage(net.morimekta.util.io.BigEndianBinaryReader input, PMessageDescriptor<Message> descriptor, boolean strict) throws java.io.IOException
Read message from reader.- Type Parameters:
Message- The message type.- Parameters:
input- The input reader.descriptor- The message descriptor.strict- If the message should be read in strict mode.- Returns:
- The read and parsed message.
- Throws:
java.io.IOException- If read failed.
-
consumeMessage
public static void consumeMessage(net.morimekta.util.io.BigEndianBinaryReader in) throws java.io.IOExceptionConsume a message from the stream without parsing the content into a message.- Parameters:
in- Stream to read message from.- Throws:
java.io.IOException- On read failures.
-
readFieldValue
public static <T> T readFieldValue(net.morimekta.util.io.BigEndianBinaryReader in, BinaryFormatUtils.FieldInfo fieldInfo, PDescriptor fieldType, boolean strict) throws java.io.IOExceptionRead a field value from stream.- Type Parameters:
T- Return type.- Parameters:
in- The stream to consume.fieldInfo- The field info about the content.fieldType- The type to generate content for.strict- If the field should be read strictly.- Returns:
- The field value, or null if no type.
- Throws:
java.io.IOException- If unable to read from stream or invalid field type.
-
writeMessage
public static <Message extends PMessage<Message>> int writeMessage(net.morimekta.util.io.BigEndianBinaryWriter writer, PMessageOrBuilder<Message> message) throws java.io.IOException
Write message to writer.- Type Parameters:
Message- The message type.- Parameters:
writer- The binary writer.message- The message to write.- Returns:
- The number of bytes written.
- Throws:
java.io.IOException- If write failed.
-
-