Program Listing for File trickle.hpp
↰ Return to documentation for file (trickle/trickle.hpp)
#ifndef TRICKLE_HPP_
#define TRICKLE_HPP_
#include <list>
#include <map>
#include <csignal>
#include <format>
#include "config/config.hpp"
#include "trickle_manager.hpp"
#include "ers/ers.h"
#include "bus.hpp"
#include "util.hpp"
#include "utility.hpp"
namespace trickle {
ERS_DECLARE_ISSUE(felix_log, trickle_issue, issue_message, ((const std::string&)issue_message))
template <class Config, class Device, class Buffer>
class Trickle {
public:
explicit Trickle(std::unique_ptr<Config> config) :
cfg(std::move(config)), m_hostname(Util::get_full_hostname()){ };
void start();
void stop();
public:
std::unique_ptr<Config> cfg;
std::list<std::shared_ptr<Device>> devices;
std::map<int, std::shared_ptr<Buffer>> dma_buffers; //use device number as id
private:
std::string m_hostname{};
std::map<int, Bus> m_bus_map{};
std::map<int, std::list<TrickleManager<Buffer>>> m_trickle_managers{};
};
} // namespace trickle
#endif // TRICKLE_MANAGER_HPP_