/// <summary>
/// Parse the FsshttpbSubResponse structure.
/// </summary>
/// <param name="s">An stream containing FsshttpbSubResponse structure.</param>
public override void Parse(Stream s)
{
base.Parse(s);
this.SubResponseStart = new bit32StreamObjectHeaderStart();
this.SubResponseStart.Parse(s);
this.RequestID = new CompactUnsigned64bitInteger();
this.RequestID = RequestID.TryParse(s);
this.RequestType = new CompactUnsigned64bitInteger();
this.RequestType = RequestType.TryParse(s);
byte tempByte = ReadByte();
this.Status = GetBits(tempByte, 0, 1);
this.Reserved = GetBits(tempByte, 1, 7);
if (this.Status == 0x1)
{
this.ResponseError = new ResponseError();
this.ResponseError.Parse(s);
}
else
{
if (this.RequestType.GetUint(RequestType) == 0x01)
{
this.SubResponseData = new QueryAccessResponse();
((QueryAccessResponse)this.SubResponseData).Parse(s);
}
else if (this.RequestType.GetUint(RequestType) == 0x02)
{
this.SubResponseData = new QueryChangesResponse();
((QueryChangesResponse)this.SubResponseData).Parse(s);
}
else if (this.RequestType.GetUint(RequestType) == 0x05)
{
this.SubResponseData = new PutChangesResponse();
((PutChangesResponse)this.SubResponseData).Parse(s);
}
else if (this.RequestType.GetUint(RequestType) == 0x0B)
{
this.SubResponseData = new AllocateExtendedGUIDRange();
((AllocateExtendedGUIDRange)this.SubResponseData).Parse(s);
}
}
this.SubResponseEnd = new bit16StreamObjectHeaderEnd();
this.SubResponseEnd.Parse(s);
}