00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef SPECTMORPH_MMAP_IN_HH
00019 #define SPECTMORPH_MMAP_IN_HH
00020
00021 #include <string>
00022
00023 #include "smgenericin.hh"
00024
00025 namespace SpectMorph
00026 {
00027
00028 class MMapIn : public GenericIn
00029 {
00030 unsigned char *mapfile;
00031 unsigned char *mapend;
00032 unsigned char *pos;
00033
00034 MMapIn (unsigned char *mapfile, unsigned char *mapend);
00035 public:
00036 static GenericIn* open (const std::string& filename);
00037
00038 int get_byte();
00039 int read (void *ptr, size_t size);
00040 bool skip (size_t size);
00041 unsigned char *mmap_mem (size_t& remaining);
00042 size_t get_pos();
00043 GenericIn *open_subfile (size_t pos, size_t len);
00044 };
00045
00046 }
00047
00048 #endif