X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHUtils%2FSMESH_File.hxx;h=0e7ccca52097dd656c794777871d589f078f8356;hb=3eb21ad301385822cfbaa81f2ed6fbfd7bacf23b;hp=9625c0339fcfce8286f9afa3c6b6920ee1200dfe;hpb=e33e8e2029a4e91779b9c1d5f480979fa7b51d0b;p=modules%2Fsmesh.git diff --git a/src/SMESHUtils/SMESH_File.hxx b/src/SMESHUtils/SMESH_File.hxx index 9625c0339..0e7ccca52 100644 --- a/src/SMESHUtils/SMESH_File.hxx +++ b/src/SMESHUtils/SMESH_File.hxx @@ -1,9 +1,9 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -42,24 +42,30 @@ class SMESHUtils_EXPORT SMESH_File { public: - SMESH_File(const std::string& name, bool open=true); + SMESH_File(const std::string& name, bool openForReading=true); ~SMESH_File(); std::string getName() const { return _name; } - bool open(); + const std::string& error() const { return _error; } void close(); bool remove(); - int size() const; + long size(); + + bool exists(); + + bool isDirectory(); // ------------------------ // Access to file contents // ------------------------ + bool open(); // for reading + operator const char*() const { return _pos; } bool operator++() { return ++_pos < _end; } @@ -68,6 +74,8 @@ public: bool eof() const { return _pos >= _end; } + const char* end() const { return _end; } + const char* getPos() const { return _pos; } void setPos(const char* pos); @@ -78,10 +86,31 @@ public: bool getInts(std::vector& ids); + // ------------------------ + // Writting a binary file + // ------------------------ + + bool openForWriting(); // binary writing only + + template + bool write( const T* values, size_t nbTValues ) + { + return writeRaw((const void*) values, nbTValues * sizeof(T)); + } + + template + bool write( const T& value ) + { + return writeRaw((const void*) & value, sizeof(T)); + } + + bool writeRaw(const void* data, size_t size); + private: std::string _name; //!< file name int _size; //!< file size + std::string _error; #ifdef WIN32 HANDLE _file, _mapObj; #else