Medial Code Documentation
Loading...
Searching...
No Matches
simple_batch_iterator.h
1
4#ifndef XGBOOST_DATA_SIMPLE_BATCH_ITERATOR_H_
5#define XGBOOST_DATA_SIMPLE_BATCH_ITERATOR_H_
6
7#include <memory>
8#include <utility>
9
10#include "xgboost/data.h"
11
12namespace xgboost {
13namespace data {
14
15template<typename T>
17 public:
18 explicit SimpleBatchIteratorImpl(std::shared_ptr<T const> page) : page_(std::move(page)) {}
19 const T& operator*() const override {
20 CHECK(page_ != nullptr);
21 return *page_;
22 }
23 SimpleBatchIteratorImpl &operator++() override {
24 page_ = nullptr;
25 return *this;
26 }
27 bool AtEnd() const override { return page_ == nullptr; }
28
29 std::shared_ptr<T const> Page() const override { return page_; }
30
31 private:
32 std::shared_ptr<T const> page_{nullptr};
33};
34
35} // namespace data
36} // namespace xgboost
37#endif // XGBOOST_DATA_SIMPLE_BATCH_ITERATOR_H_
Definition data.h:447
Definition simple_batch_iterator.h:16
Copyright 2015-2023 by XGBoost Contributors.
namespace of xgboost
Definition base.h:90