vanken 0.1.0 → 0.3.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.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +28 -11
  4. data/data/coloring_rules.yml +67 -0
  5. data/docs/performance.md +53 -0
  6. data/docs/releases.md +2 -4
  7. data/docs/usage.md +51 -0
  8. data/exe/vanken-setup-permissions +6 -0
  9. data/lib/vanken/app/capture_controller.rb +66 -1
  10. data/lib/vanken/app/document.rb +102 -39
  11. data/lib/vanken/app/document_analysis.rb +75 -0
  12. data/lib/vanken/app/document_jobs.rb +52 -9
  13. data/lib/vanken/app/expert_info.rb +26 -0
  14. data/lib/vanken/app/io_graph.rb +47 -0
  15. data/lib/vanken/app/navigation.rb +77 -0
  16. data/lib/vanken/app/search_job.rb +62 -0
  17. data/lib/vanken/app/stats_job.rb +45 -0
  18. data/lib/vanken/capture/analyzer.rb +3 -1
  19. data/lib/vanken/capture/analyzer_process.rb +9 -6
  20. data/lib/vanken/capture/analyzer_worker.rb +2 -2
  21. data/lib/vanken/capture/filter_worker.rb +8 -2
  22. data/lib/vanken/capture/helper_main.rb +10 -3
  23. data/lib/vanken/capture/helper_options.rb +6 -2
  24. data/lib/vanken/capture/launcher.rb +1 -0
  25. data/lib/vanken/capture/permission_setup.rb +201 -0
  26. data/lib/vanken/config/analysis_settings.rb +58 -0
  27. data/lib/vanken/config/columns.rb +138 -0
  28. data/lib/vanken/config/messages.rb +105 -0
  29. data/lib/vanken/config/preferences.rb +34 -8
  30. data/lib/vanken/config/profiles.rb +74 -0
  31. data/lib/vanken/config/sessions.rb +69 -0
  32. data/lib/vanken/config/yaml_file.rb +36 -0
  33. data/lib/vanken/core/coloring.rb +86 -0
  34. data/lib/vanken/core/frame_store.rb +2 -2
  35. data/lib/vanken/core/stores.rb +12 -0
  36. data/lib/vanken/gateway/detail_builder.rb +1 -1
  37. data/lib/vanken/gateway/display_capture_filter.rb +102 -0
  38. data/lib/vanken/gateway/dissector.rb +31 -6
  39. data/lib/vanken/gateway/exporter.rb +125 -0
  40. data/lib/vanken/gateway/file_writer.rb +26 -2
  41. data/lib/vanken/gateway/interfaces.rb +59 -0
  42. data/lib/vanken/gateway/resolver.rb +131 -0
  43. data/lib/vanken/gateway/statistics.rb +83 -0
  44. data/lib/vanken/gateway/stream.rb +159 -0
  45. data/lib/vanken/ui/actions.rb +54 -28
  46. data/lib/vanken/ui/analysis_dialogs.rb +371 -0
  47. data/lib/vanken/ui/application.rb +183 -9
  48. data/lib/vanken/ui/coloring_operations.rb +104 -0
  49. data/lib/vanken/ui/column_operations.rb +115 -0
  50. data/lib/vanken/ui/dialogs.rb +41 -26
  51. data/lib/vanken/ui/file_operations.rb +17 -12
  52. data/lib/vanken/ui/filter_operations.rb +43 -15
  53. data/lib/vanken/ui/main_view.rb +74 -29
  54. data/lib/vanken/ui/navigation_operations.rb +86 -0
  55. data/lib/vanken/ui/packet_source.rb +33 -1
  56. data/lib/vanken/ui/selection.rb +8 -2
  57. data/lib/vanken/ui/settings_operations.rb +233 -0
  58. data/lib/vanken/version.rb +1 -1
  59. data/packaging/README.md +41 -1
  60. data/packaging/linux/org.vanken.capture.policy +14 -0
  61. data/packaging/linux/vanken-capture.wrapper +6 -0
  62. data/packaging/linux/vanken.desktop +9 -0
  63. data/packaging/linux/vanken.sudoers +2 -0
  64. data/packaging/macos/chmod-bpf +6 -0
  65. data/packaging/macos/org.vanken.chmod-bpf.plist +8 -0
  66. data/sig/generated/vanken/app/capture_controller.rbs +16 -0
  67. data/sig/generated/vanken/app/document.rbs +23 -1
  68. data/sig/generated/vanken/app/document_analysis.rbs +21 -0
  69. data/sig/generated/vanken/app/document_jobs.rbs +6 -0
  70. data/sig/generated/vanken/app/expert_info.rbs +30 -0
  71. data/sig/generated/vanken/app/io_graph.rbs +45 -0
  72. data/sig/generated/vanken/app/navigation.rbs +31 -0
  73. data/sig/generated/vanken/app/search_job.rbs +21 -0
  74. data/sig/generated/vanken/app/stats_job.rbs +18 -0
  75. data/sig/generated/vanken/capture/helper_options.rbs +6 -0
  76. data/sig/generated/vanken/capture/permission_setup.rbs +43 -0
  77. data/sig/generated/vanken/config/analysis_settings.rbs +31 -0
  78. data/sig/generated/vanken/config/columns.rbs +37 -0
  79. data/sig/generated/vanken/config/messages.rbs +14 -0
  80. data/sig/generated/vanken/config/preferences.rbs +1 -1
  81. data/sig/generated/vanken/config/profiles.rbs +29 -0
  82. data/sig/generated/vanken/config/sessions.rbs +17 -0
  83. data/sig/generated/vanken/config/yaml_file.rbs +11 -0
  84. data/sig/generated/vanken/core/coloring.rbs +52 -0
  85. data/sig/generated/vanken/core/stores.rbs +4 -0
  86. data/sig/generated/vanken/gateway/display_capture_filter.rbs +37 -0
  87. data/sig/generated/vanken/gateway/dissector.rbs +15 -2
  88. data/sig/generated/vanken/gateway/exporter.rbs +27 -0
  89. data/sig/generated/vanken/gateway/file_writer.rbs +3 -0
  90. data/sig/generated/vanken/gateway/interfaces.rbs +12 -0
  91. data/sig/generated/vanken/gateway/resolver.rbs +52 -0
  92. data/sig/generated/vanken/gateway/statistics.rbs +104 -0
  93. data/sig/generated/vanken/gateway/stream.rbs +75 -0
  94. data/sig/generated/vanken/ui/analysis_dialogs.rbs +71 -0
  95. data/sig/generated/vanken/ui/application.rbs +23 -1
  96. data/sig/generated/vanken/ui/coloring_operations.rbs +29 -0
  97. data/sig/generated/vanken/ui/column_operations.rbs +29 -0
  98. data/sig/generated/vanken/ui/dialogs.rbs +5 -3
  99. data/sig/generated/vanken/ui/file_operations.rbs +2 -0
  100. data/sig/generated/vanken/ui/filter_operations.rbs +3 -1
  101. data/sig/generated/vanken/ui/main_view.rbs +14 -2
  102. data/sig/generated/vanken/ui/navigation_operations.rbs +43 -0
  103. data/sig/generated/vanken/ui/packet_source.rbs +4 -0
  104. data/sig/generated/vanken/ui/settings_operations.rbs +41 -0
  105. metadata +61 -3
