Line data Source code
1 : /*! 2 : * \file 3 : * \brief Class module::Source_user. 4 : */ 5 : #ifndef SOURCE_USER_HPP_ 6 : #define SOURCE_USER_HPP_ 7 : 8 : #include <string> 9 : #include <vector> 10 : 11 : #include "Module/Stateful/Source/Source.hpp" 12 : 13 : namespace spu 14 : { 15 : namespace module 16 : { 17 : template<typename B = int> 18 : class Source_user : public Source<B> 19 : { 20 : private: 21 : std::vector<std::vector<B>> source; 22 : int next_frame_idx; 23 : int src_counter; 24 : const bool auto_reset; 25 : int start_idx; 26 : bool done; 27 : 28 : public: 29 : Source_user(const int max_data_size, const std::string& filename, const bool auto_reset, const int start_idx = 0); 30 : Source_user(const int max_data_size, const std::string& filename, const int start_idx = 0); 31 0 : virtual ~Source_user() = default; 32 : 33 : virtual Source_user<B>* clone() const; 34 : 35 : virtual bool is_done() const; 36 : 37 : virtual void reset(); 38 : 39 : protected: 40 : void _generate(B* out_data, const size_t frame_id); 41 : }; 42 : } 43 : } 44 : 45 : #endif /* SOURCE_USER_HPP_ */