chromium/net/third_party/quiche/src/quiche/quic/core/quic_packet_number.h

// Copyright (c) 2019 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_CORE_QUIC_PACKET_NUMBER_H_
#define QUICHE_QUIC_CORE_QUIC_PACKET_NUMBER_H_

#include <limits>
#include <ostream>
#include <string>

#include "quiche/quic/platform/api/quic_export.h"
#include "quiche/quic/platform/api/quic_logging.h"

namespace quic {

// QuicPacketNumber can either initialized or uninitialized. An initialized
// packet number is simply an ordinal number. A sentinel value is used to
// represent an uninitialized packet number.
class QUICHE_EXPORT QuicPacketNumber {};

class QUICHE_EXPORT QuicPacketNumberHash {};

inline bool operator==(QuicPacketNumber lhs, QuicPacketNumber rhs) {}

inline bool operator!=(QuicPacketNumber lhs, QuicPacketNumber rhs) {}

inline bool operator<(QuicPacketNumber lhs, QuicPacketNumber rhs) {}

inline bool operator<=(QuicPacketNumber lhs, QuicPacketNumber rhs) {}

inline bool operator>(QuicPacketNumber lhs, QuicPacketNumber rhs) {}

inline bool operator>=(QuicPacketNumber lhs, QuicPacketNumber rhs) {}

inline QuicPacketNumber operator+(QuicPacketNumber lhs, uint64_t delta) {}

inline QuicPacketNumber operator-(QuicPacketNumber lhs, uint64_t delta) {}

inline uint64_t operator-(QuicPacketNumber lhs, QuicPacketNumber rhs) {}

}  // namespace quic

#endif  // QUICHE_QUIC_CORE_QUIC_PACKET_NUMBER_H_