]> git.sesse.net Git - greproxy/blobdiff - rsdecoder.h
Merge branch 'master' of /srv/git.sesse.net/www/greproxy
[greproxy] / rsdecoder.h
index 5ee52d1b9c1867122f21b77add55739a5ad361c9..db8c6e31b12edf62907779f8db3c510055dfc350 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef _RSDECODER_H
 #define _RSDECODER_H 1
 
+#include <fecpp.h>
 #include <stdint.h>
 
 #include <map>
@@ -12,7 +13,9 @@ class Sender;
 class RSDecoder : public Sender {
 public:
        RSDecoder(Sender *sender);
-       virtual void send_packet(uint16_t proto, const std::string &data, int incoming_seq);
+       virtual void send_packet(uint16_t proto, const std::string &data, uint32_t incoming_seq);
+
+       int get_recovered_packets() const { return num_recovered_packets; }
 
 private:
        struct RSGroup {
@@ -21,6 +24,9 @@ private:
        };
        Sender *sender;
        std::map<int, RSGroup> rs_groups;
+       fecpp::fec_code rs;
+
+       int num_recovered_packets = 0;
 };
 
 #endif  /* !defined(_RSDECODER_H) */