Skip to content
Daniel Esambu
Work
Work
Projects
Things I've built
Leka
A C++20 matching engine
Latency Lab
(opens in a new tab)
A C++ course I wrote
Resume
The formal version
Writing
Writing
Poetry
Poems, shelved by what they're about
Essays
Notes and essays
Math
Math
Notes
Notes I've written up
IB papers
Worked exam questions
Calculus lessons
(opens in a new tab)
On YouTube
Life
Life
Photos
Things I stopped to look at
Training
Reps, not phases
Modeling
Measurements and photos
Resume
Say hi
Say hi
Resume
Menu
Leka
A low-latency C++20 price-time-priority limit order book and matching engine
Replay viewer
Toggle main menu visibility
Loading...
Searching...
No Matches
sequence_number.hpp
1
#ifndef SEQUENCE_NUMBER_HPP
2
#define SEQUENCE_NUMBER_HPP
3
#include <cstdint>
4
#include <compare>
5
6
namespace
lob {
7
/** @brief Monotonic engine sequence used for deterministic processing order. */
8
class
SequenceNumber
{
9
private
:
10
std::uint64_t sequenceNumber;
11
12
public
:
13
/** Constructs an invalid, zero-valued sequence number. */
14
explicit
SequenceNumber
(): sequenceNumber(0){}
15
16
/** Constructs a sequence number from its numeric value. */
17
explicit
SequenceNumber
(std::uint64_t sequenceNumber): sequenceNumber(sequenceNumber){}
18
19
/** Returns the underlying sequence value. */
20
std::uint64_t
getSequenceNumber
()
const
{
return
sequenceNumber; }
21
22
/** Returns whether the sequence number is nonzero. */
23
bool
isValid
()
const
{
24
return
sequenceNumber != 0;
25
};
26
27
/** Compares sequence numbers by processing order. */
28
auto
operator<=>
(
const
SequenceNumber
&other)
const
=
default
;
29
};
30
}
// namespace lob
31
#endif
// SEQUENCE_NUMBER_HPP
lob::SequenceNumber::operator<=>
auto operator<=>(const SequenceNumber &other) const =default
Compares sequence numbers by processing order.
lob::SequenceNumber::getSequenceNumber
std::uint64_t getSequenceNumber() const
Returns the underlying sequence value.
Definition
sequence_number.hpp:20
lob::SequenceNumber::SequenceNumber
SequenceNumber()
Constructs an invalid, zero-valued sequence number.
Definition
sequence_number.hpp:14
lob::SequenceNumber::isValid
bool isValid() const
Returns whether the sequence number is nonzero.
Definition
sequence_number.hpp:23
lob::SequenceNumber::SequenceNumber
SequenceNumber(std::uint64_t sequenceNumber)
Constructs a sequence number from its numeric value.
Definition
sequence_number.hpp:17
include
lob
types
sequence_number.hpp
Generated by
1.18.0