Getting Started SBE Sample
Description
This sample illustrates how to initialize SBE decoder and how to use it for encode and decode SBE messages.
Source Code
import biz.onixs.sbe.*;
import biz.onixs.sbe.def.MessageSchema;
import biz.onixs.util.ScaledDecimal;
import net.sf.practicalxml.ParseUtil;
import org.w3c.dom.Document;
import java.io.File;
/**
* Main sample class.
*/
public class GettingStartedSample {
public GettingStartedSample() {
}
private void run() throws Exception {
final File testsXmlFolder = new File("config").getAbsoluteFile();
final Document xmlSchema = ParseUtil.parse(new File(testsXmlFolder, "schema.xml"));
final MessageSchema msgSchema = new MessageSchema(xmlSchema, true);
final ByteDecoder codec = new ByteDecoderFactory().create(msgSchema);
final byte[] buffer = new byte[65536];
{
// Encode SBE message
IMessage msg = codec.encode(buffer, 0, buffer.length, 105);
msg.setDecimal(2, new ScaledDecimal("10"));
msg.setShort(3, 1);
msg.setString(4, "Text1");
IGroup group = msg.getGroup(5);
group.setLength(2);
group.next();
group.setDecimal(7, new ScaledDecimal("11"));
group.setShort(8, 2);
group.setString(9, "Text2");
group.next();
group.setDecimal(7, new ScaledDecimal("12"));
group.setShort(8, 3);
group.setString(9, "Text3");
}
{
// Decode SBE message
IMessage msg = codec.decode(buffer, 0, buffer.length);
System.out.println("1=" + msg.getString(1));
System.out.println("2=" + msg.getDecimal(2));
System.out.println("3=" + msg.getInt(3));
System.out.println("4=" + msg.getString(4));
IGroup group = msg.getGroup(5);
System.out.println("5=" + group.getLength());
while (group.next()) {
System.out.println("Entry: " + group.getPos());
System.out.println("\t6=" + group.getString(6));
System.out.println("\t7=" + group.getDecimal(7));
System.out.println("\t8=" + group.getInt(8));
System.out.println("\t9=" + group.getString(9));
}
}
}
/**
* Program entry point.
* @param args arguments.
*/
public static void main(String[] args) {
try {
GettingStartedSample sample = new GettingStartedSample();
sample.run();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Usage
- Run the sample:
- win: runSbeSample.bat
- linux: runSbeSample.sh
- Clean everything:
- win: clean.bat
- linux: clean.sh
Java SBE Decoder