1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-06-26 23:16:51 +00:00
seafile-server/server/quota-mgr.h
2017-09-07 17:01:56 +08:00

54 lines
1.4 KiB
C

/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
#ifndef QUOTA_MGR_H
#define QUOTA_MGR_H
#define INFINITE_QUOTA (gint64)-2
struct _SeafQuotaManager {
struct _SeafileSession *session;
gboolean calc_share_usage;
};
typedef struct _SeafQuotaManager SeafQuotaManager;
SeafQuotaManager *
seaf_quota_manager_new (struct _SeafileSession *session);
int
seaf_quota_manager_init (SeafQuotaManager *mgr);
/* Set/get quota for a personal account. */
int
seaf_quota_manager_set_user_quota (SeafQuotaManager *mgr,
const char *user,
gint64 quota);
gint64
seaf_quota_manager_get_user_quota (SeafQuotaManager *mgr,
const char *user);
gint64
seaf_quota_manager_get_user_share_usage (SeafQuotaManager *mgr,
const char *user);
/*
* Check if @repo_id still has free space for upload.
*/
int
seaf_quota_manager_check_quota (SeafQuotaManager *mgr,
const char *repo_id);
// ret = 0 means doesn't exceed quota,
// 1 means exceed quota,
// -1 means internal error
int
seaf_quota_manager_check_quota_with_delta (SeafQuotaManager *mgr,
const char *repo_id,
gint64 delta);
gint64
seaf_quota_manager_get_user_usage (SeafQuotaManager *mgr, const char *user);
#endif