8#ifndef DPDKLIBS_SRC_SOURCEMODEL_HPP_
9#define DPDKLIBS_SRC_SOURCEMODEL_HPP_
34template<
class TargetPayloadType>
51 void set_sink(
const std::string& sink_name,
bool callback_mode)
override
55 TLOG_DEBUG(5) <<
"Callback mode requested. Won't acquire iom sender!";
58 TLOG_DEBUG(5) <<
"SourceModel sink is already set in initialized!";
70 TLOG_DEBUG(5) <<
"SourceModel callback is already acquired!";
78 TLOG_DEBUG(5) <<
"Won't acquire callback, as IOM sink is set!";
89 TargetPayloadType& target_payload = *
reinterpret_cast<TargetPayloadType*
>(
message);
92 (*m_sink_callback)(std::move(target_payload));
100 TargetPayloadType target_payload;
101 uint32_t bytes_copied = 0;
129 using sink_cb_t = std::shared_ptr<std::function<void(TargetPayloadType&&)>>;
static std::shared_ptr< DataMoveCallbackRegistry > get()
std::shared_ptr< sink_t > & get_sink()
SourceModel()
SourceModel Constructor.
bool handle_payload(char *message, std::size_t size)
void generate_opmon_data() override
bool m_callback_is_acquired
std::atomic< uint64_t > m_dropped_packets
sink_cb_t m_sink_callback
std::shared_ptr< std::function< void(TargetPayloadType &&)> > sink_cb_t
void set_sink(const std::string &sink_name, bool callback_mode) override
void acquire_callback() override
std::shared_ptr< sink_t > m_sink_queue
static constexpr timeout_t s_no_block
void publish(google::protobuf::Message &&, CustomOrigin &&co={}, OpMonLevel l=to_level(EntryOpMonLevel::kDefault)) const noexcept
#define TLOG_DEBUG(lvl,...)
void buffer_copy(const char *data, std::size_t size, void *buffer, std::uint32_t buffer_pos, const std::size_t &buffer_size)
static std::shared_ptr< iomanager::SenderConcept< Datatype > > get_iom_sender(iomanager::ConnectionId const &id)
Unknown serialization Cannot deserialize message
FELIX Initialization std::string initerror FELIX queue timed std::string queuename Unexpected chunk size
void warning(const Issue &issue)