nl-linux 0.2.4 → 0.4.1

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.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -0
  3. data/.yardopts +5 -0
  4. data/CHANGELOG.md +8 -0
  5. data/Rakefile +27 -5
  6. data/generated/nl/linux/binder.rb +227 -19
  7. data/generated/nl/linux/conntrack.rb +1325 -365
  8. data/generated/nl/linux/dev_energymodel.rb +357 -66
  9. data/generated/nl/linux/devlink.rb +6310 -1859
  10. data/generated/nl/linux/dpll.rb +2202 -376
  11. data/generated/nl/linux/drm_ras.rb +312 -63
  12. data/generated/nl/linux/ethtool.rb +7555 -2447
  13. data/generated/nl/linux/fou.rb +381 -133
  14. data/generated/nl/linux/handshake.rb +340 -70
  15. data/generated/nl/linux/lockd.rb +132 -27
  16. data/generated/nl/linux/mptcp_pm.rb +773 -161
  17. data/generated/nl/linux/net_shaper.rb +892 -211
  18. data/generated/nl/linux/netdev.rb +2366 -518
  19. data/generated/nl/linux/nfsd.rb +1299 -317
  20. data/generated/nl/linux/nftables.rb +5351 -1533
  21. data/generated/nl/linux/nl80211.rb +4601 -882
  22. data/generated/nl/linux/nlctrl.rb +460 -117
  23. data/generated/nl/linux/ovpn.rb +1360 -262
  24. data/generated/nl/linux/ovs_datapath.rb +312 -98
  25. data/generated/nl/linux/ovs_flow.rb +1866 -358
  26. data/generated/nl/linux/ovs_packet.rb +331 -45
  27. data/generated/nl/linux/ovs_vport.rb +374 -123
  28. data/generated/nl/linux/psp.rb +1093 -201
  29. data/generated/nl/linux/rt_addr.rb +423 -165
  30. data/generated/nl/linux/rt_link.rb +6928 -1336
  31. data/generated/nl/linux/rt_neigh.rb +1063 -297
  32. data/generated/nl/linux/rt_route.rb +1112 -483
  33. data/generated/nl/linux/rt_rule.rb +931 -262
  34. data/generated/nl/linux/sunrpc_cache.rb +407 -82
  35. data/generated/nl/linux/tc.rb +10081 -1763
  36. data/generated/nl/linux/tcp_metrics.rb +388 -109
  37. data/generated/nl/linux/team.rb +350 -84
  38. data/generated/nl/linux/wireguard.rb +525 -96
  39. data/generated/nl/linux.rb +1 -0
  40. data/lib/nl/linux/nlctrl_resolver.rb +31 -0
  41. data/lib/nl/linux/version.rb +1 -1
  42. data/sig/generated/nl/linux/binder.rbs +366 -0
  43. data/sig/generated/nl/linux/conntrack.rbs +2787 -0
  44. data/sig/generated/nl/linux/dev_energymodel.rbs +636 -0
  45. data/sig/generated/nl/linux/devlink.rbs +12496 -0
  46. data/sig/generated/nl/linux/dpll.rbs +3461 -0
  47. data/sig/generated/nl/linux/drm_ras.rbs +553 -0
  48. data/sig/generated/nl/linux/ethtool.rbs +15291 -0
  49. data/sig/generated/nl/linux/fou.rbs +702 -0
  50. data/sig/generated/nl/linux/handshake.rbs +622 -0
  51. data/sig/generated/nl/linux/lockd.rbs +234 -0
  52. data/sig/generated/nl/linux/mptcp_pm.rbs +1511 -0
  53. data/sig/generated/nl/linux/net_shaper.rbs +1645 -0
  54. data/sig/generated/nl/linux/netdev.rbs +4187 -0
  55. data/sig/generated/nl/linux/nfsd.rbs +2520 -0
  56. data/sig/generated/nl/linux/nftables.rbs +10304 -0
  57. data/sig/generated/nl/linux/nl80211.rbs +9786 -0
  58. data/sig/generated/nl/linux/nlctrl.rbs +944 -0
  59. data/sig/generated/nl/linux/nlctrl_resolver.rbs +20 -0
  60. data/sig/generated/nl/linux/ovpn.rbs +2564 -0
  61. data/sig/generated/nl/linux/ovs_datapath.rbs +640 -0
  62. data/sig/generated/nl/linux/ovs_flow.rbs +3659 -0
  63. data/sig/generated/nl/linux/ovs_packet.rbs +540 -0
  64. data/sig/generated/nl/linux/ovs_vport.rbs +777 -0
  65. data/sig/generated/nl/linux/psp.rbs +1846 -0
  66. data/sig/generated/nl/linux/rt_addr.rbs +866 -0
  67. data/sig/generated/nl/linux/rt_link.rbs +13438 -0
  68. data/sig/generated/nl/linux/rt_neigh.rbs +2124 -0
  69. data/sig/generated/nl/linux/rt_route.rbs +2218 -0
  70. data/sig/generated/nl/linux/rt_rule.rbs +1726 -0
  71. data/sig/generated/nl/linux/sunrpc_cache.rbs +739 -0
  72. data/sig/generated/nl/linux/tc.rbs +19931 -0
  73. data/sig/generated/nl/linux/tcp_metrics.rbs +740 -0
  74. data/sig/generated/nl/linux/team.rbs +733 -0
  75. data/sig/generated/nl/linux/version.rbs +7 -0
  76. data/sig/generated/nl/linux/wireguard.rbs +1006 -0
  77. data/sig/generated/nl/linux.rbs +6 -0
  78. data/sig/generated/nl-linux.rbs +2 -0
  79. metadata +51 -10
@@ -1,397 +1,740 @@
1
1
  # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
+ #
3
+ # This file is based on Documentation/netlink/specs/nlctrl.yaml from Linux v7.2.
2
4
  #--
3
5
  # frozen_string_literal: true
4
- # rbs_inline: enabled
5
6
  # This code is generated by Ynl::Generator. DO NOT EDIT.
6
7
  require 'nl'
7
8
  module Nl; module Linux
8
9
  # genetlink meta-family that exposes information about all genetlink
9
10
  # families registered in the kernel (including itself).
10
- class Nlctrl < ::Nl::Family
11
+ class Nlctrl < ::Nl::Genl::Family
11
12
  NAME = "nlctrl"
12
- PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Genl.new("nlctrl"))
13
+ VERSION = 1
14
+ # @rbs (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) -> (::Nl::Family::Session & instance)
15
+ # @rbs | [R] (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) { (instance) -> R } -> R
16
+ # @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
17
+ # @param [#call] resolver
18
+ # @param [Symbol, nil] executor
19
+ # @param [Integer, nil] notification_capacity
20
+ # @return [Nlctrl]
21
+ # @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY, &block)
22
+ # @param [#call] resolver
23
+ # @param [Symbol, nil] executor
24
+ # @param [Integer, nil] notification_capacity
25
+ # @yieldparam [Nlctrl] family
26
+ # @return [Object] the result of the block
27
+ def self.open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
28
+ super
29
+ end
30
+ # @private
31
+ MCAST_GROUPS = Ractor.make_shareable({}) #: Hash[::Symbol, ::Nl::McastGroup]
32
+ module Enums
33
+ module AttrType
34
+ Invalid = 0
35
+ Flag = 1
36
+ U8 = 2
37
+ U16 = 3
38
+ U32 = 4
39
+ U64 = 5
40
+ S8 = 6
41
+ S16 = 7
42
+ S32 = 8
43
+ S64 = 9
44
+ Binary = 10
45
+ String = 11
46
+ NulString = 12
47
+ Nested = 13
48
+ NestedArray = 14
49
+ Bitfield32 = 15
50
+ Sint = 16
51
+ Uint = 17
52
+ end
53
+ end
54
+ module Flags
55
+ module OpFlags
56
+ AdminPerm = 1
57
+ CmdCapDo = 2
58
+ CmdCapDump = 4
59
+ CmdCapHaspol = 8
60
+ UnsAdminPerm = 16
61
+ end
62
+ end
13
63
  module Structs
14
64
  end
15
65
  module AttributeSets
16
- class CtrlAttrs < ::Nl::Protocols::Genl::AttributeSet
66
+ class CtrlAttrs < ::Nl::AttributeSet
17
67
  # Abstract class
18
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
68
+ class Attribute < ::Nl::AttributeSet::Attribute
19
69
  end
20
70
  class FamilyId < Attribute
21
71
  TYPE = 1
22
72
  NAME = :"family_id"
23
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
73
+ # @private
74
+ ORDER = 0
75
+ # @private
76
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
24
77
  end
25
78
  class FamilyName < Attribute
26
79
  TYPE = 2
27
80
  NAME = :"family_name"
28
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
81
+ # @private
82
+ ORDER = 1
83
+ # @private
84
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
29
85
  end
30
86
  class Version < Attribute
31
87
  TYPE = 3
32
88
  NAME = :"version"
33
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
89
+ # @private
90
+ ORDER = 2
91
+ # @private
92
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
34
93
  end
35
94
  class Hdrsize < Attribute
36
95
  TYPE = 4
37
96
  NAME = :"hdrsize"
38
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
97
+ # @private
98
+ ORDER = 3
99
+ # @private
100
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
39
101
  end
40
102
  class Maxattr < Attribute
41
103
  TYPE = 5
42
104
  NAME = :"maxattr"
43
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
105
+ # @private
106
+ ORDER = 4
107
+ # @private
108
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
44
109
  end
45
110
  class Ops < Attribute
46
111
  TYPE = 6
47
112
  NAME = :"ops"
113
+ # @private
114
+ ORDER = 5
48
115
  end
49
116
  class McastGroups < Attribute
50
117
  TYPE = 7
51
118
  NAME = :"mcast_groups"
119
+ # @private
120
+ ORDER = 6
52
121
  end
53
122
  class Policy < Attribute
54
123
  TYPE = 8
55
124
  NAME = :"policy"
125
+ # @private
126
+ ORDER = 7
56
127
  end
57
128
  class OpPolicy < Attribute
58
129
  TYPE = 9
59
130
  NAME = :"op_policy"
131
+ # @private
132
+ ORDER = 8
60
133
  end
61
134
  class Op < Attribute
62
135
  TYPE = 10
63
136
  NAME = :"op"
64
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
137
+ # @private
138
+ ORDER = 9
139
+ # @private
140
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
65
141
  end
66
- # :nodoc:
142
+ # @private
67
143
  BY_NAME = Ractor.make_shareable({:"family_id" => FamilyId, :"family_name" => FamilyName, :"version" => Version, :"hdrsize" => Hdrsize, :"maxattr" => Maxattr, :"ops" => Ops, :"mcast_groups" => McastGroups, :"policy" => Policy, :"op_policy" => OpPolicy, :"op" => Op}) #: Hash[::Symbol, Attribute]
