<commit_before>#ifndef __datastructures_h__
#define __datastructures_h__

#include <string>
#include <set>
#include <vector>
#include <cmath>
using std::string;
using std::set;
using std::vector;

// forward declarations
class Worker;
class Experiment;
class Job;
class GridQueue;

class Job {
public:
	int idJob;
	int idSolverConfig, idExperiment, idInstance;
	int run;
	int seed;
	int status;
	string startTime;
	float resultTime;
	float wallTime;
	int resultCode;
	int computeQueue;
	int priority;
	string computeNode;
	string computeNodeIP;
	int CPUTimeLimit;
	int wallClockTimeLimit;
	int memoryLimit;
	int stackSizeLimit;
	
	int Cost_idCost; // copied from the job's experiment before start
	int Solver_idSolver; // copied from the job's solver before start

	string watcherOutput;
	string launcherOutput;
	int solverExitCode;
	int watcherExitCode;
	int verifierExitCode;
    
    char* solverOutput;
    unsigned long solverOutput_length;
    char* verifierOutput;
    unsigned long verifierOutput_length;
    
    string instance_file_name; // store this for easier access when running the verifier
    
    // these limit values are from the experiment table, but it is easier to have them here
    int solver_output_preserve_first, solver_output_preserve_last;
    int watcher_output_preserve_first, watcher_output_preserve_last;
    int verifier_output_preserve_first, verifier_output_preserve_last;
    bool limit_solver_output, limit_watcher_output, limit_verifier_output;

    float cost;

    Job() : idJob(0), idSolverConfig(0), idExperiment(0), idInstance(0),
            run(0), seed(0), status(0), startTime(""), resultTime(0.0), resultCode(0),
            computeQueue(0), priority(0), computeNode(""), computeNodeIP(""), Cost_idCost(0), Solver_idSolver(0),<commit_msg>cost now double instead of float<commit_after>#ifndef __datastructures_h__
#define __datastructures_h__

#include <string>
#include <set>
#include <vector>
#include <cmath>
using std::string;
using std::set;
using std::vector;

// forward declarations
class Worker;
class Experiment;
class Job;
class GridQueue;

class Job {
public:
	int idJob;
	int idSolverConfig, idExperiment, idInstance;
	int run;
	int seed;
	int status;
	string startTime;
	float resultTime;
	float wallTime;
	int resultCode;
	int computeQueue;
	int priority;
	string computeNode;
	string computeNodeIP;
	int CPUTimeLimit;
	int wallClockTimeLimit;
	int memoryLimit;
	int stackSizeLimit;
	
	int Cost_idCost; // copied from the job's experiment before start
	int Solver_idSolver; // copied from the job's solver before start

	string watcherOutput;
	string launcherOutput;
	int solverExitCode;
	int watcherExitCode;
	int verifierExitCode;
    
    char* solverOutput;
    unsigned long solverOutput_length;
    char* verifierOutput;
    unsigned long verifierOutput_length;
    
    string instance_file_name; // store this for easier access when running the verifier
    
    // these limit values are from the experiment table, but it is easier to have them here
    int solver_output_preserve_first, solver_output_preserve_last;
    int watcher_output_preserve_first, watcher_output_preserve_last;
    int verifier_output_preserve_first, verifier_output_preserve_last;
    bool limit_solver_output, limit_watcher_output, limit_verifier_output;

    double cost;

    Job() : idJob(0), idSolverConfig(0), idExperiment(0), idInstance(0),
            run(0), seed(0), status(0), startTime(""), resultTime(0.0), resultCode(0),
            computeQueue(0), priority(0), computeNode(""), computeNodeIP(""), Cost_idCost(0), Solver_idSolver(0),
{'fraction_non_alphanumeric': 0.0811561978877154, 'fraction_numerical': 0.007782101167315175, 'mean_word_length': 4.938943894389439, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7619172', 'n_tokens_mistral': 1156, 'n_tokens_neox': 1109, 'n_words': 332}