Salome HOME
Porting HEXABLOCK module on WIN32 platform.
[modules/hexablock.git] / src / HEXABLOCK / Hex.hxx
1
2 // class : La clase principale de Hexa
3
4 // Copyright (C) 2009-2013  CEA/DEN, EDF R&D
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ 
21 // or email : webmaster.salome@opencascade.com
22 //
23
24 #ifndef __HEX_H
25 #define __HEX_H
26
27 #include "Hex_defines.hxx"
28
29 #include "hexa_base.hxx"
30
31 #if defined WIN32
32 #pragma warning ( disable: 4251 )
33 #endif
34
35 BEGIN_NAMESPACE_HEXA
36
37 class Hex;
38 HEXABLOCKENGINE_EXPORT Hex*  hex_instance ();
39
40 class HEXABLOCKENGINE_EXPORT Hex
41 {
42 public:
43    static Hex* getInstance ();
44
45    int       countDocument ();
46    Document* getDocument (int nro);
47    void      removeDocument (Document* doc);
48
49    Document* addDocument  (cpchar name="default");
50    Document* loadDocument (cpchar name);
51    Document* findDocument (cpchar name);
52    Document* findDocument (const string& name) 
53              { return findDocument (name.c_str()) ; }
54    void what ();
55    int    sizeofMessage  ();
56    cpchar getMessageLine (int nlig);
57
58 #ifndef SWIG
59    int loadAllDocs (cpchar flow);
60    int saveAllDocs (cpchar filename);
61    void makeName   (cpchar radical, string& name);
62
63    void lockDump();
64    void restoreDump();
65      
66 // private:
67              //  Constructeur + destructeur
68     Hex ();
69    ~Hex ();
70
71 private:
72    static Hex* first_instance;
73    vector <Document*> liste_documents;
74    Globale*    glob;
75 #endif    // not SWIG
76 };
77
78 HEXABLOCKENGINE_EXPORT void what ();
79
80 END_NAMESPACE_HEXA
81 #endif