--- /dev/null
+#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)