graph 6.0.0
Graph: generic attributed relational graphs
twriter.h
Go to the documentation of this file.
1/* This software and supporting documentation are distributed by
2 * Institut Federatif de Recherche 49
3 * CEA/NeuroSpin, Batiment 145,
4 * 91191 Gif-sur-Yvette cedex
5 * France
6 *
7 * This software is governed by the CeCILL-B license under
8 * French law and abiding by the rules of distribution of free software.
9 * You can use, modify and/or redistribute the software under the
10 * terms of the CeCILL-B license as circulated by CEA, CNRS
11 * and INRIA at the following URL "http://www.cecill.info".
12 *
13 * As a counterpart to the access to the source code and rights to copy,
14 * modify and redistribute granted by the license, users are provided only
15 * with a limited warranty and the software's author, the holder of the
16 * economic rights, and the successive licensors have only limited
17 * liability.
18 *
19 * In this respect, the user's attention is drawn to the risks associated
20 * with loading, using, modifying and/or developing or reproducing the
21 * software by the user in light of its specific status of free software,
22 * that may mean that it is complicated to manipulate, and that also
23 * therefore means that it is reserved for developers and experienced
24 * professionals having in-depth computer knowledge. Users are therefore
25 * encouraged to load and test the software's suitability as regards their
26 * requirements in conditions enabling the security of their systems and/or
27 * data to be ensured and, more generally, to use and operate it in the
28 * same conditions as regards security.
29 *
30 * The fact that you are presently reading this means that you have had
31 * knowledge of the CeCILL-B license and that you accept its terms.
32 */
33
34#ifndef GRAPH_TREE_TWRITER_H
35#define GRAPH_TREE_TWRITER_H
36
37
38//--- header files ------------------------------------------------------------
39
41#include <soma-io/writer/awriter.h>
42#include <graph/tree/tvisitor.h>
43
44
45//--- forward declarations ----------------------------------------------------
46
47class Tree;
48
49
50//--- class declarations ------------------------------------------------------
51
54
56 : public carto::AttributedWriter, public ConstTreeVisitor
57{
58public:
64 TreeWriter( const std::string& filename,
65 const carto::SyntaxSet& syntax,
66 const HelperSet& helpers = HelperSet() );
68 const HelperSet& helpers = HelperSet() );
69 virtual ~TreeWriter();
70
73
76 virtual void visitTree( const Tree* tree );
77
79
80protected:
83 virtual void writeTree( const Tree* node, const std::string & type );
85
86private:
87 TreeWriter(const TreeWriter&);
88 TreeWriter& operator=(const TreeWriter&);
89};
90
91
92//=============================================================================
93// F U N C T I O N S
94//=============================================================================
95
102
103
104#endif
ConstTreeVisitor()
The programmer should not call the constructor of an abstract base class.
Definition tvisitor.h:153
To write an Tree to a file.
Definition twriter.h:57
virtual void writeTree(const Tree *node, const std::string &type)
TreeWriter(const carto::SyntaxSet &syntax, const HelperSet &helpers=HelperSet())
TreeWriter(const std::string &filename, const carto::SyntaxSet &syntax, const HelperSet &helpers=HelperSet())
configure the parametres
virtual void visitTree(const Tree *tree)
write a Tree to a file
virtual ~TreeWriter()
Attributed tree element.
Definition tree.h:61
#define GRAPH_API
std::map< std::string, Syntax > SyntaxSet
GRAPH_API TreeWriter & operator<<(TreeWriter &writer, const Tree &tree)
Save a tree to a file using a TreeWriter.