/** * Copyright (c) 2020-2021 Paul-Louis Ageneau * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #ifndef RTC_GLOBAL_H #define RTC_GLOBAL_H #include "common.hpp" #include #include #include namespace rtc { enum class LogLevel { // Don't change, it must match plog severity None = 0, Fatal = 1, Error = 2, Warning = 3, Info = 4, Debug = 5, Verbose = 6 }; typedef std::function LogCallback; RTC_CPP_EXPORT void InitLogger(LogLevel level, LogCallback callback = nullptr); RTC_CPP_EXPORT void Preload(); RTC_CPP_EXPORT std::shared_future Cleanup(); struct SctpSettings { // For the following settings, not set means optimized default optional recvBufferSize; // in bytes optional sendBufferSize; // in bytes optional maxChunksOnQueue; // in chunks optional initialCongestionWindow; // in MTUs optional maxBurst; // in MTUs optional congestionControlModule; // 0: RFC2581, 1: HSTCP, 2: H-TCP, 3: RTCC optional delayedSackTime; optional minRetransmitTimeout; optional maxRetransmitTimeout; optional initialRetransmitTimeout; optional maxRetransmitAttempts; optional heartbeatInterval; }; RTC_CPP_EXPORT void SetSctpSettings(SctpSettings s); RTC_CPP_EXPORT std::ostream &operator<<(std::ostream &out, LogLevel level); } // namespace rtc #endif