babeltrace2 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/babeltrace2.gemspec +13 -0
  4. data/lib/babeltrace2.rb +49 -0
  5. data/lib/babeltrace2/error-reporting.rb +432 -0
  6. data/lib/babeltrace2/func-status.rb +26 -0
  7. data/lib/babeltrace2/graph/component-class-dev.rb +801 -0
  8. data/lib/babeltrace2/graph/component-class.rb +134 -0
  9. data/lib/babeltrace2/graph/component-descriptor-set.rb +78 -0
  10. data/lib/babeltrace2/graph/component.rb +362 -0
  11. data/lib/babeltrace2/graph/connection.rb +35 -0
  12. data/lib/babeltrace2/graph/graph.rb +523 -0
  13. data/lib/babeltrace2/graph/interrupter.rb +57 -0
  14. data/lib/babeltrace2/graph/message-iterator-class.rb +374 -0
  15. data/lib/babeltrace2/graph/message-iterator.rb +253 -0
  16. data/lib/babeltrace2/graph/message.rb +721 -0
  17. data/lib/babeltrace2/graph/port.rb +124 -0
  18. data/lib/babeltrace2/graph/private-query-executor.rb +4 -0
  19. data/lib/babeltrace2/graph/query-executor.rb +142 -0
  20. data/lib/babeltrace2/graph/self-component-class.rb +37 -0
  21. data/lib/babeltrace2/graph/self-component-port.rb +35 -0
  22. data/lib/babeltrace2/graph/self-component.rb +264 -0
  23. data/lib/babeltrace2/graph/self-message-iterator.rb +147 -0
  24. data/lib/babeltrace2/integer-range-set.rb +275 -0
  25. data/lib/babeltrace2/logging-defs.rb +19 -0
  26. data/lib/babeltrace2/logging.rb +77 -0
  27. data/lib/babeltrace2/plugin/plugin-dev.rb +335 -0
  28. data/lib/babeltrace2/plugin/plugin-loading.rb +459 -0
  29. data/lib/babeltrace2/trace-ir/clock-class.rb +258 -0
  30. data/lib/babeltrace2/trace-ir/clock-snapshot.rb +45 -0
  31. data/lib/babeltrace2/trace-ir/event-class.rb +292 -0
  32. data/lib/babeltrace2/trace-ir/event.rb +91 -0
  33. data/lib/babeltrace2/trace-ir/field-class.rb +1416 -0
  34. data/lib/babeltrace2/trace-ir/field-path.rb +123 -0
  35. data/lib/babeltrace2/trace-ir/field.rb +871 -0
  36. data/lib/babeltrace2/trace-ir/packet.rb +57 -0
  37. data/lib/babeltrace2/trace-ir/stream-class.rb +425 -0
  38. data/lib/babeltrace2/trace-ir/stream.rb +137 -0
  39. data/lib/babeltrace2/trace-ir/trace-class.rb +343 -0
  40. data/lib/babeltrace2/trace-ir/trace.rb +321 -0
  41. data/lib/babeltrace2/types.rb +667 -0
  42. data/lib/babeltrace2/util.rb +23 -0
  43. data/lib/babeltrace2/value.rb +869 -0
  44. data/lib/babeltrace2/version.rb +126 -0
  45. metadata +105 -0
