Class: Babeltrace2::UserPlugin

Inherits:
Object
  • Object
show all
Defined in:
lib/babeltrace2/plugin/plugin-dev.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, author: nil, description: nil, license: nil, path: nil, major: 0, minor: 0, patch: 0, version_extra: nil) ⇒ UserPlugin

Returns a new instance of UserPlugin.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 15

def initialize(name:, author: nil, description: nil, license: nil, path: nil,
               major: 0, minor: 0, patch: 0, version_extra: nil)
  @name = name
  @author = author
  @description = description
  @license = license
  @path = path
  @major = major.to_i
  @minor = minor.to_i
  @patch = patch.to_i
  @version_extra = version_extra
  @component_classes = []
  @user_component_classes = []
end

Instance Attribute Details

#authorObject (readonly) Also known as: get_author

Returns the value of attribute author.



6
7
8
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 6

def author
  @author
end

#descriptionObject (readonly) Also known as: get_description

Returns the value of attribute description.



7
8
9
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 7

def description
  @description
end

#licenseObject (readonly) Also known as: get_license

Returns the value of attribute license.



8
9
10
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 8

def license
  @license
end

#majorObject (readonly)

Returns the value of attribute major.



10
11
12
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 10

def major
  @major
end

#minorObject (readonly)

Returns the value of attribute minor.



11
12
13
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 11

def minor
  @minor
end

#nameObject (readonly) Also known as: get_name

Returns the value of attribute name.



5
6
7
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 5

def name
  @name
end

#patchObject (readonly)

Returns the value of attribute patch.



12
13
14
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 12

def patch
  @patch
end

#pathObject Also known as: get_path

Returns the value of attribute path.



9
10
11
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 9

def path
  @path
end

#version_extraObject (readonly)

Returns the value of attribute version_extra.



13
14
15
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 13

def version_extra
  @version_extra
end

Instance Method Details

#get_component_class_addressesObject Also known as: component_class_addresses



50
51
52
53
54
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 50

def get_component_class_addresses
  get_component_classes.collect { |c|
    c.handle.to_ptr.to_i
  }
end

#get_component_classesObject Also known as: component_classes



45
46
47
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 45

def get_component_classes
  @component_classes
end

#get_filter_component_class(filter_component_class) ⇒ Object



122
123
124
125
126
127
128
129
130
131
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 122

def get_filter_component_class(filter_component_class)
  case filter_component_class
  when String
    get_filter_component_class_by_name(filter_component_class)
  when Integer
    get_filter_component_class_by_index(filter_component_class)
  else
    raise TypeError, "wrong type for filter component class query"
  end
end

#get_filter_component_class_by_index(index) ⇒ Object



91
92
93
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 91

def get_filter_component_class_by_index(index)
  get_filter_component_classes[index]
end

#get_filter_component_class_by_name(name) ⇒ Object



103
104
105
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 103

def get_filter_component_class_by_name(name)
  get_filter_component_classes.find { |c| c.name == name }
end

#get_filter_component_class_countObject Also known as: filter_component_class_count



72
73
74
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 72

def get_filter_component_class_count
  get_filter_component_classes.count
end

#get_filter_component_classesObject Also known as: filter_component_classes



67
68
69
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 67

def get_filter_component_classes
  @component_classes.select { |c| c.filter? }
end

#get_sink_component_class(sink_component_class) ⇒ Object



133
134
135
136
137
138
139
140
141
142
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 133

def get_sink_component_class(sink_component_class)
  case sink_component_class
  when String
    get_sink_component_class_by_name(sink_component_class)
  when Integer
    get_sink_component_class_by_index(sink_component_class)
  else
    raise TypeError, "wrong type for sink component class query"
  end
end

#get_sink_component_class_by_index(index) ⇒ Object



95
96
97
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 95

def get_sink_component_class_by_index(index)
  get_sink_component_classes[index]
end

#get_sink_component_class_by_name(name) ⇒ Object



107
108
109
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 107

def get_sink_component_class_by_name(name)
  get_sink_component_classes.find { |c| c.name == name }
end

#get_sink_component_class_countObject Also known as: sink_component_class_count



82
83
84
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 82

def get_sink_component_class_count
  get_sink_component_classes.count
end

#get_sink_component_classesObject Also known as: sink_component_classes



77
78
79
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 77

def get_sink_component_classes
  @component_classes.select { |c| c.sink? }
end

#get_source_component_class(source_component_class) ⇒ Object



111
112
113
114
115
116
117
118
119
120
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 111

def get_source_component_class(source_component_class)
  case source_component_class
  when String
    get_source_component_class_by_name(source_component_class)
  when Integer
    get_source_component_class_by_index(source_component_class)
  else
    raise TypeError, "wrong type for source component class query"
  end
end

#get_source_component_class_by_index(index) ⇒ Object



87
88
89
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 87

def get_source_component_class_by_index(index)
  get_source_component_classes[index]
end

#get_source_component_class_by_name(name) ⇒ Object



99
100
101
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 99

def get_source_component_class_by_name(name)
  get_source_component_classes.find { |c| c.name == name }
end

#get_source_component_class_countObject Also known as: source_component_class_count



62
63
64
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 62

def get_source_component_class_count
  get_source_component_classes.count
end

#get_source_component_classesObject Also known as: source_component_classes



57
58
59
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 57

def get_source_component_classes
  @component_classes.select { |c| c.source? }
end

#get_versionObject Also known as: version



40
41
42
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 40

def get_version
  BTVersion::Number.new(major, minor, patch, extra)
end

#register_component_class(component) ⇒ Object Also known as: register_component, register, push



144
145
146
147
148
149
150
151
152
153
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 144

def register_component_class(component)
  raise "component with same name and type already exist" if @component_classes.find { |c| c.type == component.type && c.name == component.name}
  if component.kind_of?(Class) && component < UserComponentClass
    component = component.new
    @user_component_classes.push component
    component = component.bt_component_class
  end
  @component_classes.push component
  self
end

#user_component_classesObject



30
31
32
# File 'lib/babeltrace2/plugin/plugin-dev.rb', line 30

def user_component_classes
  @user_component_classes
end