IOBuf IOBuf::cloneAsValue() const { auto tmp = cloneOneAsValue(); for (IOBuf* current = next_; current != this; current = current->next_) { tmp.prependChain(current->cloneOne()); } return tmp; }
unique_ptr<IOBuf> IOBuf::clone() const { unique_ptr<IOBuf> newHead(cloneOne()); for (IOBuf* current = next_; current != this; current = current->next_) { newHead->prependChain(current->cloneOne()); } return newHead; }
void IOBuf::cloneInto(IOBuf& other) const { IOBuf tmp; cloneOneInto(tmp); for (IOBuf* current = next_; current != this; current = current->next_) { tmp.prependChain(current->cloneOne()); } other = std::move(tmp); }