4 // Various routines that deal with parsing the configuration file.
7 #include <netinet/in.h>
13 std::string url; // As seen by the client.
14 std::string src; // Can be empty.
16 size_t prebuffering_bytes;
17 uint32_t pacing_rate; // In bytes per second. Default is ~0U (no limit).
18 enum { STREAM_ENCODING_RAW = 0, STREAM_ENCODING_METACUBE } encoding;
21 struct UDPStreamConfig {
23 std::string src; // Can be empty.
24 uint32_t pacing_rate; // In bytes per second. Default is ~0U (no limit).
25 int ttl; // Default is -1 (use operating system default).
26 int multicast_iface_index; // Default is -1 (use operating system default).
29 struct AcceptorConfig {
34 enum { LOG_TYPE_FILE, LOG_TYPE_CONSOLE, LOG_TYPE_SYSLOG } type;
41 std::vector<StreamConfig> streams;
42 std::vector<UDPStreamConfig> udpstreams;
43 std::vector<AcceptorConfig> acceptors;
44 std::vector<LogConfig> log_destinations;
46 std::string stats_file; // Empty means no stats file.
49 std::string input_stats_file; // Empty means no input stats file.
50 int input_stats_interval;
52 std::string access_log_file; // Empty means no accses_log file.
55 // Parse and validate configuration. Returns false on error.
56 // <config> is taken to be empty (uninitialized) on entry.
57 bool parse_config(const std::string &filename, Config *config);
59 #endif // !defined(_CONFIG_H)