# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

visibility = [ "$cobalt_root/*" ]

source_set("shipping_manager") {
  sources = [
    "shipping_manager.cc",
    "shipping_manager.h",
    "upload_scheduler.cc",
    "upload_scheduler.h",
  ]
  deps = [
    "$cobalt_root/src/lib/util:posix_file_system",
    "$cobalt_root/src/lib/util:protected_fields",
    "$cobalt_root/src/lib/util:proto_serialization",
    "$cobalt_root/src/logger:internal_metrics",
    "$cobalt_root/src/public:activity_listener_interface",
    "$cobalt_root/src/public:cobalt_config",
    "$cobalt_root/src/public:diagnostics_interface",
    "$cobalt_root/src/public/lib:registry_identifiers",
    "$cobalt_root/src/system_data",
    "$cobalt_root/src/system_data:configuration_data",
  ]
  public_deps = [
    "$cobalt_root/src/lib/clearcut",
    "$cobalt_root/src/logger:logger_interface",
    "$cobalt_root/src/observation_store",
    "$cobalt_root/src/observation_store:observation_store_update_recipient",
  ]
}

source_set("tests") {
  testonly = true

  sources = [
    "shipping_manager_test.cc",
    "upload_scheduler_test.cc",
  ]

  deps = [
    ":shipping_manager",
    "$cobalt_root/src/lib/util:posix_file_system",
    "$cobalt_root/src/lib/util:proto_serialization",
    "$cobalt_root/src/logger:fake_logger",
    "$cobalt_root/src/system_data:fake_system_data",
    "//third_party/googletest:gtest",
  ]
}