68
- # :nodoc:
144
+ # @private
69
145
  BY_TYPE = Ractor.make_shareable({1 => FamilyId, 2 => FamilyName, 3 => Version, 4 => Hdrsize, 5 => Maxattr, 6 => Ops, 7 => McastGroups, 8 => Policy, 9 => OpPolicy, 10 => Op}) #: Hash[::Integer, Attribute]
146
+ # @rbs return: ::Integer
147
+ # @return [Integer]
148
+ # @see FamilyId
149
+ def family_id; self[:"family_id"]&.value; end
150
+ # @rbs return: ::String
151
+ # @return [String]
152
+ # @see FamilyName
153
+ def family_name; self[:"family_name"]&.value; end
154
+ # @rbs return: ::Integer
155
+ # @return [Integer]
156
+ # @see Version
157
+ def version; self[:"version"]&.value; end
158
+ # @rbs return: ::Integer
159
+ # @return [Integer]
160
+ # @see Hdrsize
161
+ def hdrsize; self[:"hdrsize"]&.value; end
162
+ # @rbs return: ::Integer
163
+ # @return [Integer]
164
+ # @see Maxattr
165
+ def maxattr; self[:"maxattr"]&.value; end
166
+ # @rbs return: ::Array[AttributeSets::OpAttrs]
167
+ # @return [Array<AttributeSets::OpAttrs>]
168
+ # @see Ops
169
+ def ops; self[:"ops"]&.value; end
170
+ # @rbs return: ::Array[AttributeSets::McastGroupAttrs]
171
+ # @return [Array<AttributeSets::McastGroupAttrs>]
172
+ # @see McastGroups
173
+ def mcast_groups; self[:"mcast_groups"]&.value; end
174
+ # @rbs return: ::Hash[::Integer, ::Hash[::Integer, AttributeSets::PolicyAttrs]]
175
+ # @return [Hash<Integer, Hash<Integer, AttributeSets::PolicyAttrs>>]
176
+ # @see Policy
177
+ def policy; self[:"policy"]&.value; end
178
+ # @rbs return: ::Hash[::Integer, AttributeSets::OpPolicyAttrs]
179
+ # @return [Hash<Integer, AttributeSets::OpPolicyAttrs>]
180
+ # @see OpPolicy
181
+ def op_policy; self[:"op_policy"]&.value; end
182
+ # @rbs return: ::Integer
183
+ # @return [Integer]
184
+ # @see Op
185
+ def op; self[:"op"]&.value; end
70
186
  class << self
71
187
  # Looks up Attribute class by name.
72
- #--
73
188
  # @rbs name: Symbol
74
189
  # @rbs return: Attribute
190
+ # @param [Symbol] name
191
+ # @return [Attribute]
75
192
  def by_name(name); BY_NAME.fetch(name); end
76
193
  # Looks up Attribute class by type value.
77
- #--
78
194
  # @rbs type: Integer
79
195
  # @rbs return: Attribute
196
+ # @param [Integer] type
197
+ # @return [Attribute]
80
198
  def by_type(type); BY_TYPE.fetch(type); end
81
199
  end
82
200
  end
83
- class McastGroupAttrs < ::Nl::Protocols::Genl::AttributeSet
201
+ class McastGroupAttrs < ::Nl::AttributeSet
84
202
  # Abstract class
85
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
203
+ class Attribute < ::Nl::AttributeSet::Attribute
86
204
  end
87
205
  class Name < Attribute
88
206
  TYPE = 1
89
207
  NAME = :"name"
90
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::String.new(check: nil)
208
+ # @private
209
+ ORDER = 0
210
+ # @private
211
+ DATATYPE = ::Nl::DataTypes::String.new(check: nil)
91
212
  end
92
213
  class Id < Attribute
93
214
  TYPE = 2
94
215
  NAME = :"id"
95
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
216
+ # @private
217
+ ORDER = 1
218
+ # @private
219
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
96
220
  end
97
- # :nodoc:
221
+ # @private
98
222
  BY_NAME = Ractor.make_shareable({:"name" => Name, :"id" => Id}) #: Hash[::Symbol, Attribute]
99
- # :nodoc:
223
+ # @private
100
224
  BY_TYPE = Ractor.make_shareable({1 => Name, 2 => Id}) #: Hash[::Integer, Attribute]
225
+ # @rbs return: ::String
226
+ # @return [String]
227
+ # @see Name
228
+ def name; self[:"name"]&.value; end
229
+ # @rbs return: ::Integer
230
+ # @return [Integer]
231
+ # @see Id
232
+ def id; self[:"id"]&.value; end
101
233
  class << self
102
234
  # Looks up Attribute class by name.
103
- #--
104
235
  # @rbs name: Symbol
105
236
  # @rbs return: Attribute
237
+ # @param [Symbol] name
238
+ # @return [Attribute]
106
239
  def by_name(name); BY_NAME.fetch(name); end
107
240
  # Looks up Attribute class by type value.
108
- #--
109
241
  # @rbs type: Integer
110
242
  # @rbs return: Attribute
243
+ # @param [Integer] type
244
+ # @return [Attribute]
111
245
  def by_type(type); BY_TYPE.fetch(type); end
112
246
  end
113
247
  end
114
- class OpAttrs < ::Nl::Protocols::Genl::AttributeSet
248
+ class OpAttrs < ::Nl::AttributeSet
115
249
  # Abstract class
116
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
250
+ class Attribute < ::Nl::AttributeSet::Attribute
117
251
  end
118
252
  class Id < Attribute
119
253
  TYPE = 1
