]> rtime.felk.cvut.cz Git - sojka/lightdm.git/blob - src/process.h
826c5bbad778013e7d2ad6c951f7fdd662af7de7
[sojka/lightdm.git] / src / process.h
1 /*
2  * Copyright (C) 2010-2011 Robert Ancell.
3  * Author: Robert Ancell <robert.ancell@canonical.com>
4  * 
5  * This program is free software: you can redistribute it and/or modify it under
6  * the terms of the GNU General Public License as published by the Free Software
7  * Foundation, either version 3 of the License, or (at your option) any later
8  * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
9  * license.
10  */
11
12 #ifndef _PROCESS_H_
13 #define _PROCESS_H_
14
15 #include <glib-object.h>
16 #include "process.h"
17 #include "user.h"
18
19 G_BEGIN_DECLS
20
21 #define PROCESS_TYPE (process_get_type())
22 #define PROCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROCESS_TYPE, ProcessClass))
23 #define PROCESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROCESS_TYPE, Process))
24 #define PROCESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROCESS_TYPE, ProcessClass))
25
26 typedef struct ProcessPrivate ProcessPrivate;
27
28 typedef struct
29 {
30     GObject              parent_instance;
31     ProcessPrivate *priv;
32 } Process;
33
34 typedef struct
35 {
36     GObjectClass parent_class;
37     void (*run)(Process *process);
38     void (*started)(Process *process);
39     void (*got_data)(Process *process);
40     void (*got_signal)(Process *process, int signum);
41     void (*exited)(Process *process, int status);
42     void (*terminated)(Process *process, int signum);
43     void (*stopped)(Process *process);
44 } ProcessClass;
45
46 GType process_get_type (void);
47
48 Process *process_get_current (void);
49
50 Process *process_new (void);
51
52 void process_set_command (Process *process, const gchar *command);
53
54 const gchar *process_get_command (Process *process);
55
56 void process_set_log_file (Process *process, const gchar *log_file);
57
58 const gchar *process_get_log_file (Process *process);
59
60 void process_set_working_directory (Process *process, const gchar *working_directory);
61
62 const gchar *process_get_working_directory (Process *process);
63
64 void process_set_user (Process *process, User *user);
65
66 User *process_get_user (Process *process);
67
68 void process_set_env (Process *process, const gchar *name, const gchar *value);
69
70 const gchar *process_get_env (Process *process, const gchar *name);
71
72 gboolean process_start (Process *process);
73
74 gboolean process_get_is_running (Process *process);
75
76 GPid process_get_pid (Process *process);
77
78 void process_signal (Process *process, int signum);
79
80 void process_stop (Process *process);
81
82 G_END_DECLS
83
84 #endif /* _PROCESS_H_ */