@Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, connectToDebugger_args struct) throws org.apache.thrift.TException {
        org.apache.thrift.protocol.TField schemeField;
        iprot.readStructBegin();
        while (true)
        {
          schemeField = iprot.readFieldBegin();
          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
            break;
          }
          switch (schemeField.id) {
            case 1: // LOCAL_PORT
              if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
                struct.localPort = iprot.readI32();
                struct.setLocalPortIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 2: // HOST
              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
                struct.host = iprot.readString();
                struct.setHostIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 3: // OPTS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map64 = iprot.readMapBegin();
                  struct.opts = new java.util.HashMap<java.lang.String,java.lang.Boolean>(2*_map64.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _key65;
                  boolean _val66;
                  for (int _i67 = 0; _i67 < _map64.size; ++_i67)
                  {
                    _key65 = iprot.readString();
                    _val66 = iprot.readBool();
                    struct.opts.put(_key65, _val66);
                  }
                  iprot.readMapEnd();
                }
                struct.setOptsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            case 4: // EXTRA_ENVS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map68 = iprot.readMapBegin();
                  struct.extraEnvs = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map68.size);
                  @org.apache.thrift.annotation.Nullable java.lang.String _key69;
                  @org.apache.thrift.annotation.Nullable java.lang.String _val70;
                  for (int _i71 = 0; _i71 < _map68.size; ++_i71)
                  {
                    _key69 = iprot.readString();
                    _val70 = iprot.readString();
                    struct.extraEnvs.put(_key69, _val70);
                  }
                  iprot.readMapEnd();
                }
                struct.setExtraEnvsIsSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
            default:
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
          }
          iprot.readFieldEnd();
        }
        iprot.readStructEnd();

        // check for required fields of primitive type, which can't be checked in the validate method
        struct.validate();
      }
@Override
      public void read(org.apache.thrift.protocol.TProtocol iprot, connectToDebugger_args struct)