Version: 8.3.0
Main Page
Related Pages
Packages
Data Structures
Files
File List
Globals
SALOME Mesh Module Developer
Use the SpherePadder SMESH Plugin
Todo List
Packages
Data Structures
Files
File List
idl
src
Controls
Driver
DriverCGNS
DriverDAT
DriverGMF
DriverMED
DriverSTL
DriverUNV
MEDWrapper
MEFISTO2
OBJECT
PluginUtils
SMDS
SMESH
SMESH_I
SMESH_SWIG_WITHIHM
SMESHClient
SMESHDS
SMESHFiltersSelection
SMESHGUI
SMESHUtils
SMESH_Block.cxx
SMESH_Block.hxx
SMESH_Comment.hxx
SMESH_ComputeError.hxx
SMESH_ControlPnt.cxx
SMESH_ControlPnt.hxx
SMESH_DeMerge.cxx
SMESH_File.cxx
SMESH_File.hxx
SMESH_FreeBorders.cxx
SMESH_MAT2d.cxx
SMESH_MAT2d.hxx
SMESH_MeshAlgos.cxx
SMESH_MeshAlgos.hxx
SMESH_Octree.cxx
SMESH_Octree.hxx
SMESH_OctreeNode.cxx
SMESH_OctreeNode.hxx
SMESH_Quadtree.cxx
SMESH_Quadtree.hxx
SMESH_Tree.hxx
SMESH_TryCatch.cxx
SMESH_TryCatch.hxx
SMESH_TypeDefs.hxx
SMESH_Utils.hxx
StdMeshers
StdMeshers_I
StdMeshersGUI
Tools
Globals
SMESH_File.hxx
Go to the documentation of this file.
1
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
2
//
3
// This library is free software; you can redistribute it and/or
4
// modify it under the terms of the GNU Lesser General Public
5
// License as published by the Free Software Foundation; either
6
// version 2.1 of the License, or (at your option) any later version.
7
//
8
// This library is distributed in the hope that it will be useful,
9
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
// Lesser General Public License for more details.
12
//
13
// You should have received a copy of the GNU Lesser General Public
14
// License along with this library; if not, write to the Free Software
15
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
//
17
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18
//
19
20
// File : SMESH_File.hxx
21
// Created : Wed Mar 10 10:33:04 2010
22
// Author : Edward AGAPOV (eap)
23
//
24
#ifndef __SMESH_File_HXX__
25
#define __SMESH_File_HXX__
26
27
#include "
SMESH_Utils.hxx
"
28
29
#include <string>
30
#include <vector>
31
32
#ifdef WIN32
33
#include <windows.h>
34
#else
35
#include <dlfcn.h>
36
#endif
37
41
class
SMESHUtils_EXPORT
SMESH_File
42
{
43
public
:
44
45
SMESH_File
(
const
std::string& name,
bool
openForReading=
true
);
46
47
~
SMESH_File
();
48
49
std::string
getName
()
const
{
return
_name; }
50
51
const
std::string&
error
()
const
{
return
_error; }
52
53
void
close();
54
55
bool
remove
();
56
57
long
size();
58
59
bool
exists();
60
61
bool
isDirectory();
62
63
// ------------------------
64
// Access to file contents
65
// ------------------------
66
67
bool
open();
// for reading
68
69
operator
const
char
*()
const
{
return
_pos; }
70
71
bool
operator++
() {
return
++_pos < _end; }
72
73
void
operator +=(
int
posDelta) { _pos+=posDelta; }
74
75
bool
eof
()
const
{
return
_pos >= _end; }
76
77
const
char
*
end
()
const
{
return
_end; }
78
79
const
char
*
getPos
()
const
{
return
_pos; }
80
81
void
setPos(
const
char
* pos);
82
83
std::string getLine();
84
85
void
rewind();
86
87
bool
getInts(std::vector<int>& ids);
88
89
// ------------------------
90
// Writting a binary file
91
// ------------------------
92
93
bool
openForWriting();
// binary writing only
94
95
template
<
typename
T>
96
bool
write(
const
T* values,
size_t
nbTValues )
97
{
98
return
writeRaw((
const
void
*) values, nbTValues *
sizeof
(T));
99
}
100
101
template
<
typename
T>
102
bool
write(
const
T& value )
103
{
104
return
writeRaw((
const
void
*) & value,
sizeof
(T));
105
}
106
107
bool
writeRaw(
const
void
* data,
size_t
size);
108
109
private
:
110
111
std::string
_name
;
112
long
_size
;
113
std::string
_error
;
114
#ifdef WIN32
115
HANDLE _file, _mapObj;
116
#else
117
int
_file
;
118
#endif
119
void
*
_map
;
120
const
char
*
_pos
;
121
const
char
*
_end
;
122
};
123
124
#endif
src
SMESHUtils
SMESH_File.hxx
Copyright © 2007-2017 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS