Moved non-public headers out of include/ directory.
5 * Created by Jens Alfke on 9/17/09.
6 * Copyright 2009 Jens Alfke. All rights reserved.
7 * BSD-Licensed: See the file "LICENSE.txt" for details.
14 /** A flexible memory-map on a file, which can handle multiple discontiguous mapped regions.
15 Clients usually access this functionality through File, which delegates to it. */
18 MemoryMap (File* file) :_file(file), _nRegions(0), _regions(NULL) { }
21 void mapRegion (off_t position, size_t length);
22 const void* mappedPosition (off_t position) const;
25 UNCOPYABLE(MemoryMap);
27 const void* _at (off_t) const;
35 class MemoryMap::Region {
37 Region (File*, off_t position, size_t length);
39 off_t position() const {return _position;}
40 size_t length() const {return _length;}
41 off_t end() const {return _position + _length;}
42 bool setLength (size_t); // Returns false if it failed
43 const void* mappedPosition(off_t);
47 const off_t _position;
49 const uint8_t *_start;