source: trunk/lib/Configuration.h @ 303

Last change on this file since 303 was 303, checked in by Peter Johansson, 14 years ago

Sorting authors in copyright statement in same order as stated in config file. fixes #172

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.2 KB
Line 
1#ifndef _theplu_svndigest_configuration_
2#define _theplu_svndigest_configuration_
3
4// $Id: Configuration.h 303 2007-05-11 20:13:00Z peter $
5
6/*
7  Copyright (C) 2007 Peter Johansson
8
9  This file is part of svndigest, http://lev.thep.lu.se/trac/svndigest
10
11  svndigest is free software; you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation; either version 2 of the License, or
14  (at your option) any later version.
15
16  svndigest is distributed in the hope that it will be useful, but
17  WITHOUT ANY WARRANTY; without even the implied warranty of
18  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19  General Public License for more details.
20
21  You should have received a copy of the GNU General Public License
22  along with this program; if not, write to the Free Software
23  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
24  02111-1307, USA.
25*/
26
27#include "Alias.h"
28
29#include <iostream>
30#include <vector>
31#include <string>
32#include <utility>
33
34namespace theplu{
35namespace svndigest{
36
37  ///
38  /// Configuration class takes care of all setting defined in the
39  /// configuration file.
40  ///
41  class Configuration
42  {
43  public:
44    static Configuration& instance(void);
45
46    ///
47    /// @brief load deafult configuration
48    ///
49    void load(void);
50
51    ///
52    /// @brief load configuration from stream
53    ///
54    void load(std::istream&);
55
56    ///
57    /// @brief Aliases for Copyright
58    ///
59    const std::map<std::string, Alias>& copyright_alias(void) const;
60
61    ///
62    /// @return root for the trac envrionment, e.g.,
63    /// http://lev.thep.lu.se/trac/svndigest/
64    ///
65    std::string trac_root(void) const;
66
67  private:
68    ///
69    /// Creates a Config object with default settings.
70    ///
71    /// @brief Default Constructor
72    ///
73    Configuration(void);
74    // Copy Constructor not implemented
75    Configuration(const Configuration&);
76    // assignment not implemented because assignment is always self-assignment
77    Configuration& operator=(const Configuration&);
78
79    void clear(void);
80
81    void set_default(void);
82
83    static Configuration* instance_;
84
85    std::map<std::string, Alias> copyright_alias_;
86
87    std::string trac_root_;
88  };
89
90  ///
91  /// @brief Output operator
92  ///
93  std::ostream& operator<<(std::ostream&, const Configuration&);
94
95}} // end of namespace svndigest and namespace theplu
96
97#endif
98
99
Note: See TracBrowser for help on using the repository browser.