+public:
+ /** Constructor for nonempty filenames.
+ * \param abs_filename the file in question. Must have an absolute path.
+ */
+ FileName(std::string const & abs_filename);
+ /// Is this filename empty?
+ bool empty() const { return name_.empty(); }
+ /// get the absolute file name
+ std::string const absFilename() const { return name_; }
+protected:
+ /// The absolute file name.
+ /// The encoding is currently unspecified, anything else than ASCII
+ /// may or may not work.
+ std::string name_;
+};
+
+
+bool operator==(FileName const &, FileName const &);
+bool operator!=(FileName const &, FileName const &);
+
+
+/**
+ * Class for storing file names that appear in documents (e. g. child
+ * documents, included figures etc).
+ * The file name must not denote a file in our temporary directory, but a
+ * file that the user chose.
+ */
+class DocFileName : public FileName {
+public:
+ DocFileName();