1# Copyright 2021 Google LLC 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15package( 16 default_visibility = [ 17 "//fcp:internal", 18 ], 19 licenses = ["notice"], # Apache 2.0 20) 21 22cc_library( 23 name = "http_client", 24 hdrs = ["http_client.h"], 25 visibility = ["//visibility:public"], 26 deps = [ 27 "@com_google_absl//absl/base:core_headers", 28 "@com_google_absl//absl/container:flat_hash_map", 29 "@com_google_absl//absl/status", 30 "@com_google_absl//absl/status:statusor", 31 "@com_google_absl//absl/strings", 32 ], 33) 34 35cc_library( 36 name = "http_client_util", 37 srcs = ["http_client_util.cc"], 38 hdrs = ["http_client_util.h"], 39 deps = [ 40 ":http_client", 41 "//fcp/base", 42 "@com_google_absl//absl/status", 43 "@com_google_absl//absl/status:statusor", 44 "@com_google_absl//absl/strings", 45 "@com_google_absl//absl/strings:str_format", 46 "@com_google_googleapis//google/rpc:status_cc_proto", 47 ], 48) 49 50cc_test( 51 name = "http_client_util_test", 52 srcs = ["http_client_util_test.cc"], 53 deps = [ 54 ":http_client_util", 55 "//fcp/base", 56 "//fcp/testing", 57 "@com_google_absl//absl/status", 58 "@com_google_googleapis//google/rpc:status_cc_proto", 59 "@com_google_googletest//:gtest_main", 60 ], 61) 62 63proto_library( 64 name = "http_resource_metadata_proto", 65 srcs = ["http_resource_metadata.proto"], 66) 67 68cc_proto_library( 69 name = "http_resource_metadata_cc_proto", 70 deps = [":http_resource_metadata_proto"], 71) 72 73cc_library( 74 name = "in_memory_request_response", 75 srcs = ["in_memory_request_response.cc"], 76 hdrs = ["in_memory_request_response.h"], 77 deps = [ 78 ":http_client", 79 ":http_client_util", 80 ":http_resource_metadata_cc_proto", 81 "//fcp/base", 82 "//fcp/client:interruptible_runner", 83 "//fcp/client/cache:resource_cache", 84 "@com_google_absl//absl/base:core_headers", 85 "@com_google_absl//absl/status", 86 "@com_google_absl//absl/status:statusor", 87 "@com_google_absl//absl/strings", 88 "@com_google_absl//absl/strings:cord", 89 "@com_google_absl//absl/synchronization", 90 "@com_google_absl//absl/time", 91 "@com_google_protobuf//:protobuf", 92 ], 93) 94 95cc_test( 96 name = "in_memory_request_response_test", 97 srcs = ["in_memory_request_response_test.cc"], 98 deps = [ 99 ":http_client", 100 ":http_client_util", 101 ":http_resource_metadata_cc_proto", 102 ":in_memory_request_response", 103 "//fcp/base", 104 "//fcp/base:simulated_clock", 105 "//fcp/client:diag_codes_cc_proto", 106 "//fcp/client:interruptible_runner", 107 "//fcp/client:test_helpers", 108 "//fcp/client/cache:file_backed_resource_cache", 109 "//fcp/client/cache:test_helpers", 110 "//fcp/client/http/testing:test_helpers", 111 "//fcp/testing", 112 "@com_google_absl//absl/status", 113 "@com_google_absl//absl/status:statusor", 114 "@com_google_absl//absl/strings", 115 "@com_google_absl//absl/strings:cord", 116 "@com_google_absl//absl/synchronization", 117 "@com_google_absl//absl/time", 118 "@com_google_googletest//:gtest_main", 119 "@com_google_protobuf//:protobuf", 120 ], 121) 122 123cc_library( 124 name = "http_federated_protocol", 125 srcs = ["http_federated_protocol.cc"], 126 hdrs = [ 127 "http_federated_protocol.h", 128 ], 129 deps = [ 130 ":http_client", 131 ":http_client_util", 132 ":http_secagg_send_to_server_impl", 133 ":in_memory_request_response", 134 ":protocol_request_helper", 135 "//fcp/base", 136 "//fcp/base:clock", 137 "//fcp/base:time_util", 138 "//fcp/base:wall_clock_stopwatch", 139 "//fcp/client:diag_codes_cc_proto", 140 "//fcp/client:federated_protocol", 141 "//fcp/client:federated_protocol_util", 142 "//fcp/client:fl_runner_cc_proto", 143 "//fcp/client:interfaces", 144 "//fcp/client:interruptible_runner", 145 "//fcp/client:parsing_utils", 146 "//fcp/client:secagg_runner", 147 "//fcp/client:selector_context_cc_proto", 148 "//fcp/client/cache:resource_cache", 149 "//fcp/client/engine:engine_cc_proto", 150 "//fcp/protos:federated_api_cc_proto", 151 "//fcp/protos:plan_cc_proto", 152 "//fcp/protos/federatedcompute:federated_compute_cc_proto", 153 "//fcp/secagg/client", 154 "@com_google_absl//absl/container:flat_hash_set", 155 "@com_google_absl//absl/random", 156 "@com_google_absl//absl/status", 157 "@com_google_absl//absl/status:statusor", 158 "@com_google_absl//absl/strings", 159 "@com_google_absl//absl/strings:cord", 160 "@com_google_absl//absl/time", 161 "@com_google_googleapis//google/longrunning:longrunning_cc_proto", 162 "@com_google_googleapis//google/rpc:code_cc_proto", 163 "@com_google_protobuf//:protobuf", 164 ], 165) 166 167cc_test( 168 name = "http_federated_protocol_test", 169 srcs = ["http_federated_protocol_test.cc"], 170 deps = [ 171 ":http_client", 172 ":http_client_util", 173 ":http_federated_protocol", 174 ":in_memory_request_response", 175 "//fcp/base", 176 "//fcp/base:clock", 177 "//fcp/base:time_util", 178 "//fcp/base:wall_clock_stopwatch", 179 "//fcp/client:diag_codes_cc_proto", 180 "//fcp/client:federated_protocol", 181 "//fcp/client:federated_protocol_util", 182 "//fcp/client:interfaces", 183 "//fcp/client:interruptible_runner", 184 "//fcp/client:test_helpers", 185 "//fcp/client/cache:test_helpers", 186 "//fcp/client/engine:engine_cc_proto", 187 "//fcp/client/http/testing:test_helpers", 188 "//fcp/protos:federated_api_cc_proto", 189 "//fcp/protos:plan_cc_proto", 190 "//fcp/protos/federatedcompute:federated_compute_cc_proto", 191 "//fcp/secagg/shared:cc_proto", 192 "//fcp/testing", 193 "@com_google_absl//absl/memory", 194 "@com_google_absl//absl/random", 195 "@com_google_absl//absl/status", 196 "@com_google_absl//absl/status:statusor", 197 "@com_google_absl//absl/strings", 198 "@com_google_absl//absl/synchronization", 199 "@com_google_absl//absl/time", 200 "@com_google_googleapis//google/longrunning:longrunning_cc_proto", 201 "@com_google_googleapis//google/rpc:code_cc_proto", 202 "@com_google_googletest//:gtest_main", 203 "@com_google_protobuf//:protobuf", 204 ], 205) 206 207cc_library( 208 name = "http_secagg_send_to_server_impl", 209 srcs = ["http_secagg_send_to_server_impl.cc"], 210 hdrs = ["http_secagg_send_to_server_impl.h"], 211 visibility = ["//visibility:private"], 212 deps = [ 213 ":http_client_util", 214 ":protocol_request_helper", 215 "//fcp/client:interfaces", 216 "//fcp/client:secagg_runner", 217 "//fcp/protos/federatedcompute:federated_compute_cc_proto", 218 "//fcp/secagg/shared:cc_proto", 219 "@com_google_absl//absl/status", 220 "@com_google_absl//absl/status:statusor", 221 "@com_google_absl//absl/strings", 222 "@com_google_googleapis//google/rpc:code_cc_proto", 223 "@com_google_protobuf//:protobuf", 224 ], 225) 226 227cc_test( 228 name = "http_secagg_send_to_server_impl_test", 229 srcs = ["http_secagg_send_to_server_impl_test.cc"], 230 deps = [ 231 ":http_secagg_send_to_server_impl", 232 "//fcp/base:simulated_clock", 233 "//fcp/client:test_helpers", 234 "//fcp/client/http/testing:test_helpers", 235 "//fcp/protos/federatedcompute:federated_compute_cc_proto", 236 "//fcp/testing", 237 "@com_google_absl//absl/time", 238 "@com_google_googleapis//google/longrunning:longrunning_cc_proto", 239 "@com_google_googleapis//google/rpc:code_cc_proto", 240 ], 241) 242 243cc_library( 244 name = "protocol_request_helper", 245 srcs = ["protocol_request_helper.cc"], 246 hdrs = ["protocol_request_helper.h"], 247 deps = [ 248 ":http_client", 249 ":http_client_util", 250 ":in_memory_request_response", 251 "//fcp/base:clock", 252 "//fcp/base:time_util", 253 "//fcp/base:wall_clock_stopwatch", 254 "//fcp/protos/federatedcompute:federated_compute_cc_proto", 255 "@com_google_absl//absl/container:flat_hash_set", 256 "@com_google_absl//absl/status", 257 "@com_google_absl//absl/status:statusor", 258 "@com_google_absl//absl/strings", 259 "@com_google_googleapis//google/longrunning:longrunning_cc_proto", 260 "@com_google_protobuf//:protobuf", 261 ], 262) 263 264cc_test( 265 name = "protocol_request_helper_test", 266 srcs = ["protocol_request_helper_test.cc"], 267 deps = [ 268 ":protocol_request_helper", 269 "//fcp/base:time_util", 270 "//fcp/client:test_helpers", 271 "//fcp/client/http/testing:test_helpers", 272 "//fcp/protos/federatedcompute:federated_compute_cc_proto", 273 "//fcp/testing", 274 "@com_google_protobuf//:protobuf", 275 ], 276) 277