Program Listing for File bus.cpp
↰ Return to documentation for file (bus.cpp
)
#include "bus.hpp"
Bus::Bus(const std::string& bus_dir, const std::string& bus_group, int dmaid, bool verbose)
: m_felix_bus_path{"dma-" + std::to_string(dmaid)}, m_bus(bus_dir, bus_group, verbose)
{ }
Bus::Bus(const std::string& bus_dir, const std::string& bus_group, const std::string& filename, bool verbose)
: m_felix_bus_path{filename}, m_bus(bus_dir, bus_group, verbose)
{ }
bool Bus::publish(const std::vector<Elink> &elinks,
const std::string &ip, uint32_t port,
uint32_t num_pages, uint32_t page_size,
bool pubsub, bool unbuffered)
{
for(auto& e : elinks){
felixbus::FelixBusInfo info;
info.fid = e.fid;
info.pubsub = pubsub;
info.stream = e.has_streams;
info.unbuffered = unbuffered;
info.ip = ip;
info.port = port;
info.netio_pages = num_pages;
info.netio_pagesize = page_size;
info.raw_tcp = false;
try {
m_bus.publish(e.fid, m_felix_bus_path, info);
}
catch (std::exception& ex){
LOG_ERR("%s", ex.what());
return false;
}
}
return true;
}