summaryrefslogtreecommitdiffstats
path: root/src/plugins/quota/quota-plugin.h
blob: 927d428c1c3e2784fac724a2e180f1bb08de87dd (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
#ifndef QUOTA_PLUGIN_H
#define QUOTA_PLUGIN_H

#include "module-context.h"
#include "mail-user.h"

struct module;
struct mailbox;
struct mailbox_list;
struct mail;

#define QUOTA_USER_CONTEXT(obj) \
	MODULE_CONTEXT(obj, quota_user_module)
#define QUOTA_USER_CONTEXT_REQUIRE(obj) \
	MODULE_CONTEXT_REQUIRE(obj, quota_user_module)

struct quota_user {
	union mail_user_module_context module_ctx;

	struct quota *quota;
};

struct mail_storage;

extern MODULE_CONTEXT_DEFINE(quota_user_module, &mail_user_module_register);

void quota_mail_user_created(struct mail_user *user);
void quota_mailbox_list_created(struct mailbox_list *list);
void quota_mail_namespaces_created(struct mail_namespace *namespaces);
void quota_mailbox_allocated(struct mailbox *box);
void quota_mail_allocated(struct mail *mail);

void quota_plugin_init(struct module *module);
void quota_plugin_deinit(void);

#endif