Sunshine latest
Self-hosted game stream host for Moonlight.
process.h File Reference

Declarations for the startup and shutdown of the apps started by a streaming Session. More...

#include <optional>
#include <unordered_map>
#include <boost/process/v1.hpp>
#include "config.h"
#include "platform/common.h"
#include "rtsp.h"
#include "utility.h"
Include dependency graph for process.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  proc::ctx_t
 
class  proc::proc_t
 

Typedefs

typedef config::prep_cmd_t proc::cmd_t
 
using proc::file_t = util::safe_ptr_v2<FILE, int, fclose>
 

Functions

std::tuple< std::string, std::string > proc::calculate_app_id (const std::string &app_name, std::string app_image_path, int index)
 Calculate a stable id based on name and image data.
 
std::unique_ptr< platf::deinit_tproc::init ()
 Initialize proc functions.
 
std::optional< proc::proc_tproc::parse (const std::string &file_name)
 
void proc::refresh (const std::string &file_name)
 
void proc::terminate_process_group (boost::process::v1::child &proc, boost::process::v1::group &group, std::chrono::seconds exit_timeout)
 Terminates all child processes in a process group.
 
std::string proc::validate_app_image_path (std::string app_image_path)
 

Detailed Description

Declarations for the startup and shutdown of the apps started by a streaming Session.

Function Documentation

◆ calculate_app_id()

std::tuple< std::string, std::string > proc::calculate_app_id ( const std::string & app_name,
std::string app_image_path,
int index )

Calculate a stable id based on name and image data.

Returns
Tuple of id calculated without index (for use if no collision) and one with.

◆ init()

std::unique_ptr< platf::deinit_t > proc::init ( )

Initialize proc functions.

Returns
Unique pointer to deinit_t to manage cleanup

◆ terminate_process_group()

void proc::terminate_process_group ( boost::process::v1::child & proc,
boost::process::v1::group & group,
std::chrono::seconds exit_timeout )

Terminates all child processes in a process group.

Parameters
procThe child process itself.
groupThe group of all children in the process tree.
exit_timeoutThe timeout to wait for the process group to gracefully exit.