@@ -0,0 +1,43 @@
1
+ # Generated from lib/vanken/capture/permission_setup.rb with RBS::Inline
2
+
3
+ module Vanken
4
+ module Capture
5
+ class PermissionSetup
6
+ PREFIX: ::String
7
+
8
+ SOURCE: untyped
9
+
10
+ def self.run: (untyped argv, ?stdout: untyped, ?stderr: untyped) -> untyped
11
+
12
+ attr_reader platform: untyped
13
+
14
+ def initialize: (?platform: untyped, ?ruby: untyped, ?gem_home: untyped, ?policy: untyped, ?group: untyped, ?root: untyped) -> untyped
15
+
16
+ def staged?: () -> untyped
17
+
18
+ def plan: () -> untyped
19
+
20
+ def install: () -> untyped
21
+
22
+ def validate_runtime!: () -> untyped
23
+
24
+ def validate_group!: () -> untyped
25
+
26
+ def next_steps: () -> untyped
27
+
28
+ private
29
+
30
+ def asset: (untyped relative, ?mode: untyped) -> untyped
31
+
32
+ def trusted_tree!: (untyped path, ?untyped visited) -> untyped
33
+
34
+ def trusted_path!: (untyped path) -> untyped
35
+
36
+ def safe_entry!: (untyped path) -> untyped
37
+
38
+ def secure_directory!: (untyped path) -> untyped
39
+
40
+ def validate_sudoers!: (untyped path) -> untyped
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,31 @@
1
+ # Generated from lib/vanken/config/analysis_settings.rb with RBS::Inline
2
+
3
+ module Vanken
4
+ module Config
5
+ class AnalysisSettings
6
+ def initialize: (?directory: untyped) -> untyped
7
+
8
+ def decode_as: () -> untyped
9
+
10
+ def decode_as=: (untyped rules) -> untyped
11
+
12
+ def plugin_entries: () -> untyped
13
+
14
+ def plugins: () -> untyped
15
+
16
+ def untrusted_plugins: () -> untyped
17
+
18
+ def register_plugin: (untyped path) -> untyped
19
+
20
+ def remove_plugin: (untyped path) -> untyped
21
+
22
+ def trust_plugins: (untyped paths) -> untyped
23
+
24
+ private
25
+
26
+ def save_plugins: (untyped entries) -> untyped
27
+
28
+ def validate_rules: (untyped rules) -> untyped
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,37 @@
1
+ # Generated from lib/vanken/config/columns.rb with RBS::Inline
2
+
3
+ module Vanken
4
+ module Config
5
+ class Columns
6
+ BUILTINS: untyped
7
+
8
+ def self.load: (directory: untyped, ?legacy: untyped) -> untyped
9
+
10
+ def initialize: (?untyped payload) -> untyped
11
+
12
+ def replace: (untyped payload) -> untyped
13
+
14
+ def self.valid_field?: (untyped field) -> untyped
15
+
16
+ def to_h: () -> untyped
17
+
18
+ def custom: () -> untyped
19
+
20
+ def table_columns: () -> untyped
21
+
22
+ def add: (untyped field, ?label: untyped, ?width: untyped) -> untyped
23
+
24
+ def remove: (untyped key) -> untyped
25
+
26
+ def move: (untyped key, untyped index) -> untyped
27
+
28
+ def update_layout: (untyped items) -> untyped
29
+
30
+ def save: (untyped directory) -> untyped
31
+
32
+ def self.display: (untyped values, ?type: untyped) -> untyped
33
+
34
+ def self.sort_value: (untyped value, ?type: untyped) -> untyped
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,14 @@
1
+ # Generated from lib/vanken/config/messages.rb with RBS::Inline
2
+
3
+ module Vanken
4
+ module Config
5
+ module Messages
6
+ EN: Hash[String, String]
7
+
8
+ JA: Hash[String, String]
9
+
10
+ # @rbs (String text, ?language: String, **untyped values) -> String
11
+ def self.translate: (String text, ?language: String, **untyped values) -> String
12
+ end
13
+ end
14
+ end
@@ -15,7 +15,7 @@ module Vanken
15
15
 
