2011CaoTme45: Lofig-Skeleton.cpp

File Lofig-Skeleton.cpp, 1.3 KB (added by jpc, 15 years ago)

C++ Source: Squelette de Lofig.cpp

Line 
1
2#include "Indentation.h"
3
4// ...
5
6string Lofig::modeToString ( unsigned int mode )
7{
8 switch ( mode ) {
9 case Full: return "Full";
10 case Abstract: return "Abstract";
11 case Empty: return "Empty";
12 }
13 return "Unknown";
14}
15
16
17void Lofig::xmlDrive ( ostream& o, unsigned int mode )
18{
19 o << indent++ << "<Lofig";
20 o << " name=\"" << _name << "\"";
21 o << " mode=\"" << modeToString(_mode) << "\"";
22 o << " signalsIds=\"" << _signalIds << "\">\n";
23
24 o << indent++ << "<signals>\n";
25 for ( list<Losig*>::iterator isig=_signals.begin() ; isig!=_signals.end() ; isig++ )
26 (*isig)->xmlDrive ( o );
27 o << --indent << "</signals>\n";
28
29 o << indent++ << "<connectors>\n";
30 for ( list<Locon*>::iterator icon=_connectors.begin() ; icon!=_connectors.end() ; icon++ )
31 (*icon)->xmlDrive ( o );
32 o << --indent << "</connectors>\n";
33
34 if ( mode == Full ) {
35 o << indent++ << "<models>\n";
36 for ( list<Lofig*>::iterator ifig=_models.begin() ; ifig!=_models.end() ; ifig++ )
37 (*ifig)->xmlDrive ( o, Abstract );
38 o << --indent << "</models>\n";
39
40 o << indent++ << "<instances>\n";
41 for ( list<Loins*>::iterator iins=_instances.begin() ; iins!=_instances.end() ; iins++ )
42 (*iins)->xmlDrive ( o );
43 o << --indent << "</instances>\n";
44 }
45
46 o << --indent << "</Lofig>\n";
47}