// A Client represents a single connection from a client (watching a single stream).
+#include <stddef.h>
#include <time.h>
#include <string>
// Digested statistics for writing to logs etc.
struct ClientStats {
std::string stream_id;
+ int sock;
+ int fwmark;
std::string remote_addr;
time_t connect_time;
size_t bytes_sent;
+ size_t bytes_lost;
+ size_t num_loss_events;
};
struct Client {
- Client() {}
Client(int sock);
// Serialization/deserialization.
// or SENDING_ERROR.
size_t header_or_error_bytes_sent;
+ // Number of bytes we are into the stream (ie., the end of last send).
+ // Only relevant for SENDING_DATA.
+ size_t stream_pos;
+
// Number of bytes we've sent of data. Only relevant for SENDING_DATA.
size_t bytes_sent;
+
+ // Number of times we've skipped forward due to the backlog being too big,
+ // and how many bytes we've skipped over in all. Only relevant for SENDING_DATA.
+ size_t bytes_lost, num_loss_events;
};
#endif // !defined(_CLIENT_H)