1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#include "libnul.h"
typedef struct connection_t connection_t;
typedef struct message_t message_t;
typedef struct typed_value_t typed_value_t;
typedef union value_t value_t;
typedef gboolean (* message_func_t) (connection_t *connection,
DBusMessage *message,
nul_ptr_t data);
typedef enum
{
INT32,
UINT32,
STRING
} primitive_t;
union value_t
{
int32_t i32;
uint32_t u32;
double d;
char *s;
};
struct typed_value_t
{
primitive_t type;
value_t value;
};
struct message_t
{
char *service;
char *path;
char *interface;
char *member;
typed_value_t *arguments;
};
connection_t *connection_new_session (void);
connection_t *connection_new_system (void);
void connection_register_object (connection_t *connection,
const char *object_name,
message_func_t func,
nul_ptr_t data);
void connection_unregister_object (connection_t *connection,
const char *object_name);
gboolean connection_request_name (connection_t *connection,
const char *name);
void connection_send (connection_t *connection,
DBusMessage *message);
gboolean connection_send_with_reply (connection_t *connection,
DBusMessage *message,
message_func_t func,
gpointer data);
void connection_release_name (connection_t *connection,
const char *name);
message_t *message_new_error (const message_t *in_reply_to,
const char **message);
message_t *message_new_return (const message_t *in_reply_to);
message_t *message_new_method_call (const char *service_name,
const char *object_name,
const char *interface_name,
const char *method_name);
void message_append_string (message_t *message,
const char *string);
void message_append_int32 (message_t *message,
int value);
void message_append_uint32 (message_t *message,
uint32_t value);
void message_free (message_t *mesage);
|