summaryrefslogtreecommitdiffstats
path: root/src/plugins/push-notification/push-notification-events-rfc5423.c
blob: 10dd0c7e3913cdcd999f500c1e09da1b6fa547f4 (plain)
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
/* Copyright (c) 2015-2018 Dovecot authors, see the included COPYING file */

#include "lib.h"

#include "push-notification-events.h"
#include "push-notification-events-rfc5423.h"

/* These are the RFC 5423 Mail Store Events currently handled within the core
   push-notification code.
  
   @todo: These events are not currently handled:
     - Login
     - Logout
     - QuotaExceed
     - Quota Within
 */
extern struct push_notification_event push_notification_event_flagsclear;
extern struct push_notification_event push_notification_event_flagsset;
extern struct push_notification_event push_notification_event_mailboxcreate;
extern struct push_notification_event push_notification_event_mailboxdelete;
extern struct push_notification_event push_notification_event_mailboxrename;
extern struct push_notification_event push_notification_event_mailboxsubscribe;
extern struct push_notification_event push_notification_event_mailboxunsubscribe;
extern struct push_notification_event push_notification_event_messageappend;
extern struct push_notification_event push_notification_event_messageexpunge;
extern struct push_notification_event push_notification_event_messagenew;
extern struct push_notification_event push_notification_event_messageread;
extern struct push_notification_event push_notification_event_messagetrash;

static struct push_notification_event *rfc5423_events[] = {
	&push_notification_event_flagsclear,
	&push_notification_event_flagsset,
	&push_notification_event_mailboxcreate,
	&push_notification_event_mailboxdelete,
	&push_notification_event_mailboxrename,
	&push_notification_event_mailboxsubscribe,
	&push_notification_event_mailboxunsubscribe,
	&push_notification_event_messageappend,
	&push_notification_event_messageexpunge,
	&push_notification_event_messagenew,
	&push_notification_event_messageread,
	&push_notification_event_messagetrash
};

void push_notification_event_register_rfc5423_events(void)
{
	unsigned int i;

	for (i = 0; i < N_ELEMENTS(rfc5423_events); i++)
		push_notification_event_register(rfc5423_events[i]);
}

void push_notification_event_unregister_rfc5423_events(void)
{
	unsigned int i;

	for (i = 0; i < N_ELEMENTS(rfc5423_events); i++)
		push_notification_event_unregister(rfc5423_events[i]);
}