/* Blinker
   Copyright 2011-2019 Stefan Schuermans <stefan@blinkenarea.org>
   Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
   a blinkenarea.org project */

#ifndef BLINKER_FILE_H
#define BLINKER_FILE_H

#include <string>

#include "Time.h"

namespace Blinker {

/// information about a file
class File
{
public:
  /**
   * @brief constructor from path
   * @param[in] path path to file
   */
  File(const std::string &path);

public:
  /**
   * @brief get path to file
   * @return path to file
   */
  const std::string & getPath();

  /**
   * @brief check if file has been modified
   * @return if file has been modified since last check
   */
  bool checkModified();

protected:
  std::string m_path;           ///< path to file
  Time        m_lastModifyTime; ///< last known modification time was checked
}; // class File

} // namespace Blinker

#endif // #ifndef BLINKER_FILE_H

