mirror of
https://github.com/haiwen/seafile-server.git
synced 2025-06-29 08:26:51 +00:00
54 lines
1.4 KiB
C
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
|