forked from hxim/paq8px
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathModels.hpp
67 lines (64 loc) · 2.19 KB
/
Models.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#ifndef PAQ8PX_MODELS_HPP
#define PAQ8PX_MODELS_HPP
#include "text/TextModel.hpp"
#include "model/Audio16BitModel.hpp"
#include "model/Audio8BitModel.hpp"
#include "model/CharGroupModel.hpp"
#include "model/DmcForest.hpp"
#include "model/ExeModel.hpp"
#include "model/Image1BitModel.hpp"
#include "model/Image24BitModel.hpp"
#include "model/Image4BitModel.hpp"
#include "model/Image8BitModel.hpp"
#include "model/IndirectModel.hpp"
#include "model/JpegModel.hpp"
#include "model/LinearPredictionModel.hpp"
#include "model/MatchModel.hpp"
#include "model/NestModel.hpp"
#include "model/NormalModel.hpp"
#include "model/RecordModel.hpp"
#include "model/SparseMatchModel.hpp"
#include "model/SparseBitModel.hpp"
#include "model/SparseModel.hpp"
#include "model/WordModel.hpp"
#include "model/XMLModel.hpp"
#include "model/DecAlphaModel.hpp"
#include "lstm/LstmModel.hpp"
#include "lstm/LstmFactory.hpp"
/**
* This is a factory class for lazy object creation for models.
* Objects created within this class are instantiated on first use and guaranteed to be destroyed.
*/
class Models {
private:
Shared * const shared;
public:
explicit Models(Shared* const sh);
auto normalModel() -> NormalModel &;
auto dmcForest() -> DmcForest &;
auto charGroupModel() -> CharGroupModel &;
auto recordModel() -> RecordModel &;
auto sparseBitModel()->SparseBitModel&;
auto sparseModel() -> SparseModel &;
auto matchModel() -> MatchModel &;
auto sparseMatchModel() -> SparseMatchModel &;
auto indirectModel() -> IndirectModel &;
auto textModel() -> TextModel &;
auto wordModel() -> WordModel &;
auto nestModel() -> NestModel &;
auto xmlModel() -> XMLModel &;
auto exeModel() -> ExeModel &;
auto linearPredictionModel() -> LinearPredictionModel &;
auto jpegModel() -> JpegModel &;
auto image24BitModel() -> Image24BitModel &;
auto image8BitModel() -> Image8BitModel &;
auto image4BitModel() -> Image4BitModel &;
auto image1BitModel() -> Image1BitModel &;
#ifndef DISABLE_AUDIOMODEL
auto audio8BitModel() -> Audio8BitModel &;
auto audio16BitModel() -> Audio16BitModel &;
#endif //DISABLE_AUDIOMODEL
auto lstmModel() -> LstmModel<> &;
auto decAlphaModel() -> DECAlphaModel &;
};
#endif //PAQ8PX_MODELS_HPP