16
16
  attr_reader directory: untyped
17
17
 
18
- def initialize: (?directory: untyped) -> untyped
18
+ def initialize: (?directory: untyped, ?state_directory: untyped) -> untyped
19
19
 
20
20
  def get: (untyped path) -> untyped
21
21
 
@@ -0,0 +1,29 @@
1
+ # Generated from lib/vanken/config/profiles.rb with RBS::Inline
2
+
3
+ module Vanken
4
+ module Config
5
+ class Profiles
6
+ FILES: untyped
7
+
8
+ attr_reader directory: untyped
9
+
10
+ attr_reader active: untyped
11
+
12
+ def initialize: (?directory: untyped) -> untyped
13
+
14
+ def names: () -> untyped
15
+
16
+ def preferences: () -> untyped
17
+
18
+ def create: (untyped name, ?copy_from: untyped) -> untyped
19
+
20
+ def switch: (untyped name) -> untyped
21
+
22
+ def delete: (untyped name) -> untyped
23
+
24
+ private
25
+
26
+ def profile_directory: (untyped name) -> untyped
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,17 @@
1
+ # Generated from lib/vanken/config/sessions.rb with RBS::Inline
2
+
3
+ module Vanken
4
+ module Config
5
+ module Sessions
6
+ def self.candidates: (?parent: untyped) -> untyped
7
+
8
+ def self.recover: (untyped directory, ?parent: untyped, **untyped options) -> untyped
9
+
10
+ def self.discard: (untyped directory, ?parent: untyped) -> untyped
11
+
12
+ def self.orphan?: (untyped directory) -> untyped
13
+
14
+ def self.with_session: (untyped directory, parent: untyped) -> untyped
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ # Generated from lib/vanken/config/yaml_file.rb with RBS::Inline
2
+
3
+ module Vanken
4
+ module Config
5
+ module YamlFile
6
+ def self.read: (untyped path, ?default: untyped) -> untyped
7
+
8
+ def self.write: (untyped path, untyped value) -> untyped
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,52 @@
1
+ # Generated from lib/vanken/core/coloring.rb with RBS::Inline
2
+
3
+ module Vanken
4
+ module Core
5
+ module Coloring
6
+ class Rule < Data
7
+ attr_reader name(): String
8
+
9
+ attr_reader filter(): String
10
+
11
+ attr_reader light(): Hash[String, String]
12
+
13
+ attr_reader dark(): Hash[String, String]
14
+
15
+ attr_reader enabled(): bool
16
+
17
+ attr_reader program(): DisplayFilter::Program
18
+
19
+ def self.new: (String name, String filter, Hash[String, String] light, Hash[String, String] dark, bool enabled, DisplayFilter::Program program) -> instance
20
+ | (name: String, filter: String, light: Hash[String, String], dark: Hash[String, String], enabled: bool, program: DisplayFilter::Program) -> instance
21
+
22
+ def self.members: () -> [ :name, :filter, :light, :dark, :enabled, :program ]
23
+
24
+ def members: () -> [ :name, :filter, :light, :dark, :enabled, :program ]
25
+ end
26
+
27
+ class RuleSet
28
+ DEFAULT_PATH: untyped
29
+
30
+ attr_reader rules: Array[Rule]
31
+
32
+ # @rbs (Hash[String, untyped] payload, ?catalog: untyped) -> void
33
+ def initialize: (Hash[String, untyped] payload, ?catalog: untyped) -> void
34
+
35
+ # @rbs (_FilterView view, ?theme: Symbol) -> Hash[Symbol, String]?
36
+ def match: (_FilterView view, ?theme: Symbol) -> Hash[Symbol, String]?
37
+
38
+ # @rbs () -> Hash[String, untyped]
39
+ def to_h: () -> Hash[String, untyped]
40
+
41
+ # @rbs (String path) -> void
42
+ def save: (String path) -> void
43
+
44
+ # @rbs (String path, ?catalog: untyped) -> RuleSet
45
+ def self.load: (String path, ?catalog: untyped) -> RuleSet
46
+
47
+ # @rbs (?catalog: untyped) -> RuleSet
48
+ def self.defaults: (?catalog: untyped) -> RuleSet
49
+ end
50
+ end
51
+ end
52
+ end
@@ -68,6 +68,10 @@ module Vanken
68
68
 
