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; }
@Override public void write(final MsgPackWriter writer) { flushAndResetInnerValue(); writer.writeArrayHeader(elementCount); writer.writeRaw(buffer, 0, bufferLength); }
@Override public void write(MsgPackWriter writer) { writer.writeBinary(data); }
public MsgPackWriter writeString(DirectBuffer buff, int offset, int length) { writeStringHeader(length); writeRaw(buff, offset, length); return this; }
public MsgPackWriter writeBinary(DirectBuffer data, int offset, int length) { writeBinaryHeader(length); writeRaw(data, offset, length); return this; }
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; }
if (!parentId.isEmpty() && !isArray) { this.nodeName.wrap(nodeName.getBytes()); msgPackWriter.writeString(this.nodeName); final Set<String> childs = documentTree.getChildren(nodeId); if (isArrayNode) { msgPackWriter.writeArrayHeader(childs.size()); } else { msgPackWriter.writeMapHeader(childs.size());
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; }
/** * 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(); }
protected DirectBuffer revertMapProperties(final DirectBuffer msgPack) { final MsgPackReader reader = new MsgPackReader(); reader.wrap(msgPack, 0, msgPack.capacity()); final int size = reader.readMapHeader(); final UnsafeBuffer buf = new UnsafeBuffer(new byte[msgPack.capacity()]); final MsgPackWriter writer = new MsgPackWriter(); writer.wrap(buf, 0); writer.writeMapHeader(size); int targetOffset = msgPack.capacity(); for (int i = 0; i < size; i++) { final int keySourceOffset = reader.getOffset(); reader.skipValue(); final int valueSourceOffset = reader.getOffset(); final int keyLength = valueSourceOffset - keySourceOffset; reader.skipValue(); final int valueLength = reader.getOffset() - valueSourceOffset; targetOffset -= keyLength + valueLength; buf.putBytes(targetOffset, msgPack, keySourceOffset, keyLength + valueLength); } return buf; } }
write( (w) -> { w.writeMapHeader(4); w.writeString(BufferUtil.wrapString("key1")); w.writeString(BufferUtil.wrapString("aValue")); w.writeString(BufferUtil.wrapString("key2")); w.writeString(BufferUtil.wrapString("alsoaValue")); w.writeString(BufferUtil.wrapString("key3")); w.writeString(BufferUtil.wrapString("anotherValue")); w.writeString(BufferUtil.wrapString("key4")); w.writeString(BufferUtil.wrapString("yetAnotherValue")); }); jobRecord.setPayload(payload); write( (w) -> { w.writeMapHeader(2); w.writeString(BufferUtil.wrapString("key1")); w.writeString(BufferUtil.wrapString("value")); w.writeString(BufferUtil.wrapString("key2")); w.writeString(BufferUtil.wrapString("value")); }); jobRecord.setCustomHeaders(headers);
@Override public void write(MsgPackWriter writer) { writer.writeString(bytes); }
@Override public void write(MsgPackWriter writer) { writer.writeRaw(buffer); }
@Override public void write(MutableDirectBuffer buffer, int offset) { writer.wrap(buffer, offset); write(writer); } }
/** * Caution: In case not all properties are writeable (i.e. value not set and no default), this * method may write some of the values and only then throw an exception. The same exception is * raised by {@link #getEncodedLength()}. If you call that first and it succeeds, you are safe to * write all the values. */ @Override public void write(MsgPackWriter writer) { final int size = declaredProperties.size() + undeclaredProperties.size(); writer.writeMapHeader(size); write(writer, declaredProperties); write(writer, undeclaredProperties); }
public MsgPackDocumentTreeWriter(int initialDocumentSize) { this.msgPackWriter = new MsgPackWriter(); this.resultingBuffer = new ExpandableArrayBuffer(initialDocumentSize); this.nodeName = new UnsafeBuffer(0, 0); }
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; }
if (!parentId.isEmpty() && !isArray) { this.nodeName.wrap(nodeName.getBytes()); msgPackWriter.writeString(this.nodeName); final Set<String> childs = documentTree.getChildren(nodeId); if (isArrayNode) { msgPackWriter.writeArrayHeader(childs.size()); } else { msgPackWriter.writeMapHeader(childs.size());
/** * 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(); }