X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=config.h;h=e2dcb43050674a9d3d6d54ab5b98cb310739a444;hp=e7385e2f488904a488adf00d079d67509022df9e;hb=6889a665614e926437484a556124a5ff60363568;hpb=f51b3892514540ff3f08ab052296091f3a6f7a93 diff --git a/config.h b/config.h index e7385e2..e2dcb43 100644 --- a/config.h +++ b/config.h @@ -3,32 +3,53 @@ // Various routines that deal with parsing the configuration file. -#include +#include +#include +#include #include - -struct MarkPoolConfig { - int from, to; -}; +#include struct StreamConfig { - std::string stream_id; + std::string url; // As seen by the client. std::string src; // Can be empty. size_t backlog_size; - int mark_pool; // -1 for none. + size_t prebuffering_bytes; + uint32_t pacing_rate; // In bytes per second. Default is ~0U (no limit). + enum { STREAM_ENCODING_RAW = 0, STREAM_ENCODING_METACUBE } encoding; +}; + +struct UDPStreamConfig { + sockaddr_in6 dst; + std::string src; // Can be empty. + uint32_t pacing_rate; // In bytes per second. Default is ~0U (no limit). + int ttl; // Default is -1 (use operating system default). + int multicast_iface_index; // Default is -1 (use operating system default). }; struct AcceptorConfig { - int port; + sockaddr_in6 addr; +}; + +struct LogConfig { + enum { LOG_TYPE_FILE, LOG_TYPE_CONSOLE, LOG_TYPE_SYSLOG } type; + std::string filename; }; struct Config { + bool daemonize; int num_servers; - std::vector mark_pools; std::vector streams; + std::vector udpstreams; std::vector acceptors; + std::vector log_destinations; std::string stats_file; // Empty means no stats file. int stats_interval; + + std::string input_stats_file; // Empty means no input stats file. + int input_stats_interval; + + std::string access_log_file; // Empty means no accses_log file. }; // Parse and validate configuration. Returns false on error.