Class: Fiddley::MemoryPointer
- Inherits:
-
Object
- Object
- Fiddley::MemoryPointer
show all
- Includes:
- Utils
- Defined in:
- lib/fiddley/memory_pointer.rb
Constant Summary
Constants included
from Utils
Utils::SIZET_FORMAT, Utils::SIZET_TYPE
Instance Attribute Summary collapse
Instance Method Summary
collapse
-
#get_bytes(offset, len) ⇒ Object
-
#get_string(offset, len = nil) ⇒ Object
-
#initialize(type, num = 1, clear = true) ⇒ MemoryPointer
constructor
A new instance of MemoryPointer.
-
#put_bytes(offset, str, idx = 0, len = str.bytesize - idx) ⇒ Object
-
#put_string(offset, str) ⇒ Object
-
#read_bytes(len) ⇒ Object
-
#read_string(len = nil) ⇒ Object
-
#to_ptr ⇒ Object
-
#write_bytes(str, idx = 0, len = nil) ⇒ Object
-
#write_string(str, len = nil) ⇒ Object
-
#write_string_length(str, len) ⇒ Object
Methods included from Utils
str2value, type2offset_size, type2size, type2str, type2type, value2str
Constructor Details
#initialize(type, num = 1, clear = true) ⇒ MemoryPointer
Returns a new instance of MemoryPointer.
12
13
14
15
16
17
18
19
20
|
# File 'lib/fiddley/memory_pointer.rb', line 12
def initialize(type, num = 1, clear = true)
if num.is_a?(Fiddle::Pointer)
@ptr = num
@size = @ptr.size
else
@size = type2size(type) * num
@ptr = Fiddle::Pointer.malloc(@size)
end
end
|
Instance Attribute Details
#size ⇒ Object
Returns the value of attribute size.
22
23
24
|
# File 'lib/fiddley/memory_pointer.rb', line 22
def size
@size
end
|
Instance Method Details
#get_bytes(offset, len) ⇒ Object
106
107
108
|
# File 'lib/fiddley/memory_pointer.rb', line 106
def get_bytes(offset, len)
@ptr[offset, len]
end
|
#get_string(offset, len = nil) ⇒ Object
126
127
128
|
# File 'lib/fiddley/memory_pointer.rb', line 126
def get_string(offset, len = nil)
@ptr[offset, len ? len : @size - offset]
end
|
#put_bytes(offset, str, idx = 0, len = str.bytesize - idx) ⇒ Object
98
99
100
|
# File 'lib/fiddley/memory_pointer.rb', line 98
def put_bytes(offset, str, idx = 0, len = str.bytesize - idx)
@ptr[offset, len] = str[idx, len]
end
|
#put_string(offset, str) ⇒ Object
114
115
116
|
# File 'lib/fiddley/memory_pointer.rb', line 114
def put_string(offset, str)
@ptr[offset, str.bytesize] = str
end
|
#read_bytes(len) ⇒ Object
110
111
112
|
# File 'lib/fiddley/memory_pointer.rb', line 110
def read_bytes(len)
get_bytes(0, len)
end
|
#read_string(len = nil) ⇒ Object
130
131
132
|
# File 'lib/fiddley/memory_pointer.rb', line 130
def read_string(len = nil)
get_string(0, len)
end
|
#to_ptr ⇒ Object
24
25
26
|
# File 'lib/fiddley/memory_pointer.rb', line 24
def to_ptr
@ptr
end
|
#write_bytes(str, idx = 0, len = nil) ⇒ Object
102
103
104
|
# File 'lib/fiddley/memory_pointer.rb', line 102
def write_bytes(str, idx = 0, len = nil)
put_bytes(0, str, idx, len)
end
|
#write_string(str, len = nil) ⇒ Object
118
119
120
|
# File 'lib/fiddley/memory_pointer.rb', line 118
def write_string(str, len = nil)
put_string(0, len ? str[0, len] : str)
end
|
#write_string_length(str, len) ⇒ Object
122
123
124
|
# File 'lib/fiddley/memory_pointer.rb', line 122
def write_string_length(str, len)
put_string(0, str[0, len])
end
|