Program Listing for File PDJE_Judge_Loop.hpp

Return to documentation for file (include\judge\Loop\PDJE_Judge_Loop.hpp)

#pragma once
#include "InputParser.hpp"
#include "Input_State.hpp"

#include "PDJE_Highres_Clock.hpp"
#include "PDJE_Judge_Init.hpp"
#include "PDJE_Judge_Loop_Structs.hpp"
#include "PDJE_Match.hpp"
#include "PDJE_Note_OBJ.hpp"
#include "PDJE_PreProcess.hpp"
#include "PDJE_Rule.hpp"
#include <cstdint>
#include <optional>
#include <vector>
namespace PDJE_JUDGE {

class Judge_Loop {

  private:
    EV_Thread Event_Controls;

  private:
    Judge_Init               *init_datas;
    PDJE_HIGHRES_CLOCK::CLOCK clock_root;
    PreProcess                pre;

    Match match;

  public:
    void
    EndEventLoop();
    void
    StartEventLoop();
    void
    loop();

    std::atomic<bool> loop_switch;
    Judge_Loop(Judge_Init &inits);
    ~Judge_Loop() = default;
};

}; // namespace PDJE_JUDGE