69
69
  attr_reader experts: Hash[Integer, Array[Hash[Symbol, untyped]]]
70
70
 
71
+ attr_reader expert_count: Integer
72
+
73
+ attr_reader expert_max: Integer
74
+
71
75
  # @rbs! @extra: Hash[Integer, Hash[String, untyped]]
72
76
  # @rbs! @io: File?
73
77
  # @rbs (String directory, ?persist: bool) -> void
@@ -0,0 +1,37 @@
1
+ # Generated from lib/vanken/gateway/display_capture_filter.rb with RBS::Inline
2
+
3
+ module Vanken
4
+ module Gateway
5
+ class DisplayCaptureFilter
6
+ class Packet < Struct[untyped]
7
+ attr_accessor data(): untyped
8
+
9
+ attr_accessor original_length(): untyped
10
+
11
+ attr_accessor linktype(): untyped
12
+
13
+ attr_accessor meta(): untyped
14
+
15
+ def self.new: (?untyped data, ?untyped original_length, ?untyped linktype, ?untyped meta) -> instance
16
+ | (?data: untyped, ?original_length: untyped, ?linktype: untyped, ?meta: untyped) -> instance
17
+ end
18
+
19
+ TUNNEL_PORTS: untyped
20
+
21
+ attr_reader expression: untyped
22
+
23
+ def initialize: (untyped expression) -> untyped
24
+
25
+ # nil requests the ordinary VDF evaluator; false is a definite non-match.
26
+ def match: (untyped frame) -> untyped
27
+
28
+ private
29
+
30
+ def convert: (untyped node) -> untyped
31
+
32
+ def term: (untyped field, untyped member) -> untyped
33
+
34
+ def eligible?: (untyped frame) -> untyped
35
+ end
36
+ end
37
+ end
@@ -12,6 +12,17 @@ module Vanken
12
12
  def self.rank: (Symbol? value) -> Integer
