public void ParseFastLogGroupList()

in src/main/java/com/aliyun/openservices/log/response/BatchGetLogResponse.java [38:76]


	public void ParseFastLogGroupList(byte[] uncompressedData) throws LogException {
		int pos = 0;
		int rawSize = uncompressedData.length;
		int mode, index;
		while (pos < rawSize) {
			int[] value = VarintUtil.DecodeVarInt32(uncompressedData, pos, rawSize);
			if (value[0] == 0) {
				throw new LogException("InitLogGroupsError", "decode varint32 error", GetRequestId());
			}
			pos = value[2];
			mode = value[1] & 0x7;
			index = value[1] >> 3;
			if (mode == 0) {
				value = VarintUtil.DecodeVarInt32(uncompressedData, pos, rawSize);
				if (value[0] == 0) {
					throw new LogException("InitLogGroupsError", "decode varint32 error", GetRequestId());
				}
				pos = value[2];
			} else if (mode == 1) {
				pos += 8;
			} else if (mode == 2) {
				value = VarintUtil.DecodeVarInt32(uncompressedData, pos, rawSize);
				if (value[0] == 0) {
					throw new LogException("InitLogGroupsError", "decode varint32 error", GetRequestId());
				}
				if (index == 1) {
					mLogGroups.add(new LogGroupData(uncompressedData, value[2], value[1], GetRequestId()));
				}
				pos = value[1] + value[2];
			} else if (mode == 5) {
				pos += 4;
			} else {
				throw new LogException("InitLogGroupsError", "mode: " + mode, GetRequestId());
			}
		}
		if (pos != rawSize) {
			throw new LogException("InitLogGroupsError", "parse LogGroupList fail", GetRequestId());
		}
	}