load("@fbcode//quic:defs.bzl", "mvfst_cpp_library")

# Common library

oncall("traffic_protocols")

mvfst_cpp_library(
    name = "priority_queue",
    headers = [
        "PriorityQueue.h",
    ],
    exported_deps = [
        "//quic/common:mvfst_logging",
        "//quic/common:optional",
    ],
)

mvfst_cpp_library(
    name = "round_robin",
    srcs = [
        "RoundRobin.cpp",
    ],
    headers = [
        "RoundRobin.h",
    ],
    deps = [
        "//quic/common:mvfst_logging",
        "//quic/logging/oops_logger:oops_logger",
    ],
    exported_deps = [
        ":priority_queue",
        "//quic:config",
        "//quic/common:optional",
    ],
)

mvfst_cpp_library(
    name = "http_priority_queue",
    srcs = [
        "HTTPPriorityQueue.cpp",
    ],
    headers = [
        "HTTPPriorityQueue.h",
    ],
    deps = [
        "//quic/common:mvfst_logging",
        "//quic/logging/oops_logger:oops_logger",
    ],
    exported_deps = [
        ":priority_queue",
        ":round_robin",
        "//folly:cpp_attributes",
        "//quic:config",
    ],
)
