| 89 | } |
| 90 | |
| 91 | Status RecordWriter::WriteRecord(StringPiece data) { |
| 92 | if (dest_ == nullptr) { |
| 93 | return Status(::tensorflow::error::FAILED_PRECONDITION, |
| 94 | "Writer not initialized or previously closed"); |
| 95 | } |
| 96 | // Format of a single record: |
| 97 | // uint64 length |
| 98 | // uint32 masked crc of length |
| 99 | // byte data[length] |
| 100 | // uint32 masked crc of data |
| 101 | char header[kHeaderSize]; |
| 102 | char footer[kFooterSize]; |
| 103 | PopulateHeader(header, data.data(), data.size()); |
| 104 | PopulateFooter(footer, data.data(), data.size()); |
| 105 | TF_RETURN_IF_ERROR(dest_->Append(StringPiece(header, sizeof(header)))); |
| 106 | TF_RETURN_IF_ERROR(dest_->Append(data)); |
| 107 | return dest_->Append(StringPiece(footer, sizeof(footer))); |
| 108 | } |
| 109 | |
| 110 | #if defined(PLATFORM_GOOGLE) |
| 111 | Status RecordWriter::WriteRecord(const absl::Cord& data) { |