blob: e961459a1780a605fcfd9fccbe2a0e9e39c6da67 (
plain)
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
|
#ifndef ADAPTER_H
#define ADAPTER_H
#include "../cpp/nissy.h"
#include <map>
#include <string>
#include <QObject>
#include <QtQmlIntegration>
struct SolveOptions {
nissy::cube cube;
nissy::solver *solver;
unsigned minmoves;
unsigned maxmoves;
unsigned maxsolutions;
unsigned optimal;
};
class NissyAdapter : public QObject {
Q_OBJECT
QML_SINGLETON
QML_ELEMENT
public:
static constexpr int maxSolutionsHardLimit = 9999;
NissyAdapter();
Q_INVOKABLE bool isValidScramble(QString);
Q_INVOKABLE void requestSolve(
QString scramble,
QString solver,
int minmoves,
int maxmoves,
int maxsolutions,
int optimal
);
signals:
void solutionsReady(QString, QString);
void solverError(QString);
void appendLog(QString);
private:
std::vector<nissy::solver> solvers;
std::function<void(std::string)> writeLog;
void initSolver(const std::string&);
void startSolve(SolveOptions);
bool loadSolverData(nissy::solver&);
void logLine(std::string);
};
#endif
|