metababel 0.0.2 → 0.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5d2bc1142062b4ea5582787ac08f4297250cfacf0fd1cfef8a6d43facdbe0c91
4
- data.tar.gz: 1ca1c72dfb7094af76b7de63b78334e366e90cd1ad9f4749e9b9606fd2c91a6e
3
+ metadata.gz: 3e44583997647f4d7d9e241dd5e066abc80586445283bd2846fa9fa453542de7
4
+ data.tar.gz: a89855eeb46c35a71325937679b30bc0ef3fe46317cc1239419980b13f43a1b5
5
5
  SHA512:
6
- metadata.gz: 81c2894b9df348051da07351eede13c30c861e846ed1cd1aa45d6b0d9cd9f0afe1b1a8ee667aa5cec08c825096e86eace166e1d70e7099027ba4d77833491d87
7
- data.tar.gz: 75b744ab367615c963951248d95828a8e51365efe9024ae6b88be3f72a857e73dc4c7aef0b84f60f39383f53d3978da8e324124acd94a8bc8c28dcc6c370cb63
6
+ metadata.gz: 8ece21929325026051ef4897d8f9871c19e5af621d963d1fcd8e57e8e481feb460e6fe3a02675eefb0bd44dc64505af329231ea22b52c54acbbfc7d9efcdaf2a
7
+ data.tar.gz: 62fd169ca6e45a414b71228c2b6fc763bd0d18dd83fcbc6266d1663bb7303a8aa608f56863b3bbea0154d5862e4b80f26adbdbd6401b11541a658e200c278704
data/bin/metababel CHANGED
@@ -33,7 +33,7 @@ class Hash
33
33
  end
34
34
  end
35
35
 
36
- EventInfo = Struct.new(:name, :args, :body, :index_stream_class, :index_event_class) do
36
+ EventInfo = Struct.new(:name, :args, :body, :index_stream_class, :index_event_class, :default_clock_class) do
37
37
  def name_sanitized
38
38
  name.gsub(/[^0-9A-Za-z-]/, '_')
39
39
  end
@@ -56,7 +56,7 @@ class Babeltrace2Gen::BTTraceClass
56
56
  def map_event_classes_with_index
57
57
  @stream_classes.map.with_index do |s, index_stream_class|
58
58
  s.event_classes.map.with_index do |e, index_event_class|
59
- yield(e, index_stream_class, index_event_class)
59
+ yield(e, index_stream_class, index_event_class, s.default_clock_class)
60
60
  end
61
61
  end.flatten
62
62
  end
@@ -71,8 +71,10 @@ end
71
71
  # But we clean the white space empty line afterward \o/
72
72
  def wrote_event_dispatchers(folder, t)
73
73
  event_name = 'event'
74
- event_dispatchers = t.map_event_classes_with_index do |e, index_stream_class, index_event_class|
74
+ event_dispatchers = t.map_event_classes_with_index do |e, index_stream_class, index_event_class, default_clock_class|
75
75
  arg_variables = []
76
+ arg_variables << GeneratedArg.new("uint64_t", "timestamp") if default_clock_class
77
+
76
78
  body = Babeltrace2Gen.context(indent: 1) do
77
79
  e.get_getter(event: event_name, arg_variables: arg_variables)
78
80
  end
@@ -88,16 +90,18 @@ end
88
90
 
89
91
  def wrote_creates(folder, t)
90
92
  event_name = 'event'
91
- downstream_events = t.map_event_classes_with_index do |e, index_stream_class, index_event_class|
93
+ downstream_events = t.map_event_classes_with_index do |e, index_stream_class, index_event_class, default_clock_class|
92
94
  arg_variables = []
93
95
  body = Babeltrace2Gen.context(indent: 1) do
94
96
  e.get_setter(event: event_name, arg_variables: arg_variables)
95
97
  end
96
- EventInfo.new(e.name, arg_variables, "\n" + body, index_stream_class, index_event_class)
98
+ arg_variables.insert(0,GeneratedArg.new("uint64_t", "timestamp")) if default_clock_class
99
+
100
+ EventInfo.new(e.name, arg_variables, "\n" + body, index_stream_class, index_event_class, default_clock_class)
97
101
  end
