File: Http3Config.h

package info (click to toggle)
trafficserver 9.2.5%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 53,008 kB
  • sloc: cpp: 345,484; ansic: 31,134; python: 24,200; sh: 7,271; makefile: 3,045; perl: 2,261; java: 277; pascal: 119; sql: 94; xml: 2
file content (62 lines) | stat: -rw-r--r-- 1,750 bytes parent folder | download | duplicates (2)
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
/** @file
 *
 *  HTTP/3 Config
 *
 *  @section license License
 *
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

#pragma once

#include "ProxyConfig.h"

class Http3ConfigParams : public ConfigInfo
{
public:
  Http3ConfigParams(){};
  ~Http3ConfigParams(){};

  void initialize();

  uint32_t header_table_size() const;
  uint32_t max_header_list_size() const;
  uint32_t qpack_blocked_streams() const;
  uint32_t num_placeholders() const;
  uint32_t max_settings() const;

private:
  uint32_t _header_table_size     = 0;
  uint32_t _max_header_list_size  = 0;
  uint32_t _qpack_blocked_streams = 0;
  uint32_t _num_placeholders      = 0;
  uint32_t _max_settings          = 10;
};

class Http3Config
{
public:
  static void startup();
  static void reconfigure();
  static Http3ConfigParams *acquire();
  static void release(Http3ConfigParams *params);

  using scoped_config = ConfigProcessor::scoped_config<Http3Config, Http3ConfigParams>;

private:
  static int _config_id;
};