1 /*****************************************************************************
2  * Copyright (C) 2003-2004 Max Howell <max.howell@methylblue.com>            *
3  * Copyright (C) 2004-2019 Krusader Krew [https://krusader.org]              *
4  *                                                                           *
5  * This file is part of Krusader [https://krusader.org].                     *
6  *                                                                           *
7  * Krusader is free software: you can redistribute it and/or modify          *
8  * it under the terms of the GNU General Public License as published by      *
9  * the Free Software Foundation, either version 2 of the License, or         *
10  * (at your option) any later version.                                       *
11  *                                                                           *
12  * Krusader is distributed in the hope that it will be useful,               *
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of            *
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             *
15  * GNU General Public License for more details.                              *
16  *                                                                           *
17  * You should have received a copy of the GNU General Public License         *
18  * along with Krusader.  If not, see [http://www.gnu.org/licenses/].         *
19  *****************************************************************************/
20 
21 #ifndef BUILDER_H
22 #define BUILDER_H
23 
24 #include "radialMap.h"   //Segment, defines
25 #include "fileTree.h"
26 
27 template <class T> class Chain;
28 
29 namespace RadialMap
30 {
31 class Map;
32 
33 //temporary class that builds the Map signature
34 
35 class Builder
36 {
37 public:
38     Builder(Map*, const Directory* const, bool fast = false);
39 
40 private:
41     void findVisibleDepth(const Directory* const dir, const uint = 0);
42     void setLimits(const uint&);
43     bool build(const Directory* const, const uint = 0, uint = 0, const uint = 5760);
44 
45     Map             *m_map;
46     const Directory* const m_root;
47     const FileSize   m_minSize;
48     uint            *m_depth;
49     Chain<Segment>  *m_signature;
50     FileSize        *m_limits;
51 };
52 }
53 
54 #endif
55