120
254
  NAME = :"id"
121
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
255
+ # @private
256
+ ORDER = 0
257
+ # @private
258
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
122
259
  end
260
+ # Known flags are defined in {Flags::OpFlags}.
123
261
  class Flags < Attribute
124
262
  TYPE = 2
125
263
  NAME = :"flags"
126
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
264
+ # @private
265
+ ORDER = 1
266
+ # @private
267
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
127
268
  end
128
- # :nodoc:
269
+ # @private
129
270
  BY_NAME = Ractor.make_shareable({:"id" => Id, :"flags" => Flags}) #: Hash[::Symbol, Attribute]
130
- # :nodoc:
271
+ # @private
131
272
  BY_TYPE = Ractor.make_shareable({1 => Id, 2 => Flags}) #: Hash[::Integer, Attribute]
273
+ # @rbs return: ::Integer
274
+ # @return [Integer]
275
+ # @see Id
276
+ def id; self[:"id"]&.value; end
277
+ # Known flags are defined in {Flags::OpFlags}.
278
+ # @rbs return: ::Integer
279
+ # @return [Integer]
280
+ # @see Flags
281
+ def flags; self[:"flags"]&.value; end
132
282
  class << self
133
283
  # Looks up Attribute class by name.
134
- #--
135
284
  # @rbs name: Symbol
136
285
  # @rbs return: Attribute
286
+ # @param [Symbol] name
287
+ # @return [Attribute]
137
288
  def by_name(name); BY_NAME.fetch(name); end
138
289
  # Looks up Attribute class by type value.
139
- #--
140
290
  # @rbs type: Integer
141
291
  # @rbs return: Attribute
292
+ # @param [Integer] type
293
+ # @return [Attribute]
142
294
  def by_type(type); BY_TYPE.fetch(type); end
143
295
  end
144
296
  end
145
- class PolicyAttrs < ::Nl::Protocols::Genl::AttributeSet
297
+ class PolicyAttrs < ::Nl::AttributeSet
146
298
  # Abstract class
147
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
299
+ class Attribute < ::Nl::AttributeSet::Attribute
148
300
  end
301
+ # Known enum values are defined in {Enums::AttrType}.
149
302
  class Type < Attribute
150
303
  TYPE = 1
151
304
  NAME = :"type"
152
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
305
+ # @private
306
+ ORDER = 0
307
+ # @private
308
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
153
309
  end
154
310
  class MinValueS < Attribute
155
311
  TYPE = 2
156
312
  NAME = :"min_value_s"
157
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::S64, check: nil)
313
+ # @private
314
+ ORDER = 1
315
+ # @private
316
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::S64, check: nil)
158
317
  end
159
318
  class MaxValueS < Attribute
160
319
  TYPE = 3
161
320
  NAME = :"max_value_s"
162
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::S64, check: nil)
321
+ # @private
322
+ ORDER = 2
323
+ # @private
324
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::S64, check: nil)
163
325
  end
164
326
  class MinValueU < Attribute
165
327
  TYPE = 4
166
328
  NAME = :"min_value_u"
167
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
329
+ # @private
330
+ ORDER = 3
331
+ # @private
332
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
168
333
  end
169
334
  class MaxValueU < Attribute
170
335
  TYPE = 5
171
336
  NAME = :"max_value_u"
172
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
337
+ # @private
338
+ ORDER = 4
339
+ # @private
340
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
173
341
  end
174
342
  class MinLength < Attribute
175
343
  TYPE = 6
176
344
  NAME = :"min_length"
177
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
345
+ # @private
346
+ ORDER = 5
347
+ # @private
348
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
178
349
  end
179
350
  class MaxLength < Attribute
180
351
  TYPE = 7
181
352
  NAME = :"max_length"
182
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
353
+ # @private
354
+ ORDER = 6
355
+ # @private
356
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
183
357
  end
184
358
  class PolicyIdx < Attribute
185
359
  TYPE = 8
186
360
  NAME = :"policy_idx"
187
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
361
+ # @private
362
+ ORDER = 7
363
+ # @private
364
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
188
365
  end
189
366
  class PolicyMaxtype < Attribute
190
367
  TYPE = 9
191
368
  NAME = :"policy_maxtype"
192
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
369
+ # @private
370
+ ORDER = 8
371
+ # @private
372
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
193
373
  end
194
374
  class Bitfield32Mask < Attribute
195
375
  TYPE = 10
196
376
  NAME = :"bitfield32_mask"
197
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
377
+ # @private
378
+ ORDER = 9
379
+ # @private
380
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
198
381
  end
199
382
  class Mask < Attribute
200
383
  TYPE = 11
201
384
  NAME = :"mask"
202
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
385
+ # @private
386
+ ORDER = 10
387
+ # @private
388
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U64, check: nil)
203
389
  end
204
390
  class Pad < Attribute
205
391
  TYPE = 12
206
392
  NAME = :"pad"
207
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Pad.new()
393
+ # @private
394
+ ORDER = 11
395
+ # @private
396
+ DATATYPE = ::Nl::DataTypes::Pad.new()
208
397
  end
209
- # :nodoc:
398
+ # @private
210
399
  BY_NAME = Ractor.make_shareable({:"type" => Type, :"min_value_s" => MinValueS, :"max_value_s" => MaxValueS, :"min_value_u" => MinValueU, :"max_value_u" => MaxValueU, :"min_length" => MinLength, :"max_length" => MaxLength, :"policy_idx" => PolicyIdx, :"policy_maxtype" => PolicyMaxtype, :"bitfield32_mask" => Bitfield32Mask, :"mask" => Mask, :"pad" => Pad}) #: Hash[::Symbol, Attribute]
