/*! * Copyright 2019 XGBoost contributors */ #ifndef XGBOOST_DATA_SIMPLE_BATCH_ITERATOR_H_ #define XGBOOST_DATA_SIMPLE_BATCH_ITERATOR_H_ #include namespace xgboost { namespace data { template class SimpleBatchIteratorImpl : public BatchIteratorImpl { public: explicit SimpleBatchIteratorImpl(T* page) : page_(page) {} T& operator*() override { CHECK(page_ != nullptr); return *page_; } const T& operator*() const override { CHECK(page_ != nullptr); return *page_; } void operator++() override { page_ = nullptr; } bool AtEnd() const override { return page_ == nullptr; } private: T* page_{nullptr}; }; } // namespace data } // namespace xgboost #endif // XGBOOST_DATA_SIMPLE_BATCH_ITERATOR_H_