Salome HOME
Implementation notebook in the SMESH module.
[modules/smesh.git] / src / SMESH_I / SMESH_NoteBook.hxx
1 // Copyright (C) 2008  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
3 //
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License.
8 //
9 // This library is distributed in the hope that it will be useful
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 // Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 //
18 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 //
20 // File      : SMESH_NoteBook.hxx
21 // Author    : Roman NIKOLAEV ()
22
23
24 #ifndef SMESH_NoteBook_HeaderFile
25 #define SMESH_NoteBook_HeaderFile
26
27 #include <TCollection_AsciiString.hxx>
28 #include <Resource_DataMapOfAsciiStringAsciiString.hxx>
29
30 #include <vector>
31 #include <string>
32
33 typedef std::vector<TCollection_AsciiString>  TState;
34 typedef std::vector<TState>                   TAllStates;
35
36 class ObjectStates{
37   
38 public:
39   
40   ObjectStates(TCollection_AsciiString theType);
41   ~ObjectStates();
42
43   void AddState(const TState &theState);
44
45   TState GetCurrectState() const;
46   TAllStates GetAllStates() const;
47   void IncrementState();
48   TCollection_AsciiString GetObjectType() const;
49
50   
51
52 private:
53   TCollection_AsciiString                   _type;
54   TAllStates                                _states;
55   int                                       _dumpstate;
56 };
57
58 class SMESH_NoteBook
59 {
60 public:
61   SMESH_NoteBook();
62   ~SMESH_NoteBook();
63   TCollection_AsciiString ReplaceVariables(const TCollection_AsciiString& theString) const;
64
65   typedef std::map<TCollection_AsciiString,ObjectStates*> TVariablesMap;
66
67 private:
68   void InitObjectMap();
69   
70 private:
71   TVariablesMap _objectMap;
72 };
73
74 #endif //SMESH_NoteBook_HeaderFile