]> git.sesse.net Git - cubemap/blobdiff - httpinput.h
Re-run include-what-you-use.
[cubemap] / httpinput.h
index 9a2787176c4c2b8eb2ed27e1d2bf19d5b4aa4210..6b0c87512dffee116dea7c86c89404a5e0090e56 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef _HTTPINPUT_H
 #define _HTTPINPUT_H 1
 
+#include <pthread.h>
 #include <stddef.h>
 #include <string>
 #include <vector>
@@ -21,10 +22,9 @@ public:
 
        virtual std::string get_url() const { return url; }
 
-       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 does the download.
@@ -53,7 +53,7 @@ private:
        };
        State state;
 
-       std::vector<std::string> stream_ids;
+       std::vector<int> stream_indices;
 
        // The URL and its parsed components.
        std::string url;
@@ -70,9 +70,12 @@ private:
        // The HTTP response we've received so far. Only relevant for RECEIVING_HEADER.
        std::string response;
 
-       // The HTTP respones headers we want to give clients for this input.
+       // The HTTP response headers we want to give clients for this input.
        std::string http_header;
 
+       // The stream heder we want to give clients for this input.
+       std::string stream_header;
+
        // Data we have received but not fully processed yet.
        std::vector<char> pending_data;
 
@@ -81,7 +84,13 @@ private:
        bool has_metacube_header;
 
        // The socket we are downloading on (or -1).
-       int sock;       
+       int sock;
+
+       // Mutex protecting <stats>.
+       mutable pthread_mutex_t stats_mutex;
+
+       // The current statistics for this connection. Protected by <stats_mutex>.
+       InputStats stats;
 };
 
 #endif  // !defined(_HTTPINPUT_H)