]> git.sesse.net Git - greproxy/blob - rsdecoder.h
Unbreak pacing in tungre.
[greproxy] / rsdecoder.h
1 #ifndef _RSDECODER_H
2 #define _RSDECODER_H 1
3
4 #include <fecpp.h>
5 #include <stdint.h>
6
7 #include <map>
8
9 #include "reorderer.h"
10
11 class Sender;
12
13 class RSDecoder : public Sender {
14 public:
15         RSDecoder(Sender *sender);
16         virtual void send_packet(uint16_t proto, const std::string &data, int incoming_seq);
17
18 private:
19         struct RSGroup {
20                 std::map<int, GREPacket> packets;
21                 bool done;
22         };
23         Sender *sender;
24         std::map<int, RSGroup> rs_groups;
25         fecpp::fec_code rs;
26 };
27
28 #endif  /* !defined(_RSDECODER_H) */