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
33typedef 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
43run_request *new_run_request(void);
44void del_run_request(run_request *r);
45
46/* Run the given request and reply it's result on msg */
47gboolean run_request_run(run_request *r, DBusConnection *con, DBusMessage *msg, GPid *out_pid);
48
49/* Kill all running request for a udi */
50void run_kill_udi(gchar *udi);
51
52/* Kill all running request*/
53void run_kill_all(void);
54
55/* initialise the actual runner data */
56void run_init(void);
57
58#endif /*  RUNNER_H */
59