Class: Babeltrace2::BTField::Array
Defined Under Namespace
Classes: Dynamic, Static
Constant Summary
TYPE_MAP
Instance Attribute Summary
#handle
Instance Method Summary
collapse
from_handle, #get_class, #get_class_type
#==, #initialize, #to_ptr
Instance Method Details
#each ⇒ Object
515
516
517
518
519
520
521
522
523
|
# File 'lib/babeltrace2/trace-ir/field.rb', line 515
def each
if block_given?
get_length.times { |index|
yield get_element_field_by_index(index)
}
else
to_enum(:each)
end
end
|
#get_element_field_by_index(index) ⇒ Object
Also known as:
[]
506
507
508
509
510
511
512
|
# File 'lib/babeltrace2/trace-ir/field.rb', line 506
def get_element_field_by_index(index)
length = get_length
index += length if index < 0
return nil if index >= length || index < 0
BTField.from_handle(
Babeltrace2.bt_field_array_borrow_element_field_by_index(@handle, index))
end
|
#get_length ⇒ Object
Also known as:
length
501
502
503
|
# File 'lib/babeltrace2/trace-ir/field.rb', line 501
def get_length
Babeltrace2.bt_field_array_get_length(@handle)
end
|
#set_value(values) ⇒ Object
529
530
531
532
533
534
535
|
# File 'lib/babeltrace2/trace-ir/field.rb', line 529
def set_value(values)
raise "invalid value size" if values.size != length
values.each_with_index { |e, i|
get_element_field_by_index(i).set_value(e)
}
self
end
|
#to_s ⇒ Object
542
543
544
545
546
|
# File 'lib/babeltrace2/trace-ir/field.rb', line 542
def to_s
s = "["
s << each.collect(&:to_s).join(", ")
s << "]"
end
|
#value ⇒ Object
525
526
527
|
# File 'lib/babeltrace2/trace-ir/field.rb', line 525
def value
each.collect(&:value)
end
|
#value=(values) ⇒ Object
537
538
539
540
|
# File 'lib/babeltrace2/trace-ir/field.rb', line 537
def value=(values)
set_value(values)
values
end
|