1 #ifndef __XED_MESSAGE_TYPE_H__
2 #define __XED_MESSAGE_TYPE_H__
3 
4 #include <glib-object.h>
5 #include <stdarg.h>
6 
7 #include "xed-message.h"
8 
9 G_BEGIN_DECLS
10 
11 #define XED_TYPE_MESSAGE_TYPE			(xed_message_type_get_type ())
12 #define XED_MESSAGE_TYPE(x)			((XedMessageType *)(x))
13 
14 typedef void (*XedMessageTypeForeach)		(const gchar *key,
15 						 GType 	      type,
16 						 gboolean     required,
17 						 gpointer     user_data);
18 
19 typedef struct _XedMessageType			XedMessageType;
20 
21 GType xed_message_type_get_type 		 (void) G_GNUC_CONST;
22 
23 gboolean xed_message_type_is_supported 	 (GType type);
24 gchar *xed_message_type_identifier		 (const gchar *object_path,
25 						  const gchar *method);
26 gboolean xed_message_type_is_valid_object_path (const gchar *object_path);
27 
28 XedMessageType *xed_message_type_new	 (const gchar *object_path,
29 						  const gchar *method,
30 						  guint	      num_optional,
31 						  ...) G_GNUC_NULL_TERMINATED;
32 XedMessageType *xed_message_type_new_valist	 (const gchar *object_path,
33 						  const gchar *method,
34 						  guint	      num_optional,
35 						  va_list      var_args);
36 
37 void xed_message_type_set			 (XedMessageType *message_type,
38 						  guint		   num_optional,
39 						  ...) G_GNUC_NULL_TERMINATED;
40 void xed_message_type_set_valist		 (XedMessageType *message_type,
41 						  guint		   num_optional,
42 						  va_list	           var_args);
43 
44 XedMessageType *xed_message_type_ref 	 (XedMessageType *message_type);
45 void xed_message_type_unref			 (XedMessageType *message_type);
46 
47 
48 XedMessage *xed_message_type_instantiate_valist (XedMessageType *message_type,
49 				       		     va_list	      va_args);
50 XedMessage *xed_message_type_instantiate 	 (XedMessageType *message_type,
51 				       		  ...) G_GNUC_NULL_TERMINATED;
52 
53 const gchar *xed_message_type_get_object_path	 (XedMessageType *message_type);
54 const gchar *xed_message_type_get_method	 (XedMessageType *message_type);
55 
56 GType xed_message_type_lookup			 (XedMessageType *message_type,
57 						  const gchar      *key);
58 
59 void xed_message_type_foreach 		 (XedMessageType 	  *message_type,
60 						  XedMessageTypeForeach  func,
61 						  gpointer	   	   user_data);
62 
63 G_END_DECLS
64 
65 #endif /* __XED_MESSAGE_TYPE_H__ */
66 
67 // ex:ts=8:noet:
68