Moonlight-XboxOG latest
Moonlight Xbox OG is a port of the Moonlight Game Streaming client to the original Xbox console.
host_probe_result_queue.h File Reference

Declares queued host probe results. More...

#include <cstddef>
#include <cstdint>
#include <mutex>
#include <string>
#include <vector>
#include "src/network/host_pairing.h"
Include dependency graph for host_probe_result_queue.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ui::HostProbeResult
 One completed saved-host reachability probe. More...
 
class  ui::HostProbeResultQueue
 Thread-safe queue used to publish per-host probe results back to the shell loop. More...
 

Functions

void ui::begin_host_probe_result_round (HostProbeResultQueue *queue, std::size_t targetCount)
 Start a fresh probe round with a known number of expected results.
 
std::vector< HostProbeResultui::drain_host_probe_results (HostProbeResultQueue *queue)
 Drain every probe result currently waiting in the queue.
 
bool ui::host_probe_result_round_complete (const HostProbeResultQueue &queue)
 Return whether the active probe round has published every expected result.
 
void ui::publish_host_probe_result (HostProbeResultQueue *queue, HostProbeResult result)
 Publish one completed host probe into the queue.
 
void ui::reset_host_probe_result_queue (HostProbeResultQueue *queue)
 Reset the queued probe results and counters for a queue.
 
void ui::skip_host_probe_result_target (HostProbeResultQueue *queue)
 Remove one expected result from the active probe round.
 

Detailed Description

Declares queued host probe results.

Function Documentation

◆ begin_host_probe_result_round()

void ui::begin_host_probe_result_round ( HostProbeResultQueue * queue,
std::size_t targetCount )

Start a fresh probe round with a known number of expected results.

Parameters
queueQueue that will receive probe results.
targetCountNumber of probe results expected for the new round.

◆ drain_host_probe_results()

std::vector< HostProbeResult > ui::drain_host_probe_results ( HostProbeResultQueue * queue)

Drain every probe result currently waiting in the queue.

Parameters
queueQueue whose pending results should be removed.
Returns
Completed probe results published since the previous drain.

◆ host_probe_result_round_complete()

bool ui::host_probe_result_round_complete ( const HostProbeResultQueue & queue)

Return whether the active probe round has published every expected result.

Parameters
queueQueue to inspect.
Returns
True when the current round has received every expected result.

◆ publish_host_probe_result()

void ui::publish_host_probe_result ( HostProbeResultQueue * queue,
HostProbeResult result )

Publish one completed host probe into the queue.

Parameters
queueQueue that receives the probe result.
resultCompleted host probe to append.

◆ reset_host_probe_result_queue()

void ui::reset_host_probe_result_queue ( HostProbeResultQueue * queue)

Reset the queued probe results and counters for a queue.

Parameters
queueQueue to clear.

◆ skip_host_probe_result_target()

void ui::skip_host_probe_result_target ( HostProbeResultQueue * queue)

Remove one expected result from the active probe round.

Use this when a planned probe worker could not be launched and therefore will never publish a result.

Parameters
queueQueue whose expected result count should be reduced.