/+junk/libgego

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/%2Bjunk/libgego

« back to all changes in this revision

Viewing changes to src/gego_global_notify.h

  • Committer: Gustav Hartvigsson
  • Date: 2015-06-01 20:38:00 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20150601203800-ymkb9tmijhd4dkby
* Initial code.
* Bulding does not work.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <glib-object.h>
 
2
 
 
3
#ifndef GEGO_GLOBAL_NOTIFY_HEADER
 
4
#define GEGO_GLOBAL_NOTIFY_HEADER
 
5
 
 
6
G_BEGIN_DECLS
 
7
 
 
8
#define GEGO_TYPE_GLOBEL_NOTIFY (gego_global_notify_get_type ())
 
9
#define GEGO_GLOBAL_NOTIFY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGO_GLOBAL_NOTIFY_TYPE, GegoGlobalNotify))
 
10
#define GEGO_IS_GLOBAL_NOTIFY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGO_GLOBAL_NOTIFY_TYPE))
 
11
#define GEGO_GLOBAL_NOTIFY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEGO_GLOBAL_NOTIFY_TYPE, GegoGlobalNotifyClass))
 
12
#define GEGO_GLOBAL_IS_NOTIFY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEGO_GLOBAL_NOTIFY))
 
13
#define GEGO_GLOBAL_NOTIFY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G_GLOBEL_NOTIFY_TYPE, GegoGlobalNotifyClass))
 
14
 
 
15
typedef struct GegoGlobalNotify GegoGlobalNotify;
 
16
typedef struct GegoGlobalNotifyClass GegoGlobalNotifyClass;
 
17
typedef struct GegoGlobalNotifyPrivate GegoGlobalNotifyPrivate;
 
18
 
 
19
typedef struct GegoGlobalNotifyCallbackItem GegoGlobalNotifyCallbackItem;
 
20
 
 
21
 
 
22
struct
 
23
GegoGlobalNotify {
 
24
  GObject parent_instance;
 
25
};
 
26
 
 
27
struct
 
28
GegoGlobalNotifyClass {
 
29
  GObjectClass parent_class;
 
30
};
 
31
 
 
32
GType
 
33
gego_global_notify_get_type (void);
 
34
 
 
35
static void
 
36
gego_global_notify_init (GegoGlobalNotify * );
 
37
 
 
38
 
 
39
gboolean
 
40
gego_global_notify_initalize (GError * err);
 
41
 
 
42
 
 
43
gboolean
 
44
gego_global_notify_uninitalize (GError * err);
 
45
 
 
46
 
 
47
 
 
48
 
 
49
gint
 
50
gego_global_notify_add_notification (gchar * name, GError * err);
 
51
 
 
52
 
 
53
void
 
54
gego_global_notify_remove_notification (gchar * name,
 
55
                                        gint notification_id,
 
56
                                        GError * err);
 
57
 
 
58
gint
 
59
gego_global_notify_subscribe (gchar * name, GCallback callback,
 
60
                              gpointer subscriber_data,
 
61
                              GError * err);
 
62
 
 
63
void
 
64
gego_global_notify_unsubscribe (gchar * name,
 
65
                                gint subscription_id,
 
66
                                GError * err);
 
67
 
 
68
gint
 
69
gego_global_notify_call (gchar * name,
 
70
                         gpointer caller_data,
 
71
                         GError * err);
 
72
 
 
73
gboolean
 
74
gego_global_notify_is_initialized (void);
 
75
 
 
76
/**
 
77
 * gego_global_notify_return_not_initialized:
 
78
 * @short_description: convinience macro; returns with an error if Global Notify
 
79
 * is not initialized.
 
80
 *
 
81
 * @err: (type GError) An #GError to be passed to the macro.
 
82
 */
 
83
#define gego_global_notify_return_not_initialized(err)\
 
84
  if (!gego_global_notify_is_initialized ()) {\
 
85
    err = g_error_new (GEGO_GLOBAL_NOTIFY_ERROR,\
 
86
                       GEGO_GLOBAL_NOTIFY_ERROR_NOT_INITIALZED,\
 
87
                       "Global Notify is not initialized.");\
 
88
    return NULL;\
 
89
  }
 
90
 
 
91
 
 
92
GQuark
 
93
gego_global_notify_error_quark (void);
 
94
 
 
95
/**
 
96
 * GEGO_GLOBAL_NOTIFY_ERROR:
 
97
 * @short_description: A convinience wrapper around #gego_global_notify_error_quark()
 
98
 */
 
99
#define GEGO_GLOBAL_NOTIFY_ERROR gego_global_notify_error_quark ()
 
100
 
 
101
typedef enum {
 
102
  GEGO_GLOBAL_NOTIFY_ERROR_NONE,
 
103
  GEGO_GLOBAL_NOTIFY_ERROR_ALREADY_INITALIZED,
 
104
  GEGO_GLOBAL_NOTIFY_ERROR_NOT_INITIALZED,
 
105
  GEGO_GLOBAL_NOTIFY_ERROR_SIGNAL_ALREADY_EXISTS,
 
106
  GEGO_GLOBAL_NOTIFY_ERROR_SIGNAL_DOES_NOT_EXIST,
 
107
  GEGO_GLOBAL_NOTIFY_ERROR_INVALID_SUBSCRIPTION_ID,
 
108
  GEGO_GLOBAL_NOTIFY_ERROR_LAST
 
109
} GegoGlobalNotifyError;
 
110
 
 
111
/**
 
112
 * GegoGlobalNotifyErrorName:
 
113
 * @short_description: Get the name of the error.
 
114
 */
 
115
gchar *
 
116
GegoGlobalNotifyErrorName[] __attribute__((unused)) = {
 
117
  "NONE",
 
118
  "Already initialized",
 
119
  "Not initialized",
 
120
  "Signal already exists",
 
121
  "Signal does not exist",
 
122
  "Invalid subscription id",
 
123
  0x0
 
124
};
 
125
 
 
126
/**
 
127
 * Macro to get the name of the error.
 
128
 */
 
129
#define gego_global_notify_error_get_name(k)\
 
130
  GegoGlobalNotifyErrorName[k]
 
131
 
 
132
G_END_DECLS
 
133
 
 
134
#endif /* GEGO_GLOBAL_NOTIFY_HEADER */