Class: Babeltrace2::BTField::BitArray

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

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

#[](position) ⇒ Object



96
97
98
99
100
101
# File 'lib/babeltrace2/trace-ir/field.rb', line 96

def [](position)
  length = get_length
  position += length if position < 0
  raise "invalid position" if position >= length || position < 0
  get_value_as_integer[position] != 0
end

#[]=(position, bool) ⇒ Object



103
104
105
106
107
108
109
110
111
# File 'lib/babeltrace2/trace-ir/field.rb', line 103

def []=(position, bool)
  length = get_length
  position += length if position < 0
  raise "invalid position" if position >= length || position < 0
  v = get_value_as_integer
  if bool then v |= (1 << position) else v &= ~(1 << position) end
  set_value_as_integer(v)
  bool
end

#eachObject



113
114
115
116
117
118
119
120
121
# File 'lib/babeltrace2/trace-ir/field.rb', line 113

def each
  if block_given?
    length.times { |i|
      yield self[i]
    }
  else
    to_enum(:each)
  end
end

#get_lengthObject Also known as: length



91
92
93
# File 'lib/babeltrace2/trace-ir/field.rb', line 91

def get_length
  @length ||= get_class.get_length
end

#get_value_as_integerObject Also known as: value_as_integer



86
87
88
# File 'lib/babeltrace2/trace-ir/field.rb', line 86

def get_value_as_integer
  Babeltrace2.bt_field_bit_array_get_value_as_integer(@handle)
end

#set_value_as_integer(bits) ⇒ Object



76
77
78
79
# File 'lib/babeltrace2/trace-ir/field.rb', line 76

def set_value_as_integer(bits)
  Babeltrace2.bt_field_bit_array_set_value_as_integer(@handle, bits)
  self
end

#to_sObject



127
128
129
130
131
# File 'lib/babeltrace2/trace-ir/field.rb', line 127

def to_s
  s = "["
  s << get_length.times.collect { |i| self[i] }.join(", ")
  s << "]"
end

#valueObject



123
124
125
# File 'lib/babeltrace2/trace-ir/field.rb', line 123

def value
  get_length.times.collect { |i| self[i] }
end

#value_as_integer=(bits) ⇒ Object



81
82
83
84
# File 'lib/babeltrace2/trace-ir/field.rb', line 81

def value_as_integer=(bits)
  set_value_as_integer(bits)
  bits
end