#pragma once
#include "../../Utils/Process/PeriodicProcess.h"
#include "../Reasoning/PathPrediction/PathPrediction.h"

class Map;

/**
 * @brief Process in charge of updating unit records, i.e. removing buildings previously in the fog of war
 *        but now missing.
 * @tparam InfluenceType Type of influence.
 */
class UpdateUnitRecordsProcess : public PeriodicProcess
{
public:
  UpdateUnitRecordsProcess(const Process* parent, Map* map, PathPrediction& pathPrediction);

  virtual void run();
protected:
  void _output(std::ostream& out) const
  {
    out << "Update accessible and inaccessible units position";
  }

  Map* const m_map;
  PathPrediction& m_pathPrediction;
};
