libdisplaydevice master
C++ library to modify display devices.
settings_state_utils.h File Reference

Shared helpers for adapting settings state. More...

#include <algorithm>
#include <iterator>
#include <optional>
#include <string>
#include <string_view>
#include <vector>
#include "display_device/json.h"
#include "display_device/logging.h"
#include "display_device/types.h"
Include dependency graph for settings_state_utils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  display_device::detail::InitialStateStripMessages
 Log messages used while stripping unavailable devices from initial state. More...
 

Functions

template<typename Initial , typename FormatTopologyFn >
std::optional< Initial > display_device::detail::stripInitialState (const Initial &initial_state, const StringSet &available_device_ids, const StringSet &primary_device_ids, const InitialStateStripMessages &messages, const FormatTopologyFn &format_topology)
 Strip unavailable devices from an initial settings state.
 
template<typename Topology >
Topology display_device::detail::stripUnavailableTopology (const Topology &topology, const StringSet &available_device_ids)
 Strip unavailable device ids from a topology.
 

Detailed Description

Shared helpers for adapting settings state.

Function Documentation

◆ stripInitialState()

template<typename Initial , typename FormatTopologyFn >
std::optional< Initial > display_device::detail::stripInitialState ( const Initial & initial_state,
const StringSet & available_device_ids,
const StringSet & primary_device_ids,
const InitialStateStripMessages & messages,
const FormatTopologyFn & format_topology )
nodiscard

Strip unavailable devices from an initial settings state.

Template Parameters
InitialInitial state type.
FormatTopologyFnCallable type used to format topology values for logs.
Parameters
initial_stateInitial state to strip.
available_device_idsDevice ids currently available.
primary_device_idsCurrent primary device ids.
messagesLog messages to use for failure and adaptation cases.
format_topologyCallable used to format topology values.
Returns
Stripped initial state, or empty optional if no usable state remains.

◆ stripUnavailableTopology()

template<typename Topology >
Topology display_device::detail::stripUnavailableTopology ( const Topology & topology,
const StringSet & available_device_ids )
nodiscard

Strip unavailable device ids from a topology.

Template Parameters
TopologyTopology container type.
Parameters
topologyTopology to strip.
available_device_idsDevice ids currently available.
Returns
Topology containing only available device ids.