| 286 | } |
| 287 | |
| 288 | Status Buffer::write(ConstBuffer* buff) { |
| 289 | // Sanity check |
| 290 | if (!owns_data_) |
| 291 | return LOG_STATUS(Status_BufferError( |
| 292 | "Cannot write to buffer; Buffer does not own the already stored data")); |
| 293 | |
| 294 | const uint64_t bytes_left_to_write = alloced_size_ - offset_; |
| 295 | const uint64_t bytes_left_to_read = buff->nbytes_left_to_read(); |
| 296 | const uint64_t bytes_to_copy = |
| 297 | std::min(bytes_left_to_write, bytes_left_to_read); |
| 298 | |
| 299 | RETURN_NOT_OK(buff->read((char*)data_ + offset_, bytes_to_copy)); |
| 300 | offset_ += bytes_to_copy; |
| 301 | size_ = std::max(offset_, size_); |
| 302 | |
| 303 | return Status::Ok(); |
| 304 | } |
| 305 | |
| 306 | Status Buffer::write(ConstBuffer* buff, const uint64_t nbytes) { |
| 307 | // Sanity check |
no test coverage detected