|
Monado OpenXR Runtime
|
Main IPC object for the server. More...
#include </builds/monado/monado/src/xrt/ipc/server/ipc_server.h>

Public Member Functions | |
| void | ipc_server_handle_client_connected (struct ipc_server *vs, xrt_ipc_handle_t ipc_handle) |
| Called when a client has connected, it takes the client's ipc handle. | |
| void | ipc_server_handle_failure (struct ipc_server *vs) |
| Perform whatever needs to be done when the mainloop polling encounters a failure. | |
| void | ipc_server_handle_shutdown_signal (struct ipc_server *vs) |
| Perform whatever needs to be done when the mainloop polling identifies that the server should be shut down. | |
| int | ipc_server_stop (struct ipc_server *s) |
| Asks the server to shut down, this call is asynchronous and will return immediately. | |
Data Fields | ||
| struct xrt_instance * | xinst | |
| struct u_process * | process | |
| Handle for the current process, e.g. pidfile on linux. | ||
| struct u_debug_gui * | debug_gui | |
| struct xrt_system * | xsys | |
| The XRT interfaces level system. | ||
| struct xrt_system_devices * | xsysd | |
| System devices. | ||
| struct xrt_space_overseer * | xso | |
| Space overseer. | ||
| struct xrt_system_compositor * | xsysc | |
| System compositor. | ||
| struct ipc_shared_memory * | isms [IPC_MAX_CLIENTS] | |
| struct ipc_server_mainloop | ml | |
| volatile bool | running | |
| bool | exit_on_disconnect | |
| bool | exit_when_idle | |
| uint64_t | last_client_disconnect_ns | |
| uint64_t | exit_when_idle_delay_ns | |
| int64_t | start_of_time_timestamp_ns | |
| Global start of time timestamp. | ||
| enum u_logging_level | log_level | |
| struct ipc_thread | threads [IPC_MAX_CLIENTS] | |
| volatile uint32_t | current_slot_index | |
| uint32_t | id_generator | |
| Generator for IDs. | ||
| struct { | ||
| int active_client_index | ||
| int last_active_client_index | ||
| uint32_t connected_client_count | ||
| struct os_mutex lock | ||
| } | global_state | |
| const struct ipc_server_callbacks * | callbacks | |
| Callbacks for server events. | ||
| void * | callback_data | |
| User data passed to callbacks. | ||
| bool | no_stdin | |
| Disable listening on stdin for server stop. | ||
Main IPC object for the server.
| int ipc_server_stop | ( | struct ipc_server * | s | ) |
Asks the server to shut down, this call is asynchronous and will return immediately.
Use callbacks to be notified when the server stops.
| void* ipc_server::callback_data |
User data passed to callbacks.
| const struct ipc_server_callbacks* ipc_server::callbacks |
Callbacks for server events.
Referenced by ipc_server_main_common().
| uint32_t ipc_server::id_generator |
Generator for IDs.
| bool ipc_server::no_stdin |
Disable listening on stdin for server stop.
Referenced by ipc_server_main_common().
| struct u_process* ipc_server::process |
Handle for the current process, e.g. pidfile on linux.
| int64_t ipc_server::start_of_time_timestamp_ns |
Global start of time timestamp.
XrTime that is returned to apps start from this timestamps (with an per app offset applied). In order to ensure that all timestamps for events and other data that is tracked by the runtime within the valid range of XrTime it is offset to be 42 minutes in the past from start of the runtime.
Used to get all the client's xrt_instance::startup_timestamp, to be close to each other but not exactly the same, which is then used to be the base of that app's XrTime start of time.
| struct xrt_space_overseer* ipc_server::xso |
Space overseer.
Referenced by ipc_server_init_system_if_available_locked().
| struct xrt_system* ipc_server::xsys |
The XRT interfaces level system.
Referenced by ipc_server_init_system_if_available_locked().
| struct xrt_system_compositor* ipc_server::xsysc |
System compositor.
Referenced by ipc_server_init_system_if_available_locked().
| struct xrt_system_devices* ipc_server::xsysd |
System devices.
Referenced by ipc_server_init_system_if_available_locked(), and ipc_server_main_common().