• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..12-Nov-2020-

README.mdH A D07-Nov-20202.5 KiB7357

quic_aligned.hH A D07-Nov-2020571 168

quic_bug_tracker.hH A D07-Nov-2020549 168

quic_cert_utils.hH A D07-Nov-2020845 2616

quic_client_stats.hH A D07-Nov-20203.5 KiB8822

quic_containers.hH A D07-Nov-20201.9 KiB5020

quic_containers_test.ccH A D07-Nov-20201.4 KiB6439

quic_default_proof_providers.hH A D07-Nov-20201.2 KiB3316

quic_epoll.hH A D07-Nov-2020615 2010

quic_epoll_test_tools.hH A D07-Nov-2020466 135

quic_error_code_wrappers.hH A D07-Nov-2020553 155

quic_estimate_memory_usage.hH A D07-Nov-2020606 2211

quic_expect_bug.hH A D07-Nov-2020529 157

quic_export.hH A D07-Nov-2020755 184

quic_exported_stats.hH A D07-Nov-20204.2 KiB9731

quic_fallthrough.hH A D07-Nov-2020458 135

quic_file_utils.ccH A D07-Nov-2020835 2512

quic_file_utils.hH A D07-Nov-2020944 2713

quic_flag_utils.hH A D07-Nov-2020749 2010

quic_flags.hH A D07-Nov-20201.9 KiB5027

quic_fuzzed_data_provider.hH A D07-Nov-2020524 177

quic_hostname_utils.ccH A D07-Nov-2020664 2211

quic_hostname_utils.hH A D07-Nov-20201.2 KiB3515

quic_hostname_utils_test.ccH A D07-Nov-20202.1 KiB9068

quic_iovec.hH A D07-Nov-2020942 2814

quic_ip_address.ccH A D07-Nov-20206.2 KiB236199

quic_ip_address.hH A D07-Nov-20203.2 KiB9866

quic_ip_address_family.hH A D07-Nov-2020553 2110

quic_ip_address_test.ccH A D07-Nov-20204.6 KiB142113

quic_logging.hH A D07-Nov-20201.3 KiB3921

quic_macros.hH A D07-Nov-2020465 146

quic_map_util.hH A D07-Nov-2020754 2514

quic_mem_slice.hH A D07-Nov-20202.5 KiB7026

quic_mem_slice_span.hH A D07-Nov-20202.1 KiB6028

quic_mem_slice_span_test.ccH A D07-Nov-20201.4 KiB4835

quic_mem_slice_storage.hH A D07-Nov-20201.5 KiB4224

quic_mem_slice_storage_test.ccH A D07-Nov-20202.7 KiB8163

quic_mem_slice_test.ccH A D07-Nov-20201.4 KiB5139

quic_mock_log.hH A D07-Nov-2020669 199

quic_mutex.ccH A D07-Nov-2020931 4630

quic_mutex.hH A D07-Nov-20203.4 KiB10159

quic_pcc_sender.hH A D07-Nov-2020979 2918

quic_port_utils.hH A D07-Nov-2020891 2812

quic_prefetch.hH A D07-Nov-20201.4 KiB409

quic_ptr_util.hH A D07-Nov-2020564 2312

quic_reference_counted.hH A D07-Nov-20205.7 KiB16385

quic_reference_counted_test.ccH A D07-Nov-20204.2 KiB174145

quic_server_stats.hH A D07-Nov-20203.3 KiB8318

quic_sleep.hH A D07-Nov-2020544 2010

quic_socket_address.ccH A D07-Nov-20203.9 KiB133110

quic_socket_address.hH A D07-Nov-20201.8 KiB5437

quic_socket_address_test.ccH A D07-Nov-20204 KiB134107

quic_stack_trace.hH A D07-Nov-2020523 2110

quic_stream_buffer_allocator.hH A D07-Nov-2020527 177

quic_string_utils.hH A D07-Nov-2020636 2312

quic_string_utils_test.ccH A D07-Nov-20206.1 KiB181129

quic_system_event_loop.hH A D07-Nov-2020562 178

quic_test.hH A D07-Nov-20201.1 KiB3418

quic_test_loopback.ccH A D07-Nov-2020642 3018

quic_test_loopback.hH A D07-Nov-20201 KiB3311

quic_test_mem_slice_vector.hH A D07-Nov-20201.3 KiB3618

quic_test_output.hH A D07-Nov-20201.6 KiB4119

quic_thread.hH A D07-Nov-2020880 2914

quic_udp_socket_platform_api.hH A D07-Nov-2020858 2615

quic_uint128.hH A D07-Nov-2020616 2010

README.md

1# QUIC platform API
2
3This directory contains the infrastructure blocks needed to support QUIC in
4certain platform. These APIs act as interaction layers between QUIC core and
5either the upper layer application (i.e. Chrome, Envoy) or the platform's own
6infrastructure (i.e. logging, test framework and system IO). QUIC core needs the
7implementations of these APIs to build and function appropriately. There is
8unidirectional dependency from QUIC core to most of the APIs here, such as
9QUIC_LOG and QuicMutex, but a few APIs also depend back on QUIC core's basic
10QUIC data types, such as QuicClock and QuicSleep.
11
12-   APIs used by QUIC core:
13
14    Most APIs are used by QUIC core to interact with platform infrastructure
15    (i.e. QUIC_LOG) or to wrap around platform dependent data types (i.e.
16    QuicThread), the dependency is:
17
18```
19application -> quic_core -> quic_platform_api
20      |                             |
21      v                             v
22platform_infrastructure <- quic_platform_impl
23```
24
25-   APIs used by applications:
26
27    Some APIs are used by applications to interact with QUIC core (i.e.
28    QuicMemSlice). For such APIs, their dependency model is:
29
30```
31application -> quic_core -> quic_platform_api
32    |                            ^
33    |                            |
34     -------------------> quic_platform_impl
35    |                            |
36    |                            v
37     -------------------> platform_infrastructure
38```
39
40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An example for such dependency
41is QuicClock.
42
43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Or
44
45```
46application -> quic_core -> quic_platform_api
47    |                            ^
48    |                            |
49    |                            v
50     -------------------> quic_platform_impl
51    |                            |
52    |                            v
53     -------------------> platform_infrastructure
54```
55
56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An example for such dependency
57is QuicMemSlice.
58
59# Documentation of each API and its usage.
60
61QuicMemSlice
62:   QuicMemSlice is used to wrap application data and pass to QUIC stream's
63    write interface. It refers to a memory block of data which should be around
64    till QuicMemSlice::Reset() is called. It's upto each platform, to implement
65    it as reference counted or not.
66
67QuicClock
68:   QuicClock is used by QUIC core to get current time. Its instance is created
69    by applications and passed into QuicDispatcher and
70    QuicConnectionHelperInterface.
71
72TODO(b/131224336) add document for other APIs
73