Class: Babeltrace2::BTClockClass

Inherits:
BTSharedObject show all
Defined in:
lib/babeltrace2/trace-ir/clock-class.rb

Constant Summary collapse

CyclesToNSFromOriginStatus =
BTClockClassCyclesToNSFromOriginStatus

Instance Attribute Summary

Attributes inherited from BTObject

#handle

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BTSharedObject

inherited

Methods inherited from BTObject

#==, #to_ptr

Constructor Details

#initialize(handle = nil, retain: true, auto_release: true, self_component: nil) ⇒ BTClockClass

Returns a new instance of BTClockClass.



116
117
118
119
120
121
122
123
124
125
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 116

def initialize(handle = nil, retain: true, auto_release: true,
               self_component: nil)
  if handle
    super(handle, retain: retain, auto_release: auto_release)
  else
    handle = Babeltrace2.bt_clock_class_create(self_component)
    raise Babeltrace2.process_error if handle.null?
    super(handle)
  end
end

Class Method Details

.from_h(self_component, h) ⇒ Object



272
273
274
275
276
277
278
279
280
281
282
283
284
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 272

def self.from_h(self_component, h)
  o = self_component.create_clock_class
  o.name = h[:name] if h[:name]
  o.description = h[:description] if h[:description]
  o.frequency = h[:frequency] if h[:frequency]
  o.precision = h[:precision] if h[:precision]
  o.set_offset(*h[:offset]) if h[:offset]
  o.origin_is_unix_epoch = h[:origin_is_unix_epoch]
  o.uuid = BTUUID.from_string(h[:uuid]) if h[:uuid]
  o.user_attributes = h[:user_attributes] if h[:user_attributes]
  h[:bt_clock_class] = o
  o
end

Instance Method Details

#cycles_to_ns_from_origin(value) ⇒ Object



251
252
253
254
255
256
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 251

def cycles_to_ns_from_origin(value)
  ptr = FFI::MemoryPointer.new(:int64)
  res = Babeltrace2.bt_clock_class_cycles_to_ns_from_origin(@handle, value, ptr)
  raise Babeltrace2.process_error(res) if res != :BT_CLOCK_CLASS_CYCLES_TO_NS_FROM_ORIGIN_STATUS_OK
  ptr.read_int64
end

#description=(description) ⇒ Object



208
209
210
211
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 208

def description=(description)
  set_description(description)
  description
end

#frequency=(frequency) ⇒ Object



132
133
134
135
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 132

def frequency=(frequency)
  set_frequency(frequency)
  frequency
end

#get_descriptionObject Also known as: description



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

def get_description
  Babeltrace2.bt_clock_class_get_description(@handle)
end

#get_frequencyObject Also known as: frequency



137
138
139
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 137

def get_frequency
  Babeltrace2.bt_clock_class_get_frequency(@handle)
end

#get_nameObject Also known as: name



197
198
199
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 197

def get_name
  Babeltrace2.bt_clock_class_get_name(@handle)
end

#get_offsetObject Also known as: offset



147
148
149
150
151
152
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 147

def get_offset
  ptr1 = FFI::MemoryPointer.new(:int64)
  ptr2 = FFI::MemoryPointer.new(:uint64)
  Babeltrace2.bt_clock_class_get_offset(@handle, ptr1, ptr2)
  [ptr1.read_int64, ptr2.read_uint64]
end

#get_precisionObject Also known as: precision



165
166
167
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 165

def get_precision
  Babeltrace2.bt_clock_class_get_precision(@handle)
end

#get_user_attributesObject Also known as: user_attributes



245
246
247
248
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 245

def get_user_attributes
  handle = Babeltrace2.bt_clock_class_borrow_user_attributes(@handle)
  BTValueMap.new(handle, retain: true)
end

#get_uuidObject Also known as: uuid



228
229
230
231
232
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 228

