#ifndef ENTRY_H
#define ENTRY_H

#include "structs.h"
#include "parameter.h"

///Contains main entry point functions and logic.
class entry
{
public:
	static void entryBase(vtr<std::string> const &args);
	static resultOperation entryLogic(parameter const &param, bool unit = false);
	
	static inputData parseData(parameter const &params);
	static void preprocessData(inputData &data, parameter const &params);
	
	static resultOperation runOperation(inputData const &data, parameter const &params);
	
	static void printResult(resultOperation &result, parameter const &params);
	static void writeResult(inputData const &data, resultOperation &result, resultTime &times, parameter const &params);

	static resultOperation externLogic(vtr3<double> const &input, vtr<std::string> const &args);
};

#endif //ENTRY_H