-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsio_c_wrapper.h
More file actions
86 lines (66 loc) · 3.44 KB
/
sio_c_wrapper.h
File metadata and controls
86 lines (66 loc) · 3.44 KB
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
77
78
79
80
81
82
83
84
85
86
#ifndef SIO_C_WRAPPER_H
#define SIO_C_WRAPPER_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stddef.h>
#include <stdint.h>
typedef void* sio_client_handle;
typedef void* sio_socket_handle;
typedef void* sio_message_handle;
typedef enum {
SIO_MESSAGE_NULL,
SIO_MESSAGE_STRING,
SIO_MESSAGE_INTEGER,
SIO_MESSAGE_DOUBLE,
SIO_MESSAGE_BOOLEAN,
SIO_MESSAGE_ARRAY,
SIO_MESSAGE_OBJECT,
SIO_MESSAGE_BINARY
} sio_message_type;
sio_message_handle sio_message_create_null();
sio_message_handle sio_message_create_string(const char* str);
sio_message_handle sio_message_create_integer(int64_t value);
sio_message_handle sio_message_create_double(double value);
sio_message_handle sio_message_create_boolean(int value);
sio_message_handle sio_message_create_array();
sio_message_handle sio_message_create_object();
void sio_message_destroy(sio_message_handle msg);
sio_message_type sio_message_get_type(sio_message_handle msg);
const char* sio_message_get_string(sio_message_handle msg);
int64_t sio_message_get_integer(sio_message_handle msg);
double sio_message_get_double(sio_message_handle msg);
int sio_message_get_boolean(sio_message_handle msg);
void sio_message_array_push(sio_message_handle array, sio_message_handle msg);
size_t sio_message_array_size(sio_message_handle array);
sio_message_handle sio_message_array_get(sio_message_handle array, size_t index);
void sio_message_object_set(sio_message_handle obj, const char* key, sio_message_handle msg);
sio_message_handle sio_message_object_get(sio_message_handle obj, const char* key);
int sio_message_object_has(sio_message_handle obj, const char* key);
typedef void (*sio_connect_callback)(void* user_data);
typedef void (*sio_close_callback)(void* user_data);
typedef void (*sio_event_callback)(const char* event, sio_message_handle msg, void* user_data);
typedef void (*sio_fail_callback)(void* user_data);
typedef void (*sio_reconnect_callback)(unsigned attempt, unsigned delay, void* user_data);
typedef void (*sio_socket_listener_callback)(const char* nsp, void* user_data);
typedef void (*sio_error_callback)(const char* error, void* user_data);
sio_client_handle sio_client_create();
void sio_client_destroy(sio_client_handle client);
void sio_client_connect(sio_client_handle client, const char* uri);
void sio_client_close(sio_client_handle client);
void sio_client_sync_close(sio_client_handle client);
void sio_client_set_open_listener(sio_client_handle client, sio_connect_callback cb, void* user_data);
void sio_client_set_fail_listener(sio_client_handle client, sio_fail_callback cb, void* user_data);
void sio_client_set_close_listener(sio_client_handle client, sio_close_callback cb, void* user_data);
void sio_client_set_reconnect_listener(sio_client_handle client, sio_reconnect_callback cb, void* user_data);
void sio_client_set_socket_open_listener(sio_client_handle client, sio_socket_listener_callback cb, void* user_data);
void sio_client_set_socket_close_listener(sio_client_handle client, sio_socket_listener_callback cb, void* user_data);
sio_socket_handle sio_client_get_socket(sio_client_handle client, const char* nsp);
void sio_socket_destroy(sio_socket_handle socket);
void sio_socket_emit(sio_socket_handle socket, const char* event, sio_message_handle msg);
void sio_socket_on(sio_socket_handle socket, const char* event, sio_event_callback cb, void* user_data);
void sio_socket_off(sio_socket_handle socket, const char* event);
#ifdef __cplusplus
}
#endif
#endif // SIO_C_WRAPPER_H