Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
GzipIfstream.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // OpenMS -- Open-Source Mass Spectrometry
3 // --------------------------------------------------------------------------
4 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5 // ETH Zurich, and Freie Universitaet Berlin 2002-2015.
6 //
7 // This software is released under a three-clause BSD license:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of any author or any participating institution
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 // For a full list of authors, refer to the file AUTHORS.
17 // --------------------------------------------------------------------------
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // --------------------------------------------------------------------------
31 // $Maintainer: David Wojnar $
32 // $Authors: David Wojnar $
33 // --------------------------------------------------------------------------
34 
35 #ifndef OPENMS_FORMAT_GZIPIFSTREAM_H
36 #define OPENMS_FORMAT_GZIPIFSTREAM_H
37 
38 #include <OpenMS/config.h>
39 #include <zlib.h>
40 
41 namespace OpenMS
42 {
46  class OPENMS_DLLAPI GzipIfstream
47  {
48 public:
50  GzipIfstream();
52  explicit GzipIfstream(const char * filename);
54  virtual ~GzipIfstream();
55 
66  size_t read(char * s, size_t n);
67 
73  bool streamEnd() const;
74 
78  bool isOpen() const;
79 
84  void open(const char * filename);
85 
89  void close();
90 
91  /*
92  @brief updates crc32 check sum whether the buffer is corrupted
93  @note if this function is used it has to be called after every call of function read
94  @param s the buffer which will be checked
95  @param n the size of the buffer
96  *
97  //void updateCRC32(const char* s,const size_t n);
98 
99  *
100  @brief checks if data is corrupted after crc32 was computed
101  @note it can only be used if updateCRC32 was called after every call of function read
102  @return true if the buffer and hence the file is corrupted; no decompression is possible
103  *
104  //bool isCorrupted();
105 
106  //unsigned long Crc32_ComputeBuf( unsigned long inCrc32, const void *buf,
107 // size_t bufLen );*/
108 
109 protected:
110 
112  gzFile gzfile_;
116  int gzerror_;
119 
120  //needed if one wants to know whether file is okay
121  //unsigned long original_crc;
122  //needed if one wants to know whether file is okay
123  //unsigned long crc;
124 
126  GzipIfstream(const GzipIfstream & bzip2);
127  GzipIfstream & operator=(const GzipIfstream & bzip2);
128  };
129 
130  inline bool GzipIfstream::isOpen() const
131  {
132  return gzfile_ != NULL;
133  }
134 
135  inline bool GzipIfstream::streamEnd() const
136  {
137  return stream_at_end_;
138  }
139 
140 /* inline bool GzipIfstream::isCorrupted()
141  {
142  std::cout<<"CRC"<<crc<<std::endl;
143  return (crc != original_crc);
144  }*/
145 
146 } //namespace OpenMS
147 #endif //OPENMS_FORMAT_GZIPIFSTREAM_H
Decompresses files which are compressed in the gzip format (*.gzip)
Definition: GzipIfstream.h:46
bool stream_at_end_
true if end of file is reached
Definition: GzipIfstream.h:118
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
int gzerror_
saves the last returned error by the read function
Definition: GzipIfstream.h:116
bool streamEnd() const
indicates whether the read function can be used safely
Definition: GzipIfstream.h:135
gzFile gzfile_
a gzFile object(void*) . Necessary for decompression
Definition: GzipIfstream.h:112
int n_buffer_
counts the last read duffer
Definition: GzipIfstream.h:114
bool isOpen() const
returns whether a file is open.
Definition: GzipIfstream.h:130

OpenMS / TOPP release 2.0.0 Documentation generated on Tue Nov 1 2016 16:34:46 using doxygen 1.8.11