forked from nodejs/node
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathnode_quic_state.h
More file actions
82 lines (68 loc) · 2.28 KB
/
node_quic_state.h
File metadata and controls
82 lines (68 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#ifndef SRC_QUIC_NODE_QUIC_STATE_H_
#define SRC_QUIC_NODE_QUIC_STATE_H_
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
#include "aliased_buffer.h"
namespace node {
namespace quic {
enum QuicSessionConfigIndex : int {
IDX_QUIC_SESSION_ACTIVE_CONNECTION_ID_LIMIT,
IDX_QUIC_SESSION_MAX_STREAM_DATA_BIDI_LOCAL,
IDX_QUIC_SESSION_MAX_STREAM_DATA_BIDI_REMOTE,
IDX_QUIC_SESSION_MAX_STREAM_DATA_UNI,
IDX_QUIC_SESSION_MAX_DATA,
IDX_QUIC_SESSION_MAX_STREAMS_BIDI,
IDX_QUIC_SESSION_MAX_STREAMS_UNI,
IDX_QUIC_SESSION_MAX_IDLE_TIMEOUT,
IDX_QUIC_SESSION_MAX_UDP_PAYLOAD_SIZE,
IDX_QUIC_SESSION_ACK_DELAY_EXPONENT,
IDX_QUIC_SESSION_DISABLE_MIGRATION,
IDX_QUIC_SESSION_MAX_ACK_DELAY,
IDX_QUIC_SESSION_CC_ALGO,
IDX_QUIC_SESSION_CONFIG_COUNT
};
enum Http3ConfigIndex : int {
IDX_HTTP3_QPACK_MAX_TABLE_CAPACITY,
IDX_HTTP3_QPACK_BLOCKED_STREAMS,
IDX_HTTP3_MAX_HEADER_LIST_SIZE,
IDX_HTTP3_MAX_PUSHES,
IDX_HTTP3_MAX_HEADER_PAIRS,
IDX_HTTP3_MAX_HEADER_LENGTH,
IDX_HTTP3_CONFIG_COUNT
};
class QuicState : public BaseObject {
public:
explicit QuicState(Environment* env, v8::Local<v8::Object> obj)
: BaseObject(env, obj),
root_buffer(
env->isolate(),
sizeof(quic_state_internal)),
quicsessionconfig_buffer(
env->isolate(),
offsetof(quic_state_internal, quicsessionconfig_buffer),
IDX_QUIC_SESSION_CONFIG_COUNT + 1,
root_buffer),
http3config_buffer(
env->isolate(),
offsetof(quic_state_internal, http3config_buffer),
IDX_HTTP3_CONFIG_COUNT + 1,
root_buffer) {
}
AliasedUint8Array root_buffer;
AliasedFloat64Array quicsessionconfig_buffer;
AliasedFloat64Array http3config_buffer;
bool warn_trace_tls = true;
static constexpr FastStringKey binding_data_name { "quic" };
void MemoryInfo(MemoryTracker* tracker) const override;
SET_SELF_SIZE(QuicState)
SET_MEMORY_INFO_NAME(QuicState)
private:
struct quic_state_internal {
// doubles first so that they are always sizeof(double)-aligned
double quicsessionconfig_buffer[IDX_QUIC_SESSION_CONFIG_COUNT + 1];
double http3config_buffer[IDX_HTTP3_CONFIG_COUNT + 1];
};
};
} // namespace quic
} // namespace node
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
#endif // SRC_QUIC_NODE_QUIC_STATE_H_