Version bump.
[doldaconnect.git] / include / doldaconnect / uilib.h
1 #ifndef _UILIB_H
2 #define _UILIB_H
3
4 #include <wchar.h>
5
6 #define DC_LATEST 1
7
8 struct dc_response
9 {
10     struct dc_response *next, *prev;
11     int code, tag;
12     wchar_t *cmdname;
13     void *data;
14     void *internal;
15     struct dc_respline
16     {
17         int argc;
18         wchar_t **argv;
19     } *rlines;
20     size_t linessize;
21     int numlines;
22     int curline;
23 };
24
25 struct dc_intresp
26 {
27     int code;
28     int argc;
29     struct
30     {
31         int type;
32         union
33         {
34             int num;
35             wchar_t *str;
36             double flnum;
37         } val;
38     } *argv;
39 };
40
41 int dc_init(void);
42 void dc_cleanup(void);
43 void dc_disconnect(void);
44 void dc_freeresp(struct dc_response *resp);
45 struct dc_response *dc_getresp(void);
46 struct dc_response *dc_gettaggedresp(int tag);
47 struct dc_response *dc_gettaggedrespsync(int tag);
48 int dc_wantwrite(void);
49 int dc_getstate(void);
50 int dc_queuecmd(int (*callback)(struct dc_response *), void *data, ...);
51 int dc_handleread(void);
52 int dc_handlewrite(void);
53 int dc_connect(char *host);
54 struct dc_intresp *dc_interpret(struct dc_response *resp);
55 void dc_freeires(struct dc_intresp *ires);
56 int dc_checkprotocol(struct dc_response *resp, int revision);
57 const char *dc_gethostname(void);
58
59 #endif