Newer
Older
Franck Dary
committed
#ifndef READING_MACHINE__H
#define READING_MACHINE__H
Franck Dary
committed
#include <memory>
#include "Classifier.hpp"
Franck Dary
committed
class ReadingMachine
{
static inline const std::string defaultMachineFilename = "machine.rm";
static inline const std::string defaultModelFilename = "{}.pt";
static inline const std::string defaultDictFilename = "{}.dict";
static inline const std::string defaultDictName = "_default_";
Franck Dary
committed
private :
std::string name;
Franck Dary
committed
std::unique_ptr<Classifier> classifier;
std::set<std::string> predicted;
Franck Dary
committed
private :
void readFromFile(std::filesystem::path path);
Franck Dary
committed
public :
ReadingMachine(std::filesystem::path path, std::vector<std::filesystem::path> models, std::vector<std::filesystem::path> dicts);
TransitionSet & getTransitionSet();
Strategy & getStrategy();
Dict & getDict(const std::string & state);
Classifier * getClassifier();
void save() const;
bool isPredicted(const std::string & columnName) const;
const std::set<std::string> & getPredicted() const;