bool FlowFileRecordImpl::Serialize()

in libminifi/src/FlowFileRecord.cpp [69:150]


bool FlowFileRecordImpl::Serialize(io::OutputStream &outStream) {
  {
    uint64_t event_time_ms = std::chrono::duration_cast<std::chrono::milliseconds>(event_time_.time_since_epoch()).count();
    const auto ret = outStream.write(event_time_ms);
    if (ret != 8) {
      return false;
    }
  }
  {
    uint64_t entry_date_ms = std::chrono::duration_cast<std::chrono::milliseconds>(entry_date_.time_since_epoch()).count();
    const auto ret = outStream.write(entry_date_ms);
    if (ret != 8) {
      return false;
    }
  }
  {
    uint64_t lineage_start_date_ms = std::chrono::duration_cast<std::chrono::milliseconds>(lineage_start_date_.time_since_epoch()).count();
    const auto ret = outStream.write(lineage_start_date_ms);
    if (ret != 8) {
      return false;
    }
  }
  {
    const auto ret = outStream.write(uuid_);
    if (ret == 0 || io::isError(ret)) {
      return false;
    }
  }
  utils::Identifier containerId;
  if (connection_) {
    containerId = connection_->getUUID();
  }
  {
    const auto ret = outStream.write(containerId);
    if (ret == 0 || io::isError(ret)) {
      return false;
    }
  }
  // write flow attributes
  {
    const auto numAttributes = gsl::narrow<uint32_t>(attributes_.size());
    const auto ret = outStream.write(numAttributes);
    if (ret != 4) {
      return false;
    }
  }

  for (auto& itAttribute : attributes_) {
    {
      const auto ret = outStream.write(itAttribute.first, true);
      if (ret == 0 || io::isError(ret)) {
        return false;
      }
    }
    {
      const auto ret = outStream.write(itAttribute.second, true);
      if (ret == 0 || io::isError(ret)) {
        return false;
      }
    }
  }

  {
    const auto ret = outStream.write(getContentFullPath());
    if (ret == 0 || io::isError(ret)) {
      return false;
    }
  }
  {
    const auto ret = outStream.write(size_);
    if (ret != 8) {
      return false;
    }
  }
  {
    const auto ret = outStream.write(offset_);
    if (ret != 8) {
      return false;
    }
  }
  return true;
}