211
- # :nodoc:
400
+ # @private
212
401
  BY_TYPE = Ractor.make_shareable({1 => Type, 2 => MinValueS, 3 => MaxValueS, 4 => MinValueU, 5 => MaxValueU, 6 => MinLength, 7 => MaxLength, 8 => PolicyIdx, 9 => PolicyMaxtype, 10 => Bitfield32Mask, 11 => Mask, 12 => Pad}) #: Hash[::Integer, Attribute]
402
+ # Known enum values are defined in {Enums::AttrType}.
403
+ # @rbs return: ::Integer
404
+ # @return [Integer]
405
+ # @see Type
406
+ def type; self[:"type"]&.value; end
407
+ # @rbs return: ::Integer
408
+ # @return [Integer]
409
+ # @see MinValueS
410
+ def min_value_s; self[:"min_value_s"]&.value; end
411
+ # @rbs return: ::Integer
412
+ # @return [Integer]
413
+ # @see MaxValueS
414
+ def max_value_s; self[:"max_value_s"]&.value; end
415
+ # @rbs return: ::Integer
416
+ # @return [Integer]
417
+ # @see MinValueU
418
+ def min_value_u; self[:"min_value_u"]&.value; end
419
+ # @rbs return: ::Integer
420
+ # @return [Integer]
421
+ # @see MaxValueU
422
+ def max_value_u; self[:"max_value_u"]&.value; end
423
+ # @rbs return: ::Integer
424
+ # @return [Integer]
425
+ # @see MinLength
426
+ def min_length; self[:"min_length"]&.value; end
427
+ # @rbs return: ::Integer
428
+ # @return [Integer]
429
+ # @see MaxLength
430
+ def max_length; self[:"max_length"]&.value; end
431
+ # @rbs return: ::Integer
432
+ # @return [Integer]
433
+ # @see PolicyIdx
434
+ def policy_idx; self[:"policy_idx"]&.value; end
435
+ # @rbs return: ::Integer
436
+ # @return [Integer]
437
+ # @see PolicyMaxtype
438
+ def policy_maxtype; self[:"policy_maxtype"]&.value; end
439
+ # @rbs return: ::Integer
440
+ # @return [Integer]
441
+ # @see Bitfield32Mask
442
+ def bitfield32_mask; self[:"bitfield32_mask"]&.value; end
443
+ # @rbs return: ::Integer
444
+ # @return [Integer]
445
+ # @see Mask
446
+ def mask; self[:"mask"]&.value; end
213
447
  class << self
214
448
  # Looks up Attribute class by name.
215
- #--
216
449
  # @rbs name: Symbol
217
450
  # @rbs return: Attribute
451
+ # @param [Symbol] name
452
+ # @return [Attribute]
218
453
  def by_name(name); BY_NAME.fetch(name); end
219
454
  # Looks up Attribute class by type value.
220
- #--
221
455
  # @rbs type: Integer
222
456
  # @rbs return: Attribute
457
+ # @param [Integer] type
458
+ # @return [Attribute]
223
459
  def by_type(type); BY_TYPE.fetch(type); end
224
460
  end
225
461
  end
226
- class OpPolicyAttrs < ::Nl::Protocols::Genl::AttributeSet
462
+ class OpPolicyAttrs < ::Nl::AttributeSet
227
463
  # Abstract class
228
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
464
+ class Attribute < ::Nl::AttributeSet::Attribute
229
465
  end
230
466
  class Do < Attribute
231
467
  TYPE = 1
232
468
  NAME = :"do"
233
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
469
+ # @private
470
+ ORDER = 0
471
+ # @private
472
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
234
473
  end
235
474
  class Dump < Attribute
236
475
  TYPE = 2
237
476
  NAME = :"dump"
238
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
477
+ # @private
478
+ ORDER = 1
479
+ # @private
480
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
239
481
  end
240
- # :nodoc:
482
+ # @private
241
483
  BY_NAME = Ractor.make_shareable({:"do" => Do, :"dump" => Dump}) #: Hash[::Symbol, Attribute]
242
- # :nodoc:
484
+ # @private
243
485
  BY_TYPE = Ractor.make_shareable({1 => Do, 2 => Dump}) #: Hash[::Integer, Attribute]
486
+ # @rbs return: ::Integer
487
+ # @return [Integer]
488
+ # @see Do
489
+ def do; self[:"do"]&.value; end
490
+ # @rbs return: ::Integer
491
+ # @return [Integer]
492
+ # @see Dump
493
+ def dump; self[:"dump"]&.value; end
244
494
  class << self
245
495
  # Looks up Attribute class by name.
246
- #--
247
496
  # @rbs name: Symbol
248
497
  # @rbs return: Attribute
498
+ # @param [Symbol] name
499
+ # @return [Attribute]
249
500
  def by_name(name); BY_NAME.fetch(name); end
250
501
  # Looks up Attribute class by type value.
251
- #--
252
502
  # @rbs type: Integer
253
503
  # @rbs return: Attribute
504
+ # @param [Integer] type
505
+ # @return [Attribute]
254
506
  def by_type(type); BY_TYPE.fetch(type); end
255
507
  end
256
508
  end
