]> git.sesse.net Git - greproxy/blobdiff - rsdecoder.h
Add FEC.
[greproxy] / rsdecoder.h
diff --git a/rsdecoder.h b/rsdecoder.h
new file mode 100644 (file)
index 0000000..5ee52d1
--- /dev/null
@@ -0,0 +1,26 @@
+#ifndef _RSDECODER_H
+#define _RSDECODER_H 1
+
+#include <stdint.h>
+
+#include <map>
+
+#include "reorderer.h"
+
+class Sender;
+
+class RSDecoder : public Sender {
+public:
+       RSDecoder(Sender *sender);
+       virtual void send_packet(uint16_t proto, const std::string &data, int incoming_seq);
+
+private:
+       struct RSGroup {
+               std::map<int, GREPacket> packets;
+               bool done;
+       };
+       Sender *sender;
+       std::map<int, RSGroup> rs_groups;
+};
+
+#endif  /* !defined(_RSDECODER_H) */