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());
}
}