X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=reorderer.h;h=d7f585c50c7066c92e58a28dabde9e53dbe34692;hb=HEAD;hp=622083e0563da0f968161e98654f144cc2666fd1;hpb=3c6c8f4a2bfa4bc729a35c579922e17033309bf3;p=greproxy diff --git a/reorderer.h b/reorderer.h index 622083e..d7f585c 100644 --- a/reorderer.h +++ b/reorderer.h @@ -14,7 +14,7 @@ #include "protocol.h" struct GREPacket { - int seq; + uint32_t seq; uint16_t proto; std::string data; timeval ts; @@ -27,9 +27,13 @@ struct GREPacket { class Reorderer : public Sender { public: Reorderer(Sender* sender); - void send_packet(uint16_t proto, const std::string& data, int seq); + void send_packet(uint16_t proto, const std::string& data, uint32_t seq); void possibly_adjust_tv(timeval *tv); + int get_reorders() const { return num_reorders; } + int get_lost_packets() const { return num_lost_packets; } + int get_ts_discontinuities() const { return num_ts_discontinuities; } + private: void check_ts_discontinuity(uint16_t proto, const std::string &data, bool silence); @@ -39,6 +43,8 @@ private: std::priority_queue, std::greater> packet_buffer; std::map ccs; + + int num_reorders = 0, num_lost_packets = 0, num_ts_discontinuities = 0; }; #endif // !defined(_REORDERER_H)