blob: 95bccb80fb1097f5521beb7586a9913aecc28497 [file]
// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "services/network/public/cpp/data_buffer_factory.h"
#include "base/check_op.h"
namespace network {
DataBufferList::Iterator::Iterator() = default;
DataBufferList::Iterator::Iterator(const DataBufferList* data_buffer_list,
uint32_t index)
: data_buffer_list_(data_buffer_list), index_(index) {}
DataBufferList::Iterator::Iterator(const Iterator& other) = default;
DataBufferList::Iterator::Iterator(Iterator&&) = default;
DataBufferList::Iterator::~Iterator() = default;
DataBufferList::Iterator& DataBufferList::Iterator::operator=(
const Iterator& other) = default;
DataBufferList::Iterator& DataBufferList::Iterator::operator=(Iterator&&) =
default;
DataBufferList::Iterator& DataBufferList::Iterator::operator++() {
if (data_buffer_list_ && index_ < data_buffer_list_->size()) {
++index_;
}
return *this;
}
DataBufferList::Iterator DataBufferList::Iterator::operator++(int) {
Iterator temp = *this;
++*this;
return temp;
}
bool DataBufferList::Iterator::operator==(const Iterator& other) const {
return data_buffer_list_ == other.data_buffer_list_ && index_ == other.index_;
}
bool DataBufferList::Iterator::operator!=(const Iterator& other) const {
return !(*this == other);
}
base::span<const uint8_t> DataBufferList::Iterator::operator*() const {
CHECK(data_buffer_list_);
CHECK_LT(index_, data_buffer_list_->size());
return data_buffer_list_->Get(index_);
}
DataBufferList::Iterator DataBufferList::begin() const {
return Iterator(this, 0);
}
DataBufferList::Iterator DataBufferList::end() const {
return Iterator(this, size());
}
} // namespace network