quota-private.h revision 503e5ef896c7b4a51cf73efb0d132860a8c747e6
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen/* Modules should use do "my_id = quota_module_id++" and
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen use quota_module_contexts[id] for their own purposes. */
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainenextern unsigned int quota_module_id;
3ccfcf0856958cb9208a9fc51c3bdf13c58ad52aTimo Sirainen ARRAY_DEFINE(storages, struct mail_storage *);
3fe44a0df5a0bdd80c495f79cbf0e384441d6fccTimo Sirainen int (*test_alloc)(struct quota_transaction_context *ctx,
3ccfcf0856958cb9208a9fc51c3bdf13c58ad52aTimo Sirainen int (*init)(struct quota_root *root, const char *args);
12dc81583d1958cb301a617e19fbd40e8d376397Timo Sirainen bool (*parse_rule)(struct quota_root *root, struct quota_rule *rule,
3ccfcf0856958cb9208a9fc51c3bdf13c58ad52aTimo Sirainen /* called once for each backend */
82995cc154a929f37aa486a72a6485e9f8d34a30Timo Sirainen const char *const *(*get_resources)(struct quota_root *root);
3ccfcf0856958cb9208a9fc51c3bdf13c58ad52aTimo Sirainen /* the limit is set by default, so it shouldn't normally need to
3ccfcf0856958cb9208a9fc51c3bdf13c58ad52aTimo Sirainen be changed. */
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen int (*get_resource)(struct quota_root *root, const char *name,
3fe44a0df5a0bdd80c495f79cbf0e384441d6fccTimo Sirainen /* quota backends equal if backend1.name == backend2.name */
82995cc154a929f37aa486a72a6485e9f8d34a30Timo Sirainen /* Unique quota root name. */
3ccfcf0856958cb9208a9fc51c3bdf13c58ad52aTimo Sirainen /* pointer to the quota that owns this root */
503e5ef896c7b4a51cf73efb0d132860a8c747e6Timo Sirainen ARRAY_DEFINE(warning_rules, struct quota_warning_rule);
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen /* Module-specific contexts. See quota_module_id. */
8e371a3ce32bd64288786855b8ce0cb63f19f7d1Timo Sirainen union mailbox_transaction_module_context module_ctx;
82995cc154a929f37aa486a72a6485e9f8d34a30Timo Sirainen/* Register storage to all user's quota roots. */
82995cc154a929f37aa486a72a6485e9f8d34a30Timo Sirainenvoid quota_add_user_storage(struct quota *quota, struct mail_storage *storage);
3ccfcf0856958cb9208a9fc51c3bdf13c58ad52aTimo Sirainenvoid quota_remove_user_storage(struct quota *quota,