public function write($output)
{
$xfer = 0;
$xfer += $output->writeStructBegin('ScanSpec');
if ($this->row_intervals !== null) {
if (!is_array($this->row_intervals)) {
throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
}
$xfer += $output->writeFieldBegin('row_intervals', TType::LST, 1);
$output->writeListBegin(TType::STRUCT, count($this->row_intervals));
foreach ($this->row_intervals as $iter18) {
$xfer += $iter18->write($output);
}
$output->writeListEnd();
$xfer += $output->writeFieldEnd();
}
if ($this->cell_intervals !== null) {
if (!is_array($this->cell_intervals)) {
throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
}
$xfer += $output->writeFieldBegin('cell_intervals', TType::LST, 2);
$output->writeListBegin(TType::STRUCT, count($this->cell_intervals));
foreach ($this->cell_intervals as $iter19) {
$xfer += $iter19->write($output);
}
$output->writeListEnd();
$xfer += $output->writeFieldEnd();
}
if ($this->return_deletes !== null) {
$xfer += $output->writeFieldBegin('return_deletes', TType::BOOL, 3);
$xfer += $output->writeBool($this->return_deletes);
$xfer += $output->writeFieldEnd();
}
if ($this->revs !== null) {
$xfer += $output->writeFieldBegin('revs', TType::I32, 4);
$xfer += $output->writeI32($this->revs);
$xfer += $output->writeFieldEnd();
}
if ($this->row_limit !== null) {
$xfer += $output->writeFieldBegin('row_limit', TType::I32, 5);
$xfer += $output->writeI32($this->row_limit);
$xfer += $output->writeFieldEnd();
}
if ($this->start_time !== null) {
$xfer += $output->writeFieldBegin('start_time', TType::I64, 6);
$xfer += $output->writeI64($this->start_time);
$xfer += $output->writeFieldEnd();
}
if ($this->end_time !== null) {
$xfer += $output->writeFieldBegin('end_time', TType::I64, 7);
$xfer += $output->writeI64($this->end_time);
$xfer += $output->writeFieldEnd();
}
if ($this->columns !== null) {
if (!is_array($this->columns)) {
throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
}
$xfer += $output->writeFieldBegin('columns', TType::LST, 8);
$output->writeListBegin(TType::STRING, count($this->columns));
foreach ($this->columns as $iter20) {
$xfer += $output->writeString($iter20);
}
$output->writeListEnd();
$xfer += $output->writeFieldEnd();
}
if ($this->keys_only !== null) {
$xfer += $output->writeFieldBegin('keys_only', TType::BOOL, 9);
$xfer += $output->writeBool($this->keys_only);
$xfer += $output->writeFieldEnd();
}
if ($this->cell_limit !== null) {
$xfer += $output->writeFieldBegin('cell_limit', TType::I32, 10);
$xfer += $output->writeI32($this->cell_limit);
$xfer += $output->writeFieldEnd();
}
if ($this->row_regexp !== null) {
$xfer += $output->writeFieldBegin('row_regexp', TType::STRING, 11);
$xfer += $output->writeString($this->row_regexp);
$xfer += $output->writeFieldEnd();
}
if ($this->value_regexp !== null) {
$xfer += $output->writeFieldBegin('value_regexp', TType::STRING, 12);
$xfer += $output->writeString($this->value_regexp);
$xfer += $output->writeFieldEnd();
}
if ($this->scan_and_filter_rows !== null) {
$xfer += $output->writeFieldBegin('scan_and_filter_rows', TType::BOOL, 13);
$xfer += $output->writeBool($this->scan_and_filter_rows);
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}