X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FDepTable.h;h=79bc2ca0133ce3385f4315d4440364a894ad51a3;hb=b2f4586c984226bcc945d93891f3d0736d6ffb43;hp=f23e66adb22440a7efd925c2e25ab3ccec29956c;hpb=0eccdd1c3613e5170deb77b22174dd0afde833e9;p=lyx.git diff --git a/src/DepTable.h b/src/DepTable.h index f23e66adb2..79bc2ca013 100644 --- a/src/DepTable.h +++ b/src/DepTable.h @@ -1,63 +1,74 @@ // -*- C++ -*- /* This file is part of - * ====================================================== + * ====================================================== * * LyX, The Document Processor - * Copyright (C) 1995 Matthias Ettrich + * Copyright 1995 Matthias Ettrich + * Copyright 1995-2001 The LyX Team. * - * This file is Copyright (C) 1996-1998 + * This file is Copyright 1996-2001 * Lars Gullik Bjønnes + * Ben Stanley * - * ====================================================== + * ====================================================== */ #ifndef DEP_TABLE_H #define DEP_TABLE_H #include "LString.h" -#include +#include + +#ifdef __GNUG__ +#pragma interface +#endif /// class DepTable { public: - /// - DepTable(); - /// /** 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(string const & f, + bool upd = false); /// void update(); /// - void write(string const &f); + void write(string const & f) const; /// - void read(string const &f); + void read(string const & f); /// returns true if any of the files has changed - bool sumchange(); + bool sumchange() const; + /// return true if fil has changed. + bool haschanged(string const & fil) const; + /// return true if a file with extension ext has changed. + bool extchanged(string const & ext) const; /// - bool haschanged(string const &fil); -private: + bool exist(string const & fil) const; + /// returns true if any files with ext exist + bool ext_exist(string const & ext) const; + /// + void remove_files_with_extension(string const &); /// - DepTable(string const &f, - bool upd, - unsigned long one, - unsigned long two); + void remove_file(string const &); +private: /// - string file; - /// The files new checksum - unsigned long new_sum; - /// The files old checksum - unsigned long old_sum; + struct dep_info { + /// 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. + long mtime_cur; + /// + bool changed() const; + }; /// - DepTable *next; - + typedef std::map DepList; /// - void write(FILE *f); + DepList deplist; }; #endif +