4a2de654071353318bcd97febfd50129969f1b80
[cubemap] / udpstream.h
1 #ifndef _UDPSTREAM_H
2 #define _UDPSTREAM_H 1
3
4 // A single UDP destination. This is done a lot less efficient than HTTP streaming
5 // since we expect to have so few of them, which also means things are a lot simpler.
6 // In particular, we run in the input's thread, so there is no backlog, which means
7 // that there is no state (UDP itself is, of course, stateless).
8
9 #include <arpa/inet.h>
10 #include <netinet/in.h>
11 #include <stddef.h>
12 #include <stdint.h>
13 #include <sys/types.h>
14
15 class MarkPool;
16
17 class UDPStream {
18 public:
19         UDPStream(const sockaddr_in6 &dst, uint32_t pacing_rate, int ttl);
20         ~UDPStream();
21
22         void send(const char *data, size_t bytes);
23
24 private:
25         UDPStream(const UDPStream& other);
26
27         sockaddr_in6 dst;
28         int sock;
29 };
30
31 #endif  // !defined(_UDPSTREAM_H)