Program Listing for File iteration_counter.h

Return to documentation for file (src/rlenvs/utils/iteration_counter.h)

#ifndef ITERATION_COUNTER_H
#define ITERATION_COUNTER_H

#include "rlenvs/rlenvs_types_v2.h"

namespace rlenvscpp {
namespace utils {

class IterationCounter
{
public:

    explicit IterationCounter(uint_t max_itrs) noexcept;

    bool continue_iterations()noexcept;

    uint_t current_iteration_index()const noexcept{return current_itr_index_;}

    uint_t max_iterations()const noexcept{return max_iterations_;}

private:

    uint_t current_itr_index_;

    uint_t max_iterations_;
};

inline
IterationCounter::IterationCounter(uint_t max_itrs) noexcept
    :
    current_itr_index_(0),
    max_iterations_(max_itrs)
{}

inline
bool
IterationCounter::continue_iterations()noexcept{
    if(current_itr_index_ < max_iterations_){
        current_itr_index_++ ;
        return true;
    }
    return false;
}


}

}

#endif // ITERATION_COUNTER_H