version 0.0.1
This commit is contained in:
51
include/Threads/DefenseThread.hpp
Normal file
51
include/Threads/DefenseThread.hpp
Normal file
@@ -0,0 +1,51 @@
|
||||
#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();
|
||||
};
|
||||
Reference in New Issue
Block a user