14 boost::asio::io_context &io)
15 : agent_(agent), module_(mod), trace_(true), free_buffer_(false), io_(io),
16 work_queue_(
TaskScheduler::GetInstance()->GetTaskId(task_name), mod,
17 boost::bind(&
Proto::ProcessProto, this, _1)) {
19 std::ostringstream str;
20 str <<
"Proto work queue. Module " << mod;
bool RunProtoHandler(ProtoHandler *handler)
ProtoWorkQueue work_queue_
The TaskScheduler keeps track of what tasks are currently schedulable. When a task is enqueued it is ...
void Shutdown(bool delete_entries=true)
boost::asio::io_context & io_
virtual bool Validate(PktInfo *msg)
struct ether_header * eth
void Register(PktModuleName type, RcvQueueFunc cb)
void AddPktTrace(PktModuleName module, PktTrace::Direction dir, const PktInfo *pkt)
virtual bool Enqueue(boost::shared_ptr< PktInfo > msg)
void FreeBuffer(PktInfo *msg)
virtual ProtoHandler * AllocProtoHandler(boost::shared_ptr< PktInfo > info, boost::asio::io_context &io)=0
Proto(Agent *agent, const char *task_name, PktHandler::PktModuleName mod, boost::asio::io_context &io)
PktHandler * pkt_handler() const
void reset_packet_buffer()
PktHandler::PktModuleName module_
bool ProcessProto(boost::shared_ptr< PktInfo > msg_info)
bool Enqueue(QueueEntryT entry)
void set_name(const std::string &name)