Salome HOME
Has functionality from SalomeApp without dependency from CORBA
[modules/gui.git] / src / LightApp / LightApp_Driver.h
1 #ifndef LIGHTAPP_DRIVER_H\r
2 #define LIGHTAPP_DRIVER_H\r
3 \r
4 #include <LightApp.h>\r
5 \r
6 #include "string"\r
7 #include "vector"\r
8 #include "map"\r
9 \r
10 #ifdef WIN32\r
11 #pragma warning( disable:4251 )\r
12 #endif\r
13 \r
14 /*!Description : Driver can save to file and read from file list of files for light modules*/\r
15 \r
16 class LIGHTAPP_EXPORT LightApp_Driver\r
17 {\r
18 public:\r
19   LightApp_Driver();\r
20   virtual ~LightApp_Driver();\r
21 \r
22 \r
23   typedef std::vector<std::string> ListOfFiles;\r
24 \r
25   bool                SaveDatasInFile   (const char* theFileName, bool isMultiFile );\r
26   bool                ReadDatasFromFile (const char* theFileName,  bool isMultiFile );\r
27   virtual std::string GetTmpDir      (const char* theURL, const bool  isMultiFile);\r
28 \r
29   ListOfFiles         GetListOfFiles (const char* theModuleName);\r
30   virtual void        SetListOfFiles (const char* theModuleName, const ListOfFiles theListOfFiles);\r
31   virtual void        RemoveTemporaryFiles(const char* theModuleName, const bool IsDirDeleted);\r
32 \r
33   virtual void        ClearDriverContents();\r
34 \r
35 private:\r
36   void                PutFilesToStream(const std::string& theModuleName, unsigned char*& theBuffer,\r
37                                        long& theBufferSize, bool theNamesOnly = false);\r
38   ListOfFiles         PutStreamToFiles(const unsigned char* theBuffer,\r
39                                        const long theBufferSize, bool theNamesOnly = false);\r
40 \r
41   std::string GetTmpDir();\r
42   std::string GetDirFromPath(const std::string& thePath);\r
43 \r
44 private:\r
45   typedef std::map<std::string, ListOfFiles> MapOfListOfFiles;\r
46   MapOfListOfFiles                           myMap;\r
47 };\r
48 \r
49 #endif \r