@@ -0,0 +1,147 @@
1
+ module Babeltrace2
2
+
3
+ attach_function :bt_self_message_iterator_borrow_component,
4
+ [ :bt_self_message_iterator_handle ],
5
+ :bt_self_component_handle
6
+
7
+ attach_function :bt_self_message_iterator_borrow_port,
8
+ [ :bt_self_message_iterator_handle ],
9
+ :bt_self_component_port_output_handle
10
+
11
+ attach_function :bt_self_message_iterator_set_data,
12
+ [ :bt_self_message_iterator_handle, :pointer ],
13
+ :void
14
+
15
+ attach_function :bt_self_message_iterator_get_data,
16
+ [ :bt_self_message_iterator_handle ],
17
+ :pointer
18
+
19
+ attach_function :bt_self_message_iterator_is_interrupted,
20
+ [ :bt_self_message_iterator_handle ],
21
+ :bt_bool
22
+
23
+ class BTSelfMessageIterator < BTMessageIterator
24
+ def get_component
25
+ handle = Babeltrace2.bt_self_message_iterator_borrow_component(@handle)
26
+ BTSelfComponent.from_handle(handle)
27
+ end
28
+ alias component get_component
29
+
30
+ def get_port
31
+ handle = Babeltrace2.bt_self_message_iterator_borrow_port(@handle)
32
+ BTSelfComponentPortOutput.new(handle, retain: true)
33
+ end
34
+ alias port get_port
35
+
36
+ def set_data(user_data)
37
+ Babeltrace2.bt_self_message_iterator_set_data(@handle, user_data)
38
+ self
39
+ end
40
+
41
+ def data=(user_data)
42
+ Babeltrace2.bt_self_message_iterator_set_data(@handle, user_data)
43
+ user_data
44
+ end
45
+
46
+ def get_data
47
+ Babeltrace2.bt_self_message_iterator_get_data(@handle)
48
+ end
49
+ alias data get_data
50
+
51
+ def is_interrupted
52
+ Babeltrace2.bt_self_message_iterator_is_interrupted(@handle) != BT_FALSE
53
+ end
54
+ alias interrupted? is_interrupted
55
+
56
+ def create_message_stream_beginning(stream)
57
+ BTMessageStreamBeginning.new(self_message_iterator: @handle, stream: stream)
58
+ end
59
+ alias create_stream_beginning_message create_message_stream_beginning
60
+ alias create_stream_beginning create_message_stream_beginning
61
+
62
+ def create_message_stream_end(stream)
63
+ BTMessageStreamEnd.new(self_message_iterator: @handle, stream: stream)
64
+ end
65
+ alias create_stream_end_message create_message_stream_end
66
+ alias create_stream_end create_message_stream_end
67
+
68
+ def create_message_event(event_class, stream_or_packet, clock_snapshot_value: nil)
69
+ case stream_or_packet
70
+ when BTStream
71
+ stream = stream_or_packet
72
+ packet = nil
73
+ when BTPacket
74
+ stream = nil
75
+ packet = stream_or_packet
76
+ else
77
+ raise "invalid stream or packet"
78
+ end
79
+ BTMessageEvent.new(self_message_iterator: @handle, event_class: event_class,
80
+ stream: stream, clock_snapshot_value: clock_snapshot_value,
81
+ packet: packet)
82
+ end
83
+ alias create_event_message create_message_event
84
+ alias create_event create_message_event
85
+
86
+ def create_message_packet_beginning(packet, clock_snapshot_value: nil)
87
+ BTMessagePacketBeginning.new(self_message_iterator: @handle, packet: packet,
88
+ clock_snapshot_value: clock_snapshot_value)
89
+ end
90
+ alias create_packet_beginning_message create_message_packet_beginning
91
+ alias create_packet_beginning create_message_packet_beginning
92
+
93
+ def create_message_packet_end(packet, clock_snapshot_value: nil)
94
+ BTMessagePacketEnd.new(self_message_iterator: @handle, packet: packet,
95
+ clock_snapshot_value: clock_snapshot_value)
96
+ end
97
+ alias create_packet_end_message create_message_packet_end
98
+ alias create_packet_end create_message_packet_end
99
+
100
+ def create_message_discarded_events(stream, beginning_clock_snapshot_value: nil,
101
+ end_clock_snapshot_value: nil)
102
+ BTMessageDiscardedEvents.new(self_message_iterator: @handle, stream: stream,
103
+ beginning_clock_snapshot_value: beginning_clock_snapshot_value,
104
+ end_clock_snapshot_value: end_clock_snapshot_value)
105
+ end
106
+ alias create_discarded_events_message create_message_discarded_events
107
+ alias create_discarded_events create_message_discarded_events
108
+
109
+ def create_message_discarded_packets(stream, beginning_clock_snapshot_value: nil,
110
+ end_clock_snapshot_value: nil)
111
+ BTMessageDiscardedPackets.new(self_message_iterator: @handle, stream: stream,
112
+ beginning_clock_snapshot_value: beginning_clock_snapshot_value,
113
+ end_clock_snapshot_value: end_clock_snapshot_value)
114
+ end
115
+ alias create_discarded_packets_message create_message_discarded_packets
116
+ alias create_discarded_packets create_message_discarded_packets
117
+
118
+ def create_message_message_iterator_inactivity(clock_class, clock_snapshot_value)
119
+ BTMessageMessageIteratorInactivity.new(self_message_iterator: @handle,
120
+ clock_class: clock_class,
121
+ clock_snapshot_value: clock_snapshot_value)
122
+ end
123
+ alias create_message_iterator_inactivity_message create_message_message_iterator_inactivity
124
+ alias create_message_iterator_inactivity create_message_message_iterator_inactivity
125
+ end
126
+
127
+ attach_function :bt_self_message_iterator_configuration_set_can_seek_forward,
128
+ [ :bt_self_message_iterator_configuration_handle, :bt_bool ],
129
+ :void
130
+
131
+ class BTSelfMessageIterator
132
+ class Configuration < BTObject
133
+ def set_can_seek_forward(can_seek_forward)
134
+ Babeltrace2.bt_self_message_iterator_configuration_set_can_seek_forward(
135
+ @handle, can_seek_forward ? BT_TRUE : BT_FALSE)
136
+ self
137
+ end
138
+
139
+ def can_seek_forward=(can_seek_forward)
140
+ Babeltrace2.bt_self_message_iterator_configuration_set_can_seek_forward(
141
+ @handle, can_seek_forward ? BT_TRUE : BT_FALSE)
142
+ can_seek_forward
143
+ end
144
+ end
145
+ end
146
+ BTSelfMessageIteratorConfiguration = BTSelfMessageIterator::Configuration
147
+ end
@@ -0,0 +1,275 @@
1
+ module Babeltrace2
2
+
3
+ attach_function :bt_integer_range_unsigned_get_lower,
4
+ [:bt_integer_range_unsigned_handle],
5
+ :uint64
6
+
7
+ attach_function :bt_integer_range_unsigned_get_upper,
8
+ [:bt_integer_range_unsigned_handle],
9
+ :uint64
10
+
11
+ attach_function :bt_integer_range_unsigned_is_equal,
12
+ [:bt_integer_range_unsigned_handle, :bt_integer_range_unsigned_handle],
13
+ :bt_bool
14
+
15
+ class BTIntegerRange < BTObject
16
+ def value
17
+ lower..upper
18
+ end
19
+
20
+ def include?(val)
21
+ lower <= val && upper >= val
22
+ end
23
+ end
24
+
25
+ class BTIntegerRangeUnsigned < BTIntegerRange
26
+ def get_lower
27
+ Babeltrace2.bt_integer_range_unsigned_get_lower(@handle)
28
+ end
29
+ alias lower get_lower
30
+ alias min get_lower
31
+
32
+ def get_upper
33
+ Babeltrace2.bt_integer_range_unsigned_get_upper(@handle)
34
+ end
35
+ alias upper get_upper
36
+ alias max get_upper
37
+
38
+ def is_equal(other)
39
+ Babeltrace2.bt_integer_range_unsigned_is_equal(other) != BT_FALSE
40
+ end
41
+ alias == is_equal
42
+ end
43
+
44
+ attach_function :bt_integer_range_signed_get_lower,
45
+ [:bt_integer_range_signed_handle],
46
+ :int64
47
+
48
+ attach_function :bt_integer_range_signed_get_upper,
49
+ [:bt_integer_range_signed_handle],
50
+ :int64
51
+
52
+ attach_function :bt_integer_range_signed_is_equal,
53
+ [:bt_integer_range_signed_handle, :bt_integer_range_signed_handle],
54
+ :bt_bool
55
+
56
+ class BTIntegerRangeSigned < BTIntegerRange
57
+ def get_lower
58
+ Babeltrace2.bt_integer_range_signed_get_lower(@handle)
59
+ end
60
+ alias lower get_lower
61
+
62
+ def get_upper
63
+ Babeltrace2.bt_integer_range_signed_get_upper(@handle)
64
+ end
65
+ alias upper get_upper
66
+
67
+ def is_equal(other)
68
+ Babeltrace2.bt_integer_range_signed_is_equal(other) != BT_FALSE
69
+ end
70
+ alias == is_equal
71
+ end
72
+
73
+ BTIntegerRangeSetAddRangeStatus = enum :bt_integer_range_set_add_range_status,
74
+ [ :BT_INTEGER_RANGE_SET_ADD_RANGE_STATUS_OK, BT_FUNC_STATUS_OK,
75
+ :BT_INTEGER_RANGE_SET_ADD_RANGE_STATUS_MEMORY_ERROR, BT_FUNC_STATUS_MEMORY_ERROR]
76
+
77
+ attach_function :bt_integer_range_set_get_range_count,
78
+ [:bt_integer_range_set_handle],
79
+ :uint64
80
+
81
+ class BTIntegerRangeSet < BTSharedObject
82
+ AddRangeStatus = BTIntegerRangeSetAddRangeStatus
83
+
84
+ def self.from_value(value)
85
+ case value
86
+ when self
87
+ return value
88
+ when Array
89
+ range = self.new
90
+ range.push(*value)
91
+ else
92
+ range = self.new
93
+ range.add_range(value)
94
+ end
95
+ end
96
+
97
+ def get_range_count
98
+ return Babeltrace2.bt_integer_range_set_get_range_count(@handle)
99
+ end
100
+ alias range_count get_range_count
101
+ alias size get_range_count
102
+
103
+ def get_ranges
104
+ range_count.times.collect { |i|
105
+ get_range(i)
106
+ }
107
+ end
108
+ alias ranges get_ranges
109
+ alias to_a get_ranges
110
+
111
+ def push(*args)
112
+ args.each { |arg| add_range(arg) }
113
+ self
114
+ end
115
+
116
+ def each
117
+ if block_given?
118
+ range_count.times.each { |i|
119
+ yield get_range(i)
120
+ }
121
+ else
122
+ to_enum(:each)
123
+ end
124
+ end
125
+
126
+ def value
127
+ each.collect(&:value).to_a
128
+ end
129
+
130
+ private
131
+ def range_arg_get(lower, upper)
132
+ if not upper
133
+ case lower
134
+ when BTIntegerRange, Range, Array
135
+ upper = lower.max
136
+ lower = lower.min
137
+ else
138
+ upper = lower
139
+ end
140
+ end
141
+ [lower, upper]
142
+ end
143
+ end
144
+
145
+ attach_function :bt_integer_range_set_unsigned_create,
146
+ [],
147
+ :bt_integer_range_set_unsigned_handle
148
+
149
+ attach_function :bt_integer_range_set_unsigned_add_range,
150
+ [:bt_integer_range_set_unsigned_handle, :uint64, :uint64],
151
+ :bt_integer_range_set_add_range_status
152
+
153
+ attach_function :bt_integer_range_set_unsigned_borrow_range_by_index_const,
154
+ [:bt_integer_range_set_unsigned_handle, :uint64],
155
+ :bt_integer_range_unsigned_handle
156
+
157
+ attach_function :bt_integer_range_set_unsigned_is_equal,
158
+ [:bt_integer_range_set_unsigned_handle, :bt_integer_range_set_unsigned_handle],
159
+ :bt_bool
160
+
161
+ attach_function :bt_integer_range_set_unsigned_get_ref,
162
+ [:bt_integer_range_set_unsigned_handle],
163
+ :void
164
+
165
+ attach_function :bt_integer_range_set_unsigned_put_ref,
166
+ [:bt_integer_range_set_unsigned_handle],
167
+ :void
168
+
169
+ class BTIntegerRangeSet
170
+ class Unsigned < BTIntegerRangeSet
171
+ @get_ref = :bt_integer_range_set_unsigned_get_ref
172
+ @put_ref = :bt_integer_range_set_unsigned_put_ref
173
+
174
+ def initialize(handle = nil, retain: true, auto_release: true)
175
+ if handle
176
+ super(handle, retain: retain, auto_release: auto_release)
177
+ else
178
+ handle = Babeltrace2.bt_integer_range_set_unsigned_create()
179
+ raise Babeltrace2.process_error if handle.null?
180
+ super(handle)
181
+ end
182
+ end
183
+
184
+ def add_range(lower, upper = nil)
185
+ res = Babeltrace2.bt_integer_range_set_unsigned_add_range(
186
+ @handle, *range_arg_get(lower, upper))
187
+ raise Babeltrace2.process_error(res) if res != :BT_INTEGER_RANGE_SET_ADD_RANGE_STATUS_OK
188
+ self
189
+ end
190
+ alias add add_range
191
+
192
+ def get_range(index)
193
+ count = range_count
194
+ index += count if count < 0
195
+ return nil if index >= count || index < 0
196
+ BTIntegerRangeUnsigned.new(
197
+ Babeltrace2.bt_integer_range_set_unsigned_borrow_range_by_index_const(
198
+ @handle, index))
199
+ end
200
+ alias [] get_range
201
+
202
+ def is_equal(other)
203
+ Babeltrace2.bt_integer_range_set_unsigned_is_equal(@handle, other) != BT_FALSE
204
+ end
205
+ alias == is_equal
206
+ end
207
+ end
208
+ BTIntegerRangeSetUnsigned = BTIntegerRangeSet::Unsigned
209
+
210
+ attach_function :bt_integer_range_set_signed_create,
211
+ [],
212
+ :bt_integer_range_set_signed_handle
213
+
214
+ attach_function :bt_integer_range_set_signed_add_range,
215
+ [:bt_integer_range_set_signed_handle, :int64, :int64],
216
+ :bt_integer_range_set_add_range_status
217
+
218
+ attach_function :bt_integer_range_set_signed_borrow_range_by_index_const,
219
+ [:bt_integer_range_set_signed_handle, :uint64],
220
+ :bt_integer_range_signed_handle
221
+
222
+ attach_function :bt_integer_range_set_signed_is_equal,
223
+ [:bt_integer_range_set_signed_handle, :bt_integer_range_set_signed_handle],
224
+ :bt_bool
225
+
226
+ attach_function :bt_integer_range_set_signed_get_ref,
227
+ [:bt_integer_range_set_signed_handle],
228
+ :void
229
+
230
+ attach_function :bt_integer_range_set_signed_put_ref,
231
+ [:bt_integer_range_set_signed_handle],
232
+ :void
233
+
234
+ class BTIntegerRangeSet
235
+ class Signed < BTIntegerRangeSet
236
+ @get_ref = :bt_integer_range_set_signed_get_ref
237
+ @put_ref = :bt_integer_range_set_signed_put_ref
238
+
239
+ def initialize(handle = nil, retain: true, auto_release: true)
240
+ if handle
241
+ super(handle, retain: retain, auto_release: auto_release)
242
+ else
243
+ handle = Babeltrace2.bt_integer_range_set_signed_create()
244
+ raise Babeltrace2.process_error if handle.null?
245
+ super(handle)
246
+ end
247
+ end
248
+
249
+ def add_range(lower, upper = nil)
250
+ res = Babeltrace2.bt_integer_range_set_signed_add_range(
251
+ @handle, *range_arg_get(lower, upper))
252
+ raise Babeltrace2.process_error(res) if res != :BT_INTEGER_RANGE_SET_ADD_RANGE_STATUS_OK
253
+ self
254
+ end
255
+ alias add add_range
256
+
257
+ def get_range(index)
258
+ count = range_count
259
+ index += count if count < 0
260
+ return nil if index >= count || index < 0
261
+ BTIntegerRangeSigned.new(
262
+ Babeltrace2.bt_integer_range_set_signed_borrow_range_by_index_const(
263
+ @handle, index))
264
+ end
265
+ alias [] get_range
266
+
267
+ def is_equal(other)
268
+ Babeltrace2.bt_integer_range_set_signed_is_equal(@handle, other) != BT_FALSE
269
+ end
270
+ alias == is_equal
271
+ end
272
+ end
273
+ BTIntegerRangeSetSigned = BTIntegerRangeSet::Signed
274
+
275
+ end
@@ -0,0 +1,19 @@
1
+ module Babeltrace2
2
+
3
+ BT_LOGGING_LEVEL_TRACE = 1
4
+ private_constant :BT_LOGGING_LEVEL_TRACE
5
+ BT_LOGGING_LEVEL_DEBUG = 2
6
+ private_constant :BT_LOGGING_LEVEL_DEBUG
7
+ BT_LOGGING_LEVEL_INFO = 3
8
+ private_constant :BT_LOGGING_LEVEL_INFO
9
+ BT_LOGGING_LEVEL_WARNING = 4
10
+ private_constant :BT_LOGGING_LEVEL_WARNING
11
+ BT_LOGGING_LEVEL_ERROR = 5
12
+ private_constant :BT_LOGGING_LEVEL_ERROR
13
+ BT_LOGGING_LEVEL_FATAL = 6
14
+ private_constant :BT_LOGGING_LEVEL_FATAL
15
+ BT_LOGGING_LEVEL_NONE = 0xff
16
+ private_constant :BT_LOGGING_LEVEL_NONE
17
+
18
+ end
19
+
@@ -0,0 +1,77 @@
1
+ module Babeltrace2
2
+ BTLoggingLevel = enum :bt_logging_level,
3
+ [ :BT_LOGGING_LEVEL_TRACE, BT_LOGGING_LEVEL_TRACE,
4
+ :BT_LOGGING_LEVEL_DEBUG, BT_LOGGING_LEVEL_DEBUG,
5
+ :BT_LOGGING_LEVEL_INFO, BT_LOGGING_LEVEL_INFO,
6
+ :BT_LOGGING_LEVEL_WARNING, BT_LOGGING_LEVEL_WARNING,
7
+ :BT_LOGGING_LEVEL_ERROR, BT_LOGGING_LEVEL_ERROR,
8
+ :BT_LOGGING_LEVEL_FATAL, BT_LOGGING_LEVEL_FATAL,
9
+ :BT_LOGGING_LEVEL_NONE, BT_LOGGING_LEVEL_NONE ]
10
+
11
+ attach_function :bt_logging_set_global_level,
12
+ [:bt_logging_level],
13
+ :void
14
+
15
+ attach_function :bt_logging_get_global_level,
16
+ [],
17
+ :bt_logging_level
18
+
19
+ attach_function :bt_logging_get_minimal_level,
20
+ [],
21
+ :bt_logging_level
22
+
23
+ module BTLogging
24
+ class << self
25
+ def set_global_level(logging_level)
26
+ Babeltrace2.bt_logging_set_global_level(logging_level)
27
+ self
28
+ end
29
+
30
+ def global_level=(logging_level)
31
+ set_global_level(logging_level)
32
+ logging_level
33
+ end
34
+
35
+ def get_global_level
36
+ Babeltrace2.bt_logging_get_global_level
37
+ end
38
+ alias global_level get_global_level
39
+
40
+ def get_minimal_level
41
+ Babeltrace2.bt_logging_get_minimal_level
42
+ end
43
+ alias minimal_level get_minimal_level
44
+
45
+ def get_default_level
46
+ if ENV["BABELTRACE_RUBY_BT2_LOG_LEVEL"]
47
+ get_level_from_string(ENV["BABELTRACE_RUBY_BT2_LOG_LEVEL"])
48
+ else
49
+ get_global_level
50
+ end
51
+ end
52
+ alias default_level get_default_level
53
+
54
+ private
55
+ def get_level_from_string(str)
56
+ case str
57
+ when "TRACE", "T"
58
+ :BT_LOGGING_LEVEL_TRACE
59
+ when "DEBUG", "D"
60
+ :BT_LOGGING_LEVEL_DEBUG
61
+ when "INFO", "I"
62
+ :BT_LOGGING_LEVEL_INFO
63
+ when "WARN", "WARNING", "W"
64
+ :BT_LOGGING_LEVEL_WARNING
65
+ when "ERROR", "E"
66
+ :BT_LOGGING_LEVEL_ERROR
67
+ when "FATAL", "F"
68
+ :BT_LOGGING_LEVEL_FATAL
69
+ when "NONE", "N"
70
+ :BT_LOGGING_LEVEL_NONE
71
+ else
72
+ -1
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end