Browse Source

daemon: getters for properties of GameModeClient

Add getters for all two properties of GameModeCLient: the process
id and the executable path.
Christian Kellner 5 years ago
parent
commit
455ea0c72e
2 changed files with 29 additions and 0 deletions
  1. 19 0
      daemon/gamemode-context.c
  2. 10 0
      daemon/gamemode.h

+ 19 - 0
daemon/gamemode-context.c

@@ -41,6 +41,7 @@ POSSIBILITY OF SUCH DAMAGE.
 
 #include "build-config.h"
 
+#include <assert.h>
 #include <fcntl.h>
 #include <pthread.h>
 #include <stdatomic.h>
@@ -646,6 +647,24 @@ void game_mode_client_ref(GameModeClient *client)
 	atomic_fetch_add_explicit(&client->refcount, 1, memory_order_seq_cst);
 }
 
+/**
+ * The process identifier of the client.
+ */
+pid_t game_mode_client_get_pid(GameModeClient *client)
+{
+	assert(client != NULL);
+	return client->pid;
+}
+
+/**
+ * The path to the executable of client.
+ */
+const char *game_mode_client_get_executable(GameModeClient *client)
+{
+	assert(client != NULL);
+	return client->executable;
+}
+
 /* Internal refresh config function (assumes no contention with reaper thread) */
 static void game_mode_reload_config_internal(GameModeContext *self)
 {

+ 10 - 0
daemon/gamemode.h

@@ -59,6 +59,16 @@ void game_mode_client_unref(GameModeClient *client);
  */
 void game_mode_client_ref(GameModeClient *client);
 
+/**
+ * The process identifier of the client.
+ */
+pid_t game_mode_client_get_pid(GameModeClient *client);
+
+/**
+ * The path to the executable of client.
+ */
+const char *game_mode_client_get_executable(GameModeClient *client);
+
 /**
  * Return the singleton instance
  */