3#include "imr/mold/packet_builder.h"
4#include "imr/util/memory_mapped_file.h"
5#include "imr/mold/retransmission_buffer.h"
6#include "imr/mold/retransmission/feed_pool.h"
7#include "imr/mold/downstream/feed.h"
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
55
56
57
60
61
62
69
70
71
72
76
77
78
79
84
85
86
87
88
92
93
94
95
96
117 std::jthread downstream_thread_;
120 void join_downstream();
124
125
126
127
A MoldUDP64 server that replays NASDAQ TotalView-ITCH 5.0 files.
Definition server.h:52
Server(const Config &cfg)
Constructs server ready to start.
void start()
Starts downstream replay and retransmission feeds.
Server & operator=(Server &&)=delete
Server & operator=(const Server &)=delete
void wait_for_downstream()
Blocks caller until downstream replay finishes.
Server(const Server &)=delete
void stop()
Stop all feeds early (before downstream reaches end of file).
Builds MoldUDP64 packets.
Definition packet_builder.h:24
Retransmission buffer of the last buffer_size messages.
Definition retransmission_buffer.h:15
Replays a MoldUDP64 downstream feed over multicast.
Definition feed.h:25
Owns N (num_feeds) retransmission feeds.
Definition feed_pool.h:16
MoldUDP64 retransmission server.
Definition feed.h:18
RAII mmap file.
Definition memory_mapped_file.h:15
Definition file_descriptor.h:11
std::expected< std::unique_ptr< Server >, std::string > make_server(const Server::Config &cfg) noexcept
Allows you to construct server without try/catch block to handle configuration errors.
Aggregate for configuration of all server components.
Definition server.h:64
mold::PacketBuilder::Config packet_builder_cfg
Definition server.h:66
std::size_t retransmission_buffer_size
Capacity of the retransmission ring buffer in messages.
Definition server.h:73
util::MemoryMappedFile::Config mapped_itch_file_cfg
Definition server.h:65
std::size_t num_retransmission_feeds
Number of retransmission feed worker threads.
Definition server.h:80
mold::downstream::Feed::Config downstream_feed_config
Definition server.h:67
mold::retransmission::Feed::Config retransmission_feed_config
Definition server.h:74
Definition packet_builder.h:30
Definition memory_mapped_file.h:19