98
102
 
99
103
  body_declarator_classes = "\n" + Babeltrace2Gen.context(indent: 1) do
100
- t.get_declarator(variable: 'trace_class')
104
+ t.get_declarator(variable: 'trace_class', self_component: 'self_component')
101
105
  end
102
106
 
103
107
  d = { body_declarator_classes: body_declarator_classes,
@@ -203,6 +207,8 @@ if options.key?(:params)
203
207
  end
204
208
  d[:params_declaration] = c.get_struct_definition('params')
205
209
  d[:params_definition] = body
210
+ else
211
+ d[:params_declaration] = "char _dummy;"
206
212
  end
207
213
 
208
214
  erb_render_and_save(d, "#{options[:component_type].downcase}.c", base_folder, out_name: "main.c")
@@ -89,7 +89,8 @@ module Babeltrace2Gen
89
89
  end
90
90
  end
91
91
 
92
- def get_declarator(variable:)
92
+ def get_declarator(variable:, self_component:)
93
+ pr "#{variable} = bt_trace_class_create(#{self_component});"
93
94
  bt_set_conditionally(@assigns_automatic_stream_class_id) do |v|
94
95
  pr "bt_trace_class_set_assigns_automatic_stream_class_id(#{variable}, #{v});"
95
96
  end
@@ -98,7 +99,7 @@ module Babeltrace2Gen
98
99
  stream_class_name = "#{variable}_sc_#{i}"
99
100
  scope do
100
101
  pr "bt_stream_class *#{stream_class_name};"
101
- m.get_declarator(trace_class: variable, variable: stream_class_name)
102
+ m.get_declarator(variable: stream_class_name, self_component: self_component, trace_class: variable)
102
103
  end
103
104
  end
104
105
  end
@@ -109,10 +110,14 @@ module Babeltrace2Gen
109
110
  include BTPrinter
110
111
  include BTLocator
111
112
  extend BTFromH
112
- attr_reader :packet_context_field_class, :event_common_context_field_class, :event_classes, :id, :name
113
+ attr_reader :packet_context_field_class, :event_common_context_field_class, :event_classes, :default_clock_class, :id, :name
113
114
 
114
115
  def initialize(parent:, name: nil, packet_context_field_class: nil, event_common_context_field_class: nil,
115
- event_classes: [], id: nil, assigns_automatic_event_class_id: nil, assigns_automatic_stream_id: nil)
116
+ event_classes: [], id: nil, assigns_automatic_event_class_id: nil, assigns_automatic_stream_id: nil,
117
+ default_clock_class: nil)
118
+ # Handle clock class property:
119
+ # https://babeltrace.org/docs/v2.0/libbabeltrace2/group__api-tir-clock-cls.html#gae0f705eb48cd65784da28b1906ca05a5
120
+
116
121
  @parent = parent
117
122
  @name = name
118
123
 
@@ -137,15 +142,26 @@ module Babeltrace2Gen
137
142
  end
138
143
  @assigns_automatic_stream_id = assigns_automatic_stream_id
139
144
  @id = id
145
+ @default_clock_class = default_clock_class
140
146
  end
141
147
 
142
- def get_declarator(trace_class:, variable:)
148
+ def get_declarator(variable:, trace_class:, self_component:)
143
149
  if @id
144
150
  pr "#{variable} = bt_stream_class_create_with_id(#{trace_class}, #{@id});"
145
151
  else
146
152
  pr "#{variable} = bt_stream_class_create(#{trace_class});"
147
153
  end
148
154
  pr "bt_stream_class_set_name(#{variable}, \"#{name}\");" if @name
155
+ if @default_clock_class
156
+ clock_class_name = "#{variable}_dcc"
157
+ scope do
158
+ pr "bt_clock_class *#{clock_class_name};"
159
+ # TODO: @default_clock_class.get_declarator(variable: clock_class_name, self_component: self_component)
160
+ pr "#{clock_class_name} = bt_clock_class_create(#{self_component});"
161
+ pr "bt_stream_class_set_default_clock_class(#{variable}, #{clock_class_name});"
162
+ pr "bt_clock_class_put_ref(#{clock_class_name});"
163
+ end
164
+ end
149
165
 
