LCOV - code coverage report
Current view: top level - include/Module/Stateful/Initializer - Initializer.hpp (source / functions) Hit Total Coverage
Test: streampu_clean.info Lines: 1 1 100.0 %
Date: 2025-01-11 12:25:42 Functions: 2 20 10.0 %

          Line data    Source code
       1             : /*!
       2             :  * \file
       3             :  * \brief Class module::Initializer.
       4             :  */
       5             : #ifndef INITIALIZER_HPP_
       6             : #define INITIALIZER_HPP_
       7             : 
       8             : #include <cstdint>
       9             : 
      10             : #include "Module/Stateful/Stateful.hpp"
      11             : 
      12             : namespace spu
      13             : {
      14             : namespace module
      15             : {
      16             : namespace ini
      17             : {
      18             : enum class tsk : size_t
      19             : {
      20             :     initialize,
      21             :     SIZE
      22             : };
      23             : 
      24             : namespace sck
      25             : {
      26             : enum class initialize : size_t
      27             : {
      28             :     out,
      29             :     status
      30             : };
      31             : }
      32             : }
      33             : 
      34             : template<typename T = int>
      35             : class Initializer : public Stateful
      36             : {
      37             :   public:
      38             :     inline runtime::Task& operator[](const ini::tsk t);
      39             :     inline runtime::Socket& operator[](const ini::sck::initialize s);
      40             :     inline runtime::Socket& operator[](const std::string& tsk_sck);
      41             : 
      42             :   protected:
      43             :     std::vector<std::vector<T>> init_data;
      44             : 
      45             :   public:
      46             :     Initializer(const size_t n_elmts);
      47         144 :     virtual ~Initializer() = default;
      48             :     virtual Initializer* clone() const;
      49             : 
      50             :     const std::vector<std::vector<T>>& get_init_data() const;
      51             : 
      52             :     void set_init_data(const std::vector<T>& init_data);
      53             :     void set_init_data(const std::vector<std::vector<T>>& init_data);
      54             :     void set_init_data(const T val);
      55             :     void set_n_frames(const size_t n_frames);
      56             : 
      57             :     template<class A = std::allocator<T>>
      58             :     void initialize(std::vector<T, A>& out, const int frame_id = -1, const bool managed_memory = true);
      59             : 
      60             :     void initialize(T* out, const int frame_id = -1, const bool managed_memory = true);
      61             : 
      62             :   protected:
      63             :     virtual void _initialize(T* out, const size_t frame_id);
      64             : };
      65             : }
      66             : }
      67             : 
      68             : #ifndef DOXYGEN_SHOULD_SKIP_THIS
      69             : #include "Module/Stateful/Initializer/Initializer.hxx"
      70             : #endif
      71             : 
      72             : #endif /* INITIALIZER_HPP_ */

Generated by: LCOV version 1.14