aboutsummaryrefslogtreecommitdiffstats
path: root/libical/src/libicalcap/icalcap.h
blob: 5e61bf9c8ee15bd6d932e0d9e6128bbdc992f4eb (plain) (blame)
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
#ifndef __ICALCAP_H__
#define __ICALCAP_H__

#include <ical.h>

/*
 * Opaque objects
 */
typedef struct _icalcap icalcap;
typedef struct _icalerror icalerror;
typedef struct _icalcap_message icalcap_message;

/*
 * Callback
 */
typedef int  (*icalcap_msg_handler)(const icalcap_message *msg);

/*
 * icalcap member functions
 */
void        icalcap_free(icalcap *cap);
int     icalcap_stop(icalcap *cap);
const char     *icalcap_get_username(const icalcap *cap);

/*
 * icalcap_message member functions
 */

struct _icalcap_message {
    icalcap                *cap;
    int             type;

    icalcomponent              *comp;
};

icalcap_message*icalcap_message_new(const icalcap *cap, const icalcomponent *comp);
icalcap_message*icalcap_message_new_reply(const icalcap_message *capmsg, const icalcomponent *comp);
void        icalcap_message_free(icalcap_message *capmsg);

int     icalcap_message_reply_error(const icalcap_message *orig, enum icalrequeststatus status,
            const char *msg, const char *debug);
int     icalcap_message_reply_component(const icalcap_message *orig, icalcomponent *comp);

int     icalcap_message_send(icalcap_message *capmsg);
icalcomponent  *icalcap_message_sync_send(icalcap_message *capmsg, int timeout);

#endif