#include "support/docstring.h"
-#include <map>
-#include <iosfwd>
+#include <vector>
namespace lyx {
-
class Author {
public:
+ ///
Author() {}
-
+ ///
Author(docstring const & name, docstring const & email)
- : name_(name), email_(email), used_(true) {}
-
- docstring const name() const {
- return name_;
- }
-
- docstring const email() const {
- return email_;
- }
-
- void used(bool u) const {
- used_ = u;
- }
-
- bool used() const {
- return used_;
- }
-
+ : name_(name), email_(email), used_(true), buffer_id_(0) {}
+ ///
+ docstring name() const { return name_; }
+ ///
+ docstring email() const { return email_; }
+ ///
+ unsigned int buffer_id() const { return buffer_id_; }
+ ///
+ void setBufferId(unsigned int buffer_id) const { buffer_id_ = buffer_id; }
+ ///
+ void setUsed(bool u) const { used_ = u; }
+ ///
+ bool used() const { return used_; }
+ ///
friend std::istream & operator>>(std::istream & os, Author & a);
private:
+ /// The author's name
docstring name_;
-
+ /// The author's email address
docstring email_;
-
+ ///
mutable bool used_;
+ /// The id of the author in the lyx-file
+ mutable unsigned int buffer_id_;
};
class AuthorList {
public:
+ ///
AuthorList();
-
+ ///
int record(Author const & a);
-
+ ///
void record(int id, Author const & a);
-
+ ///
Author const & get(int id) const;
-
- typedef std::map<int, Author> Authors;
-
+ ///
+ typedef std::vector<Author> Authors;
+ ///
+ void sort();
+ ///
Authors::const_iterator begin() const;
-
+ ///
Authors::const_iterator end() const;
-
+ ///
+ friend
+ std::ostream & operator<<(std::ostream & os, AuthorList const & a);
private:
+ ///
int last_id_;
-
+ ///
Authors authors_;
};