#ifndef LIBANGLE_RENDERER_SERIAL_UTILS_H_
#define LIBANGLE_RENDERER_SERIAL_UTILS_H_
#include <array>
#include <atomic>
#include <limits>
#include "common/angleutils.h"
#include "common/debug.h"
namespace rx
{
class ResourceSerial
{ … };
class UniqueSerial final
{ … };
class UniqueSerialFactory final : angle::NonCopyable
{ … };
class Serial final
{ … };
class alignas(8) AtomicQueueSerial final
{ … };
static constexpr Serial kZeroSerial = …;
class RangedSerialFactory final : angle::NonCopyable
{ … };
class AtomicSerialFactory final : angle::NonCopyable
{ … };
SerialIndex;
static constexpr SerialIndex kInvalidQueueSerialIndex = …;
class QueueSerial;
constexpr size_t kMaxQueueSerialIndexCount = …;
class AtomicQueueSerialFixedArray final
{ … };
std::ostream &operator<<(std::ostream &os, const AtomicQueueSerialFixedArray &serials);
class QueueSerial final
{ … };
std::ostream &operator<<(std::ostream &os, const QueueSerial &queueSerial);
ANGLE_INLINE void AtomicQueueSerialFixedArray::setQueueSerial(SerialIndex index, Serial serial)
{ … }
ANGLE_INLINE void AtomicQueueSerialFixedArray::setQueueSerial(const QueueSerial &queueSerial)
{ … }
ANGLE_INLINE std::ostream &operator<<(std::ostream &os, const AtomicQueueSerialFixedArray &serials)
{ … }
ANGLE_INLINE std::ostream &operator<<(std::ostream &os, const QueueSerial &queueSerial)
{ … }
}
#endif