add src/TinsNetworkInterfaceCard_t.h (send pdu and store their hash in a thread safe list)
This commit is contained in:
40
src/TinsNetworkInterfaceCard.h
Normal file
40
src/TinsNetworkInterfaceCard.h
Normal file
@@ -0,0 +1,40 @@
|
||||
#ifndef TINSNETWORKINTERFACECARD_H
|
||||
#define TINSNETWORKINTERFACECARD_H
|
||||
|
||||
#include "TinsNetworkInterfaceCard_t.h"
|
||||
#include "INetworkInterfaceCard_t.h"
|
||||
#include "INetworkInterfaceCard.h"
|
||||
#include "Ip4Packet_t.h"
|
||||
#include "Ip6Packet_t.h"
|
||||
|
||||
class TinsNetworkInterfaceCard : public INetworkInterfaceCard
|
||||
{
|
||||
public:
|
||||
TinsNetworkInterfaceCard();
|
||||
TinsNetworkInterfaceCard(const Tins::NetworkInterface & networkInterface);
|
||||
TinsNetworkInterfaceCard(const std::string& name);
|
||||
TinsNetworkInterfaceCard(const char* name);
|
||||
TinsNetworkInterfaceCard(const Tins::IPv4Address & ip);
|
||||
TinsNetworkInterfaceCard(const Tins::IPv6Address & ipv6);
|
||||
|
||||
virtual ~TinsNetworkInterfaceCard();
|
||||
|
||||
virtual bool handle(IN const Tins::PDU & pdu, IN IPacketHandler * callBackHandler = nullptr) override;
|
||||
virtual void sendPacket(IN const Tins::PDU & pdu) override;
|
||||
virtual void startListen() override;
|
||||
virtual void stopListen() override;
|
||||
|
||||
private:
|
||||
|
||||
Tins::PDU * getPhyLessPduPtr(IN const Tins::PDU & pdu) const;
|
||||
void addPduToHashList(IN Tins::PDU &pdu);
|
||||
bool searchAndRemoveHashListItem(IN const std::size_t removedHash);
|
||||
|
||||
UPtrSniffer sniffer;
|
||||
UPtrSnifferConfiguration snifferConfig;
|
||||
UPtrPacketSender packetSender;
|
||||
static ByteVectorHash byteVectorHash;
|
||||
UPtrHashList sendPduHashList;
|
||||
UPtrMutex hashListMutex;
|
||||
};
|
||||
#endif
|
||||
Reference in New Issue
Block a user