fixed php typemaps to handle NULL values
[lwes-php.git] / lwes.i
blob0dd69c31d8b0f86565d1db45a8dd692465d72ba2
1 %module lwes
3 %{
4 #include "lwes.h"
5 %}
7 %typemap(in) char * {
9 if ((*$input)->type == IS_NULL) {
10 $1 = NULL;
11 } else {
12 convert_to_string_ex($input);
13 $1 = Z_STRVAL_PP($input);
18 %typemap(in) struct lwes_event_type_db * {
20 if ((*$input)->type == IS_NULL) {
21 $1 = NULL;
22 } else {
23 if(SWIG_ConvertPtr(*$input, (void **)&$1, $1_descriptor) < 0) {
24 $1 = NULL;
30 struct lwes_event_type_db *
31 lwes_event_type_db_create(char *filename);
33 int
34 lwes_event_type_db_destroy(struct lwes_event_type_db *db);
36 struct lwes_emitter *
37 lwes_emitter_create(char *address, char *iface, int port,
38 int emit_heartbeat, short freq);
40 struct lwes_emitter *
41 lwes_emitter_create_with_ttl(char *address, char *iface, int port,
42 int emit_heartbeat, short freq, int ttl);
44 int
45 lwes_emitter_emit(struct lwes_emitter *emitter, struct lwes_event *event);
47 int
48 lwes_emitter_emitto(char *address, char *iface, int port,
49 struct lwes_emitter *emitter, struct lwes_event *event);
51 int
52 lwes_emitter_destroy(struct lwes_emitter *emitter);
54 struct lwes_event *
55 lwes_event_create(struct lwes_event_type_db *db, char *event_name);
57 struct lwes_event *
58 lwes_event_create_with_encoding(struct lwes_event_type_db *db,
59 char *event_name, short encoding);
61 int
62 lwes_event_set_U_INT_16(struct lwes_event *event, char *attribute_name,
63 unsigned short a_uint16);
65 int
66 lwes_event_get_U_INT_16(struct lwes_event *event, char *attribute_name,
67 unsigned short *a_uint16);
69 int
70 lwes_event_set_INT_16(struct lwes_event *event, char *attribute_name,
71 short a_int16);
73 int
74 lwes_event_get_INT_16(struct lwes_event *event, char *attribute_name,
75 short *a_int16);
77 int
78 lwes_event_set_U_INT_32(struct lwes_event *event, char *attribute_name,
79 unsigned int a_uint32);
81 int
82 lwes_event_get_U_INT_32(struct lwes_event *event, char *attribute_name,
83 unsigned int *a_uint32);
85 int
86 lwes_event_set_INT_32(struct lwes_event *event, char *attribute_name,
87 int a_int32);
89 int
90 lwes_event_get_INT_32(struct lwes_event *event, char *attribute_name,
91 int *a_int32);
93 int
94 lwes_event_set_U_INT_64(struct lwes_event *event,
95 char *attribute_name, unsigned long long a_uint64);
97 int
98 lwes_event_get_U_INT_64(struct lwes_event *event, char *attribute_name,
99 unsigned long long *a_uint64);
102 lwes_event_set_INT_64(struct lwes_event *event, char *attribute_name,
103 long long an_int64);
106 lwes_event_get_INT_64(struct lwes_event *event, char *attribute_name,
107 long long *an_int64);
110 lwes_event_set_STRING(struct lwes_event *event, char *attribute_name,
111 char *a_string);
114 lwes_event_get_STRING(struct lwes_event *event, char *attribute_name,
115 char **a_string);
118 lwes_event_set_IP_ADDR_w_string(struct lwes_event *event, char *attribute_name,
119 char *an_ip_addr);
122 lwes_event_get_IP_ADDR(struct lwes_event *event, char *attribute_name,
123 struct in_addr *an_in_addr);
126 lwes_event_set_BOOLEAN(struct lwes_event *event, char *attribute_name,
127 int a_boolean);
130 lwes_event_get_BOOLEAN(struct lwes_event *event, char *attribute_name,
131 int *a_boolean);
134 lwes_event_destroy(struct lwes_event *event);
136 %inline %{
138 struct lwes_event *
139 lwes_event_create_no_db(char *event_name)
141 return lwes_event_create(NULL, event_name);