chromium/net/third_party/quiche/src/quiche/quic/tools/devious_baton.h

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

#ifndef QUICHE_QUIC_TOOLS_DEVIOUS_BATON_H_
#define QUICHE_QUIC_TOOLS_DEVIOUS_BATON_H_

#include "quiche/common/quiche_callbacks.h"
#include "quiche/common/quiche_circular_deque.h"
#include "quiche/web_transport/web_transport.h"

namespace quic {

// https://www.ietf.org/id/draft-frindell-webtrans-devious-baton-00.html#name-session-error-codes
inline constexpr webtransport::SessionErrorCode kDeviousBatonErrorDaYamn =;  // Insufficient flow control credit
inline constexpr webtransport::SessionErrorCode kDeviousBatonErrorBruh =;  // Parse error
inline constexpr webtransport::SessionErrorCode kDeviousBatonErrorSus =;  // Unexpected message
inline constexpr webtransport::SessionErrorCode kDeviousBatonErrorBored =;  // Timeout

DeviousBatonValue;

// Implementation of the Devious Baton protocol as described in
// https://www.ietf.org/id/draft-frindell-webtrans-devious-baton-00.html
class DeviousBatonSessionVisitor : public webtransport::SessionVisitor {};

}  // namespace quic

#endif  // QUICHE_QUIC_TOOLS_DEVIOUS_BATON_H_