AppleWin/source/linux/network/slirp2.h
Andrea Odetti df0d6bdb95 Uthernet 2: new implementation based on libslirp which does not require extra capabilities.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
2021-04-30 20:10:30 +01:00

27 lines
545 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();
private:
std::shared_ptr<Slirp> mySlirp;
std::vector<pollfd> myFDs;
std::queue<std::vector<uint8_t>> myQueue;
};