SiGraph: sulcal graphs


mgWriter.h
Go to the documentation of this file.
1
2#ifndef SI_GRAPH_MGWRITER_H
3#define SI_GRAPH_MGWRITER_H
4
5
7#include <graph/graph/graph.h>
8#include <cartobase/stream/fileutil.h>
9
10
11namespace sigraph
12{
13
14 class MGWriter : public GraphWriter
15 {
16 public:
17 MGWriter( const std::string & filename, const carto::SyntaxSet & synt );
18 virtual ~MGWriter();
19 virtual void parseModel( const GraphObject & ao,
20 const std::string & mfile = "model_file",
21 const std::string & mstr = "model" );
22 virtual void write( const Graph & ao );
23 virtual std::string name() const;
24 virtual std::string dataDirectory( const Graph & ao ) const;
25
26 protected:
27 virtual void write( const GraphObject & ao );
28 virtual void write( const Vertex & ao );
29 virtual void write( const Edge & ao );
30
31 mutable std::string _filenameBase;
32
33 private:
34 std::string _mgFilename;
35 };
36
37
38 // inline
39
40
41 inline void MGWriter::write( const Vertex & ao )
42 {
44 write( (GraphObject &) ao );
45 }
46
47
48 inline void MGWriter::write( const Edge & ao )
49 {
51 write( (GraphObject &) ao );
52 }
53
54
55 inline std::string MGWriter::dataDirectory( const Graph & ao ) const
56 {
57 if( !ao.getProperty( "filename_base", _filenameBase ) )
58 _filenameBase = "";
59 if( _filenameBase == "*" )
60 {
62 if( _filenameBase.substr( _filenameBase.length() - 4, 4 ) == ".arg" )
63 _filenameBase = _filenameBase.substr( 0, _filenameBase.length() - 4 );
64 _filenameBase += ".data";
65 }
66 return _filenameBase;
67 }
68
69
70 inline void MGWriter::write( const Graph & ao )
71 {
72 dataDirectory( ao );
73 if( !is_open() )
74 open( name() );
75
77 write( (GraphObject &) ao );
78 }
79
80
81 inline std::string MGWriter::name() const
82 {
83 return( _mgFilename );
84 }
85
86}
87
88#endif
89
90
virtual void write(const Graph &graph)
GraphWriter(const std::string &filename, const carto::SyntaxSet &syntax, const HelperSet &helpers=HelperSet())
static std::string basename(const std::string &)
virtual std::string name() const
Definition mgWriter.h:81
virtual void write(const GraphObject &ao)
virtual ~MGWriter()
MGWriter(const std::string &filename, const carto::SyntaxSet &synt)
virtual void parseModel(const GraphObject &ao, const std::string &mfile="model_file", const std::string &mstr="model")
virtual std::string dataDirectory(const Graph &ao) const
Definition mgWriter.h:55
virtual void write(const Graph &ao)
Definition mgWriter.h:70
std::string _filenameBase
Definition mgWriter.h:31
std::map< std::string, Syntax > SyntaxSet