257
- CtrlAttrs::Ops::DATATYPE = ::Nl::Protocols::Genl::DataTypes::IndexedArray.new(::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(OpAttrs))
258
- CtrlAttrs::McastGroups::DATATYPE = ::Nl::Protocols::Genl::DataTypes::IndexedArray.new(::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(McastGroupAttrs))
259
- CtrlAttrs::Policy::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(PolicyAttrs)
260
- CtrlAttrs::OpPolicy::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(OpPolicyAttrs)
509
+ # @private
510
+ CtrlAttrs::Ops::DATATYPE = ::Nl::DataTypes::IndexedArray.new(::Nl::DataTypes::NestedAttributes.new(AttributeSets::OpAttrs, selector_bindings: Ractor.make_shareable([])))
511
+ # @private
512
+ CtrlAttrs::McastGroups::DATATYPE = ::Nl::DataTypes::IndexedArray.new(::Nl::DataTypes::NestedAttributes.new(AttributeSets::McastGroupAttrs, selector_bindings: Ractor.make_shareable([])))
513
+ # @private
514
+ CtrlAttrs::Policy::DATATYPE = ::Nl::DataTypes::NestTypeValue.new(AttributeSets::PolicyAttrs, 2, selector_bindings: Ractor.make_shareable([]))
515
+ # @private
516
+ CtrlAttrs::OpPolicy::DATATYPE = ::Nl::DataTypes::NestTypeValue.new(AttributeSets::OpPolicyAttrs, 1, selector_bindings: Ractor.make_shareable([]))
261
517
  end
262
518
  module Messages
263
519
  # Get / dump genetlink families
264
- class DoGetfamilyRequest < ::Nl::Protocols::Genl::Message
520
+ class DoGetfamilyRequest < ::Nl::Genl::Message
265
521
  TYPE = 3
266
522
  FIXED_HEADER = nil
267
523
  ATTRIBUTE_SET = AttributeSets::CtrlAttrs
268
524
  ATTRIBUTES = Ractor.make_shareable(%i[family_name])
269
- # Gets the value of `family-name` attribute in the message.
270
- #--
271
525
  # @rbs return: ::String
526
+ # @return [String]
527
+ # @see AttributeSets::CtrlAttrs::FamilyName
272
528
  def family_name; attributes[:"family_name"]&.value; end
273
529
  end
274
530
  # Get / dump genetlink families
275
- class DoGetfamilyReply < ::Nl::Protocols::Genl::Message
531
+ class DoGetfamilyReply < ::Nl::Genl::Message
276
532
  TYPE = 1
277
533
  FIXED_HEADER = nil
278
534
  ATTRIBUTE_SET = AttributeSets::CtrlAttrs
279
535
  ATTRIBUTES = Ractor.make_shareable(%i[family_id family_name version hdrsize maxattr ops mcast_groups])
280
- # Gets the value of `family-id` attribute in the message.
281
- #--
282
536
  # @rbs return: ::Integer
537
+ # @return [Integer]
538
+ # @see AttributeSets::CtrlAttrs::FamilyId
283
539
  def family_id; attributes[:"family_id"]&.value; end
284
- # Gets the value of `family-name` attribute in the message.
285
- #--
286
540
  # @rbs return: ::String
541
+ # @return [String]
542
+ # @see AttributeSets::CtrlAttrs::FamilyName
287
543
  def family_name; attributes[:"family_name"]&.value; end
288
- # Gets the value of `version` attribute in the message.
289
- #--
290
544
  # @rbs return: ::Integer
545
+ # @return [Integer]
546
+ # @see AttributeSets::CtrlAttrs::Version
291
547
  def version; attributes[:"version"]&.value; end
292
- # Gets the value of `hdrsize` attribute in the message.
293
- #--
294
548
  # @rbs return: ::Integer
549
+ # @return [Integer]
550
+ # @see AttributeSets::CtrlAttrs::Hdrsize
295
551
  def hdrsize; attributes[:"hdrsize"]&.value; end
296
- # Gets the value of `maxattr` attribute in the message.
297
- #--
298
552
  # @rbs return: ::Integer
553
+ # @return [Integer]
554
+ # @see AttributeSets::CtrlAttrs::Maxattr
299
555
  def maxattr; attributes[:"maxattr"]&.value; end
300
- # Gets the value of `ops` attribute in the message.
301
- #--
302
- # @rbs return: untyped
556
+ # @rbs return: ::Array[AttributeSets::OpAttrs]
557
+ # @return [Array<AttributeSets::OpAttrs>]
558
+ # @see AttributeSets::CtrlAttrs::Ops
303
559
  def ops; attributes[:"ops"]&.value; end
304
- # Gets the value of `mcast-groups` attribute in the message.
305
- #--
306
- # @rbs return: untyped
560
+ # @rbs return: ::Array[AttributeSets::McastGroupAttrs]
561
+ # @return [Array<AttributeSets::McastGroupAttrs>]
562
+ # @see AttributeSets::CtrlAttrs::McastGroups
307
563
  def mcast_groups; attributes[:"mcast_groups"]&.value; end
308
564
  end
309
565
  # Get / dump genetlink families
310
- class DumpGetfamilyReply < ::Nl::Protocols::Genl::Message
566
+ class DumpGetfamilyRequest < ::Nl::Genl::Message
567
+ TYPE = 3
568
+ FIXED_HEADER = nil
569
+ ATTRIBUTE_SET = AttributeSets::CtrlAttrs
570
+ ATTRIBUTES = Ractor.make_shareable(%i[])
571
+ end
572
+ # Get / dump genetlink families
573
+ class DumpGetfamilyReply < ::Nl::Genl::Message
311
574
  TYPE = 1
312
575
  FIXED_HEADER = nil
