class MMap
Constants
- MAP_PRIVATE
- MAP_SHARED
- PROT_EXEC
- PROT_READ
- PROT_WRITE
- Version
Attributes
size[RW]
Public Class Methods
new(file, size = nil, prot = PROT_READ | PROT_WRITE, map = MAP_SHARED)
click to toggle source
# File lib/mmap_ffi.rb, line 20 def initialize(file, size = nil, prot = PROT_READ | PROT_WRITE, map = MAP_SHARED) @size = file.size @ptr = FFIMMap.mmap( FFI::Pointer.new(:void,0), @size, prot, map , file.fileno, 0 ) end
Public Instance Methods
[](range)
click to toggle source
# File lib/mmap_ffi.rb, line 25 def [](range) raise "expected to index mmap reads with ranges, got #{range.class}" unless range.is_a? Range range = range.min..[range.max, @size-1].min return nil unless range.min # nil if min > max (@ptr+range.min).read_bytes(range.size) end
[]=(key, value)
click to toggle source
# File lib/mmap_ffi.rb, line 32 def []=(key, value) raise "expected to index mmap writes with ints, got #{key.class}" unless key.is_a? Integer return nil if(key >= @size) endoffset = [value.size, @size-1-key].min (@ptr+key).write_bytes( value[0..endoffset] ) end
raw_ptr()
click to toggle source
# File lib/mmap_ffi.rb, line 39 def raw_ptr @ptr end