public void index(DirectBuffer document) { this.document = document; entries.clear(); final int documentLength = document.capacity(); reader.wrap(document, 0, documentLength); final int variables = reader.readMapHeader(); for (int i = 0; i < variables; i++) { final int keyOffset = reader.getOffset(); reader.skipValue(); final int valueOffset = reader.getOffset(); reader.skipValue(); entries.put(keyOffset, valueOffset); } }
@Override public Void next() { iterator.next(); final int keyOffset = iterator.getIntKey(); valueOffset = iterator.getIntValue(); reader.wrap(document, keyOffset, documentLength - keyOffset); nameLength = reader.readStringLength(); nameOffset = keyOffset + reader.getOffset(); reader.wrap(document, valueOffset, documentLength - valueOffset); reader.skipValue(); valueLength = reader.getOffset(); return null; }
/** * @param visitor * @return true if document could be traversed successfully */ public boolean traverse(MsgPackTokenVisitor visitor) { while (msgPackReader.hasNext()) { final int nextTokenPosition = msgPackReader.getOffset(); final MsgPackToken nextToken; try { nextToken = msgPackReader.readToken(); } catch (Exception e) { errorMessage = e.getMessage(); invalidPosition = nextTokenPosition; return false; } visitor.visitElement(nextTokenPosition, nextToken); } return true; }
@Override public void read(MsgPackReader reader) { final DirectBuffer buffer = reader.getBuffer(); final int stringLength = reader.readStringLength(); final int offset = reader.getOffset(); reader.skipBytes(stringLength); this.wrap(buffer, offset, stringLength); }
@Override public void read(MsgPackReader reader) { final DirectBuffer buffer = reader.getBuffer(); final int stringLength = reader.readBinaryLength(); final int offset = reader.getOffset(); reader.skipBytes(stringLength); this.wrap(buffer, offset, stringLength); }
case INTEGER: token.setType(MsgPackType.INTEGER); token.setValue(readInteger()); break; case FLOAT: token.setType(MsgPackType.FLOAT); token.setValue(readFloat()); break; case BOOLEAN: token.setType(MsgPackType.BOOLEAN); token.setValue(readBoolean()); break; case MAP: token.setType(MsgPackType.MAP); token.setMapHeader(readMapHeader()); break; case ARRAY: token.setType(MsgPackType.ARRAY); token.setArrayHeader(readArrayHeader()); break; case NIL: token.setType(MsgPackType.NIL); skipValue(); break; case BINARY: token.setType(MsgPackType.BINARY); final int binaryLength = readBinaryLength(); token.setValue(buffer, offset, binaryLength); skipBytes(binaryLength);
@Override public void wrap(DirectBuffer buff, int offset, int length) { reader.wrap(buff, offset, length); try { read(reader); } catch (final Exception e) { throw new RuntimeException( "Could not deserialize object. Deserialization stuck at offset " + reader.getOffset() + " of length " + length, e); } }
public void wrap(DirectBuffer buffer, int offset, int length) { this.msgPackReader.wrap(buffer, offset, length); this.invalidPosition = NO_INVALID_POSITION; this.errorMessage = null; }
@Override public void read(MsgPackReader reader) { final int mapSize = reader.readMapHeader();
@Override public void read(MsgPackReader reader) { value = reader.readInteger(); }
@Override public void read(final MsgPackReader reader) { reset(); elementCount = reader.readArrayHeader(); writer.wrap(buffer, 0); for (int i = 0; i < elementCount; i++) { innerValue.read(reader); innerValue.write(writer); } resetInnerValue(); bufferLength = writer.getOffset(); }
@Override public void read(MsgPackReader reader) { val = reader.readBoolean(); }
case INTEGER: token.setType(MsgPackType.INTEGER); token.setValue(readInteger()); break; case FLOAT: token.setType(MsgPackType.FLOAT); token.setValue(readFloat()); break; case BOOLEAN: token.setType(MsgPackType.BOOLEAN); token.setValue(readBoolean()); break; case MAP: token.setType(MsgPackType.MAP); token.setMapHeader(readMapHeader()); break; case ARRAY: token.setType(MsgPackType.ARRAY); token.setArrayHeader(readArrayHeader()); break; case NIL: token.setType(MsgPackType.NIL); skipValue(); break; case BINARY: token.setType(MsgPackType.BINARY); final int binaryLength = readBinaryLength(); token.setValue(buffer, offset, binaryLength); skipBytes(binaryLength);
@Override public void read(MsgPackReader reader) { final DirectBuffer buffer = reader.getBuffer(); final int stringLength = reader.readStringLength(); final int offset = reader.getOffset(); reader.skipBytes(stringLength); this.wrap(buffer, offset, stringLength); }
@Override public void read(MsgPackReader reader) { final DirectBuffer buffer = reader.getBuffer(); final int stringLength = reader.readBinaryLength(); final int offset = reader.getOffset(); reader.skipBytes(stringLength); this.wrap(buffer, offset, stringLength); }
@Override public void wrap(DirectBuffer buff, int offset, int length) { reader.wrap(buff, offset, length); try { read(reader); } catch (final Exception e) { throw new RuntimeException( "Could not deserialize object. Deserialization stuck at offset " + reader.getOffset() + " of length " + length, e); } }