push-notification-drivers.c revision 9366a287ae1bafa03f815e6f17d0c3891368e263
/* Copyright (c) 2015 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "array.h"
#include "hash.h"
#include "mail-user.h"
#include "push-notification-drivers.h"
#include "push-notification-events.h"
static bool
{
unsigned int count, i;
const struct push_notification_driver *const *drivers;
for (i = 0; i < count; i++) {
*idx_r = i;
return TRUE;
}
}
return FALSE;
}
static const struct push_notification_driver *
push_notification_driver_find_class(const char *driver)
{
const struct push_notification_driver *const *class_p;
unsigned int idx;
return NULL;
}
return *class_p;
}
static struct push_notification_driver_config *
push_notification_driver_parse_config(const char *p)
{
struct push_notification_driver_config *config;
config->raw_config = p;
if (p == NULL) {
return config;
}
}
}
return config;
}
int
struct push_notification_driver_user **duser_r)
{
const struct push_notification_driver *driver;
const char *driver_name, *error_r, *p;
struct push_notification_driver_user *duser;
int ret;
/* <driver>[:<driver config>] */
if (p == NULL) {
} else {
}
return -1;
}
T_BEGIN {
struct push_notification_driver_config *config;
(p == NULL) ? p : p + 1);
} T_END;
if (ret < 0) {
return -1;
}
}
return 0;
}
void push_notification_driver_cleanup_all(void)
{
const struct push_notification_driver *const *driver;
/* Loop through driver list and perform global cleanup tasks. We may not
* designed to ignore these unused drivers. */
}
}
}
const char *fmt, ...)
{
} T_END;
}
(const struct push_notification_driver *driver)
{
unsigned int idx;
if (!array_is_created(&push_notification_drivers)) {
}
i_panic("push_notification_driver_register(%s): duplicate driver",
}
}
(const struct push_notification_driver *driver)
{
unsigned int idx;
i_panic("push_notification_driver_register(%s): unknown driver",
}
if (array_is_empty(&push_notification_drivers)) {
}
}
}