babeltrace2 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/babeltrace2.gemspec +13 -0
- data/lib/babeltrace2.rb +49 -0
- data/lib/babeltrace2/error-reporting.rb +432 -0
- data/lib/babeltrace2/func-status.rb +26 -0
- data/lib/babeltrace2/graph/component-class-dev.rb +801 -0
- data/lib/babeltrace2/graph/component-class.rb +134 -0
- data/lib/babeltrace2/graph/component-descriptor-set.rb +78 -0
- data/lib/babeltrace2/graph/component.rb +362 -0
- data/lib/babeltrace2/graph/connection.rb +35 -0
- data/lib/babeltrace2/graph/graph.rb +523 -0
- data/lib/babeltrace2/graph/interrupter.rb +57 -0
- data/lib/babeltrace2/graph/message-iterator-class.rb +374 -0
- data/lib/babeltrace2/graph/message-iterator.rb +253 -0
- data/lib/babeltrace2/graph/message.rb +721 -0
- data/lib/babeltrace2/graph/port.rb +124 -0
- data/lib/babeltrace2/graph/private-query-executor.rb +4 -0
- data/lib/babeltrace2/graph/query-executor.rb +142 -0
- data/lib/babeltrace2/graph/self-component-class.rb +37 -0
- data/lib/babeltrace2/graph/self-component-port.rb +35 -0
- data/lib/babeltrace2/graph/self-component.rb +264 -0
- data/lib/babeltrace2/graph/self-message-iterator.rb +147 -0
- data/lib/babeltrace2/integer-range-set.rb +275 -0
- data/lib/babeltrace2/logging-defs.rb +19 -0
- data/lib/babeltrace2/logging.rb +77 -0
- data/lib/babeltrace2/plugin/plugin-dev.rb +335 -0
- data/lib/babeltrace2/plugin/plugin-loading.rb +459 -0
- data/lib/babeltrace2/trace-ir/clock-class.rb +258 -0
- data/lib/babeltrace2/trace-ir/clock-snapshot.rb +45 -0
- data/lib/babeltrace2/trace-ir/event-class.rb +292 -0
- data/lib/babeltrace2/trace-ir/event.rb +91 -0
- data/lib/babeltrace2/trace-ir/field-class.rb +1416 -0
- data/lib/babeltrace2/trace-ir/field-path.rb +123 -0
- data/lib/babeltrace2/trace-ir/field.rb +871 -0
- data/lib/babeltrace2/trace-ir/packet.rb +57 -0
- data/lib/babeltrace2/trace-ir/stream-class.rb +425 -0
- data/lib/babeltrace2/trace-ir/stream.rb +137 -0
- data/lib/babeltrace2/trace-ir/trace-class.rb +343 -0
- data/lib/babeltrace2/trace-ir/trace.rb +321 -0
- data/lib/babeltrace2/types.rb +667 -0
- data/lib/babeltrace2/util.rb +23 -0
- data/lib/babeltrace2/value.rb +869 -0
- data/lib/babeltrace2/version.rb +126 -0
- metadata +105 -0
@@ -0,0 +1,137 @@
|
|
1
|
+
module Babeltrace2
|
2
|
+
|
3
|
+
attach_function :bt_stream_create,
|
4
|
+
[ :bt_stream_class_handle, :bt_trace_handle ],
|
5
|
+
:bt_stream_handle
|
6
|
+
|
7
|
+
attach_function :bt_stream_create_with_id,
|
8
|
+
[ :bt_stream_class_handle, :bt_trace_handle, :uint64 ],
|
9
|
+
:bt_stream_handle
|
10
|
+
|
11
|
+
attach_function :bt_stream_borrow_class,
|
12
|
+
[ :bt_stream_handle ],
|
13
|
+
:bt_stream_class_handle
|
14
|
+
|
15
|
+
attach_function :bt_stream_borrow_class_const,
|
16
|
+
[ :bt_stream_handle ],
|
17
|
+
:bt_stream_class_handle
|
18
|
+
|
19
|
+
attach_function :bt_stream_borrow_trace,
|
20
|
+
[ :bt_stream_handle ],
|
21
|
+
:bt_trace_handle
|
22
|
+
|
23
|
+
attach_function :bt_stream_borrow_trace_const,
|
24
|
+
[ :bt_stream_handle ],
|
25
|
+
:bt_trace_handle
|
26
|
+
|
27
|
+
attach_function :bt_stream_get_id,
|
28
|
+
[ :bt_stream_handle ],
|
29
|
+
:uint64
|
30
|
+
|
31
|
+
BT_STREAM_SET_NAME_STATUS_OK = BT_FUNC_STATUS_OK
|
32
|
+
BT_STREAM_SET_NAME_STATUS_MEMORY_ERROR = BT_FUNC_STATUS_MEMORY_ERROR
|
33
|
+
BTStreamSetNameStatus =
|
34
|
+
enum :bt_stream_set_name_status,
|
35
|
+
[ :BT_STREAM_SET_NAME_STATUS_OK,
|
36
|
+
BT_STREAM_SET_NAME_STATUS_OK,
|
37
|
+
:BT_STREAM_SET_NAME_STATUS_MEMORY_ERROR,
|
38
|
+
BT_STREAM_SET_NAME_STATUS_MEMORY_ERROR ]
|
39
|
+
|
40
|
+
attach_function :bt_stream_set_name,
|
41
|
+
[ :bt_stream_handle, :string ],
|
42
|
+
:bt_stream_set_name_status
|
43
|
+
|
44
|
+
attach_function :bt_stream_get_name,
|
45
|
+
[ :bt_stream_handle ],
|
46
|
+
:string
|
47
|
+
|
48
|
+
attach_function :bt_stream_set_user_attributes,
|
49
|
+
[ :bt_stream_handle, :bt_value_map_handle ],
|
50
|
+
:void
|
51
|
+
|
52
|
+
attach_function :bt_stream_borrow_user_attributes,
|
53
|
+
[ :bt_stream_handle ],
|
54
|
+
:bt_value_map_handle
|
55
|
+
|
56
|
+
attach_function :bt_stream_borrow_user_attributes_const,
|
57
|
+
[ :bt_stream_handle ],
|
58
|
+
:bt_value_map_handle
|
59
|
+
|
60
|
+
attach_function :bt_stream_get_ref,
|
61
|
+
[ :bt_stream_handle ],
|
62
|
+
:void
|
63
|
+
|
64
|
+
attach_function :bt_stream_put_ref,
|
65
|
+
[ :bt_stream_handle ],
|
66
|
+
:void
|
67
|
+
|
68
|
+
class BTStream < BTSharedObject
|
69
|
+
SetNameStatus = BTStreamSetNameStatus
|
70
|
+
@get_ref = :bt_stream_get_ref
|
71
|
+
@put_ref = :bt_stream_put_ref
|
72
|
+
|
73
|
+
def initialize(handle = nil, retain: true, auto_release: true,
|
74
|
+
stream_class: nil, trace: nil, id: nil)
|
75
|
+
if handle
|
76
|
+
super(handle, retain: retain, auto_release: auto_release)
|
77
|
+
else
|
78
|
+
handle = if id
|
79
|
+
Babeltrace2.bt_stream_create_with_id(stream_class, trace, id)
|
80
|
+
else
|
81
|
+
Babeltrace2.bt_stream_create(stream_class, trace)
|
82
|
+
end
|
83
|
+
raise Babeltrace2.process_error if handle.null?
|
84
|
+
super(handle)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def get_class
|
89
|
+
BTStreamClass.new(Babeltrace2.bt_stream_borrow_class(@handle), retain: true)
|
90
|
+
end
|
91
|
+
|
92
|
+
def get_trace
|
93
|
+
BTTrace.new(Babeltrace2.bt_stream_borrow_trace(@handle), retain: true)
|
94
|
+
end
|
95
|
+
alias trace get_trace
|
96
|
+
|
97
|
+
def get_id
|
98
|
+
Babeltrace2.bt_stream_get_id(@handle)
|
99
|
+
end
|
100
|
+
alias id get_id
|
101
|
+
|
102
|
+
def set_name(name)
|
103
|
+
res = Babeltrace2.bt_stream_set_name(@handle, name)
|
104
|
+
raise Babeltrace2.process_error(res) if res != :BT_STREAM_SET_NAME_STATUS_OK
|
105
|
+
self
|
106
|
+
end
|
107
|
+
|
108
|
+
def name=(name)
|
109
|
+
set_name(name)
|
110
|
+
name
|
111
|
+
end
|
112
|
+
|
113
|
+
def get_name
|
114
|
+
Babeltrace2.bt_stream_get_name(@handle)
|
115
|
+
end
|
116
|
+
alias name get_name
|
117
|
+
|
118
|
+
def set_user_attributes(user_attributes)
|
119
|
+
Babeltrace2.bt_stream_set_user_attributes(@handle, BTValue.from_value(user_attributes))
|
120
|
+
self
|
121
|
+
end
|
122
|
+
|
123
|
+
def user_attributes=(user_attributes)
|
124
|
+
set_user_attributes(user_attributes)
|
125
|
+
user_attributes
|
126
|
+
end
|
127
|
+
|
128
|
+
def get_user_attributes
|
129
|
+
BTValueMap.new(Babeltrace2.bt_stream_borrow_user_attributes(@handle), retain: true)
|
130
|
+
end
|
131
|
+
alias user_attributes get_user_attributes
|
132
|
+
|
133
|
+
def create_packet
|
134
|
+
BTPacket.new(stream: @handle)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
@@ -0,0 +1,343 @@
|
|
1
|
+
module Babeltrace2
|
2
|
+
|
3
|
+
attach_function :bt_trace_class_create,
|
4
|
+
[ :bt_self_component_handle ],
|
5
|
+
:bt_trace_class_handle
|
6
|
+
|
7
|
+
attach_function :bt_trace_class_get_stream_class_count,
|
8
|
+
[ :bt_trace_class_handle ],
|
9
|
+
:uint64
|
10
|
+
|
11
|
+
attach_function :bt_trace_class_borrow_stream_class_by_index,
|
12
|
+
[ :bt_trace_class_handle, :uint64 ],
|
13
|
+
:bt_stream_class_handle
|
14
|
+
|
15
|
+
attach_function :bt_trace_class_borrow_stream_class_by_index_const,
|
16
|
+
[ :bt_trace_class_handle, :uint64 ],
|
17
|
+
:bt_stream_class_handle
|
18
|
+
|
19
|
+
attach_function :bt_trace_class_borrow_stream_class_by_id,
|
20
|
+
[ :bt_trace_class_handle, :uint64 ],
|
21
|
+
:bt_stream_class_handle
|
22
|
+
|
23
|
+
attach_function :bt_trace_class_borrow_stream_class_by_id_const,
|
24
|
+
[ :bt_trace_class_handle, :uint64 ],
|
25
|
+
:bt_stream_class_handle
|
26
|
+
|
27
|
+
attach_function :bt_trace_class_set_assigns_automatic_stream_class_id,
|
28
|
+
[ :bt_trace_class_handle, :bt_bool ],
|
29
|
+
:void
|
30
|
+
|
31
|
+
attach_function :bt_trace_class_assigns_automatic_stream_class_id,
|
32
|
+
[ :bt_trace_class_handle ],
|
33
|
+
:bt_bool
|
34
|
+
|
35
|
+
attach_function :bt_trace_class_set_user_attributes,
|
36
|
+
[ :bt_trace_class_handle, :bt_value_map_handle ],
|
37
|
+
:void
|
38
|
+
|
39
|
+
attach_function :bt_trace_class_borrow_user_attributes,
|
40
|
+
[ :bt_trace_class_handle ],
|
41
|
+
:bt_value_map_handle
|
42
|
+
|
43
|
+
attach_function :bt_trace_class_borrow_user_attributes_const,
|
44
|
+
[ :bt_trace_class_handle ],
|
45
|
+
:bt_value_map_handle
|
46
|
+
|
47
|
+
callback :bt_trace_class_destruction_listener_func,
|
48
|
+
[ :bt_trace_class_handle, :pointer],
|
49
|
+
:void
|
50
|
+
|
51
|
+
def self._wrap_trace_class_destruction_listener_func(method)
|
52
|
+
method_wrapper = lambda { |trace_class, user_data|
|
53
|
+
begin
|
54
|
+
method.call(BTTraceClass.new(trace_class,
|
55
|
+
retain: false, auto_release: false), user_data)
|
56
|
+
rescue Exception => e
|
57
|
+
puts e
|
58
|
+
end
|
59
|
+
}
|
60
|
+
method_wrapper
|
61
|
+
end
|
62
|
+
|
63
|
+
BT_TRACE_CLASS_ADD_LISTENER_STATUS_OK = BT_FUNC_STATUS_OK
|
64
|
+
BT_TRACE_CLASS_ADD_LISTENER_STATUS_MEMORY_ERROR = BT_FUNC_STATUS_MEMORY_ERROR
|
65
|
+
BTTraceClassAddListenerStatus = enum :bt_trace_class_add_listener_status,
|
66
|
+
[ :BT_TRACE_CLASS_ADD_LISTENER_STATUS_OK,
|
67
|
+
BT_TRACE_CLASS_ADD_LISTENER_STATUS_OK,
|
68
|
+
:BT_TRACE_CLASS_ADD_LISTENER_STATUS_MEMORY_ERROR,
|
69
|
+
BT_TRACE_CLASS_ADD_LISTENER_STATUS_MEMORY_ERROR ]
|
70
|
+
|
71
|
+
attach_function :bt_trace_class_add_destruction_listener,
|
72
|
+
[ :bt_trace_class_handle, :bt_trace_class_destruction_listener_func,
|
73
|
+
:pointer, :pointer ],
|
74
|
+
:bt_trace_class_add_listener_status
|
75
|
+
|
76
|
+
BT_TRACE_CLASS_REMOVE_LISTENER_STATUS_OK = BT_FUNC_STATUS_OK
|
77
|
+
BT_TRACE_CLASS_REMOVE_LISTENER_STATUS_MEMORY_ERROR = BT_FUNC_STATUS_MEMORY_ERROR
|
78
|
+
BTTraceClassRemoveListenerStatus = enum :bt_trace_class_remove_listener_status,
|
79
|
+
[ :BT_TRACE_CLASS_REMOVE_LISTENER_STATUS_OK,
|
80
|
+
BT_TRACE_CLASS_REMOVE_LISTENER_STATUS_OK,
|
81
|
+
:BT_TRACE_CLASS_REMOVE_LISTENER_STATUS_MEMORY_ERROR,
|
82
|
+
BT_TRACE_CLASS_REMOVE_LISTENER_STATUS_MEMORY_ERROR ]
|
83
|
+
|
84
|
+
attach_function :bt_trace_class_remove_destruction_listener,
|
85
|
+
[ :bt_trace_class_handle, :bt_listener_id ],
|
86
|
+
:bt_trace_class_remove_listener_status
|
87
|
+
|
88
|
+
attach_function :bt_trace_class_get_ref,
|
89
|
+
[ :bt_trace_class_handle ],
|
90
|
+
:void
|
91
|
+
|
92
|
+
attach_function :bt_trace_class_put_ref,
|
93
|
+
[ :bt_trace_class_handle ],
|
94
|
+
:void
|
95
|
+
|
96
|
+
class BTTraceClass < BTSharedObject
|
97
|
+
AddListenerStatus = BTTraceClassAddListenerStatus
|
98
|
+
RemoveListenerStatus = BTTraceClassRemoveListenerStatus
|
99
|
+
@get_ref = :bt_trace_class_get_ref
|
100
|
+
@put_ref = :bt_trace_class_put_ref
|
101
|
+
|
102
|
+
def initialize(handle = nil, retain: true, auto_release: true,
|
103
|
+
self_component: nil)
|
104
|
+
if(handle)
|
105
|
+
super(handle, retain: retain, auto_release: auto_release)
|
106
|
+
else
|
107
|
+
handle = Babeltrace2.bt_trace_class_create(self_component)
|
108
|
+
raise Babeltrace2.process_error if handle.null?
|
109
|
+
super(handle, retain: false)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def get_stream_class_count
|
114
|
+
Babeltrace2.bt_trace_class_get_stream_class_count(@handle)
|
115
|
+
end
|
116
|
+
alias stream_class_count get_stream_class_count
|
117
|
+
|
118
|
+
def get_stream_class_by_index(index)
|
119
|
+
count = get_stream_class_count
|
120
|
+
index += count if index < 0
|
121
|
+
return nil if index >= count || index < 0
|
122
|
+
BTStreamClass.new(
|
123
|
+
Babeltrace2.bt_trace_class_borrow_stream_class_by_index(@handle, index))
|
124
|
+
end
|
125
|
+
|
126
|
+
def get_stream_class_by_id(id)
|
127
|
+
handle = Babeltrace2.bt_trace_class_borrow_stream_class_by_id(@handle, id)
|
128
|
+
return nil if handle.null?
|
129
|
+
BTStreamClass.new(handle, retain: true)
|
130
|
+
end
|
131
|
+
|
132
|
+
def set_assigns_automatic_stream_class_id(assigns_automatic_stream_class_id)
|
133
|
+
Babeltrace2.bt_trace_class_set_assigns_automatic_stream_class_id(
|
134
|
+
@handle, assigns_automatic_stream_class_id ? BT_TRUE : BT_FALSE)
|
135
|
+
self
|
136
|
+
end
|
137
|
+
|
138
|
+
def assigns_automatic_stream_class_id=(assigns_automatic_stream_class_id)
|
139
|
+
set_assigns_automatic_stream_class_id(assigns_automatic_stream_class_id)
|
140
|
+
assigns_automatic_stream_class_id
|
141
|
+
end
|
142
|
+
|
143
|
+
def assigns_automatic_stream_class_id
|
144
|
+
Babeltrace2.bt_trace_class_assigns_automatic_stream_class_id(@handle) != BT_FALSE
|
145
|
+
end
|
146
|
+
alias assigns_automatic_stream_class_id? assigns_automatic_stream_class_id
|
147
|
+
|
148
|
+
def set_user_attributes(user_attributes)
|
149
|
+
Babeltrace2.bt_trace_class_set_user_attributes(@handle, BTValue.from_value(user_attributes))
|
150
|
+
self
|
151
|
+
end
|
152
|
+
|
153
|
+
def user_attributes=(user_attributes)
|
154
|
+
set_user_attributes(user_attributes)
|
155
|
+
user_attributes
|
156
|
+
end
|
157
|
+
|
158
|
+
def get_user_attributes
|
159
|
+
BTValueMap.new(Babeltrace2.bt_trace_class_borrow_user_attributes(@handle), retain: true)
|
160
|
+
end
|
161
|
+
alias user_attributes get_user_attributes
|
162
|
+
|
163
|
+
def add_destruction_listener(user_func, user_data: nil)
|
164
|
+
user_func = Babeltrace2._wrap_trace_class_destruction_listener_func(user_func)
|
165
|
+
id = @handle.to_i
|
166
|
+
ptr = FFI::MemoryPointer.new(:uint64)
|
167
|
+
res = Babeltrace2.bt_trace_class_add_destruction_listener(@handle, user_func, user_data, ptr)
|
168
|
+
raise Babeltrace2.process_error(res) if res != :BT_TRACE_CLASS_ADD_LISTENER_STATUS_OK
|
169
|
+
listener_id = ptr.read_uint64
|
170
|
+
h = Babeltrace2._callbacks[id][:destruction_listener_funcs]
|
171
|
+
if h.nil?
|
172
|
+
h = {}
|
173
|
+
Babeltrace2._callbacks[id][:destruction_listener_funcs] = h
|
174
|
+
end
|
175
|
+
h[listener_id] = [user_func, user_data]
|
176
|
+
listener_id
|
177
|
+
end
|
178
|
+
|
179
|
+
def remove_destruction_listener(listener_id)
|
180
|
+
res = Babeltrace2.bt_trace_class_remove_destruction_listener(@handle, listener_id)
|
181
|
+
raise Babeltrace2.process_error(res) if res != :BT_TRACE_CLASS_REMOVE_LISTENER_STATUS_OK
|
182
|
+
Babeltrace2._callbacks[@handle.to_i][:destruction_listener_funcs].delete(listener_id)
|
183
|
+
self
|
184
|
+
end
|
185
|
+
|
186
|
+
def create_stream_class(id: nil)
|
187
|
+
BTStreamClass.new(trace_class: @handle, id: id)
|
188
|
+
end
|
189
|
+
|
190
|
+
def create_trace
|
191
|
+
BTTrace.new(trace_class: @handle)
|
192
|
+
end
|
193
|
+
|
194
|
+
def create_field_class_bool
|
195
|
+
BTFieldClassBool.new(trace_class: @handle)
|
196
|
+
end
|
197
|
+
alias create_bool_class create_field_class_bool
|
198
|
+
alias create_bool create_field_class_bool
|
199
|
+
|
200
|
+
def create_field_class_bit_array(length)
|
201
|
+
BTFieldClassBitArray.new(trace_class: @handle, length: length)
|
202
|
+
end
|
203
|
+
alias create_bit_array_class create_field_class_bit_array
|
204
|
+
alias create_bit_array create_field_class_bit_array
|
205
|
+
|
206
|
+
def create_field_class_integer_unsigned
|
207
|
+
BTFieldClassIntegerUnsigned.new(trace_class: @handle)
|
208
|
+
end
|
209
|
+
alias create_unsigned_integer_class create_field_class_integer_unsigned
|
210
|
+
alias create_unsigned create_field_class_integer_unsigned
|
211
|
+
|
212
|
+
def create_field_class_integer_signed
|
213
|
+
BTFieldClassIntegerSigned.new(trace_class: @handle)
|
214
|
+
end
|
215
|
+
alias create_signed_integer_class create_field_class_integer_signed
|
216
|
+
alias create_signed create_field_class_integer_signed
|
217
|
+
|
218
|
+
def create_field_class_real_single_precision
|
219
|
+
BTFieldClassRealSinglePrecision.new(trace_class: @handle)
|
220
|
+
end
|
221
|
+
alias create_single_precision_real_class create_field_class_real_single_precision
|
222
|
+
alias create_single create_field_class_real_single_precision
|
223
|
+
|
224
|
+
def create_field_class_real_double_precision
|
225
|
+
BTFieldClassRealDoublePrecision.new(trace_class: @handle)
|
226
|
+
end
|
227
|
+
alias create_double_precision_real_class create_field_class_real_double_precision
|
228
|
+
alias create_double create_field_class_real_double_precision
|
229
|
+
|
230
|
+
def create_field_class_enumeration_unsigned
|
231
|
+
BTFieldClassEnumerationUnsigned.new(trace_class: @handle)
|
232
|
+
end
|
233
|
+
alias create_unsigned_enumeration_class create_field_class_enumeration_unsigned
|
234
|
+
alias create_unsigned_enum create_field_class_enumeration_unsigned
|
235
|
+
|
236
|
+
def create_field_class_enumeration_signed
|
237
|
+
BTFieldClassEnumerationSigned.new(trace_class: @handle)
|
238
|
+
end
|
239
|
+
alias create_signed_enumeration_class create_field_class_enumeration_signed
|
240
|
+
alias create_signed_enum create_field_class_enumeration_signed
|
241
|
+
|
242
|
+
def create_field_class_string
|
243
|
+
BTFieldClassString.new(trace_class: @handle)
|
244
|
+
end
|
245
|
+
alias create_string_class create_field_class_string
|
246
|
+
alias create_string create_field_class_string
|
247
|
+
|
248
|
+
def create_field_class_array_static(element_field_class, length)
|
249
|
+
BTFieldClassArrayStatic.new(trace_class: @handle,
|
250
|
+
element_field_class: element_field_class,
|
251
|
+
length: length)
|
252
|
+
end
|
253
|
+
alias create_static_array_class create_field_class_array_static
|
254
|
+
alias create_static_array create_field_class_array_static
|
255
|
+
|
256
|
+
def create_field_class_array_dynamic(element_field_class, length_field_class: nil)
|
257
|
+
BTFieldClassArrayDynamic.new(trace_class: @handle,
|
258
|
+
element_field_class: element_field_class,
|
259
|
+
length_field_class: length_field_class)
|
260
|
+
end
|
261
|
+
alias create_dynamic_array_class create_field_class_array_dynamic
|
262
|
+
alias create_dynamic_array create_field_class_array_dynamic
|
263
|
+
|
264
|
+
def create_field_class_array(element_field_class, length: nil)
|
265
|
+
case length
|
266
|
+
when Integer
|
267
|
+
create_field_class_array_static(element_field_class, length)
|
268
|
+
when nil, BTFieldClassIntegerUnsigned
|
269
|
+
create_field_class_array_dynamic(element_field_class, length_field_class: length)
|
270
|
+
else
|
271
|
+
raise "invalid length type"
|
272
|
+
end
|
273
|
+
end
|
274
|
+
alias create_array_class create_field_class_array
|
275
|
+
alias create_array create_field_class_array
|
276
|
+
|
277
|
+
def create_field_class_structure
|
278
|
+
BTFieldClassStructure.new(trace_class: @handle)
|
279
|
+
end
|
280
|
+
alias create_structure_class create_field_class_structure
|
281
|
+
alias create_structure create_field_class_structure
|
282
|
+
|
283
|
+
def create_field_class_option_without_selector(optional_field_class)
|
284
|
+
BTFieldClassOptionWithoutSelectorField.new(
|
285
|
+
trace_class: @handle,
|
286
|
+
optional_field_class: optional_field_class)
|
287
|
+
end
|
288
|
+
alias create_option_without_selector_class create_field_class_option_without_selector
|
289
|
+
alias create_option_without create_field_class_option_without_selector
|
290
|
+
|
291
|
+
def create_field_class_option_with_selector_field_bool(optional_field_class, selector_field_class)
|
292
|
+
BTFieldClassOptionWithSelectorFieldBool.new(
|
293
|
+
trace_class: @handle,
|
294
|
+
optional_field_class: optional_field_class,
|
295
|
+
selector_field_class: selector_field_class)
|
296
|
+
end
|
297
|
+
alias create_option_with_bool_selector_field_class create_field_class_option_with_selector_field_bool
|
298
|
+
alias create_option_with_bool_selector_field create_field_class_option_with_selector_field_bool
|
299
|
+
|
300
|
+
def create_field_class_option_with_selector_field_integer_unsigned(optional_field_class, selector_field_class, ranges)
|
301
|
+
BTFieldClassOptionWithSelectorFieldIntegerUnsigned.new(
|
302
|
+
trace_class: @handle,
|
303
|
+
optional_field_class: optional_field_class,
|
304
|
+
selector_field_class: selector_field_class,
|
305
|
+
ranges: ranges)
|
306
|
+
end
|
307
|
+
alias create_option_with_unsigned_integer_selector_field_class create_field_class_option_with_selector_field_integer_unsigned
|
308
|
+
alias create_option_with_unsigned_integer_selector_field create_field_class_option_with_selector_field_integer_unsigned
|
309
|
+
|
310
|
+
def create_field_class_option_with_selector_field_integer_signed(optional_field_class, selector_field_class, ranges)
|
311
|
+
BTFieldClassOptionWithSelectorFieldIntegerSigned.new(
|
312
|
+
trace_class: @handle,
|
313
|
+
optional_field_class: optional_field_class,
|
314
|
+
selector_field_class: selector_field_class,
|
315
|
+
ranges: ranges)
|
316
|
+
end
|
317
|
+
alias create_option_with_signed_integer_selector_field_class create_field_class_option_with_selector_field_integer_signed
|
318
|
+
alias create_option_with_signed_integer_selector_field create_field_class_option_with_selector_field_integer_signed
|
319
|
+
|
320
|
+
def create_field_class_option(optional_field_class, selector_field_class: nil, ranges: nil)
|
321
|
+
case selector_field_class
|
322
|
+
when nil
|
323
|
+
create_field_class_option_without_selector(optional_field_class)
|
324
|
+
when BTFieldClassBool
|
325
|
+
create_field_class_option_with_selector_field_bool(optional_field_class, selector_field_class)
|
326
|
+
when BTFieldClassIntegerUnsigned
|
327
|
+
create_field_class_option_with_selector_field_integer_unsigned(optional_field_class, selector_field_class, ranges)
|
328
|
+
when BTFieldClassIntegerSigned
|
329
|
+
create_field_class_option_with_selector_field_integer_signed(optional_field_class, selector_field_class, ranges)
|
330
|
+
else
|
331
|
+
raise "invalid selector field class"
|
332
|
+
end
|
333
|
+
end
|
334
|
+
alias create_option_class create_field_class_option
|
335
|
+
alias create_option create_field_class_option
|
336
|
+
|
337
|
+
def create_field_class_variant(selector_field_class: nil)
|
338
|
+
BTFieldClassVariant.new(trace_class: @handle, selector_field_class: selector_field_class)
|
339
|
+
end
|
340
|
+
alias create_variant_class create_field_class_variant
|
341
|
+
alias create_variant create_field_class_variant
|
342
|
+
end
|
343
|
+
end
|