28 lines
566 B
C++
28 lines
566 B
C++
#pragma once
|
|
#include <memory>
|
|
#include <vector>
|
|
#include <queue>
|
|
|
|
#include <poll.h>
|
|
|
|
struct Slirp;
|
|
|
|
class SlirpNet
|
|
{
|
|
public:
|
|
SlirpNet();
|
|
void sendFromGuest(const uint8_t *pkt, int pkt_len);
|
|
void sendToGuest(const uint8_t *pkt, int pkt_len);
|
|
|
|
void process(const uint32_t timeout);
|
|
int addPoll(const int fd, const int events);
|
|
int getREvents(const int idx) const;
|
|
|
|
std::queue<std::vector<uint8_t>> & getQueue();
|
|
void clearQueue();
|
|
private:
|
|
std::shared_ptr<Slirp> mySlirp;
|
|
std::vector<pollfd> myFDs;
|
|
|
|
std::queue<std::vector<uint8_t>> myQueue;
|
|
};
|