xref: /aosp_15_r20/external/webrtc/net/dcsctp/socket/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1# Copyright (c) 2021 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS.  All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
9import("../../../webrtc.gni")
10
11rtc_source_set("context") {
12  sources = [ "context.h" ]
13  deps = [
14    "../common:internal_types",
15    "../packet:sctp_packet",
16    "../public:socket",
17    "../public:types",
18  ]
19  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
20}
21
22rtc_library("heartbeat_handler") {
23  deps = [
24    ":context",
25    "../../../api:array_view",
26    "../../../rtc_base:checks",
27    "../../../rtc_base:logging",
28    "../packet:bounded_io",
29    "../packet:chunk",
30    "../packet:parameter",
31    "../packet:sctp_packet",
32    "../public:socket",
33    "../public:types",
34    "../timer",
35  ]
36  sources = [
37    "heartbeat_handler.cc",
38    "heartbeat_handler.h",
39  ]
40  absl_deps = [
41    "//third_party/abseil-cpp/absl/functional:bind_front",
42    "//third_party/abseil-cpp/absl/strings",
43    "//third_party/abseil-cpp/absl/types:optional",
44  ]
45}
46
47rtc_library("stream_reset_handler") {
48  deps = [
49    ":context",
50    "../../../api:array_view",
51    "../../../rtc_base:checks",
52    "../../../rtc_base:logging",
53    "../../../rtc_base/containers:flat_set",
54    "../common:internal_types",
55    "../common:str_join",
56    "../packet:chunk",
57    "../packet:parameter",
58    "../packet:sctp_packet",
59    "../packet:tlv_trait",
60    "../public:socket",
61    "../public:types",
62    "../rx:data_tracker",
63    "../rx:reassembly_queue",
64    "../timer",
65    "../tx:retransmission_queue",
66  ]
67  sources = [
68    "stream_reset_handler.cc",
69    "stream_reset_handler.h",
70  ]
71  absl_deps = [
72    "//third_party/abseil-cpp/absl/functional:bind_front",
73    "//third_party/abseil-cpp/absl/strings",
74    "//third_party/abseil-cpp/absl/types:optional",
75  ]
76}
77
78rtc_library("packet_sender") {
79  deps = [
80    "../packet:sctp_packet",
81    "../public:socket",
82    "../public:types",
83    "../timer",
84  ]
85  sources = [
86    "packet_sender.cc",
87    "packet_sender.h",
88  ]
89  absl_deps = []
90}
91
92rtc_library("transmission_control_block") {
93  deps = [
94    ":context",
95    ":heartbeat_handler",
96    ":packet_sender",
97    ":stream_reset_handler",
98    "../../../api:array_view",
99    "../../../api/task_queue:task_queue",
100    "../../../rtc_base:checks",
101    "../../../rtc_base:logging",
102    "../../../rtc_base:stringutils",
103    "../common:sequence_numbers",
104    "../packet:chunk",
105    "../packet:sctp_packet",
106    "../public:socket",
107    "../public:types",
108    "../rx:data_tracker",
109    "../rx:reassembly_queue",
110    "../timer",
111    "../tx:retransmission_error_counter",
112    "../tx:retransmission_queue",
113    "../tx:retransmission_timeout",
114    "../tx:send_queue",
115  ]
116  sources = [
117    "capabilities.h",
118    "transmission_control_block.cc",
119    "transmission_control_block.h",
120  ]
121  absl_deps = [
122    "//third_party/abseil-cpp/absl/functional:bind_front",
123    "//third_party/abseil-cpp/absl/strings",
124    "//third_party/abseil-cpp/absl/types:optional",
125  ]
126}
127
128rtc_library("dcsctp_socket") {
129  deps = [
130    ":context",
131    ":heartbeat_handler",
132    ":packet_sender",
133    ":stream_reset_handler",
134    ":transmission_control_block",
135    "../../../api:array_view",
136    "../../../api:make_ref_counted",
137    "../../../api:refcountedbase",
138    "../../../api:scoped_refptr",
139    "../../../api:sequence_checker",
140    "../../../api/task_queue:task_queue",
141    "../../../rtc_base:checks",
142    "../../../rtc_base:logging",
143    "../../../rtc_base:stringutils",
144    "../common:internal_types",
145    "../packet:bounded_io",
146    "../packet:chunk",
147    "../packet:chunk_validators",
148    "../packet:data",
149    "../packet:error_cause",
150    "../packet:parameter",
151    "../packet:sctp_packet",
152    "../packet:tlv_trait",
153    "../public:socket",
154    "../public:types",
155    "../rx:data_tracker",
156    "../rx:reassembly_queue",
157    "../timer",
158    "../tx:retransmission_error_counter",
159    "../tx:retransmission_queue",
160    "../tx:retransmission_timeout",
161    "../tx:rr_send_queue",
162    "../tx:send_queue",
163  ]
164  sources = [
165    "callback_deferrer.cc",
166    "callback_deferrer.h",
167    "dcsctp_socket.cc",
168    "dcsctp_socket.h",
169    "state_cookie.cc",
170    "state_cookie.h",
171  ]
172  absl_deps = [
173    "//third_party/abseil-cpp/absl/functional:bind_front",
174    "//third_party/abseil-cpp/absl/memory",
175    "//third_party/abseil-cpp/absl/strings",
176    "//third_party/abseil-cpp/absl/types:optional",
177  ]
178}
179
180if (rtc_include_tests) {
181  rtc_source_set("mock_callbacks") {
182    testonly = true
183    sources = [ "mock_dcsctp_socket_callbacks.h" ]
184    deps = [
185      "../../../api:array_view",
186      "../../../api/task_queue:task_queue",
187      "../../../rtc_base:logging",
188      "../../../rtc_base:random",
189      "../../../test:test_support",
190      "../public:socket",
191      "../public:types",
192      "../timer",
193    ]
194    absl_deps = [
195      "//third_party/abseil-cpp/absl/strings",
196      "//third_party/abseil-cpp/absl/types:optional",
197    ]
198  }
199
200  rtc_source_set("mock_context") {
201    testonly = true
202    sources = [ "mock_context.h" ]
203    deps = [
204      ":context",
205      ":mock_callbacks",
206      "../../../test:test_support",
207      "../common:internal_types",
208      "../packet:sctp_packet",
209      "../public:socket",
210      "../public:types",
211    ]
212    absl_deps = [
213      "//third_party/abseil-cpp/absl/strings",
214      "//third_party/abseil-cpp/absl/types:optional",
215    ]
216  }
217
218  rtc_library("dcsctp_socket_unittests") {
219    testonly = true
220
221    deps = [
222      ":dcsctp_socket",
223      ":heartbeat_handler",
224      ":mock_callbacks",
225      ":mock_context",
226      ":packet_sender",
227      ":stream_reset_handler",
228      "../../../api:array_view",
229      "../../../api:create_network_emulation_manager",
230      "../../../api:network_emulation_manager_api",
231      "../../../api/task_queue",
232      "../../../api/task_queue:pending_task_safety_flag",
233      "../../../api/units:time_delta",
234      "../../../call:simulated_network",
235      "../../../rtc_base:checks",
236      "../../../rtc_base:copy_on_write_buffer",
237      "../../../rtc_base:gunit_helpers",
238      "../../../rtc_base:logging",
239      "../../../rtc_base:rtc_base_tests_utils",
240      "../../../rtc_base:socket_address",
241      "../../../rtc_base:stringutils",
242      "../../../rtc_base:timeutils",
243      "../../../test:test_support",
244      "../common:handover_testing",
245      "../common:internal_types",
246      "../packet:chunk",
247      "../packet:error_cause",
248      "../packet:parameter",
249      "../packet:sctp_packet",
250      "../packet:tlv_trait",
251      "../public:socket",
252      "../public:types",
253      "../public:utils",
254      "../rx:data_tracker",
255      "../rx:reassembly_queue",
256      "../testing:data_generator",
257      "../testing:testing_macros",
258      "../timer",
259      "../timer:task_queue_timeout",
260      "../tx:mock_send_queue",
261      "../tx:retransmission_queue",
262    ]
263    absl_deps = [
264      "//third_party/abseil-cpp/absl/flags:flag",
265      "//third_party/abseil-cpp/absl/memory",
266      "//third_party/abseil-cpp/absl/strings",
267      "//third_party/abseil-cpp/absl/types:optional",
268    ]
269    sources = [
270      "dcsctp_socket_network_test.cc",
271      "dcsctp_socket_test.cc",
272      "heartbeat_handler_test.cc",
273      "packet_sender_test.cc",
274      "state_cookie_test.cc",
275      "stream_reset_handler_test.cc",
276    ]
277  }
278}
279