source: trunk/lib/File.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_file_
2#define _theplu_svndigest_file_
3
4// $Id: File.h 303 2007-05-11 20:13:00Z peter $
5
6/*
7  Copyright (C) 2005, 2006 Jari Häkkinen, Peter Johansson
8  Copyright (C) 2007 Peter Johansson
9
10  This file is part of svndigest, http://lev.thep.lu.se/trac/svndigest
11
12  svndigest is free software; you can redistribute it and/or modify it
13  under the terms of the GNU General Public License as published by
14  the Free Software Foundation; either version 2 of the License, or
15  (at your option) any later version.
16
17  svndigest is distributed in the hope that it will be useful, but
18  WITHOUT ANY WARRANTY; without even the implied warranty of
19  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20  General Public License for more details.
21
22  You should have received a copy of the GNU General Public License
23  along with this program; if not, write to the Free Software
24  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
25  02111-1307, USA.
26*/
27
28#include "Node.h"
29
30#include <map>
31#include <string>
32
33namespace theplu{
34namespace svndigest{
35
36  class File : public Node
37  {
38  public:
39    ///
40    /// @brief Default Constructor
41    ///
42    File(const u_int level, const std::string& path, 
43         const std::string& output="") 
44      : Node(level,path,output) {}
45
46    ///
47    /// @return href to this file
48    ///
49    std::string href(void) const;
50
51    ///
52    /// @return file
53    ///
54    const std::string node_type(void) const;
55
56    ///
57    /// @brief Parsing out information from svn repository
58    ///
59    /// @return true if succesful
60    ///
61    const Stats& parse(const bool verbose=false);
62
63    ///
64    /// print blame output
65    ///
66    void print_blame(std::ofstream&, const std::string line_type) const;
67
68    void print_copyright(std::map<std::string, Alias>&) const;
69
70  private:
71
72    ///
73    /// @brief Parsing svn blame output
74    ///
75    /// @return true if parsing is succesful
76    ///
77    bool blame(void) const;
78
79    ///
80    /// @brief Copy Constructor, not implemented
81    ///
82    File(const File&);
83
84    void print_core(bool verbose=false) const;
85
86    ///
87    /// print page for specific user (or all) and specific line_style
88    /// (or total).
89    ///
90    void print_core(const std::string& user, const std::string& line_type,
91                    const SVNlog&) const; 
92
93  };
94
95}} // end of namespace svndigest and namespace theplu
96
97#endif
98
99
Note: See TracBrowser for help on using the repository browser.