00001 /* 00002 PeRdr - PE file disassembler 00003 Copyright (C) 1999-2002 Frediano Ziglio 00004 ----- 00005 00006 This program 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 2 of the License, or 00009 (at your option) any later version. 00010 00011 This program 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 this program; if not, write to the Free Software 00018 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00019 ----- 00020 00021 INFORMATION 00022 www: https://freddy77.tripod.com/perdr/ 00023 e-mail: freddy77@angelfire.com 00024 */ 00025 #ifndef FILE_SIGNFILE_HPP 00026 #define FILE_SIGNFILE_HPP 00027 00028 #include "utils/range.hpp" 00029 #include "file.hpp" 00030 00031 class CSignFile:public CFile 00032 { 00033 public: 00034 CSignFile(const char* filename,const char* mode); 00035 char *ReadString() const; 00036 char *ReadStringFlag(unsigned flag) const; 00037 void RawRead(void *ptr,size_t size) const; 00038 const range_set<long>& GetRanges() { return ranges; }; 00039 private: 00040 typedef range_set<long> t_ranges; 00041 mutable t_ranges ranges; 00042 }; 00043 00044 #endif //FILE_SIGNFILE_HPP