2012-12-30 23:14:27 +00:00
|
|
|
#pragma once
|
2012-09-18 03:04:42 +00:00
|
|
|
#include <fc/fwd.hpp>
|
|
|
|
|
#include <fc/utility.hpp>
|
|
|
|
|
|
|
|
|
|
namespace boost {
|
|
|
|
|
namespace interprocess {
|
|
|
|
|
class file_mapping;
|
|
|
|
|
class mapped_region;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
namespace fc {
|
|
|
|
|
enum mode_t {
|
|
|
|
|
read_only,
|
|
|
|
|
write_only,
|
|
|
|
|
read_write
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class file_mapping {
|
|
|
|
|
public:
|
|
|
|
|
file_mapping( const char* file, mode_t );
|
|
|
|
|
~file_mapping();
|
|
|
|
|
private:
|
|
|
|
|
friend class mapped_region;
|
2012-12-03 19:51:31 +00:00
|
|
|
fc::fwd<boost::interprocess::file_mapping,0x24> my;
|
2012-09-18 03:04:42 +00:00
|
|
|
};
|
|
|
|
|
class mapped_region {
|
|
|
|
|
public:
|
|
|
|
|
mapped_region( const file_mapping& fm, mode_t m, size_t start, size_t size );
|
|
|
|
|
mapped_region( const file_mapping& fm, mode_t m );
|
|
|
|
|
~mapped_region();
|
|
|
|
|
void* get_address()const;
|
|
|
|
|
size_t get_size()const;
|
|
|
|
|
private:
|
|
|
|
|
fc::fwd<boost::interprocess::mapped_region,40> my;
|
|
|
|
|
};
|
|
|
|
|
}
|