memoryMap.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef EQBASE_MEMORYMAP_H
00019 #define EQBASE_MEMORYMAP_H
00020
00021 #include <eq/base/base.h>
00022 #include <eq/base/nonCopyable.h>
00023
00024 #include <string>
00025
00026 namespace eq
00027 {
00028 namespace base
00029 {
00031 class MemoryMap : public NonCopyable
00032 {
00033 public:
00035 EQ_EXPORT MemoryMap();
00036
00043 EQ_EXPORT ~MemoryMap();
00044
00054 EQ_EXPORT const void* map( const std::string& fileName );
00055
00057 EQ_EXPORT void unmap();
00058
00060 const void* getAddress() const { return _ptr; }
00061
00063 size_t getSize() const { return _size; }
00064
00065 private:
00066 #ifdef WIN32
00067 HANDLE _map;
00068 #else
00069 int _fd;
00070 #endif
00071
00072 void* _ptr;
00073 size_t _size;
00074 };
00075
00076 }
00077 }
00078
00079 #endif //EQBASE_MEMORYMAP_H