public void Read (TProtocol iprot)
{
bool isset_major = false;
bool isset_minor = false;
bool isset_revision = false;
TField field;
iprot.ReadStructBegin();
while (true)
{
field = iprot.ReadFieldBegin();
if (field.Type == TType.Stop) {
break;
}
switch (field.ID)
{
case 1:
if (field.Type == TType.I32) {
Major = iprot.ReadI32();
isset_major = true;
} else {
TProtocolUtil.Skip(iprot, field.Type);
}
break;
case 2:
if (field.Type == TType.I32) {
Minor = iprot.ReadI32();
isset_minor = true;
} else {
TProtocolUtil.Skip(iprot, field.Type);
}
break;
case 3:
if (field.Type == TType.I32) {
Revision = iprot.ReadI32();
isset_revision = true;
} else {
TProtocolUtil.Skip(iprot, field.Type);
}
break;
default:
TProtocolUtil.Skip(iprot, field.Type);
break;
}
iprot.ReadFieldEnd();
}
iprot.ReadStructEnd();
if (!isset_major)
throw new TProtocolException(TProtocolException.INVALID_DATA);
if (!isset_minor)
throw new TProtocolException(TProtocolException.INVALID_DATA);
if (!isset_revision)
throw new TProtocolException(TProtocolException.INVALID_DATA);
}