13
13
  end
14
14
 
15
+ # The public plugin DSL registers through Registry.default; keep that lookup local.
16
+ module RegistryScope
17
+ module Default
18
+ # @rbs () -> Redhound::Registry
19
+ def default: () -> Redhound::Registry
20
+ end
21
+
22
+ # @rbs [T] (Redhound::Registry registry) { () -> T } -> T
23
+ def self.with: [T] (Redhound::Registry registry) { () -> T } -> T
24
+ end
25
+
15
26
  class Dissector
16
27
  attr_reader registry: Redhound::Registry
17
28
 
@@ -28,6 +39,8 @@ module Vanken
28
39
  class PacketView
29
40
  attr_reader raw_packet: Redhound::Packet
30
41
 
42
+ attr_reader registry: Redhound::Registry
43
+
31
44
  # @rbs (Redhound::Packet packet, Redhound::Registry registry) -> void
32
45
  def initialize: (Redhound::Packet packet, Redhound::Registry registry) -> void
33
46
 
@@ -91,8 +104,8 @@ module Vanken
91
104
  end
92
105
 
93
106
  class FieldCatalog
94
- # @rbs () -> void
95
- def initialize: () -> void
107
+ # @rbs (?registry: Redhound::Registry) -> void
108
+ def initialize: (?registry: Redhound::Registry) -> void
96
109
 
97
110
  # @rbs () -> Array[String]
98
111
  def names: () -> Array[String]
@@ -0,0 +1,27 @@
1
+ # Generated from lib/vanken/gateway/exporter.rb with RBS::Inline
2
+
3
+ module Vanken
4
+ module Gateway
5
+ class Exporter
6
+ DEFAULT_COLUMNS: untyped
7
+
8
+ def initialize: (untyped document) -> untyped
9
+
10
+ def numbers: (?scope: untyped, ?range: untyped, ?selected: untyped, ?exclude_ignored: untyped) -> untyped
11
+
12
+ def write: (untyped path, format: untyped, ?numbers: untyped, ?columns: untyped, ?cancelled: untyped) -> untyped
13
+
14
+ private
15
+
16
+ def ranges: (untyped value, untyped limit) -> untyped
17
+
18
+ def check_cancelled: (untyped cancelled) -> untyped
19
+
20
+ def json: (untyped file, untyped numbers, untyped format, untyped cancelled) -> untyped
21
+
22
+ def text_node: (untyped file, untyped node, untyped depth) -> untyped
23
+
24
+ def csv_value: (untyped number, untyped column) -> untyped
25
+ end
26
+ end
27
+ end
@@ -17,6 +17,9 @@ module Vanken
17
17
  # @rbs () -> void
