Monado OpenXR Runtime
Loading...
Searching...
No Matches
b_io_cache.hpp
Go to the documentation of this file.
1// Copyright 2026, NVIDIA CORPORATION.
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief C++ base implementation of @ref xrt_io_cache.
6 * @ingroup base
7 */
8
9#pragma once
10
11#include "b_io_cache.h"
12
13#include "glue/g_io_cache.hpp"
14
15
16class IoCache : public xrt::util::IoCacheBase<IoCache>
17{
18public: // Methods
20
22 getInfo(xrt_io_cache_info *out_info);
23
25 read(uint64_t generation_id,
26 uint32_t input_count,
27 xrt_input *inputs,
28 uint32_t output_count,
29 xrt_output *outputs,
30 bool *out_stale);
31
33 createSpace(xrt_device_id id, xrt_input_name name, xrt_space **out_space);
34
36 setOutput(xrt_device_id id, xrt_output_name name, const xrt_output_value *value);
37
39 getOutputLimits(xrt_device_id id, xrt_output_limits *out_limits);
40
41 static void
42 destroyIoCache(struct xrt_io_cache *xic);
43
44
45private: // Members
46 struct xrt_system_devices *mSystemDevices{nullptr};
47 struct xrt_space_overseer *mXso{nullptr};
48};
Base implementation factory for xrt_io_cache.
Definition b_io_cache.hpp:17
CRTP glue wrapper for xrt_io_cache.
Definition g_io_cache.hpp:27
Header for glue classes to wrap xrt input/output cache interfaces.
xrt_input_name
Every internal input source known to monado with a baked in type.
Definition xrt_defines.h:952
enum xrt_result xrt_result_t
Result type used across Monado.
xrt_output_name
Name of a output with a baked in type.
Definition xrt_defines.h:1636
A unique identifier for an xrt_device instance.
Definition xrt_device.h:47
A single named input, that sits on a xrt_device.
Definition xrt_device.h:236
Snapshot of the cache layout.
Definition xrt_io_cache.h:75
A cache of flattened device inputs and outputs.
Definition xrt_io_cache.h:116
Output limits of a particular device.
Definition xrt_device.h:275
A union of all output types.
Definition xrt_defines.h:2413
A single named output, that sits on a xrt_device.
Definition xrt_device.h:254
Object that oversees and manages spaces, one created for each XR system.
Definition xrt_space.h:97
A space very similar to a OpenXR XrSpace but not a full one-to-one mapping, but used to power XrSpace...
Definition xrt_space.h:32
A collection of xrt_device, and an interface for identifying the roles they have been assigned.
Definition xrt_system.h:218