# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.

# Auto-generated by quic/facebook/generate_cmake.py - DO NOT EDIT MANUALLY

mvfst_add_library(mvfst_state_outstanding_packet
  EXPORTED_DEPS
    mvfst_codec_types
    mvfst_state_cloned_packet_identifier
    mvfst_state_loss_state
    Folly::folly_io_socket_option_map
)

mvfst_add_library(mvfst_state_loss_event
  EXPORTED_DEPS
    mvfst_common_optional
    mvfst_constants
    mvfst_state_outstanding_packet
)

mvfst_add_library(mvfst_state_early_data_app_params_handler
  EXPORTED_DEPS
    mvfst_common_buf_util
    mvfst_common_optional
)

mvfst_add_library(mvfst_state_loss_state
  EXPORTED_DEPS
    mvfst_codec_types
    mvfst_common_enum_array
)

mvfst_add_library(mvfst_state_transport_settings
  EXPORTED_DEPS
    mvfst_common_optional
    mvfst_constants
    mvfst_priority_priority_queue
    Folly::folly_network_address
)

mvfst_add_library(mvfst_state_ack_states
  EXPORTED_DEPS
    mvfst_codec_types
    mvfst_common_interval_set
    mvfst_constants
    Folly::folly_random
)

mvfst_add_library(mvfst_state_cloned_packet_identifier
  SRCS
    ClonedPacketIdentifier.cpp
  EXPORTED_DEPS
    mvfst_codec_types
)

mvfst_add_library(mvfst_state_quic_stream_utilities
  SRCS
    QuicStreamUtilities.cpp
  EXPORTED_DEPS
    mvfst_codec_types
    mvfst_constants
)

mvfst_add_library(mvfst_state_quic_state_machine
  SRCS
    QuicPathManager.cpp
    QuicStreamManager.cpp
    StateData.cpp
  DEPS
    mvfst_logging_qlogger_macros
    mvfst_priority_http_priority_queue
  EXPORTED_DEPS
    mvfst_codec
    mvfst_codec_types
    mvfst_common_buf_accessor
    mvfst_common_circular_deque
    mvfst_common_expected
    mvfst_common_function_ref
    mvfst_common_interval_set
    mvfst_common_mvfst_logging
    mvfst_common_optional
    mvfst_common_udpsocket_quic_async_udp_socket
    mvfst_config
    mvfst_congestion_control_congestion_controller
    mvfst_congestion_control_packet_processor
    mvfst_congestion_control_throttling_signal_provider
    mvfst_constants
    mvfst_datagram_datagram_flow_manager
    mvfst_handshake
    mvfst_logging_oops_logger
    mvfst_logging_qlogger
    mvfst_observer_socket_observer_types
    mvfst_priority_priority_queue
    mvfst_state_ack_event
    mvfst_state_ack_states
    mvfst_state_cloned_packet_identifier
    mvfst_state_early_data_app_params_handler
    mvfst_state_loss_state
    mvfst_state_outstanding_packet
    mvfst_state_quic_connection_stats
    mvfst_state_stats_callback
    mvfst_state_transport_settings
    Folly::folly_container_f14_hash
    Folly::folly_io_async_delayed_destruction
    Folly::folly_token_bucket
)

mvfst_add_library(mvfst_state_connection_oops_fields
  EXPORTED_DEPS
    mvfst_logging_oops_logger_oops_fields
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_state_ack_handler
  SRCS
    AckHandlers.cpp
    AckedPacketIterator.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_congestion_control_congestion_control_functions
    mvfst_logging_oops_logger
    mvfst_loss
    mvfst_observer_socket_observer_macros
    mvfst_state_connection_oops_fields
    mvfst_state_state_functions
    mvfst_state_stream_functions
    Folly::folly_map_util
    Folly::folly_tracing_static_tracepoint
  EXPORTED_DEPS
    mvfst_codec_types
    mvfst_common_expected
    mvfst_common_function_ref
    mvfst_common_interval_set
    mvfst_common_optional
    mvfst_congestion_control_congestion_controller
    mvfst_constants
    mvfst_state_outstanding_packet
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_state_stream_functions
  SRCS
    QuicStreamFunctions.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_constants
    mvfst_exception
    mvfst_flowcontrol_flow_control
    mvfst_logging_oops_logger
  EXPORTED_DEPS
    mvfst_common_expected
    mvfst_common_function_ref
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_state_state_functions
  SRCS
    QuicStateFunctions.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_common_time_util
    mvfst_logging_oops_logger
    mvfst_logging_qlogger_macros
    mvfst_state_connection_oops_fields
  EXPORTED_DEPS
    mvfst_codec_pktbuilder
    mvfst_codec_types
    mvfst_common_expected
    mvfst_common_interval_set
    mvfst_common_network_data
    mvfst_constants
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_state_stats_callback
  EXPORTED_DEPS
    mvfst_common_optional
    mvfst_constants
    mvfst_exception
)

mvfst_add_library(mvfst_state_pacing_functions
  SRCS
    QuicPacingFunctions.cpp
  EXPORTED_DEPS
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_state_simple_frame_functions
  SRCS
    SimpleFrameFunctions.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_constants
    mvfst_logging_oops_logger
    mvfst_state_connection_oops_fields
    mvfst_state_state_functions
    mvfst_state_stream
  EXPORTED_DEPS
    mvfst_codec_types
    mvfst_common_expected
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_state_quic_connection_stats
  EXPORTED_DEPS
    mvfst_config
    mvfst_congestion_control_congestion_controller
    mvfst_constants
)

mvfst_add_library(mvfst_state_datagram_handler
  SRCS
    DatagramHandlers.cpp
  EXPORTED_DEPS
    mvfst_codec_types
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_state_ack_event
  SRCS
    AckEvent.cpp
  DEPS
    mvfst_common_mvfst_logging
    Folly::folly_map_util
  EXPORTED_DEPS
    mvfst_codec_types
    mvfst_common_optional
    mvfst_congestion_control_congestion_controller
    mvfst_state_outstanding_packet
)

mvfst_add_library(mvfst_state_ack_frequency_functions
  SRCS
    QuicAckFrequencyFunctions.cpp
  DEPS
    mvfst_common_mvfst_logging
    mvfst_common_time_util
  EXPORTED_DEPS
    mvfst_state_quic_state_machine
)

mvfst_add_library(mvfst_state_transport_settings_functions
  SRCS
    TransportSettingsFunctions.cpp
  EXPORTED_DEPS
    mvfst_state_transport_settings
    Folly::folly_dynamic
)

add_subdirectory(stream)

add_subdirectory(test)