def get_uuid
  uuid = Babeltrace2.bt_clock_class_get_uuid(@handle)
  return nil if uuid.null?
  uuid
end

#name=(name) ⇒ Object



192
193
194
195
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 192

def name=(name)
  set_name(name)
  name
end

#origin_is_unix_epochObject Also known as: origin_is_unix_epoch?



181
182
183
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 181

def origin_is_unix_epoch
  Babeltrace2.bt_clock_class_origin_is_unix_epoch(@handle) != BT_FALSE
end

#origin_is_unix_epoch=(origin_is_unix_epoch) ⇒ Object



176
177
178
179
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 176

def origin_is_unix_epoch=(origin_is_unix_epoch)
  set_origin_is_unix_epoch(origin_is_unix_epoch)
  origin_is_unix_epoch
end

#precision=(precision) ⇒ Object



160
161
162
163
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 160

def precision=(precision)
  set_precision(precision)
  precision
end

#set_description(description) ⇒ Object



202
203
204
205
206
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 202

def set_description(description)
  res = Babeltrace2.bt_clock_class_set_description(@handle, description)
  raise Babeltrace2.process_error(res) if res != :BT_CLOCK_CLASS_SET_DESCRIPTION_STATUS_OK
  self
end

#set_frequency(frequency) ⇒ Object



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

def set_frequency(frequency)
  Babeltrace2.bt_clock_class_set_frequency(@handle, frequency)
  self
end

#set_name(name) ⇒ Object



186
187
188
189
190
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 186

def set_name(name)
  res = Babeltrace2.bt_clock_class_set_name(@handle, name)
  raise Babeltrace2.process_error(res) if res != :BT_CLOCK_CLASS_SET_NAME_STATUS_OK
  self
end

#set_offset(offset_seconds, offset_cycles) ⇒ Object



142
143
144
145
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 142

def set_offset(offset_seconds, offset_cycles)
  Babeltrace2.bt_clock_class_set_offset(@handle, offset_seconds, offset_cycles)
  self
end

#set_origin_is_unix_epoch(origin_is_unix_epoch) ⇒ Object



170
171
172
173
174
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 170

def set_origin_is_unix_epoch(origin_is_unix_epoch)
  Babeltrace2.bt_clock_class_set_origin_is_unix_epoch(
    @handle, origin_is_unix_epoch ? BT_TRUE : BT_FALSE)
  self
end

#set_precision(precision) ⇒ Object



155
156
157
158
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 155

def set_precision(precision)
  Babeltrace2.bt_clock_class_set_precision(@handle, precision)
  self
end

#set_user_attributes(user_attributes) ⇒ Object



235
236
237
238
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 235

def set_user_attributes(user_attributes)
  Babeltrace2.bt_clock_class_set_user_attributes(@handle, BTValue.from_value(user_attributes))
  self
end

#set_uuid(uuid) ⇒ Object



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

def set_uuid(uuid)
  Babeltrace2.bt_clock_class_set_uuid(@handle, uuid)
  self
end

#to_hObject



258
259
260
261
262
263
264
265
266
267
268
269
270
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 258

def to_h
  res = {}
  res[:name] = name if name
  res[:description] = description if description
  res[:frequency] = frequency
  res[:precision] = precision
  res[:offset] = offset
  res[:origin_is_unix_epoch] = origin_is_unix_epoch?
  res[:uuid] = uuid.to_s if uuid
  user_attributes_value = user_attributes.value
  res[:user_attributes] = user_attributes_value if !user_attributes_value.empty?
  res
end

#user_attributes=(user_attributes) ⇒ Object



240
241
242
243
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 240

def user_attributes=(user_attributes)
  set_user_attributes(user_attributes)
  user_attributes
end

#uuid=(uuid) ⇒ Object



223
224
225
226
# File 'lib/babeltrace2/trace-ir/clock-class.rb', line 223

def uuid=(uuid)
  set_uuid(uuid)
  uuid
end