]> git.sesse.net Git - cubemap/blob - input.h
Support UDP input. Also fix some issues with socket closing.
[cubemap] / input.h
1 #ifndef _INPUT_H
2 #define _INPUT_H 1
3
4 #include <string>
5
6 #include "thread.h"
7
8 class Input;
9 class InputProto;
10
11 // Extremely rudimentary URL parsing.
12 bool parse_url(const std::string &url, std::string *protocol, std::string *host, std::string *port, std::string *path);
13
14 // Figure out the right type of input based on the URL, and create a new Input of the right type.
15 // Will return NULL if unknown.
16 Input *create_input(const std::string &stream_id, const std::string &url);
17 Input *create_input(const InputProto &serialized);
18
19 class Input : public Thread {
20 public:
21         virtual ~Input();
22         virtual InputProto serialize() const = 0;
23         virtual std::string get_url() const = 0;
24         virtual void close_socket() = 0;
25 };
26
27 #endif  // !defined(_INPUT_H)