]> git.sesse.net Git - cubemap/blobdiff - udpinput.h
Support UDP input. Also fix some issues with socket closing.
[cubemap] / udpinput.h
diff --git a/udpinput.h b/udpinput.h
new file mode 100644 (file)
index 0000000..0f89d68
--- /dev/null
@@ -0,0 +1,39 @@
+#ifndef _UDPINPUT_H
+#define _UDPINPUT_H 1
+
+#include <vector>
+#include <string>
+
+#include "input.h"
+
+class InputProto;
+
+class UDPInput : public Input {
+public:
+       UDPInput(const std::string &stream_id, const std::string &url);
+
+       // Serialization/deserialization.
+       UDPInput(const InputProto &serialized);
+       virtual InputProto serialize() const;
+
+       virtual std::string get_url() const { return url; }
+       virtual void close_socket();
+
+private:
+       // Actually gets the packets.
+       virtual void do_work();
+
+       // Create the HTTP header.
+       void construct_header();
+
+       std::string stream_id;
+
+       // The URL and its parsed components.
+       std::string url;
+       std::string host, port, path;
+
+       // The socket we are receiving on (or -1).
+       int sock;
+};
+
+#endif  // !defined(_UDPINPUT_H)