Class: DL::Importable::Internal::Memory
- Inherits:
-
Object
- Object
- DL::Importable::Internal::Memory
- Defined in:
- lib/dl/struct.rb
Instance Method Summary collapse
-
#initialize(ptr, names, ty, len, enc, dec) ⇒ Memory
constructor
A new instance of Memory.
- #size ⇒ Object
- #to_ptr ⇒ Object
Constructor Details
#initialize(ptr, names, ty, len, enc, dec) ⇒ Memory
Returns a new instance of Memory.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/dl/struct.rb', line 22 def initialize(ptr, names, ty, len, enc, dec) @ptr = ptr @names = names @ty = ty @len = len @enc = enc @dec = dec # define methods @names.each{|name| instance_eval [ "def #{name}", " v = @ptr[\"#{name}\"]", " if( @len[\"#{name}\"] )", " v = v.collect{|x| @dec[\"#{name}\"] ? @dec[\"#{name}\"].call(x) : x }", " else", " v = @dec[\"#{name}\"].call(v) if @dec[\"#{name}\"]", " end", " return v", "end", "def #{name}=(v)", " if( @len[\"#{name}\"] )", " v = v.collect{|x| @enc[\"#{name}\"] ? @enc[\"#{name}\"].call(x) : x }", " else", " v = @enc[\"#{name}\"].call(v) if @enc[\"#{name}\"]", " end", " @ptr[\"#{name}\"] = v", " return v", "end", ].join("\n") } end |
Instance Method Details
#size ⇒ Object
59 60 61 |
# File 'lib/dl/struct.rb', line 59 def size return @ptr.size end |
#to_ptr ⇒ Object
55 56 57 |
# File 'lib/dl/struct.rb', line 55 def to_ptr return @ptr end |