// -*- C++ -*-
/* This file is part of
- * ======================================================
+ * ======================================================
*
* LyX, The Document Processor
- * Copyright (C) 1995 Matthias Ettrich
+ * Copyright 1995 Matthias Ettrich
+ * Copyright 1995-2000 The LyX Team.
*
- * This file is Copyright (C) 1996-1998
+ * This file is Copyright 1996-2000
* Lars Gullik Bjønnes
*
- * ======================================================
+ * ======================================================
*/
-#ifndef _DEP_TABLE_H
-#define _DEP_TABLE_H
+#ifndef DEP_TABLE_H
+#define DEP_TABLE_H
#include "LString.h"
-#include <stdio.h>
+#include <map>
+
+#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(LString const &f,
+ void insert(string const & f,
bool upd = false,
unsigned long one = 0,
unsigned long two = 0);
void update();
///
- void write(LString const &f);
+ void write(string const & f) const;
///
- void read(LString 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(LString const &fil);
-private:
- ///
- DepTable(LString const &f,
- bool upd,
- unsigned long one,
- unsigned long two);
+ bool exist(string const & fil) const;
///
- LString file;
- /// The files new checksum
- unsigned long new_sum;
- /// The files old checksum
- unsigned long old_sum;
+ void remove_files_with_extension(string const &);
+private:
///
- DepTable *next;
-
+ typedef std::map<string,
+ std::pair<unsigned long, unsigned long> > DepList;
///
- void write(FILE *f);
+ DepList deplist;
};
#endif