Class: Babeltrace2::BTField::Integer::Signed

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

Direct Known Subclasses

Enumeration::Signed

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::Integer

#get_field_value_range, #get_preferred_display_base

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

#get_valueObject Also known as: value



218
219
220
# File 'lib/babeltrace2/trace-ir/field.rb', line 218

def get_value
  Babeltrace2.bt_field_integer_signed_get_value(@handle)
end

#set_value(value) ⇒ Object



206
207
208
209
210
211
# File 'lib/babeltrace2/trace-ir/field.rb', line 206

def set_value(value)
  range = get_field_value_range
  raise "invalid range" if (1 << (range-1)) - 1 < value || value < -(1 << (range-1))
  Babeltrace2.bt_field_integer_signed_set_value(@handle, value)
  self
end

#to_sObject



228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
# File 'lib/babeltrace2/trace-ir/field.rb', line 228

def to_s
  v = get_value
  case preferred_display_base
  when :BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_BINARY
    "0b#{(v < 0 ? get_twos_complement(v) : v).to_s(2)}"
  when :BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_OCTAL
    "0#{(v < 0 ? get_twos_complement(v) : v).to_s(8)}"
  when :BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_DECIMAL
    v.to_s
  when :BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_HEXADECIMAL
    "0x#{(v < 0 ? get_twos_complement(v) : v).to_s(16)}"
  else
    raise "invalid preffered display base"
  end
end

#value=(value) ⇒ Object



213
214
215
216
# File 'lib/babeltrace2/trace-ir/field.rb', line 213

def value=(value)
  set_value(value)
  value
end