Class: Babeltrace2::BTField::Array

Inherits:
Babeltrace2::BTField show all
Defined in:
lib/babeltrace2/trace-ir/field.rb

Direct Known Subclasses

Dynamic, Static

Defined Under Namespace

Classes: Dynamic, Static

Constant Summary

Constants inherited from Babeltrace2::BTField

TYPE_MAP

Instance Attribute Summary

Attributes inherited from Babeltrace2::BTObject

#handle

Instance Method Summary collapse

Methods inherited from Babeltrace2::BTField

from_handle, #get_class, #get_class_type

Methods inherited from Babeltrace2::BTObject

#==, #initialize, #to_ptr

Constructor Details

This class inherits a constructor from Babeltrace2::BTObject

Instance Method Details

#eachObject



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_lengthObject 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_sObject



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

#valueObject



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