00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _SALOME_FILE_I_HXX_
00028 #define _SALOME_FILE_I_HXX_
00029
00030 #include <SALOMEconfig.h>
00031
00032 #include CORBA_SERVER_HEADER(SALOME_Component)
00033 #include CORBA_SERVER_HEADER(SALOME_Exception)
00034
00035 #include "SALOME_Container.hxx"
00036 #include "SALOME_FileTransfer_i.hxx"
00037
00038 #include <map>
00039 #include <cstdio>
00040 #include <string>
00041
00042 class CONTAINER_EXPORT Salome_file_i:
00043 public virtual POA_Engines::Salome_file,public virtual fileTransfer_i
00044 {
00045 public:
00046 Salome_file_i();
00047 virtual ~Salome_file_i();
00048
00049
00050 virtual void load(const char* hdf5_file);
00051 virtual void save(const char* hdf5_file);
00052 virtual void save_all(const char* hdf5_file);
00053
00054
00055 virtual void setLocalFile(const char* comp_file_name);
00056 virtual void setDistributedFile(const char* comp_file_name);
00057
00058
00059 virtual void connect(Engines::Salome_file_ptr source_Salome_file);
00060 virtual void connectDistributedFile(const char * file_name,
00061 Engines::Salome_file_ptr source_Salome_file);
00062 virtual void setDistributedSourceFile(const char* file_name,
00063 const char * source_file_name);
00064
00065
00066 virtual void recvFiles();
00067
00068
00069 virtual void removeFile(const char* file_name);
00070 virtual void removeFiles();
00071
00072
00073 virtual void setContainer(Engines::Container_ptr container);
00074 virtual Engines::files* getFilesInfos();
00075 virtual Engines::file* getFileInfos(const char* file_name);
00076 virtual Engines::SfState* getSalome_fileState();
00077
00078
00079 virtual CORBA::Long open(const char* file_name);
00080 virtual void close(CORBA::Long fileId);
00081 virtual Engines::fileBlock* getBlock(CORBA::Long fileId);
00082
00083 protected:
00084
00085 virtual bool checkLocalFile(std::string file_name);
00086 virtual bool getDistributedFile(std::string file_name);
00087
00088 protected:
00089
00090
00091
00092 typedef std::map<int, FILE*> _t_fileAccess;
00093
00094
00095 typedef std::map<std::string, Engines::file> _t_fileManaged;
00096
00097
00098 typedef std::map<std::string, Engines::Salome_file_var> _t_fileDistributedSource;
00099
00100 int _fileId;
00101 long _path_max;
00102 _t_fileAccess _fileAccess;
00103 _t_fileManaged _fileManaged;
00104 _t_fileDistributedSource _fileDistributedSource;
00105 Engines::SfState _state;
00106 Engines::Container_ptr _container;
00107 Engines::Salome_file_var _default_source_Salome_file;
00108 };
00109
00110 #endif