@Override protected List<IMonitoringRecord> decodeRecords(final ByteBuffer buffer, final int dataSize) throws InvalidFormatException { final int baseOffset = buffer.position(); // Retrieve the offset of the string table (last four bytes of the data) buffer.position((baseOffset + dataSize) - 4); final int stringTableOffset = buffer.getInt(); // Position the buffer and decode the string table final int absoluteStringTableOffset = baseOffset + stringTableOffset; buffer.position(absoluteStringTableOffset); final ReaderRegistry<String> stringRegistry = this.decodeStringRegistry(buffer); // Position the buffer and decode the records buffer.position(baseOffset); return this.decodeMonitoringRecords(buffer, stringRegistry, absoluteStringTableOffset); }
private List<IMonitoringRecord> decodeRecords(final String dataBase64) { final byte[] rawData = DatatypeConverter.parseBase64Binary(dataBase64); final BinaryDeserializer deserializer = new BinaryDeserializer(null, null); final ByteBuffer rawDataBuffer = ByteBuffer.wrap(rawData); return deserializer.deserializeRecords(rawDataBuffer, rawData.length); }
@Override protected List<IMonitoringRecord> decodeRecords(final ByteBuffer buffer, final int dataSize) throws InvalidFormatException { final int baseOffset = buffer.position(); // Retrieve the offset of the string table (last four bytes of the data) buffer.position((baseOffset + dataSize) - 4); final int stringTableOffset = buffer.getInt(); // Position the buffer and decode the string table final int absoluteStringTableOffset = baseOffset + stringTableOffset; buffer.position(absoluteStringTableOffset); final IRegistry<String> stringRegistry = this.decodeStringRegistry(buffer); // Position the buffer and decode the records buffer.position(baseOffset); final List<IMonitoringRecord> records = this.decodeMonitoringRecords(buffer, stringRegistry, absoluteStringTableOffset); return records; }