Add glib__private__() API to share between glib,gio; port GWakeup to it
[platform/upstream/glib.git] / glib / glib-private.h
1 /* glib-private.h - GLib-internal private API, shared between glib, gobject, gio
2  * Copyright (C) 2011 Red Hat, Inc.
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17  * Boston, MA 02111-1307, USA.
18  */
19
20 #ifndef __GLIB_PRIVATE_H__
21 #define __GLIB_PRIVATE_H__
22
23 #include <glib.h>
24
25 #include "gwakeup.h"
26
27 G_BEGIN_DECLS
28
29 #define GLIB_PRIVATE_CALL(symbol) (glib__private__()->symbol)
30
31 typedef struct {
32   /* See gwakeup.c */
33   GWakeup *   (*g_wakeup_new)         (void);
34   void        (*g_wakeup_free)        (GWakeup *wakeup);
35   void        (*g_wakeup_get_pollfd)  (GWakeup *wakeup,
36                                        GPollFD *poll_fd);
37   void        (*g_wakeup_signal)      (GWakeup *wakeup);
38   void        (*g_wakeup_acknowledge) (GWakeup *wakeup);
39
40   /* Add other private functions here, initialize them in gutils.c */
41 } GLibPrivateVTable;
42
43 GLibPrivateVTable *glib__private__ (void);
44
45
46 G_END_DECLS
47
48 #endif /* __G_MAIN_H__ */