Skip to content
Snippets Groups Projects
log_user_stat.hpp 885 B
#pragma once

#include "json_workload.hpp"
#include <boost/format.hpp>
#include <fstream>
/**
 * library dedicated to logging user_behavior
 */
using namespace std;

struct BehaviorStat {
    shared_ptr <Job> job;
    std::string behavior_name;
    long time_delayed;
    double random_value;
    BehaviorStat(shared_ptr <Job> job,
                 std::string behavior_name, long time_delayed,double random_value);
    std::vector <std::string> split_id();
    boost::basic_format<char> format();
};

class LoggerUserStat {
public:
    LoggerUserStat(std::string log_folder);
    void add_stat(const shared_ptr <Job> & job,
        std::string behavior_name, long time_delayed, double random_value);
    void log_stat();

protected:
    bool put_header;
    std::vector<BehaviorStat>::size_type write_threshold;
    std::string log_folder;
    std::vector <BehaviorStat> behaviors;
};