313
576
  ATTRIBUTE_SET = AttributeSets::CtrlAttrs
314
577
  ATTRIBUTES = Ractor.make_shareable(%i[family_id family_name version hdrsize maxattr ops mcast_groups])
315
- # Gets the value of `family-id` attribute in the message.
316
- #--
317
578
  # @rbs return: ::Integer
579
+ # @return [Integer]
580
+ # @see AttributeSets::CtrlAttrs::FamilyId
318
581
  def family_id; attributes[:"family_id"]&.value; end
319
- # Gets the value of `family-name` attribute in the message.
320
- #--
321
582
  # @rbs return: ::String
583
+ # @return [String]
584
+ # @see AttributeSets::CtrlAttrs::FamilyName
322
585
  def family_name; attributes[:"family_name"]&.value; end
323
- # Gets the value of `version` attribute in the message.
324
- #--
325
586
  # @rbs return: ::Integer
587
+ # @return [Integer]
588
+ # @see AttributeSets::CtrlAttrs::Version
326
589
  def version; attributes[:"version"]&.value; end
327
- # Gets the value of `hdrsize` attribute in the message.
328
- #--
329
590
  # @rbs return: ::Integer
591
+ # @return [Integer]
592
+ # @see AttributeSets::CtrlAttrs::Hdrsize
330
593
  def hdrsize; attributes[:"hdrsize"]&.value; end
331
- # Gets the value of `maxattr` attribute in the message.
332
- #--
333
594
  # @rbs return: ::Integer
595
+ # @return [Integer]
596
+ # @see AttributeSets::CtrlAttrs::Maxattr
334
597
  def maxattr; attributes[:"maxattr"]&.value; end
335
- # Gets the value of `ops` attribute in the message.
336
- #--
337
- # @rbs return: untyped
598
+ # @rbs return: ::Array[AttributeSets::OpAttrs]
599
+ # @return [Array<AttributeSets::OpAttrs>]
600
+ # @see AttributeSets::CtrlAttrs::Ops
338
601
  def ops; attributes[:"ops"]&.value; end
339
- # Gets the value of `mcast-groups` attribute in the message.
340
- #--
341
- # @rbs return: untyped
602
+ # @rbs return: ::Array[AttributeSets::McastGroupAttrs]
603
+ # @return [Array<AttributeSets::McastGroupAttrs>]
604
+ # @see AttributeSets::CtrlAttrs::McastGroups
342
605
  def mcast_groups; attributes[:"mcast_groups"]&.value; end
343
606
  end
344
607
  # Get / dump genetlink policies
345
- class DumpGetpolicyRequest < ::Nl::Protocols::Genl::Message
608
+ class DumpGetpolicyRequest < ::Nl::Genl::Message
346
609
  TYPE = 10
347
610
  FIXED_HEADER = nil
348
611
  ATTRIBUTE_SET = AttributeSets::CtrlAttrs
349
612
  ATTRIBUTES = Ractor.make_shareable(%i[family_id family_name op])
350
- # Gets the value of `family-id` attribute in the message.
351
- #--
352
613
  # @rbs return: ::Integer
614
+ # @return [Integer]
615
+ # @see AttributeSets::CtrlAttrs::FamilyId
353
616
  def family_id; attributes[:"family_id"]&.value; end
354
- # Gets the value of `family-name` attribute in the message.
355
- #--
356
617
  # @rbs return: ::String
618
+ # @return [String]
619
+ # @see AttributeSets::CtrlAttrs::FamilyName
357
620
  def family_name; attributes[:"family_name"]&.value; end
358
- # Gets the value of `op` attribute in the message.
359
- #--
360
621
  # @rbs return: ::Integer
622
+ # @return [Integer]
623
+ # @see AttributeSets::CtrlAttrs::Op
361
624
  def op; attributes[:"op"]&.value; end
362
625
  end
363
626
  # Get / dump genetlink policies
364
- class DumpGetpolicyReply < ::Nl::Protocols::Genl::Message
627
+ class DumpGetpolicyReply < ::Nl::Genl::Message
365
628
  TYPE = 10
366
629
  FIXED_HEADER = nil
367
630
  ATTRIBUTE_SET = AttributeSets::CtrlAttrs
368
631
  ATTRIBUTES = Ractor.make_shareable(%i[family_id policy op_policy])
369
- # Gets the value of `family-id` attribute in the message.
370
- #--
371
632
  # @rbs return: ::Integer
633
+ # @return [Integer]
634
+ # @see AttributeSets::CtrlAttrs::FamilyId
372
635
  def family_id; attributes[:"family_id"]&.value; end
373
- # Gets the value of `policy` attribute in the message.
374
- #--
375
- # @rbs return: AttributeSets::PolicyAttrs
636
+ # @rbs return: ::Hash[::Integer, ::Hash[::Integer, AttributeSets::PolicyAttrs]]
637
+ # @return [Hash<Integer, Hash<Integer, AttributeSets::PolicyAttrs>>]
638
+ # @see AttributeSets::CtrlAttrs::Policy
376
639
  def policy; attributes[:"policy"]&.value; end
377
- # Gets the value of `op-policy` attribute in the message.
378
- #--
379
- # @rbs return: AttributeSets::OpPolicyAttrs
640
+ # @rbs return: ::Hash[::Integer, AttributeSets::OpPolicyAttrs]
641
+ # @return [Hash<Integer, AttributeSets::OpPolicyAttrs>]
642
+ # @see AttributeSets::CtrlAttrs::OpPolicy
380
643
  def op_policy; attributes[:"op_policy"]&.value; end
