1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-07-13 15:04:47 +00:00
seafile-server/server/seafile-session.h
feiniks d6f6127641
Add notification server (#535)
* Add notification server of go

Modify path of pkg

Send notification for update-repo event

Delete client pkg and use reflect select to send message

Modify output of log

Add formatter of log

Add jwt authentication

go add get jwt token api

CI support compile libjwt

Get group users from database

* Add ping to test mysql is alive

Co-authored-by: 杨赫然 <heran.yang@seafile.com>
2022-12-16 15:29:01 +08:00

115 lines
2.7 KiB
C

/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
#ifndef SEAFILE_SESSION_H
#define SEAFILE_SESSION_H
#include <job-mgr.h>
#include "block-mgr.h"
#include "fs-mgr.h"
#include "commit-mgr.h"
#include "branch-mgr.h"
#include "repo-mgr.h"
#include "db.h"
#include "seaf-db.h"
#include "mq-mgr.h"
#include "user-mgr.h"
#include "group-mgr.h"
#include "org-mgr.h"
#include "share-mgr.h"
#include "web-accesstoken-mgr.h"
#include "passwd-mgr.h"
#include "quota-mgr.h"
#include "size-sched.h"
#include "copy-mgr.h"
#include "config-mgr.h"
#include "http-server.h"
#include "zip-download-mgr.h"
#include "index-blocks-mgr.h"
#include "notif-mgr.h"
#include <searpc-client.h>
struct _CcnetClient;
typedef struct _SeafileSession SeafileSession;
struct _SeafileSession {
char *central_config_dir;
char *seaf_dir;
char *ccnet_dir;
char *tmp_file_dir;
/* Config that's only loaded on start */
GKeyFile *config;
GKeyFile *ccnet_config;
SeafDB *db;
CcnetDB *ccnet_db;
SeafBlockManager *block_mgr;
SeafFSManager *fs_mgr;
SeafCommitManager *commit_mgr;
SeafBranchManager *branch_mgr;
SeafRepoManager *repo_mgr;
SeafShareManager *share_mgr;
SeafPasswdManager *passwd_mgr;
SeafQuotaManager *quota_mgr;
SeafCopyManager *copy_mgr;
SeafCfgManager *cfg_mgr;
CcnetUserManager *user_mgr;
CcnetGroupManager *group_mgr;
CcnetOrgManager *org_mgr;
SeafWebAccessTokenManager *web_at_mgr;
SeafMqManager *mq_mgr;
CcnetJobManager *job_mgr;
SizeScheduler *size_sched;
int cloud_mode;
HttpServerStruct *http_server;
ZipDownloadMgr *zip_download_mgr;
IndexBlksMgr *index_blocks_mgr;
gboolean create_tables;
gboolean ccnet_create_tables;
gboolean go_fileserver;
// For notification server
NotifManager *notif_mgr;
char *private_key;
};
extern SeafileSession *seaf;
SeafileSession *
seafile_session_new(const char *central_config_dir,
const char *seafile_dir,
const char *ccnet_dir);
int
seafile_session_init (SeafileSession *session);
int
seafile_session_start (SeafileSession *session);
char *
seafile_session_get_tmp_file_path (SeafileSession *session,
const char *basename,
char path[]);
void
schedule_create_system_default_repo (SeafileSession *session);
char *
get_system_default_repo_id (SeafileSession *session);
int
set_system_default_repo_id (SeafileSession *session, const char *repo_id);
#endif /* SEAFILE_H */