150
166
  if @packet_context_field_class
151
167
  var_pc = "#{variable}_pc_fc"
@@ -185,7 +201,6 @@ module Babeltrace2Gen
185
201
  end
186
202
 
187
203
  pr "bt_stream_class_put_ref(#{variable});"
188
-
189
204
  end
190
205
  end
191
206
 
@@ -1,3 +1,3 @@
1
1
  module Metababel
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
@@ -37,7 +37,7 @@ void btx_downstream_push_message(
37
37
 
38
38
  bt_trace_class *
39
39
  btx_downstream_trace_class_create_rec(bt_self_component *self_component) {
40
- bt_trace_class *trace_class = bt_trace_class_create(self_component);
40
+ bt_trace_class *trace_class;
41
41
  <%= body_declarator_classes %>
42
42
  return trace_class;
43
43
  }
@@ -124,9 +124,14 @@ void btx_push_message_<%= e.name_sanitized %>(
124
124
  bt_stream_class *stream_class = bt_stream_borrow_class(stream);
125
125
  bt_event_class *event_class = bt_stream_class_borrow_event_class_by_index(
126
126
  stream_class, <%= e.index_event_class %>);
127
-
127
+ <% if !e.default_clock_class %>
128
128
  bt_message *message = bt_message_event_create(
129
129
  common_data->self_message_iterator, event_class, stream);
130
+ <% else %>
131
+ bt_message *message = bt_message_event_create_with_default_clock_snapshot(
132
+ common_data->self_message_iterator, event_class, stream, timestamp);
133
+ <% end %>
134
+
130
135
  bt_event *downstream_event = bt_message_event_borrow_event(message);
131
136
 
132
137
  btx_set_message_<%= e.name_sanitized %>(
@@ -241,7 +241,7 @@ filter_initialize(bt_self_component_filter *self_component_filter,
241
241
 
242
242
  /* Allocate a private data structure */
243
243
  common_data_t *common_data = calloc(1, sizeof(common_data_t));
244
- common_data->btx_params = calloc(1,sizeof(btx_params_t));
244
+ common_data->btx_params = calloc(1, sizeof(btx_params_t));
245
245
  common_data->params = params;
246
246
  // Read parameters
247
247
  btx_populate_params(common_data);
data/template/sink.c.erb CHANGED
@@ -80,7 +80,7 @@ sink_initialize(bt_self_component_sink *self_component_sink,
80
80
  const bt_value *params, void *initialize_method_data) {
81
81
  /* Allocate a private data structure */
82
82
  common_data_t *common_data = calloc(1, sizeof(common_data_t));
83
- common_data->btx_params = calloc(1,sizeof(btx_params_t));
83
+ common_data->btx_params = calloc(1, sizeof(btx_params_t));
84
84
  common_data->params = params;
85
85
  // Read parameters
86
86
  btx_populate_params(common_data);
@@ -93,7 +93,7 @@ source_initialize(bt_self_component_source *self_component_source,
93
93
  const bt_value *params, void *initialize_method_data) {
94
94
  /* Allocate a private data structure */
95
95
  common_data_t *common_data = calloc(1, sizeof(common_data_t));
96
- common_data->btx_params = calloc(1,sizeof(btx_params_t));
96
+ common_data->btx_params = calloc(1, sizeof(btx_params_t));
97
97
  common_data->params = params;
98
98
  // Read parameters
99
99
  btx_populate_params(common_data);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metababel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Applencourt
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-05-01 00:00:00.000000000 Z
13
+ date: 2023-05-03 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description:
16
16
  email:
@@ -55,8 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
57
  requirements: []
58
- rubyforge_project:
59
- rubygems_version: 2.7.6.3
58
+ rubygems_version: 3.3.3
60
59
  signing_key:
61
60
  specification_version: 4
62
61
  summary: Helper for creation Babeltrace plugins