internal/compressed_ifstream.h
Go to the documentation of this file.
00001 // Copyright (c) 2009-2010  INRIA Sophia-Antipolis (France).
00002 // All rights reserved.
00003 //
00004 //This file is part of ESBTL.
00005 //
00006 //ESBTL is free software: you can redistribute it and/or modify
00007 //it under the terms of the GNU General Public License as published by
00008 //the Free Software Foundation, either version 3 of the License, or
00009 //(at your option) any later version.
00010 //
00011 //ESBTL is distributed in the hope that it will be useful,
00012 //but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 //GNU General Public License for more details.
00015 //
00016 //You should have received a copy of the GNU General Public License
00017 //along with ESBTL.  If not, see <http://www.gnu.org/licenses/>.
00018 //
00019 //
00020 //Additional permission under GNU GPL version 3 section 7
00021 //
00022 //If you modify this Library, or any covered work, by linking or
00023 //combining it with CGAL (or a modified version of that library), the
00024 //licensors of this Library grant you additional permission to convey
00025 //the resulting work. Corresponding Source for a non-source form of
00026 //such a combination shall include the source code for the parts of CGAL
00027 //used as well as that of the covered work. 
00028 //
00029 //
00030 //
00031 // Author(s)     :  Sébastien Loriot
00032 
00033 
00034 
00035 #ifndef ESBTL_INTERNAL_COMPRESSED_IFSTREAM_H
00036 #define ESBTL_INTERNAL_COMPRESSED_IFSTREAM_H
00037 
00038 #include <iostream>
00039 #include <fstream>
00040 
00041 namespace ESBTL{
00047 enum Reading_mode {ASCII,BZIP2,GZIP};
00048 }//namespace ESBTL
00049 
00050 namespace ESBTL{
00052 namespace internal{
00053   
00054   template <Reading_mode mode>
00055   class Ifstream_compress;
00056 
00057   template<>
00058   class Ifstream_compress<ASCII>
00059   {
00060     public:
00061     std::ifstream& get(std::ifstream& input) const {return input;}
00062   };
00063 
00064 } //namespace internal
00066 } //namespace ESBTL
00067 
00068 #endif //ESBTL_INTERNAL_COMPRESSED_IFSTREAM_H