381
644
  end
382
645
  end
646
+ module Notifications
647
+ end
648
+ # @private
649
+ NOTIFICATIONS = Ractor.make_shareable({}) #: Hash[::Integer, ::Class]
383
650
  # Get / dump genetlink families
384
- #--
385
651
  # @rbs (?family_name: ::String) -> Messages::DoGetfamilyReply
652
+ # @param [Hash] args
653
+ # @option args [String] family_name
654
+ # @return [Messages::DoGetfamilyReply]
655
+ # @see Messages::DoGetfamilyRequest
386
656
  def do_getfamily(**args)
387
657
  exchange_message(:"do", Messages::DoGetfamilyRequest, Messages::DoGetfamilyReply, args)
388
658
  end
659
+ # Get / dump genetlink families
660
+ # @rbs () -> Array[Messages::DumpGetfamilyReply]
661
+ # | () { (Messages::DumpGetfamilyReply) -> void } -> void
662
+ # @overload dump_getfamily(**args)
663
+ # Returns an array when no block is given.
664
+ # @param [Hash] args
665
+ # @return [Array<Messages::DumpGetfamilyReply>]
666
+ # @overload dump_getfamily(**args, &block)
667
+ # Yields each reply when a block is given.
668
+ # @param [Hash] args
669
+ # @yieldparam [Messages::DumpGetfamilyReply] reply
670
+ # @return [void]
671
+ # @see Messages::DumpGetfamilyRequest
672
+ def dump_getfamily(**args, &block)
673
+ exchange_message(:"dump", Messages::DumpGetfamilyRequest, Messages::DumpGetfamilyReply, args, &block)
674
+ end
389
675
  # Get / dump genetlink policies
390
- #--
391
- # @rbs (?family_id: ::Integer, ?family_name: ::String, ?op: ::Integer) -> Enumerable[Messages::DumpGetpolicyReply]
676
+ # @rbs (?family_id: ::Integer, ?family_name: ::String, ?op: ::Integer) -> Array[Messages::DumpGetpolicyReply]
392
677
  # | (?family_id: ::Integer, ?family_name: ::String, ?op: ::Integer) { (Messages::DumpGetpolicyReply) -> void } -> void
678
+ # @overload dump_getpolicy(**args)
679
+ # Returns an array when no block is given.
680
+ # @param [Hash] args
681
+ # @option args [Integer] family_id
682
+ # @option args [String] family_name
683
+ # @option args [Integer] op
684
+ # @return [Array<Messages::DumpGetpolicyReply>]
685
+ # @overload dump_getpolicy(**args, &block)
686
+ # Yields each reply when a block is given.
687
+ # @param [Hash] args
688
+ # @option args [Integer] family_id
689
+ # @option args [String] family_name
690
+ # @option args [Integer] op
691
+ # @yieldparam [Messages::DumpGetpolicyReply] reply
692
+ # @return [void]
693
+ # @see Messages::DumpGetpolicyRequest
393
694
  def dump_getpolicy(**args, &block)
394
695
  exchange_message(:"dump", Messages::DumpGetpolicyRequest, Messages::DumpGetpolicyReply, args, &block)
395
696
  end
697
+ class AsyncOperations
698
+ # @private
699
+ def initialize(&exchange)
700
+ @exchange = exchange
701
+ end
702
+ # Get / dump genetlink families
703
+ # @rbs (?family_name: ::String) -> ::Nl::Async::Future[Messages::DoGetfamilyReply]
704
+ # @param [Hash] args
705
+ # @option args [String] family_name
706
+ # @return [Nl::Async::Future<Messages::DoGetfamilyReply>]
707
+ # @see Messages::DoGetfamilyRequest
708
+ def do_getfamily(**args)
709
+ @exchange.call(:"do", Messages::DoGetfamilyRequest, Messages::DoGetfamilyReply, args)
710
+ end
711
+ # Get / dump genetlink families
712
+ # @rbs () -> ::Nl::Async::Stream[Messages::DumpGetfamilyReply]
713
+ # @param [Hash] args
714
+ # @return [Nl::Async::Stream<Messages::DumpGetfamilyReply>]
715
+ # @see Messages::DumpGetfamilyRequest
716
+ def dump_getfamily(**args)
717
+ @exchange.call(:"dump", Messages::DumpGetfamilyRequest, Messages::DumpGetfamilyReply, args)
718
+ end
719
+ # Get / dump genetlink policies
720
+ # @rbs (?family_id: ::Integer, ?family_name: ::String, ?op: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetpolicyReply]
721
+ # @param [Hash] args
722
+ # @option args [Integer] family_id
723
+ # @option args [String] family_name
724
+ # @option args [Integer] op
725
+ # @return [Nl::Async::Stream<Messages::DumpGetpolicyReply>]
726
+ # @see Messages::DumpGetpolicyRequest
727
+ def dump_getpolicy(**args)
728
+ @exchange.call(:"dump", Messages::DumpGetpolicyRequest, Messages::DumpGetpolicyReply, args)
729
+ end
730
+ end
731
+ # Returns the asynchronous operation facade for this family.
732
+ # @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
733
+ # @param [::Integer, nil] stream_capacity
734
+ # @return [AsyncOperations]
735
+ def async(stream_capacity: nil)
736
+ return @async_operations ||= build_async_facade(AsyncOperations) if stream_capacity.nil?
737
+ build_async_facade(AsyncOperations, stream_capacity:)
738
+ end
396
739
  end
397
740
  end; end