/
PredictaEngine.h
80 lines (52 loc) · 1.58 KB
/
PredictaEngine.h
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
68
69
70
71
72
73
74
75
76
77
78
79
80
// class that scores given data, used by JNI interface
#ifndef __PredictaEngine_h
#define __PredictaEngine_h
#include <thread>
#include <string>
#include <mutex>
#include <dinrhiw.h>
namespace whiteice
{
namespace resonanz
{
class PredictaEngine
{
public:
PredictaEngine();
~PredictaEngine();
bool startOptimization(const std::string& traininigFile,
const std::string& scoringFile,
const std::string& resultsFile,
double risk,
double optimizationTime,
bool demoVersion);
bool isActive();
bool stopOptimization();
std::string getError();
std::string getStatus();
private:
std::thread* worker_thread;
bool running;
void setStatus(const std::string& status);
void setError(const std::string& error);
std::mutex error_mutex;
std::string latestError;
std::mutex status_mutex;
std::string currentStatus;
std::mutex optimizeLock;
bool optimize;
bool thread_idle;
std::string trainingFile;
std::string scoringFile;
std::string resultsFile;
double risk;
double optimizationTime;
bool demoVersion;
void loop(); // worker thread
whiteice::dataset< whiteice::math::blas_real<double> > train;
whiteice::dataset< whiteice::math::blas_real<double> > scoring;
whiteice::dataset< whiteice::math::blas_real<double> > results;
};
}
};
#endif