+#include <assert.h>
+#include <errno.h>
+#include <netinet/in.h>
+#include <poll.h>
#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
#include <stdlib.h>
-#include <signal.h>
-#include <errno.h>
-#include <arpa/inet.h>
+#include <string.h>
#include <sys/ioctl.h>
-#include <sys/poll.h>
#include <sys/socket.h>
+#include <unistd.h>
#include "acceptor.h"
#include "serverpool.h"
+#include <arpa/inet.h>
+#include <netinet/in.h>
#include <stdio.h>
-#include <unistd.h>
#include <sys/socket.h>
-#include <arpa/inet.h>
-#include <errno.h>
#include "client.h"
#include "markpool.h"
-#include "stream.h"
#include "state.pb.h"
+#include "stream.h"
using namespace std;
// A Client represents a single connection from a client (watching a single stream).
+#include <stddef.h>
#include <time.h>
#include <string>
+#include <assert.h>
+#include <ctype.h>
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
-#include <limits.h>
-#include <ctype.h>
-#include <assert.h>
+#include <string.h>
#include <map>
-#include <vector>
#include <string>
+#include <utility>
+#include <vector>
#include "config.h"
#include "parse.h"
// Various routines that deal with parsing the configuration file.
-#include <vector>
+#include <stddef.h>
#include <string>
+#include <vector>
struct MarkPoolConfig {
int from, to;
+#include <assert.h>
+#include <errno.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <poll.h>
+#include <stdint.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
-#include <stdint.h>
-#include <unistd.h>
-#include <assert.h>
-#include <arpa/inet.h>
-#include <sys/socket.h>
-#include <pthread.h>
-#include <sys/types.h>
#include <sys/ioctl.h>
-#include <sys/types.h>
#include <sys/socket.h>
-#include <netdb.h>
-#include <poll.h>
-#include <signal.h>
-#include <errno.h>
-#include <vector>
-#include <string>
+#include <unistd.h>
#include <map>
+#include <string>
+#include <utility>
+#include <vector>
-#include "metacube.h"
-#include "mutexlock.h"
#include "httpinput.h"
-#include "server.h"
-#include "serverpool.h"
+#include "metacube.h"
#include "parse.h"
-#include "version.h"
+#include "serverpool.h"
#include "state.pb.h"
+#include "version.h"
using namespace std;
#ifndef _HTTPINPUT_H
#define _HTTPINPUT_H 1
-#include <vector>
+#include <stddef.h>
#include <string>
+#include <vector>
#include "input.h"
+#include <stddef.h>
#include <string.h>
#include <string>
#include "httpinput.h"
-#include "udpinput.h"
#include "input.h"
#include "state.pb.h"
+#include "udpinput.h"
using namespace std;
-#include <stdio.h>
-#include <string.h>
-#include <stdint.h>
-#include <unistd.h>
#include <assert.h>
+#include <errno.h>
#include <getopt.h>
-#include <arpa/inet.h>
-#include <sys/socket.h>
-#include <pthread.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <sys/poll.h>
+#include <google/protobuf/stubs/common.h>
+#include <signal.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
#include <sys/time.h>
-#include <sys/types.h>
#include <sys/wait.h>
-#include <signal.h>
-#include <errno.h>
-#include <ctype.h>
-#include <fcntl.h>
-#include <vector>
-#include <string>
+#include <unistd.h>
#include <map>
#include <set>
+#include <string>
+#include <utility>
+#include <vector>
#include "acceptor.h"
#include "config.h"
+#include "input.h"
#include "markpool.h"
-#include "metacube.h"
-#include "parse.h"
-#include "server.h"
#include "serverpool.h"
-#include "input.h"
+#include "state.pb.h"
#include "stats.h"
#include "util.h"
#include "version.h"
-#include "state.pb.h"
using namespace std;
+#include <ctype.h>
#include <stdio.h>
#include <string.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <assert.h>
-#include <vector>
#include <string>
+#include <vector>
#include "parse.h"
// Various routines that deal with parsing; both HTTP requests and more generic text.
-#include <vector>
+#include <stddef.h>
#include <string>
+#include <vector>
// Split a line on whitespace, e.g. "foo bar baz" -> {"foo", "bar", "baz"}.
std::vector<std::string> split_tokens(const std::string &line);
-#include <stdio.h>
-#include <string.h>
-#include <stdint.h>
-#include <unistd.h>
#include <assert.h>
-#include <arpa/inet.h>
-#include <sys/socket.h>
+#include <errno.h>
#include <pthread.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
+#include <stdio.h>
+#include <stdlib.h>
#include <sys/epoll.h>
#include <sys/sendfile.h>
+#include <sys/socket.h>
+#include <sys/types.h>
#include <time.h>
-#include <signal.h>
-#include <errno.h>
-#include <vector>
-#include <string>
-#include <map>
+#include <unistd.h>
#include <algorithm>
+#include <map>
+#include <string>
+#include <utility>
+#include <vector>
#include "markpool.h"
+#include "mutexlock.h"
#include "parse.h"
#include "server.h"
-#include "stream.h"
-#include "mutexlock.h"
#include "state.pb.h"
+#include "stream.h"
using namespace std;
#ifndef _SERVER_H
#define _SERVER_H 1
-#include <stdint.h>
#include <pthread.h>
+#include <stddef.h>
+#include <stdint.h>
#include <sys/epoll.h>
+#include <sys/types.h>
#include <time.h>
-#include <string>
#include <map>
+#include <string>
#include <vector>
#include "client.h"
#include "thread.h"
+class ClientProto;
+struct Stream;
+
#define EPOLL_MAX_EVENTS 8192
#define EPOLL_TIMEOUT_MS 20
#define MAX_CLIENT_REQUEST 16384
+#include <google/protobuf/repeated_field.h>
+
+#include "client.h"
+#include "server.h"
#include "serverpool.h"
#include "state.pb.h"
#ifndef _SERVERPOOL_H
#define _SERVERPOOL_H 1
-#include "server.h"
-
+#include <stddef.h>
+#include <string>
#include <vector>
+#include "server.h"
+#include "state.pb.h"
+
class MarkPool;
+class Server;
+struct ClientStats;
// Provides services such as load-balancing between a number of Server instances.
class ServerPool {
+#include <fcntl.h>
+#include <stddef.h>
#include <stdio.h>
-#include <string.h>
#include <stdlib.h>
+#include <string.h>
+#include <time.h>
#include <unistd.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <pthread.h>
+#include <vector>
+#include "client.h"
#include "serverpool.h"
#include "stats.h"
+#include <errno.h>
#include <stdio.h>
+#include <stdlib.h>
#include <unistd.h>
-#include <errno.h>
-#include <algorithm>
#include <string>
#include <vector>
+#include "state.pb.h"
#include "stream.h"
#include "util.h"
-#include "state.pb.h"
using namespace std;
// Representation of a single, muxed (we only really care about bytes/blocks) stream.
// Fed by Input, sent out by Server (to Client).
+#include <stddef.h>
#include <stdint.h>
#include <string>
#include <vector>
-struct Client;
class MarkPool;
class StreamProto;
+struct Client;
struct Stream {
Stream(const std::string &stream_id, size_t backlog_size);
+#include <assert.h>
+#include <errno.h>
+#include <poll.h>
#include <stdio.h>
-#include <unistd.h>
-#include <sys/types.h>
+#include <stdlib.h>
#include <sys/socket.h>
-#include <sys/poll.h>
-#include <arpa/inet.h>
-#include <errno.h>
+#include <unistd.h>
#include <string>
#include "acceptor.h"
-#include "udpinput.h"
#include "serverpool.h"
-#include "version.h"
#include "state.pb.h"
+#include "udpinput.h"
+#include "version.h"
using namespace std;
#ifndef _UDPINPUT_H
#define _UDPINPUT_H 1
-#include <vector>
#include <string>
+#include <vector>
#include "input.h"
+#include <errno.h>
+#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
-#include <errno.h>
#include "util.h"