X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fauthor.h;h=bf84737130507c08f70c4652369ca84694236483;hb=e5a46922e916a06ad1b958d5895cc3cfb4f13d2c;hp=d362d7f9d5eafbed39a1adb76dc14ae1924ffa14;hpb=ae87b945156585b080ed155919f64b80e48d7a04;p=lyx.git diff --git a/src/author.h b/src/author.h index d362d7f9d5..bf84737130 100644 --- a/src/author.h +++ b/src/author.h @@ -1,3 +1,4 @@ +// -*- C++ -*- /** * \file author.h * This file is part of LyX, the document processor. @@ -5,63 +6,74 @@ * * \author John Levon * - * Full author contact details are available in file CREDITS + * Full author contact details are available in file CREDITS. */ #ifndef AUTHOR_H #define AUTHOR_H +#include "support/docstring.h" + #include #include -#include "LString.h" - + +namespace lyx { + + class Author { public: Author() {} - - Author(string n, string e) - : name_(n), email_(e) {} - string const name() const { + Author(docstring const & name, docstring const & email) + : name_(name), email_(email) {} + + docstring const name() const { return name_; } - string const email() const { + docstring const email() const { return email_; } - - friend std::istream & operator>>(std::istream & os, Author & a); + + friend std::istream & operator>>(std::istream & os, Author & a); private: - string name_; + docstring name_; - string email_; + docstring email_; }; - + class AuthorList { public: + AuthorList(); + int record(Author const & a); void record(int id, Author const & a); - + Author const & get(int id); typedef std::map Authors; - + Authors::const_iterator begin() const; Authors::const_iterator end() const; private: + int last_id_; + Authors authors_; }; - + bool operator==(Author const & l, Author const & r); - -std::ostream & operator<<(std::ostream & os, Author const & a); - -std::istream & operator>>(std::istream & os, Author & a); - + +std::ostream & operator<<(std::ostream & os, Author const & a); + +std::istream & operator>>(std::istream & os, Author & a); + + +} // namespace lyx + #endif // AUTHOR_H