/** * Writes the message pack tree into the result buffer. Returns the size of the written message * pock document. The result buffer is available via the {@link #getResult()} method. * * @param documentTree the tree which should be written * @return the size of the message pack document */ public int write(MsgPackTree documentTree) { this.documentTree = documentTree; msgPackWriter.wrap(resultingBuffer, 0); if (documentTree.size() > 0) { final String startNode = Mapping.JSON_ROOT_PATH; writeNode("", startNode, false); } else { msgPackWriter.writeNil(); } return msgPackWriter.getOffset(); }
/** * Writes the message pack tree into the result buffer. Returns the size of the written message * pock document. The result buffer is available via the {@link #getResult()} method. * * @param documentTree the tree which should be written * @return the size of the message pack document */ public int write(MsgPackTree documentTree) { this.documentTree = documentTree; msgPackWriter.wrap(resultingBuffer, 0); if (documentTree.size() > 0) { final String startNode = Mapping.JSON_ROOT_PATH; writeNode("", startNode, false); } else { msgPackWriter.writeNil(); } return msgPackWriter.getOffset(); }
@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(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(); }
private DirectBuffer encode(List<ZeebeHeader> taskHeaders) { final MutableDirectBuffer buffer = new UnsafeBuffer(0, 0); final ExpandableArrayBuffer expandableBuffer = new ExpandableArrayBuffer(INITIAL_SIZE_KEY_VALUE_PAIR * taskHeaders.size()); msgPackWriter.wrap(expandableBuffer, 0); msgPackWriter.writeMapHeader(taskHeaders.size()); taskHeaders.forEach( h -> { if (isValidHeader(h)) { final DirectBuffer key = wrapString(h.getKey()); msgPackWriter.writeString(key); final DirectBuffer value = wrapString(h.getValue()); msgPackWriter.writeString(value); } }); buffer.wrap(expandableBuffer.byteArray(), 0, msgPackWriter.getOffset()); return buffer; }
protected DirectBuffer write(final Consumer<MsgPackWriter> arg) { final UnsafeBuffer buffer = new UnsafeBuffer(new byte[1024]); final MsgPackWriter writer = new MsgPackWriter(); writer.wrap(buffer, 0); arg.accept(writer); buffer.wrap(buffer, 0, writer.getOffset()); return buffer; }
private DirectBuffer encode(List<ZeebeHeader> taskHeaders) { final MutableDirectBuffer buffer = new UnsafeBuffer(0, 0); final ExpandableArrayBuffer expandableBuffer = new ExpandableArrayBuffer(INITIAL_SIZE_KEY_VALUE_PAIR * taskHeaders.size()); msgPackWriter.wrap(expandableBuffer, 0); msgPackWriter.writeMapHeader(taskHeaders.size()); taskHeaders.forEach( h -> { if (isValidHeader(h)) { final DirectBuffer key = wrapString(h.getKey()); msgPackWriter.writeString(key); final DirectBuffer value = wrapString(h.getValue()); msgPackWriter.writeString(value); } }); buffer.wrap(expandableBuffer.byteArray(), 0, msgPackWriter.getOffset()); return buffer; }
public DirectBuffer getVariablesLocalAsDocument(long scopeKey) { writer.wrap(documentResultBuffer, 0); writer.reserveMapHeader(); variableCount = 0; visitVariablesLocal( scopeKey, name -> true, (name, value) -> { writer.writeString(name.getBuffer()); writer.writeRaw(value.getValue()); variableCount += 1; }, () -> false); writer.writeReservedMapHeader(0, variableCount); resultView.wrap(documentResultBuffer, 0, writer.getOffset()); return resultView; }
public DirectBuffer getVariablesLocalAsDocument(long scopeKey) { writer.wrap(documentResultBuffer, 0); writer.reserveMapHeader(); variableCount = 0; visitVariablesLocal( scopeKey, name -> true, (name, value) -> { writer.writeString(name.getBuffer()); writer.writeRaw(value.getValue()); variableCount += 1; }, () -> false); writer.writeReservedMapHeader(0, variableCount); resultView.wrap(documentResultBuffer, 0, writer.getOffset()); return resultView; }
public DirectBuffer getVariablesAsDocument(long scopeKey, Collection<DirectBuffer> names) { variablesToCollect.clear(); variablesToCollect.addAll(names); writer.wrap(documentResultBuffer, 0); writer.reserveMapHeader(); visitVariables( scopeKey, name -> variablesToCollect.contains(name.getBuffer()), (name, value) -> { writer.writeString(name.getBuffer()); writer.writeRaw(value.getValue()); variablesToCollect.remove(name.getBuffer()); }, () -> variablesToCollect.isEmpty()); writer.writeReservedMapHeader(0, names.size() - variablesToCollect.size()); resultView.wrap(documentResultBuffer, 0, writer.getOffset()); return resultView; }
public DirectBuffer getVariablesAsDocument(long scopeKey, Collection<DirectBuffer> names) { variablesToCollect.clear(); variablesToCollect.addAll(names); writer.wrap(documentResultBuffer, 0); writer.reserveMapHeader(); visitVariables( scopeKey, name -> variablesToCollect.contains(name.getBuffer()), (name, value) -> { writer.writeString(name.getBuffer()); writer.writeRaw(value.getValue()); variablesToCollect.remove(name.getBuffer()); }, () -> variablesToCollect.isEmpty()); writer.writeReservedMapHeader(0, names.size() - variablesToCollect.size()); resultView.wrap(documentResultBuffer, 0, writer.getOffset()); return resultView; }
public DirectBuffer getVariablesAsDocument(long scopeKey) { collectedVariables.clear(); writer.wrap(documentResultBuffer, 0); writer.reserveMapHeader(); visitVariables( scopeKey, name -> !collectedVariables.contains(name.getBuffer()), (name, value) -> { final DirectBuffer variableNameBuffer = name.getBuffer(); writer.writeString(variableNameBuffer); writer.writeRaw(value.getValue()); // must create a new name wrapper, because we keep them all in the hashset at the same // time final MutableDirectBuffer nameView = new UnsafeBuffer(variableNameBuffer); collectedVariables.add(nameView); }, () -> false); writer.writeReservedMapHeader(0, collectedVariables.size()); resultView.wrap(documentResultBuffer, 0, writer.getOffset()); return resultView; }
public DirectBuffer getVariablesAsDocument(long scopeKey) { collectedVariables.clear(); writer.wrap(documentResultBuffer, 0); writer.reserveMapHeader(); visitVariables( scopeKey, name -> !collectedVariables.contains(name.getBuffer()), (name, value) -> { final DirectBuffer variableNameBuffer = name.getBuffer(); writer.writeString(variableNameBuffer); writer.writeRaw(value.getValue()); // must create a new name wrapper, because we keep them all in the hashset at the same // time final MutableDirectBuffer nameView = new UnsafeBuffer(variableNameBuffer); collectedVariables.add(nameView); }, () -> false); writer.writeReservedMapHeader(0, collectedVariables.size()); resultView.wrap(documentResultBuffer, 0, writer.getOffset()); return resultView; }