1
0
mirror of https://github.com/xuthus83/pigallery2.git synced 2024-11-03 21:04:03 +08:00
pigallery2/backend/model/ObjectManagerRepository.ts

103 lines
3.5 KiB
TypeScript
Raw Normal View History

2018-03-31 03:30:30 +08:00
import {IUserManager} from './interfaces/IUserManager';
import {IGalleryManager} from './interfaces/IGalleryManager';
import {ISearchManager} from './interfaces/ISearchManager';
import {SQLConnection} from './sql/SQLConnection';
import {ISharingManager} from './interfaces/ISharingManager';
import {Logger} from '../Logger';
import {IIndexingManager} from './interfaces/IIndexingManager';
2016-04-22 19:23:44 +08:00
2016-05-09 23:04:56 +08:00
export class ObjectManagerRepository {
private static _instance: ObjectManagerRepository = null;
private _galleryManager: IGalleryManager;
private _userManager: IUserManager;
private _searchManager: ISearchManager;
2017-07-04 01:17:49 +08:00
private _sharingManager: ISharingManager;
2017-07-26 03:09:37 +08:00
private _indexingManager: IIndexingManager;
2016-04-22 19:23:44 +08:00
2017-07-26 03:09:37 +08:00
get IndexingManager(): IIndexingManager {
return this._indexingManager;
}
2017-07-26 03:09:37 +08:00
set IndexingManager(value: IIndexingManager) {
this._indexingManager = value;
}
2016-05-09 23:04:56 +08:00
public static getInstance() {
if (this._instance === null) {
this._instance = new ObjectManagerRepository();
2016-12-27 23:09:47 +08:00
}
return this._instance;
}
2016-12-27 23:09:47 +08:00
2017-07-14 05:39:09 +08:00
public static async reset() {
await SQLConnection.close();
this._instance = null;
}
2016-04-22 19:23:44 +08:00
2016-05-26 02:17:42 +08:00
2017-07-04 01:17:49 +08:00
get GalleryManager(): IGalleryManager {
return this._galleryManager;
}
2016-04-22 19:23:44 +08:00
2017-07-04 01:17:49 +08:00
set GalleryManager(value: IGalleryManager) {
this._galleryManager = value;
}
2016-04-22 19:23:44 +08:00
2017-07-04 01:17:49 +08:00
get UserManager(): IUserManager {
return this._userManager;
}
2016-04-22 19:23:44 +08:00
2017-07-04 01:17:49 +08:00
set UserManager(value: IUserManager) {
this._userManager = value;
}
2016-04-22 19:23:44 +08:00
2017-07-04 01:17:49 +08:00
get SearchManager(): ISearchManager {
return this._searchManager;
}
2016-05-05 00:34:54 +08:00
2017-07-04 01:17:49 +08:00
set SearchManager(value: ISearchManager) {
this._searchManager = value;
}
2016-05-05 00:34:54 +08:00
2017-07-04 01:17:49 +08:00
get SharingManager(): ISharingManager {
return this._sharingManager;
}
set SharingManager(value: ISharingManager) {
this._sharingManager = value;
}
2017-07-26 03:09:37 +08:00
public static async InitMemoryManagers() {
await ObjectManagerRepository.reset();
2018-03-31 03:30:30 +08:00
const GalleryManager = require('./memory/GalleryManager').GalleryManager;
const UserManager = require('./memory/UserManager').UserManager;
const SearchManager = require('./memory/SearchManager').SearchManager;
const SharingManager = require('./memory/SharingManager').SharingManager;
const IndexingManager = require('./memory/IndexingManager').IndexingManager;
2017-07-26 03:09:37 +08:00
ObjectManagerRepository.getInstance().GalleryManager = new GalleryManager();
ObjectManagerRepository.getInstance().UserManager = new UserManager();
ObjectManagerRepository.getInstance().SearchManager = new SearchManager();
ObjectManagerRepository.getInstance().SharingManager = new SharingManager();
ObjectManagerRepository.getInstance().IndexingManager = new IndexingManager();
}
public static async InitSQLManagers() {
await ObjectManagerRepository.reset();
await SQLConnection.init();
2018-03-31 03:30:30 +08:00
const GalleryManager = require('./sql/GalleryManager').GalleryManager;
const UserManager = require('./sql/UserManager').UserManager;
const SearchManager = require('./sql/SearchManager').SearchManager;
const SharingManager = require('./sql/SharingManager').SharingManager;
const IndexingManager = require('./sql/IndexingManager').IndexingManager;
2017-07-26 03:09:37 +08:00
ObjectManagerRepository.getInstance().GalleryManager = new GalleryManager();
ObjectManagerRepository.getInstance().UserManager = new UserManager();
ObjectManagerRepository.getInstance().SearchManager = new SearchManager();
ObjectManagerRepository.getInstance().SharingManager = new SharingManager();
ObjectManagerRepository.getInstance().IndexingManager = new IndexingManager();
2018-03-31 03:30:30 +08:00
Logger.debug('SQL DB inited');
2017-07-26 03:09:37 +08:00
}
}