public void Read (TProtocol iprot)
{
bool isset_node = false;
bool isset_port = 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.String) {
Node = iprot.ReadString();
isset_node = true;
} else {
TProtocolUtil.Skip(iprot, field.Type);
}
break;
case 2:
if (field.Type == TType.Set) {
{
Port = new THashSet<long>();
TSet _set181 = iprot.ReadSetBegin();
for( int _i182 = 0; _i182 < _set181.Count; ++_i182)
{
long _elem183;
_elem183 = iprot.ReadI64();
Port.Add(_elem183);
}
iprot.ReadSetEnd();
}
isset_port = true;
} else {
TProtocolUtil.Skip(iprot, field.Type);
}
break;
default:
TProtocolUtil.Skip(iprot, field.Type);
break;
}
iprot.ReadFieldEnd();
}
iprot.ReadStructEnd();
if (!isset_node)
throw new TProtocolException(TProtocolException.INVALID_DATA);
if (!isset_port)
throw new TProtocolException(TProtocolException.INVALID_DATA);
}