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