X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FDepTable.h;h=0d78ab8f5365fa4552b32a92027d842a120aec77;hb=c7d29be153debac82e3d2e8865fcc849f0a5f40d;hp=9f2bdf24bba3e888c3d0ede261aa08e8539e0baf;hpb=85798535a19919e82cc94a177a8414c542a9c5bf;p=lyx.git diff --git a/src/DepTable.h b/src/DepTable.h index 9f2bdf24bb..0d78ab8f53 100644 --- a/src/DepTable.h +++ b/src/DepTable.h @@ -1,29 +1,25 @@ // -*- C++ -*- -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. - * - * This file is Copyright 1996-2000 - * Lars Gullik Bjønnes +/** + * \file DepTable.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * ====================================================== + * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes + * + * Full author contact details are available in file CREDITS. */ #ifndef DEP_TABLE_H #define DEP_TABLE_H -#include "LString.h" +#include "support/FileName.h" + #include +#include -#ifdef __GNUG__ -#pragma interface -#endif -using std::map; -using std::pair; +namespace lyx { /// class DepTable { @@ -31,33 +27,48 @@ public: /** This one is a little bit harder since we need the absolute filename. Should we insert files with .sty .cls etc as extension? */ - void insert(string const & f, - bool upd = false, - unsigned long one = 0, - unsigned long two = 0); + void insert(support::FileName const & f, bool upd = false); /// void update(); /// - void write(string const & f) const; - /// - void read(string const & f); + void write(support::FileName const & f) const; + /// returns true if dep file was read successfully + bool read(support::FileName const & f); /// returns true if any of the files has changed bool sumchange() const; /// return true if fil has changed. - bool haschanged(string const & fil) const; + bool haschanged(support::FileName const & fil) const; /// return true if a file with extension ext has changed. - bool extchanged(string const & ext) const; + bool extchanged(std::string const & ext) const; /// - bool exist(string const & fil) const; + bool exist(support::FileName const & fil) const; + /// returns true if any files with ext exist + bool ext_exist(std::string const & ext) const; /// - void remove_files_with_extension(string const &); + void remove_files_with_extension(std::string const &); + /// + void remove_file(support::FileName const &); private: /// - typedef map > DepList; + class dep_info { + public: + /// Previously calculated CRC value + unsigned long crc_prev; + /// Current CRC value - only re-computed if mtime has changed. + unsigned long crc_cur; + /// mtime from last time current CRC was calculated. + std::time_t mtime_cur; + /// + bool changed() const; + }; + /// + typedef std::map DepList; /// DepList deplist; }; + +} // namespace lyx + #endif