uint32_t ScreenInfo::read()

in remote/gen-cpp/cef_client_types.cpp [364:461]


uint32_t ScreenInfo::read(::apache::thrift::protocol::TProtocol* iprot) {

  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
  uint32_t xfer = 0;
  std::string fname;
  ::apache::thrift::protocol::TType ftype;
  int16_t fid;

  xfer += iprot->readStructBegin(fname);

  using ::apache::thrift::protocol::TProtocolException;

  bool isset_device_scale_factor = false;
  bool isset_depth = false;
  bool isset_depth_per_component = false;
  bool isset_is_monochrome = false;
  bool isset_rect = false;
  bool isset_available_rect = false;

  while (true)
  {
    xfer += iprot->readFieldBegin(fname, ftype, fid);
    if (ftype == ::apache::thrift::protocol::T_STOP) {
      break;
    }
    switch (fid)
    {
      case 1:
        if (ftype == ::apache::thrift::protocol::T_DOUBLE) {
          xfer += iprot->readDouble(this->device_scale_factor);
          isset_device_scale_factor = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 2:
        if (ftype == ::apache::thrift::protocol::T_I32) {
          xfer += iprot->readI32(this->depth);
          isset_depth = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 3:
        if (ftype == ::apache::thrift::protocol::T_I32) {
          xfer += iprot->readI32(this->depth_per_component);
          isset_depth_per_component = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 4:
        if (ftype == ::apache::thrift::protocol::T_BOOL) {
          xfer += iprot->readBool(this->is_monochrome);
          isset_is_monochrome = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 5:
        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
          xfer += this->rect.read(iprot);
          isset_rect = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      case 6:
        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
          xfer += this->available_rect.read(iprot);
          isset_available_rect = true;
        } else {
          xfer += iprot->skip(ftype);
        }
        break;
      default:
        xfer += iprot->skip(ftype);
        break;
    }
    xfer += iprot->readFieldEnd();
  }

  xfer += iprot->readStructEnd();

  if (!isset_device_scale_factor)
    throw TProtocolException(TProtocolException::INVALID_DATA);
  if (!isset_depth)
    throw TProtocolException(TProtocolException::INVALID_DATA);
  if (!isset_depth_per_component)
    throw TProtocolException(TProtocolException::INVALID_DATA);
  if (!isset_is_monochrome)
    throw TProtocolException(TProtocolException::INVALID_DATA);
  if (!isset_rect)
    throw TProtocolException(TProtocolException::INVALID_DATA);
  if (!isset_available_rect)
    throw TProtocolException(TProtocolException::INVALID_DATA);
  return xfer;
}