private HashMap<String, Object> deserializeMap(ByteBuf body) { HashMap<String, Object> map = new HashMap<>(); while (body.isReadable(4)) { String key = PayloadHolderUtils.readString(body); String value = PayloadHolderUtils.readString(body); map.put(key, value); } return map; } }
private void writeTags(Set<String> tags, ByteBuf out) { if (tags.isEmpty()) return; out.writeByte((byte) tags.size()); for (final String tag : tags) { PayloadHolderUtils.writeString(tag, out); } }
@SuppressWarnings("unchecked") private MetaInfoRequest deserialize(ByteBuf buf) { return new MetaInfoRequest(PayloadHolderUtils.readStringHashMap(buf)); }
public static Map<String, String> readStringHashMap(ByteBuf in) { return readStringMap(in, new HashMap<String, String>()); }
@Override public void writeBody(ByteBuf out) { PayloadHolderUtils.writeStringMap(request.getAttrs(), out); } }
@Override public Action read(ByteBuffer from) { final String subject = PayloadHolderUtils.readString(from); final String group = PayloadHolderUtils.readString(from); final String consumerId = PayloadHolderUtils.readString(from); final long timestamp = from.getLong(); return new ForeverOfflineAction(subject, group, consumerId, timestamp); } }
private void serializeMap(Map<String, Object> map, ByteBuf out) { if (null == map || map.isEmpty()) return; for (Map.Entry<String, Object> entry : map.entrySet()) { if (entry.getKey() == null || entry.getValue() == null) continue; PayloadHolderUtils.writeString(entry.getKey(), out); PayloadHolderUtils.writeString(entry.getValue().toString(), out); } }
@Override public RangeAckAction read(final ByteBuffer from) { final String subject = PayloadHolderUtils.readString(from); final String group = PayloadHolderUtils.readString(from); final String consumerId = PayloadHolderUtils.readString(from); final long timestamp = from.getLong(); final long firstSequence = from.getLong(); final long lastSequence = from.getLong(); return new RangeAckAction(subject, group, consumerId, timestamp, firstSequence, lastSequence); } }
public static void writeStringMap(Map<String, String> map, ByteBuf out) { if (map == null || map.isEmpty()) { out.writeShort(0); } else { if (map.size() > Short.MAX_VALUE) { throw new IndexOutOfBoundsException("map is too large. size=" + map.size()); } out.writeShort(map.size()); for (Map.Entry<String, String> entry : map.entrySet()) { writeString(entry.getKey(), out); writeString(entry.getValue(), out); } } }
public static Map<String, String> readStringMap(ByteBuf in, Map<String, String> map) { short size = in.readShort(); for (int i = 0; i < size; i++) { map.put(readString(in), readString(in)); } return map; } }
@Override public int write(ByteBuffer to, Action action) { final int startIndex = to.position(); PayloadHolderUtils.writeString(action.subject(), to); PayloadHolderUtils.writeString(action.group(), to); PayloadHolderUtils.writeString(action.consumerId(), to); to.putLong(action.timestamp()); return to.position() - startIndex; }
public static Map<String, SendResult> deserializeSendResultMap(ByteBuf buf) { Map<String, SendResult> result = Maps.newHashMap(); while (buf.isReadable()) { String messageId = PayloadHolderUtils.readString(buf); int code = buf.readInt(); String remark = PayloadHolderUtils.readString(buf); result.put(messageId, new SendResult(code, remark)); } return result; }
@Override public int write(ByteBuffer to, Action action) { final int startIndex = to.position(); final RangeAckAction rangeAck = (RangeAckAction) action; PayloadHolderUtils.writeString(rangeAck.subject(), to); PayloadHolderUtils.writeString(rangeAck.group(), to); PayloadHolderUtils.writeString(rangeAck.consumerId(), to); to.putLong(action.timestamp()); to.putLong(rangeAck.getFirstSequence()); to.putLong(rangeAck.getLastSequence()); return to.position() - startIndex; }
private List<Consumer> deserialize(RemotingCommand request) { ByteBuf body = request.getBody(); List<Consumer> consumers = new ArrayList<>(); while (body.readableBytes() > 0) { String subject = PayloadHolderUtils.readString(body); String group = PayloadHolderUtils.readString(body); consumers.add(new Consumer(subject, group)); } return consumers; }
@Override public void writeBody(ByteBuf out) { PayloadHolderUtils.writeString(request.getSubject(), out); PayloadHolderUtils.writeString(request.getGroup(), out); PayloadHolderUtils.writeString(request.getConsumerId(), out); out.writeLong(request.getPullOffsetBegin()); out.writeLong(request.getPullOffsetLast()); out.writeByte(request.isBroadcast()); } }
@Override public PullAction read(final ByteBuffer from) { final String subject = PayloadHolderUtils.readString(from); final String group = PayloadHolderUtils.readString(from); final String consumerId = PayloadHolderUtils.readString(from); final long timestamp = from.getLong(); final boolean broadcast = fromByte(from.get()); final long firstSequence = from.getLong(); final long lastSequence = from.getLong(); final long firstMessageSequence = from.getLong(); final long lastMessageSequence = from.getLong(); return new PullAction(subject, group, consumerId, timestamp, broadcast, firstSequence, lastSequence, firstMessageSequence, lastMessageSequence); }
public static void serialize(BrokerAcquireMetaResponse response, ByteBuf out) { PayloadHolderUtils.writeString(response.getName(), out); PayloadHolderUtils.writeString(response.getMaster(), out); out.writeInt(response.getRole().getCode()); }
private void readTags(ByteBuf input, BaseMessage message, byte flag) { if (!Flags.hasTags(flag)) return; final byte tagsSize = input.readByte(); for (int i = 0; i < tagsSize; i++) { final String tag = PayloadHolderUtils.readString(input); message.addTag(tag); } }
public static void serialize(BrokerAcquireMetaRequest request, ByteBuf out) { PayloadHolderUtils.writeString(request.getHostname(), out); out.writeInt(request.getPort()); }
public static BrokerRegisterRequest deSerialize(ByteBuf out) { BrokerRegisterRequest request = new BrokerRegisterRequest(); request.setRequestType(out.readInt()); request.setGroupName(PayloadHolderUtils.readString(out)); request.setBrokerAddress(PayloadHolderUtils.readString(out)); request.setBrokerRole(out.readInt()); request.setBrokerState(out.readInt()); return request; } }