Monado OpenXR Runtime

Server side IPC code. More...

Collaboration diagram for Server IPC:

Modules

 Server Internals
 These are only called by the platform-specific mainloop polling code.
 

Files

file  ipc_server.h
 Common server side code.
 
file  ipc_server_handler.c
 Handling functions called from generated dispatch function.
 
file  ipc_server_interface.h
 Interface for IPC server code.
 
file  ipc_server_mainloop_android.c
 Server mainloop details on Android.
 
file  ipc_server_mainloop_android.h
 Additional server entry points needed for Android.
 
file  ipc_server_mainloop_linux.c
 Server mainloop details on Linux.
 
file  ipc_server_mainloop_windows.cpp
 Server mainloop details on Windows.
 
file  ipc_server_per_client_thread.c
 Per client thread listening on the socket.
 
file  ipc_server_process.c
 Server process functions.
 

Data Structures

struct  ipc_swapchain_data
 Information about a single swapchain. More...
 
struct  ipc_client_state
 Holds the state for a single client. More...
 
struct  ipc_server_mainloop
 Platform-specific mainloop object for the IPC server. More...
 
struct  ipc_server
 Main IPC object for the server. More...
 

Functions

xrt_result_t ipc_server_get_client_app_state (struct ipc_server *s, uint32_t client_id, struct ipc_app_state *out_ias)
 Get the current state of a client. More...
 
xrt_result_t ipc_server_set_active_client (struct ipc_server *s, uint32_t client_id)
 Set the new active client. More...
 
xrt_result_t ipc_server_toggle_io_client (struct ipc_server *s, uint32_t client_id)
 Toggle the io for this client. More...
 
void ipc_server_activate_session (volatile struct ipc_client_state *ics)
 Called by client threads to set a session to active. More...
 
void ipc_server_deactivate_session (volatile struct ipc_client_state *ics)
 Called by client threads to set a session to deactivate. More...
 
void ipc_server_update_state (struct ipc_server *s)
 Called by client threads to recalculate active client. More...
 
void * ipc_server_client_thread (void *_ics)
 Thread function for the client side dispatching. More...
 
int ipc_server_main (int argc, char **argv)
 Main entrypoint to the compositor process. More...
 

Detailed Description

Server side IPC code.

Function Documentation

◆ ipc_server_activate_session()

void ipc_server_activate_session ( volatile struct ipc_client_state ics)

#include <ipc/server/ipc_server.h>

Called by client threads to set a session to active.

References os_mutex::os_mutex_lock(), and ipc_client_state::server.

◆ ipc_server_client_thread()

void* ipc_server_client_thread ( void *  _ics)

#include <ipc/server/ipc_server.h>

Thread function for the client side dispatching.

◆ ipc_server_deactivate_session()

void ipc_server_deactivate_session ( volatile struct ipc_client_state ics)

#include <ipc/server/ipc_server.h>

Called by client threads to set a session to deactivate.

References os_mutex::os_mutex_lock(), and ipc_client_state::server.

◆ ipc_server_get_client_app_state()

xrt_result_t ipc_server_get_client_app_state ( struct ipc_server s,
uint32_t  client_id,
struct ipc_app_state out_ias 
)

#include <ipc/server/ipc_server.h>

Get the current state of a client.

References os_mutex::os_mutex_lock().

◆ ipc_server_main()

int ipc_server_main ( int  argc,
char **  argv 
)

#include <ipc/server/ipc_server_interface.h>

Main entrypoint to the compositor process.

◆ ipc_server_set_active_client()

xrt_result_t ipc_server_set_active_client ( struct ipc_server s,
uint32_t  client_id 
)

#include <ipc/server/ipc_server.h>

Set the new active client.

References os_mutex::os_mutex_lock().

◆ ipc_server_toggle_io_client()

xrt_result_t ipc_server_toggle_io_client ( struct ipc_server s,
uint32_t  client_id 
)

#include <ipc/server/ipc_server.h>

Toggle the io for this client.

References os_mutex::os_mutex_lock().

◆ ipc_server_update_state()

void ipc_server_update_state ( struct ipc_server s)

#include <ipc/server/ipc_server.h>

Called by client threads to recalculate active client.

References os_mutex::os_mutex_lock().