LCOV - code coverage report
Current view: top level - include/Module/Controller - Controller.hpp (source / functions) Hit Total Coverage
Test: streampu_clean.info Lines: 1 1 100.0 %
Date: 2024-06-12 12:04:18 Functions: 1 2 50.0 %

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

Generated by: LCOV version 1.14