1 #ifndef __REGRESS_ANNOTATION_OBJECT_H__
2 #define __REGRESS_ANNOTATION_OBJECT_H__
3 
4 #include "gitestmacros.h"
5 
6 #include <glib-object.h>
7 
8 typedef enum /*< flags,prefix=ANN >*/
9 {
10   ANN_FLAG_FOO = 1,
11   ANN_FLAG_BAR = 2,
12   /**
13    * ANN_FLAG_FOOBAR:
14    *
15    * Since: 1.4
16    */
17   ANN_FLAG_FOOBAR = 3,
18 } RegressAnnotationBitfield;
19 
20 /**
21  * RegressAnnotationCallback:
22  * @in: (in) (transfer none): array of ints
23  *
24  * This is a callback.
25  * Return value: (transfer none): array of ints
26  */
27 typedef const gint* (*RegressAnnotationCallback) (const gint *in);
28 
29 /**
30  * RegressAnnotationListCallback:
31  * @in: (in) (transfer none) (element-type utf8): list of strings
32  *
33  * This is a callback taking a list.
34  * Return value: (transfer container) (element-type utf8): list of strings
35  */
36 typedef GList* (*RegressAnnotationListCallback) (GList *in);
37 
38 /**
39  * RegressAnnotationNotifyFunc:
40  * @data: (closure): The user data
41  *
42  * This is a callback with a 'closure' argument that is not named
43  * 'user_data' and hence has to be annotated.
44  */
45 typedef void (*RegressAnnotationNotifyFunc) (gpointer data);
46 
47 /**
48  * RegressAnnotationObject: (attributes org.example.Test=cows)
49  *
50  * This is an object used to test annotations.
51  */
52 typedef struct _RegressAnnotationObject          RegressAnnotationObject;
53 typedef struct _RegressAnnotationObjectClass     RegressAnnotationObjectClass;
54 
55 typedef void (*RegressAnnotationForeachFunc) (RegressAnnotationObject *object,
56                                        const char *item,
57                                        gpointer user_data);
58 
59 struct _RegressAnnotationObject
60 {
61   GObject parent_instance;
62 };
63 
64 struct _RegressAnnotationObjectClass
65 {
66   GObjectClass parent_class;
67 };
68 
69 _GI_TEST_EXTERN
70 GType    regress_annotation_object_get_type (void);
71 
72 _GI_TEST_EXTERN
73 gint     regress_annotation_object_method       (RegressAnnotationObject *object);
74 
75 _GI_TEST_EXTERN
76 gint     regress_annotation_object_out          (RegressAnnotationObject *object,
77 					 int              *outarg);
78 
79 _GI_TEST_EXTERN
80 GObject* regress_annotation_object_create_object(RegressAnnotationObject *object);
81 
82 _GI_TEST_EXTERN
83 GObject* regress_annotation_object_allow_none   (RegressAnnotationObject *object,
84 					 const gchar      *somearg);
85 
86 _GI_TEST_EXTERN
87 GObject* regress_annotation_object_notrans      (RegressAnnotationObject *object);
88 
89 _GI_TEST_EXTERN
90 gint     regress_annotation_object_inout        (RegressAnnotationObject *object,
91 					 int              *inoutarg);
92 
93 _GI_TEST_EXTERN
94 gint     regress_annotation_object_inout2       (RegressAnnotationObject *object,
95 					 int              *inoutarg);
96 
97 _GI_TEST_EXTERN
98 gint     regress_annotation_object_inout3       (RegressAnnotationObject *object,
99 					 int              *inoutarg);
100 
101 _GI_TEST_EXTERN
102 gint     regress_annotation_object_in           (RegressAnnotationObject *object,
103 					 int              *inarg);
104 
105 _GI_TEST_EXTERN
106 gint     regress_annotation_object_calleeowns   (RegressAnnotationObject *object,
107 					 GObject          **toown);
108 
109 _GI_TEST_EXTERN
110 gint     regress_annotation_object_calleesowns  (RegressAnnotationObject *object,
111 					 GObject          **toown1,
112 					 GObject          **toown2);
113 
114 _GI_TEST_EXTERN
115 GList*   regress_annotation_object_get_strings  (RegressAnnotationObject *object);
116 
117 _GI_TEST_EXTERN
118 GHashTable*regress_annotation_object_get_hash   (RegressAnnotationObject *object);
119 
120 _GI_TEST_EXTERN
121 void     regress_annotation_object_with_voidp   (RegressAnnotationObject *object,
122 					 void             *data);
123 
124 _GI_TEST_EXTERN
125 GSList*  regress_annotation_object_get_objects  (RegressAnnotationObject *object);
126 
127 
128 _GI_TEST_EXTERN
129 void     regress_annotation_object_use_buffer   (RegressAnnotationObject *object,
130 					 guchar           *bytes);
131 
132 
133 _GI_TEST_EXTERN
134 void     regress_annotation_object_compute_sum  (RegressAnnotationObject *object,
135 					 int              *nums);
136 
137 
138 _GI_TEST_EXTERN
139 void     regress_annotation_object_compute_sum_n(RegressAnnotationObject *object,
140 					 int              *nums,
141 					 int               n_nums);
142 
143 _GI_TEST_EXTERN
144 void     regress_annotation_object_compute_sum_nz(RegressAnnotationObject *object,
145                                           int             *nums,
146                                           int              n_nums);
147 
148 _GI_TEST_EXTERN
149 void     regress_annotation_object_parse_args   (RegressAnnotationObject *object,
150                                          int              *argc,
151                                          char           ***argv);
152 
153 _GI_TEST_EXTERN
154 gboolean regress_annotation_object_string_out   (RegressAnnotationObject *object,
155                                          char            **str_out);
156 
157 _GI_TEST_EXTERN
158 void     regress_annotation_object_foreach      (RegressAnnotationObject *object,
159                                          RegressAnnotationForeachFunc func,
160                                          gpointer user_data);
161 
162 
163 _GI_TEST_EXTERN
164 void     regress_annotation_object_set_data     (RegressAnnotationObject *object,
165                                          const guchar     *data,
166                                          gsize             length);
167 
168 _GI_TEST_EXTERN
169 void     regress_annotation_object_set_data2    (RegressAnnotationObject *object,
170                                          const gchar      *data,
171                                          gsize             length);
172 
173 _GI_TEST_EXTERN
174 void     regress_annotation_object_set_data3    (RegressAnnotationObject *object,
175                                          gpointer          data,
176                                          gsize             length);
177 
178 
179 _GI_TEST_EXTERN
180 GObject* regress_annotation_object_do_not_use   (RegressAnnotationObject *object);
181 
182 _GI_TEST_EXTERN
183 void     regress_annotation_object_watch        (RegressAnnotationObject *object,
184                                          RegressAnnotationForeachFunc func,
185                                          gpointer user_data);
186 
187 _GI_TEST_EXTERN
188 void     regress_annotation_object_watch_full   (RegressAnnotationObject *object,
189                                          RegressAnnotationForeachFunc func,
190                                          gpointer user_data,
191                                          GDestroyNotify destroy);
192 
193 _GI_TEST_EXTERN
194 void     regress_annotation_object_hidden_self  (gpointer object);
195 
196 
197 _GI_TEST_EXTERN
198 void     regress_annotation_init                (int              *argc,
199 					 char           ***argv);
200 
201 _GI_TEST_EXTERN
202 char **  regress_annotation_return_array        (int             *length);
203 
204 _GI_TEST_EXTERN
205 void     regress_annotation_versioned           (void);
206 
207 _GI_TEST_EXTERN
208 char **  regress_annotation_string_zero_terminated (void);
209 
210 _GI_TEST_EXTERN
211 void     regress_annotation_string_zero_terminated_out (char ***out);
212 
213 
214 _GI_TEST_EXTERN
215 void     regress_annotation_string_array_length (guint n_properties, const gchar * const properties[]);
216 
217 
218 _GI_TEST_EXTERN
219 void     regress_annotation_object_extra_annos (RegressAnnotationObject *object);
220 
221 
222 _GI_TEST_EXTERN
223 void     regress_annotation_custom_destroy (RegressAnnotationCallback callback,
224                                     RegressAnnotationNotifyFunc destroy,
225                                     gpointer data);
226 
227 _GI_TEST_EXTERN
228 char *   regress_annotation_get_source_file (void);
229 
230 _GI_TEST_EXTERN
231 void     regress_annotation_set_source_file (const char *fname);
232 
233 
234 _GI_TEST_EXTERN
235 gint     regress_annotation_attribute_func (RegressAnnotationObject *object,
236                                     const gchar      *data);
237 
238 
239 _GI_TEST_EXTERN
240 void     regress_annotation_invalid_regress_annotation (int foo);
241 
242 /**
243  * RegressAnnotationStruct:
244  *
245  * This is a test of an array of object in an field of a struct.
246  */
247 struct RegressAnnotationStruct
248 {
249   RegressAnnotationObject *objects[10];
250 };
251 
252 /**
253  * RegressAnnotationFields:
254  * @field1: Some documentation
255  * @arr: (array length=len): an array of length @len
256  * @len: the length of array
257  *
258  * This is a struct for testing field documentation and annotations
259  */
260 struct RegressAnnotationFields
261 {
262   int field1;
263   guchar *arr;
264   gulong len;
265   /**
266    * RegressAnnotationFields.field4:
267    *
268    * A new field, breaking ABI is fun!
269    *
270    * Since: 1.4
271    */
272   guint field4;
273 };
274 
275 _GI_TEST_EXTERN
276 void    regress_annotation_ptr_array (GPtrArray *array);
277 
278 
279 _GI_TEST_EXTERN
280 GObject  * regress_annotation_test_parsing_bug630862 (void);
281 
282 
283 _GI_TEST_EXTERN
284 void regress_annotation_space_after_comment_bug631690 (void);
285 
286 
287 _GI_TEST_EXTERN
288 gchar* regress_annotation_return_filename (void);
289 
290 
291 _GI_TEST_EXTERN
292 GObject * regress_annotation_transfer_floating (GObject *object);
293 
294 /* This one we can handle properly */
295 #define REGRESS_ANNOTATION_CALCULATED_DEFINE (10 * 10)
296 
297 /**
298  * REGRESS_ANNOTATION_CALCULATED_LARGE: (value 10000000000UL)
299  *
300  * Constant to define a calculated large value
301  *
302  * Since: 1.4
303  */
304 #define REGRESS_ANNOTATION_CALCULATED_LARGE (1000 * G_GINT64_CONSTANT (10000000))
305 
306 /**
307  * REGRESS_ANNOTATION_CALCULATED_LARGE_DIV: (value 1000000UL)
308  *
309  * Constant to define a calculated large value
310  */
311 #define REGRESS_ANNOTATION_CALCULATED_LARGE_DIV (1000 / G_GINT64_CONSTANT (10000000))
312 
313 #endif /* __REGRESS_ANNOTATION_OBJECT_H__ */
314 
315