18
18
  def flush: () -> void
19
19
 
20
+ # @rbs () -> Integer
21
+ def bytes_written: () -> Integer
22
+
20
23
  # @rbs (Redhound::Capture::Stats | Hash[Symbol | String, Integer] stats, ?interface: Redhound::Capture::Interface?) -> void
21
24
  def write_stats: (Redhound::Capture::Stats | Hash[Symbol | String, Integer] stats, ?interface: Redhound::Capture::Interface?) -> void
22
25
 
@@ -11,6 +11,18 @@ module Vanken
11
11
 
12
12
  # @rbs (String name) -> Hash[Symbol, untyped]
13
13
  def self.find: (String name) -> Hash[Symbol, untyped]
14
+
15
+ # @rbs () -> Hash[String, Integer]
16
+ def self.traffic_counters: () -> Hash[String, Integer]
17
+
18
+ # @rbs (String text) -> Hash[String, Integer]
19
+ def self.parse_linux_counters: (String text) -> Hash[String, Integer]
20
+
21
+ # @rbs (String text) -> Hash[String, Integer]
22
+ def self.parse_darwin_counters: (String text) -> Hash[String, Integer]
23
+
24
+ # @rbs (?previous: Hash[Symbol, untyped]?, ?history: Hash[String, Array[Integer]], ?now: Integer | Float) -> Hash[Symbol, untyped]
25
+ def self.sample_traffic: (?previous: Hash[Symbol, untyped]?, ?history: Hash[String, Array[Integer]], ?now: Integer | Float) -> Hash[Symbol, untyped]
14
26
  end
15
27
  end
16
28
  end
