]> git.sesse.net Git - cubemap/blob - state.proto
Support delivering fragments from the backlog; intended for HLS.
[cubemap] / state.proto
1 syntax = "proto2";
2
3 // Corresponds to struct Client.
4 message ClientProto {
5         optional int32 sock = 1;
6         optional string remote_addr = 8;
7         optional int64 connect_time_sec = 13;
8         optional int32 connect_time_nsec = 14;
9         optional int32 state = 2;
10         optional bytes request = 3;
11         optional string url = 4;
12         optional bytes header_or_short_response = 5;
13         optional int64 header_or_short_response_bytes_sent = 6;
14         optional int64 stream_pos = 7;
15         optional int64 stream_pos_end = 20 [default=-1];
16         optional int64 bytes_sent = 10;
17         optional int64 bytes_lost = 11;
18         optional int64 num_loss_events = 12;
19         optional bytes referer = 15;
20         optional bytes user_agent = 16;
21         optional bytes tls_context = 17;  // If not present, then not using TLS for this client.
22         optional int64 tls_output_bytes_already_consumed = 18;
23         optional bool in_ktls_mode = 19;
24 };
25
26 // Corresponds to struct Stream.
27 message StreamProto {
28         optional bytes http_header = 6;
29         optional bytes stream_header = 7;
30         repeated int32 data_fds = 8;
31         optional int64 backlog_size = 5 [default=10485760];
32         // Tag 10 is unused from 1.4.0 up (it used to be prebuffering_bytes).
33         optional int64 bytes_received = 3;
34         repeated int64 suitable_starting_point = 9;
35         optional string url = 4;
36 };
37
38 // Corresponds to class Input.
39 message InputProto {
40         optional int32 state = 1;
41         optional string url = 3;
42         optional bytes request = 4;
43         optional int32 request_bytes_sent = 5;
44         optional bytes response = 6;
45         optional bytes http_header = 10;
46         optional bytes stream_header = 14;
47         optional bytes pending_data = 7;
48         optional bool has_metacube_header = 8;
49         optional int32 sock = 9;
50         optional int64 bytes_received = 11;
51         optional int64 data_bytes_received = 12;
52         optional int64 metadata_bytes_received = 16;
53         optional double latency_sec = 17;
54         optional int64 connect_time = 13;
55         optional bool is_metacube_encoded = 15 [default=true];
56 };
57
58 // Corresponds to class Acceptor.
59 message AcceptorProto {
60         optional int32 server_sock = 1;
61         optional int32 port = 2;
62         optional string addr = 3;  // As a string. Empty is equivalent to "::".
63         optional bytes certificate_chain = 4;
64         optional bytes private_key = 5;
65 };
66
67 message CubemapStateProto {
68         optional int64 serialize_start_sec = 6;
69         optional int64 serialize_start_usec = 7;
70         repeated ClientProto clients = 1;
71         repeated StreamProto streams = 2;
72         repeated InputProto inputs = 5;
73         repeated AcceptorProto acceptors = 8;
74 };