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; } }
@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); } }
@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 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; } }
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 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); }
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; }
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 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; } }
public static BrokerAcquireMetaResponse deSerialize(ByteBuf out) { BrokerAcquireMetaResponse response = new BrokerAcquireMetaResponse(); response.setName(PayloadHolderUtils.readString(out)); response.setMaster(PayloadHolderUtils.readString(out)); response.setRole(BrokerRole.fromCode(out.readInt())); return response; } }
public static BrokerAcquireMetaRequest deSerialize(ByteBuf out) { BrokerAcquireMetaRequest request = new BrokerAcquireMetaRequest(); request.setHostname(PayloadHolderUtils.readString(out)); request.setPort(out.readInt()); return request; } }
private AckRequest deserializeAckRequest(RemotingCommand command) { ByteBuf input = command.getBody(); AckRequest request = new AckRequest(); request.setSubject(PayloadHolderUtils.readString(input)); request.setGroup(PayloadHolderUtils.readString(input)); request.setConsumerId(PayloadHolderUtils.readString(input)); request.setPullOffsetBegin(input.readLong()); request.setPullOffsetLast(input.readLong()); if (command.getHeader().getVersion() >= RemotingHeader.VERSION_8) { request.setBroadcast(input.readByte()); } return request; }
public static MessageHeader deserializeMessageHeader(ByteBuf body) { byte flag = body.readByte(); long createdTime = body.readLong(); long expiredTime = body.readLong(); String subject = PayloadHolderUtils.readString(body); String messageId = PayloadHolderUtils.readString(body); MessageHeader header = new MessageHeader(); if (Flags.hasTags(flag)) { final Set<String> tags = new HashSet<>(); final byte tagsSize = body.readByte(); for (int i = 0; i < tagsSize; i++) { String tag = PayloadHolderUtils.readString(body); tags.add(tag); } header.setTags(tags); } header.setFlag(flag); header.setCreateTime(createdTime); header.setExpireTime(expiredTime); header.setSubject(subject); header.setMessageId(messageId); return header; }
private List<BaseMessage> deserializeBaseMessage(ByteBuf input) { if (input.readableBytes() == 0) return Collections.emptyList(); List<BaseMessage> result = Lists.newArrayList(); long pullLogOffset = input.readLong(); //ignore consumer offset input.readLong(); while (input.isReadable()) { BaseMessage message = new BaseMessage(); byte flag = input.readByte(); input.skipBytes(8 + 8); String subject = PayloadHolderUtils.readString(input); String messageId = PayloadHolderUtils.readString(input); readTags(input, message, flag); int bodyLen = input.readInt(); ByteBuf body = input.readSlice(bodyLen); HashMap<String, Object> attrs = deserializeMapWrapper(subject, messageId, body); message.setMessageId(messageId); message.setSubject(subject); message.setAttrs(attrs); message.setProperty(BaseMessage.keys.qmq_pullOffset, pullLogOffset); result.add(message); pullLogOffset++; } return result; }
private static BrokerCluster deserializeBrokerCluster(ByteBuf buf) { final int brokerGroupSize = buf.readShort(); final List<BrokerGroup> brokerGroups = new ArrayList<>(brokerGroupSize); for (int i = 0; i < brokerGroupSize; i++) { final BrokerGroup brokerGroup = new BrokerGroup(); brokerGroup.setGroupName(PayloadHolderUtils.readString(buf)); brokerGroup.setMaster(PayloadHolderUtils.readString(buf)); brokerGroup.setUpdateTime(buf.readLong()); final int brokerStateCode = buf.readByte(); final BrokerState brokerState = BrokerState.codeOf(brokerStateCode); brokerGroup.setBrokerState(brokerState); brokerGroups.add(brokerGroup); } return new BrokerCluster(brokerGroups); } }
private static MetaInfoResponse deserializeMetaInfoResponse(ByteBuf buf) { try { final MetaInfoResponse metaInfoResponse = new MetaInfoResponse(); metaInfoResponse.setTimestamp(buf.readLong()); metaInfoResponse.setSubject(PayloadHolderUtils.readString(buf)); metaInfoResponse.setConsumerGroup(PayloadHolderUtils.readString(buf)); metaInfoResponse.setOnOfflineState(OnOfflineState.fromCode(buf.readByte())); metaInfoResponse.setClientTypeCode(buf.readByte()); metaInfoResponse.setBrokerCluster(deserializeBrokerCluster(buf)); return metaInfoResponse; } catch (Exception e) { LOG.error("deserializeMetaInfoResponse exception", e); } return null; }
private PullRequest deserializePullRequest(final int version, ByteBuf input) { String prefix = PayloadHolderUtils.readString(input); String group = PayloadHolderUtils.readString(input); String consumerId = PayloadHolderUtils.readString(input); int requestNum = input.readInt(); long offset = input.readLong(); long pullOffsetBegin = input.readLong(); long pullOffsetLast = input.readLong(); long timeout = input.readLong(); byte broadcast = input.readByte(); PullRequest request = new PullRequest(); deserializeTags(request, version, input); request.setSubject(prefix); request.setGroup(group); request.setConsumerId(consumerId); request.setRequestNum(requestNum); request.setOffset(offset); request.setPullOffsetBegin(pullOffsetBegin); request.setPullOffsetLast(pullOffsetLast); request.setTimeoutMillis(timeout); request.setBroadcast(broadcast != 0); return request; }