@@ -0,0 +1,52 @@
1
+ # Generated from lib/vanken/gateway/resolver.rb with RBS::Inline
2
+
3
+ module Vanken
4
+ module Gateway
5
+ # Reverse DNS never runs on the requesting thread. Callbacks run on the
6
+ # worker; UI callers must post their publication to the UI executor.
7
+ class Resolver
8
+ NEGATIVE_TTL: ::Float
9
+
10
+ @worker: Thread
11
+
12
+ @closed: bool
13
+
14
+ @mutex: Mutex
15
+
16
+ @pending: Hash[String, Array[^(String) -> void]]
17
+
18
+ @cache: Hash[String, [ String?, Float? ]]
19
+
20
+ @queue: SizedQueue[String?]
21
+
22
+ @resolver: untyped
23
+
24
+ @limit: Integer
25
+
26
+ @timeout: Float
27
+
28
+ # @rbs (?timeout: Integer | Float, ?limit: Integer, ?resolver: untyped) -> void
29
+ def initialize: (?timeout: Integer | Float, ?limit: Integer, ?resolver: untyped) -> void
30
+
31
+ # @rbs (String address) ?{ (String) -> void } -> String
32
+ def request: (String address) ?{ (String) -> void } -> String
33
+
34
+ # @rbs () -> void
35
+ def close: () -> void
36
+
37
+ private
38
+
39
+ # @rbs (String address) -> String?
40
+ def numeric_address: (String address) -> String?
41
+
42
+ # @rbs () -> Float
43
+ def now: () -> Float
44
+
45
+ # @rbs (String address) -> String?
46
+ def lookup: (String address) -> String?
47
+
48
+ # @rbs () -> void
49
+ def work: () -> void
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,104 @@
1
+ # Generated from lib/vanken/gateway/statistics.rb with RBS::Inline
2
+
3
+ module Vanken
4
+ module Gateway
5
+ class HierarchyRow < Data
6
+ attr_reader path(): Array[Symbol]
7
+
8
+ attr_reader packets(): Integer
9
+
10
+ attr_reader bytes(): Integer
11
+
12
+ def self.new: (Array[Symbol] path, Integer packets, Integer bytes) -> instance
13
+ | (path: Array[Symbol], packets: Integer, bytes: Integer) -> instance
14
+
15
+ def self.members: () -> [ :path, :packets, :bytes ]
16
+
17
+ def members: () -> [ :path, :packets, :bytes ]
18
+ end
19
+
20
+ class ConversationRow < Data
21
+ attr_reader addr_a(): String
22
+
23
+ attr_reader port_a(): Integer
24
+
25
+ attr_reader addr_b(): String
26
+
27
+ attr_reader port_b(): Integer
28
+
29
+ attr_reader packets_ab(): Integer
30
+
31
+ attr_reader packets_ba(): Integer
32
+
33
+ attr_reader bytes_ab(): Integer
34
+
35
+ attr_reader bytes_ba(): Integer
36
+
37
+ attr_reader start_ns(): Integer
38
+
39
+ attr_reader end_ns(): Integer
40
+
41
+ attr_reader duration_ns(): Integer
42
+
43
+ def self.new: (String addr_a, Integer port_a, String addr_b, Integer port_b, Integer packets_ab, Integer packets_ba, Integer bytes_ab, Integer bytes_ba, Integer start_ns, Integer end_ns, Integer duration_ns) -> instance
44
+ | (addr_a: String, port_a: Integer, addr_b: String, port_b: Integer, packets_ab: Integer, packets_ba: Integer, bytes_ab: Integer, bytes_ba: Integer, start_ns: Integer, end_ns: Integer, duration_ns: Integer) -> instance
45
+
46
+ def self.members: () -> [ :addr_a, :port_a, :addr_b, :port_b, :packets_ab, :packets_ba, :bytes_ab, :bytes_ba, :start_ns, :end_ns, :duration_ns ]
47
+
48
+ def members: () -> [ :addr_a, :port_a, :addr_b, :port_b, :packets_ab, :packets_ba, :bytes_ab, :bytes_ba, :start_ns, :end_ns, :duration_ns ]
49
+ end
50
+
51
+ class EndpointRow < Data
52
+ attr_reader address(): String
53
+
54
+ attr_reader port(): Integer
55
+
56
+ attr_reader packets_tx(): Integer
57
+
58
+ attr_reader packets_rx(): Integer
59
+
60
+ attr_reader bytes_tx(): Integer
61
+
62
+ attr_reader bytes_rx(): Integer
63
+
64
+ def self.new: (String address, Integer port, Integer packets_tx, Integer packets_rx, Integer bytes_tx, Integer bytes_rx) -> instance
65
+ | (address: String, port: Integer, packets_tx: Integer, packets_rx: Integer, bytes_tx: Integer, bytes_rx: Integer) -> instance
66
+
67
+ def self.members: () -> [ :address, :port, :packets_tx, :packets_rx, :bytes_tx, :bytes_rx ]
68
+
69
+ def members: () -> [ :address, :port, :packets_tx, :packets_rx, :bytes_tx, :bytes_rx ]
70
+ end
71
+
72
+ class StatisticsTable < Data
73
+ attr_reader kind(): Symbol
74
+
75
+ attr_reader type(): Symbol?
76
+
77
+ attr_reader rows(): Array[HierarchyRow | ConversationRow | EndpointRow]
78
+
79
+ attr_reader evicted(): Integer
80
+
81
+ def self.new: (Symbol kind, Symbol? type, Array[HierarchyRow | ConversationRow | EndpointRow] rows, Integer evicted) -> instance
82
+ | (kind: Symbol, type: Symbol?, rows: Array[HierarchyRow | ConversationRow | EndpointRow], evicted: Integer) -> instance
83
+
84
+ def self.members: () -> [ :kind, :type, :rows, :evicted ]
85
+
86
+ def members: () -> [ :kind, :type, :rows, :evicted ]
87
+ end
88
+
89
+ # The upstream session and its private table schema stay inside the Gateway.
90
+ class Statistics
91
+ # @rbs (?specs: Array[String], ?registry: Redhound::Registry, **untyped options) -> void
92
+ def initialize: (?specs: Array[String], ?registry: Redhound::Registry, **untyped options) -> void
93
+
94
+ # @rbs (PacketView packet) -> void
95
+ def update: (PacketView packet) -> void
96
+
97
+ # @rbs () -> Array[StatisticsTable]
98
+ def tables: () -> Array[StatisticsTable]
99
+
100
+ # @rbs () -> void
101
+ def close: () -> void
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,75 @@
1
+ # Generated from lib/vanken/gateway/stream.rb with RBS::Inline
2
+
3
+ module Vanken
4
+ module Gateway
5
+ class StreamChunk < Data
6
+ attr_reader direction(): Integer
7
+
8
+ attr_reader bytes(): String
9
+
10
+ attr_reader missing(): Integer
11
+
12
+ attr_reader number(): Integer
13
+
14
+ attr_reader sequence(): Integer
15
+
16
+ def self.new: (Integer direction, String bytes, Integer missing, Integer number, Integer sequence) -> instance
17
+ | (direction: Integer, bytes: String, missing: Integer, number: Integer, sequence: Integer) -> instance
18
+
19
+ def self.members: () -> [ :direction, :bytes, :missing, :number, :sequence ]
20
+
21
+ def members: () -> [ :direction, :bytes, :missing, :number, :sequence ]
22
+ end
23
+
24
+ class StreamText < Data
25
+ attr_reader direction(): Integer
26
+
27
+ attr_reader text(): String
28
+
29
+ def self.new: (Integer direction, String text) -> instance
30
+ | (direction: Integer, text: String) -> instance
31
+
32
+ def self.members: () -> [ :direction, :text ]
33
+
34
+ def members: () -> [ :direction, :text ]
35
+ end
36
+
37
+ class Stream
38
+ DISPLAY_LIMIT: Integer
39
+
40
+ SEQUENCE_MOD: Integer
41
+
42
+ attr_reader nodes: Array[String]
43
+
44
+ attr_reader chunks: Array[StreamChunk]
45
+
46
+ attr_reader stream_id: Integer
47
+
48
+ # @rbs (untyped document, Integer stream_id, ?cancelled: (^() -> bool)?) -> void
49
+ def initialize: (untyped document, Integer stream_id, ?cancelled: (^() -> bool)?) -> void
50
+
51
+ # @rbs (?direction: Integer?) -> Integer
52
+ def byte_size: (?direction: Integer?) -> Integer
53
+
54
+ # @rbs (?format: Symbol, ?direction: Integer?, ?limit: Integer) -> Array[StreamText]
55
+ def preview: (?format: Symbol, ?direction: Integer?, ?limit: Integer) -> Array[StreamText]
56
+
57
+ # @rbs (String path, ?format: Symbol, ?direction: Integer?, ?cancelled: (^() -> bool)?) -> String
58
+ def save: (String path, ?format: Symbol, ?direction: Integer?, ?cancelled: (^() -> bool)?) -> String
59
+
60
+ private
61
+
62
+ # @rbs (Integer? direction) -> Array[StreamChunk]
63
+ def selected: (Integer? direction) -> Array[StreamChunk]
64
+
65
+ def endpoint: (untyped address, untyped port) -> untyped
66
+
67
+ def validate: (untyped format, untyped direction) -> untyped
68
+
69
+ def render: (untyped chunk, untyped bytes, untyped format) -> untyped
70
+
71
+ # Keep capture arrival precedence while inserting only previously unseen ranges.
72
+ def insert: (untyped segments, untyped chunk) -> untyped
73
+ end
74
+ end
75
+ end