51 lines
1.5 KiB
C++
51 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include "PacketDissection/PacketContainer.hpp"
|
|
#include "Treatment/Treatment.hpp"
|
|
|
|
#include "Threads/ForwardingThread.hpp"
|
|
|
|
class DefenseThread : public Thread {
|
|
public:
|
|
DefenseThread(MbufContainerReceiving* mbuf_container_from_inside,
|
|
MbufContainerReceiving* mbuf_container_from_outside,
|
|
MbufContainerTransmitting* mbuf_container_to_inside,
|
|
MbufContainerTransmitting* mbuf_container_to_outside);
|
|
|
|
~DefenseThread() { delete _treatment; }
|
|
|
|
void start_treat() { _do_treat = true; }
|
|
|
|
void stop_treat() { _do_treat = false; }
|
|
|
|
bool _do_treat;
|
|
|
|
/**
|
|
* @brief Wrapper for the run-method
|
|
*
|
|
* Static method that calls the run method on a specific thread
|
|
* object. This is necessary since s_run is used to start a new thread with
|
|
* the dpdk function "rte_eal_remote_launch" which only takes specific types
|
|
* of funktions.
|
|
*
|
|
* @param thread_obj object of type thread the run method is to be called on
|
|
* @return int
|
|
*/
|
|
static int s_run(void* thread_obj);
|
|
|
|
private:
|
|
Treatment* _treatment;
|
|
|
|
MbufContainerReceiving* _mbuf_container_from_outside;
|
|
MbufContainerReceiving* _mbuf_container_from_inside;
|
|
MbufContainerTransmitting* _mbuf_container_to_outside;
|
|
MbufContainerTransmitting* _mbuf_container_to_inside;
|
|
|
|
/**
|
|
* @brief Run thread
|
|
*
|
|
* "Main"-routine of a thread. It is executed until the application is quit
|
|
* or killed.
|
|
*/
|
|
void run();
|
|
}; |