Ion
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
memorymappedfile.h
Go to the documentation of this file.
1 
18 #ifndef ION_PORT_MEMORYMAPPEDFILE_H_
19 #define ION_PORT_MEMORYMAPPEDFILE_H_
20 
21 #include "base/macros.h"
22 
23 #if defined(ION_PLATFORM_WINDOWS)
24 #include <winnt.h>
25 #endif
26 
27 namespace ion {
28 namespace port {
29 
31 class ION_API MemoryMappedFile {
32  public:
36  explicit MemoryMappedFile(const std::string& path);
38 
40  const void* GetData() const;
41 
43  size_t GetLength() const;
44 
45  private:
46  void* data_; // Beginning of the mapped region.
47  size_t length_; // Length of the mapped region.
48 #if defined(ION_PLATFORM_WINDOWS)
49  HANDLE mapping_;
50 #endif
51 
52  DISALLOW_IMPLICIT_CONSTRUCTORS(MemoryMappedFile);
53 };
54 
55 } // namespace port
56 } // namespace ion
57 
58 #endif // ION_PORT_MEMORYMAPPEDFILE_H_
Read-only in-memory view of an entire file on disk.