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::LONG_SIZE, Utils::POINTER_SIZE, 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, len = nil) ⇒ Object
-
#put_string(offset, str) ⇒ Object
-
#read_bytes(len) ⇒ Object
-
#read_string(len = nil) ⇒ Object
-
#to_ptr ⇒ Object
-
#write_bytes(str, len = nil) ⇒ Object
-
#write_string(str, len = nil) ⇒ Object
-
#write_string_length(str, len) ⇒ Object
Methods included from Utils
str2value, type2size, type2str, value2str
Constructor Details
#initialize(type, num = 1, clear = true) ⇒ MemoryPointer
Returns a new instance of MemoryPointer.
12
13
14
15
|
# File 'lib/fiddley/memory_pointer.rb', line 12
def initialize(type, num = 1, clear = true)
@size = type2size(type) * num
@ptr = Fiddle::Pointer.malloc(@size)
end
|
Instance Attribute Details
#size ⇒ Object
Returns the value of attribute size.
17
18
19
|
# File 'lib/fiddley/memory_pointer.rb', line 17
def size
@size
end
|
Instance Method Details
#get_bytes(offset, len) ⇒ Object
101
102
103
|
# File 'lib/fiddley/memory_pointer.rb', line 101
def get_bytes(offset, len)
@ptr[offset, len]
end
|
#get_string(offset, len = nil) ⇒ Object
121
122
123
|
# File 'lib/fiddley/memory_pointer.rb', line 121
def get_string(offset, len = nil)
@ptr[offset, len ? len : @size - offset]
end
|
#put_bytes(offset, str, len = nil) ⇒ Object
93
94
95
|
# File 'lib/fiddley/memory_pointer.rb', line 93
def put_bytes(offset, str, len = nil)
@ptr[offset, len ? len : str.bytesize] = len ? str[0, len] : str
end
|
#put_string(offset, str) ⇒ Object
109
110
111
|
# File 'lib/fiddley/memory_pointer.rb', line 109
def put_string(offset, str)
@ptr[offset, str.bytesize] = str
end
|
#read_bytes(len) ⇒ Object
105
106
107
|
# File 'lib/fiddley/memory_pointer.rb', line 105
def read_bytes(len)
get_bytes(0, len)
end
|
#read_string(len = nil) ⇒ Object
125
126
127
|
# File 'lib/fiddley/memory_pointer.rb', line 125
def read_string(len = nil)
get_string(0, len)
end
|
#to_ptr ⇒ Object
19
20
21
|
# File 'lib/fiddley/memory_pointer.rb', line 19
def to_ptr
@ptr
end
|
#write_bytes(str, len = nil) ⇒ Object
97
98
99
|
# File 'lib/fiddley/memory_pointer.rb', line 97
def write_bytes(str, len = nil)
put_bytes(0, str, len)
end
|
#write_string(str, len = nil) ⇒ Object
113
114
115
|
# File 'lib/fiddley/memory_pointer.rb', line 113
def write_string(str, len = nil)
put_string(0, len ? str[0, len] : str)
end
|
#write_string_length(str, len) ⇒ Object
117
118
119
|
# File 'lib/fiddley/memory_pointer.rb', line 117
def write_string_length(str, len)
put_string(0, str[0, len])
end
|