1 /***************************************************************************
2  * CVSID: $Id$
3  *
4  * runner.h - Process running interface
5  *
6  * Copyright (C) 2006 Sjoerd Simons, <sjoerd@luon.net>
7  *
8  * Licensed under the Academic Free License version 2.1
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
23  *
24  **************************************************************************/
25 #ifndef RUNNER_H
26 #define RUNNER_H
27 
28 #define DBUS_API_SUBJECT_TO_CHANGE
29 #include <dbus/dbus-glib-lowlevel.h>
30 
31 #include <glib.h>
32 
33 typedef struct {
34 	gchar *udi;
35 	gchar **environment;
36 	gchar **argv;
37 	gchar *input;
38 	gboolean error_on_stderr;
39 	gboolean is_singleton;
40 	guint32 timeout;
41 } run_request;
42 
43 run_request *new_run_request(void);
44 void del_run_request(run_request *r);
45 
46 /* Run the given request and reply it's result on msg */
47 gboolean run_request_run(run_request *r, DBusConnection *con, DBusMessage *msg, GPid *out_pid);
48 
49 /* Kill all running request for a udi */
50 void run_kill_udi(gchar *udi);
51 
52 /* Kill all running request*/
53 void run_kill_all(void);
54 
55 /* initialise the actual runner data */
56 void run_init(void);
57 
58 #endif /*  RUNNER_H */
59