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