New 2
New 2
hh"
#include <algorithm>
#include <iostream>
size_t written = 0;
if (first_index <= next_unassembled_) {
size_t overlap = next_unassembled_ - first_index;
if (overlap < data.size()) {
std::string segment = data.substr(overlap);
output_.writer().push(segment);
written = segment.size();
next_unassembled_ += written;
std::cout << "[Insert] Pushed data to ByteStream: \"" << segment
<< "\", written: " << written << ", next_unassembled_: " <<
next_unassembled_ << "\n";
}
}
first_index += written;
data = data.substr(written);
std::cout << "[Insert] Remaining data after push: \"" << data << "\"\n";
if (is_last_substring) {
eof_ = true;
std::cout << "[Insert] Received last substring. Marking EOF.\n";
}
// Close the ByteStream if all data has been assembled and we've received the
EOF marker
if (eof_ && bytes_pending_ == 0 && next_unassembled_ == first_index +
data.size()) {
output_.writer().close();
std::cout << "[Insert] All data assembled. Closing ByteStream.\n";
}