]> git.sesse.net Git - greproxy/blobdiff - rsencoder.h
Add FEC.
[greproxy] / rsencoder.h
diff --git a/rsencoder.h b/rsencoder.h
new file mode 100644 (file)
index 0000000..75f0f24
--- /dev/null
@@ -0,0 +1,25 @@
+#ifndef _RSENCODER_H
+#define _RSENCODER_H 1
+
+#include <stdint.h>
+
+#include <string>
+#include <vector>
+
+#include "protocol.h"
+
+class Sender;
+
+class RSEncoder : public Sender {
+public:
+       RSEncoder(Sender* sender) : sender(sender) {}
+       virtual void send_packet(uint16_t proto, const std::string &data, int incoming_seq);
+
+private:
+       void finish_group();
+
+       Sender* sender;
+       std::vector<GREPacket> packet_history;
+};
+
+#endif  // !defined(_RSENCODER_H)