byte[] eventBytes = getBytesFromEvents(events);
FlatBufferBuilder fbb = new FlatBufferBuilder();
EventTable.startEventsVector(fbb, events.size());
for (byte b : eventBytes) {
fbb.addByte(b);
}
int eventsEnd = fbb.endVector();
EventTable.startEventTable(fbb);
EventTable.addEvents(fbb, eventsEnd);
int end = EventTable.endEventTable(fbb);
EventTable.finishEventTableBuffer(fbb, end);
return fbb.sizedByteArray();
}
public byte[] getBytesFromEvents(List<EventData>Events){
FlatBufferBuilder fbb = new FlatBufferBuilder();
for (Map<String, Object> event : events) {
Map<String, Object> bodyMap = clean(event);
byte[] body = bodySerializer.serialize(bodyMap);
int bodyOffset = Event.createBodyVector(fbb, body);
Event.startEvent(fbb);
// Headers
Event.addHeader1(fbb, createHeader1(fbb, event);
// ...
// Body
Event.addBody(fbb, bodyOffset);
Event.addBodyChecksum(fbb, checksum.getValue());
}
return fbb.sizedByteArray();
}
And to deserialize:
EventTable eventRoot = EventTable.getRootAsEventTable(ByteBuffer.wrap(bytes));
Any tips/complex samples that may be helpful?
Thanks!
Johnny
FlatBufferBuilder fbb = new FlatBufferBuilder();
int[] eventOffsets = addEventsToBuffer(fbb, events);
int eventVectorOffset = EventContainer.createEventsVector(fbb, eventOffsets);
EventContainer.startEventContainer(fbb);
EventContainer.addEvents(fbb, eventVectorOffset);
int end = EventContainer.endEventContainer(fbb);
EventContainer.finishEventContainerBuffer(fbb, end);
return fbb.sizedByteArray();
--
You received this message because you are subscribed to the Google Groups "FlatBuffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to flatbuffers...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.