src/main.c: Make it possible to pass options to the app under test
[memprof.git] / src / server.h
blob0bd1f22e5a96eea563a976cebe6c58cde7c340b9
1 /* -*- mode: C; c-file-style: "linux" -*- */
3 /* MemProf -- memory profiler and leak detector
4 * Copyright 1999, 2000, 2001, Red Hat, Inc.
5 * Copyright 2002, Kristian Rietveld
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 /*====*/
23 #include <glib-object.h>
24 #include "process.h"
26 #define MP_TYPE_SERVER (mp_server_get_type ())
27 #define MP_SERVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MP_TYPE_SERVER, MPServer))
28 #define MP_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MP_TYPE_SERVER, MPServerClass))
29 #define MP_IS_SERVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MP_TYPE_SERVER))
30 #define MP_IS_SERVER_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((obj), MP_TYPE_SERVER))
31 #define MP_SERVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MP_TYPE_SERVER, MPServerClass))
33 typedef enum {
34 MP_PROFILE_MEMORY,
35 MP_PROFILE_CYCLES,
36 MP_PROFILE_TIME
37 } MPProfileType;
39 typedef struct _MPServerClass MPServerClass;
41 GType mp_server_get_type (void);
42 MPServer *mp_server_new (void);
44 void mp_server_set_profile_type (MPServer *server,
45 MPProfileType type);
46 void mp_server_set_interval (MPServer *server,
47 guint usecs);
48 int mp_server_instrument (MPServer *server,
49 const char *program,
50 char **args);
52 MPProcess *mp_server_find_process (MPServer *server,
53 pid_t pid);
54 void mp_server_add_process (MPServer *server,
55 MPProcess *process);
56 void mp_server_remove_process (MPServer *server,
57 MPProcess *process);
58 GList * mp_server_get_process_clones (MPServer *server,
59 MPProcess *process);