X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=udpinput.h;h=b3f504aa20255943302a77e5673489fd89ba4831;hp=dc91bc2bfd6d3c5befbee6df37635c435b113786;hb=6544fa0ec3f3a501bcb89ea977756911bd7f3ebd;hpb=340489a8e732519182ecbc92116e7dfa2997143c diff --git a/udpinput.h b/udpinput.h index dc91bc2..b3f504a 100644 --- a/udpinput.h +++ b/udpinput.h @@ -1,6 +1,7 @@ #ifndef _UDPINPUT_H #define _UDPINPUT_H 1 +#include #include #include @@ -19,10 +20,9 @@ public: virtual std::string get_url() const { return url; } virtual void close_socket(); - virtual void add_destination(const std::string &stream_id) - { - stream_ids.push_back(stream_id); - } + virtual void add_destination(int stream_index); + + virtual InputStats get_stats() const; private: // Actually gets the packets. @@ -31,14 +31,26 @@ private: // Create the HTTP header. void construct_header(); - std::vector stream_ids; + std::vector stream_indices; // The URL and its parsed components. std::string url; - std::string host, port, path; + std::string user, host, port, path; + + // The HTTP header we're sending to clients. + std::string http_header; // The socket we are receiving on (or -1). int sock; + + // Temporary buffer, sized for the maximum size of an UDP packet. + char packet_buf[65536]; + + // Mutex protecting . + mutable pthread_mutex_t stats_mutex; + + // The current statistics for this connection. Protected by . + InputStats stats; }; #endif // !defined(_UDPINPUT_H)