diff --git a/.csharpierignore b/.csharpierignore new file mode 100644 index 00000000..32de4e76 --- /dev/null +++ b/.csharpierignore @@ -0,0 +1,16 @@ +# SBE-generated codecs and Fody weaver outputs are generated; CSharpier must +# not touch them. (CSharpier respects this regardless of any +# `` markers; we list explicitly for safety.) +**/Codecs/ +src/Weavers/ + +# Build outputs +bin/ +obj/ + +# CSharpier 1.2+ formats MSBuild files by default. We don't want csproj/ +# props/targets reformatted (would conflict with the existing 4-space +# indent). Exclude them. +*.csproj +*.props +*.targets diff --git a/.csharpierrc.json b/.csharpierrc.json new file mode 100644 index 00000000..e071b2a9 --- /dev/null +++ b/.csharpierrc.json @@ -0,0 +1,6 @@ +{ + "printWidth": 120, + "useTabs": false, + "tabWidth": 4, + "endOfLine": "lf" +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..622b984e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,371 @@ +# Aeron.NET naming and style rules. +# Scope: enforces .NET-style naming on NON-API internals only. Public and +# protected (on non-sealed) members are intentionally NOT constrained, to +# preserve upstream Java Aeron parity for merges. + +root = true + +[*] +charset = utf-8-bom +end_of_line = lf +indent_style = space +indent_size = 4 +insert_final_newline = true +trim_trailing_whitespace = true + +# RS0016/RS0017 emit diagnostics against PublicAPI.{Shipped,Unshipped}.txt, +# so the severity override MUST live in [*]; a [*.cs]-scoped override +# silently downgrades to default severity. +dotnet_diagnostic.RS0016.severity = error +dotnet_diagnostic.RS0017.severity = error + +[*.cs] + +# IDE1006 is the umbrella naming diagnostic. Per-rule severities below control +# whether each rule fires; this controls the severity Roslyn reports under. +# Both are required. +dotnet_diagnostic.IDE1006.severity = error + +# Constants (any access) +dotnet_naming_symbols.constants.applicable_kinds = field +dotnet_naming_symbols.constants.applicable_accessibilities = private, internal, protected_internal, private_protected +dotnet_naming_symbols.constants.required_modifiers = const + +# Static readonly (treat const-like) +dotnet_naming_symbols.static_readonly.applicable_kinds = field +dotnet_naming_symbols.static_readonly.applicable_accessibilities = private, internal, protected_internal, private_protected +dotnet_naming_symbols.static_readonly.required_modifiers = static, readonly + +# Internal mutable statics share private convention (s_camelCase) — matches +# dotnet/runtime and dotnet/roslyn practice of treating any non-public-API +# field uniformly. Must be matched BEFORE the instance-field rule. +dotnet_naming_symbols.private_static_fields.applicable_kinds = field +dotnet_naming_symbols.private_static_fields.applicable_accessibilities = private, private_protected, internal +dotnet_naming_symbols.private_static_fields.required_modifiers = static + +# Internal instance fields share private convention (_camelCase). Java-parity +# policy applies only to public/protected. +dotnet_naming_symbols.private_instance_fields.applicable_kinds = field +dotnet_naming_symbols.private_instance_fields.applicable_accessibilities = private, private_protected, internal + +dotnet_naming_symbols.non_api_methods.applicable_kinds = method +dotnet_naming_symbols.non_api_methods.applicable_accessibilities = private, internal, private_protected + +dotnet_naming_symbols.non_api_properties.applicable_kinds = property +dotnet_naming_symbols.non_api_properties.applicable_accessibilities = private, internal, private_protected + +dotnet_naming_symbols.non_api_events.applicable_kinds = event +dotnet_naming_symbols.non_api_events.applicable_accessibilities = private, internal, private_protected + +dotnet_naming_symbols.non_api_types.applicable_kinds = class, struct, interface, enum, delegate +dotnet_naming_symbols.non_api_types.applicable_accessibilities = internal, private, private_protected + +dotnet_naming_symbols.parameters.applicable_kinds = parameter +dotnet_naming_symbols.locals.applicable_kinds = local + +dotnet_naming_symbols.type_parameters.applicable_kinds = type_parameter + +dotnet_naming_style.pascal_case.capitalization = pascal_case + +dotnet_naming_style.camel_case.capitalization = camel_case + +dotnet_naming_style.underscore_camel_case.capitalization = camel_case +dotnet_naming_style.underscore_camel_case.required_prefix = _ + +dotnet_naming_style.s_underscore_camel_case.capitalization = camel_case +dotnet_naming_style.s_underscore_camel_case.required_prefix = s_ + +dotnet_naming_style.t_underscore_camel_case.capitalization = camel_case +dotnet_naming_style.t_underscore_camel_case.required_prefix = t_ + +dotnet_naming_style.t_pascal_case.capitalization = pascal_case +dotnet_naming_style.t_pascal_case.required_prefix = T + +# More-specific rules first. Roslyn picks the first matching rule per symbol. + +dotnet_naming_rule.constants_must_be_pascal.severity = error +dotnet_naming_rule.constants_must_be_pascal.symbols = constants +dotnet_naming_rule.constants_must_be_pascal.style = pascal_case + +dotnet_naming_rule.static_readonly_must_be_pascal.severity = error +dotnet_naming_rule.static_readonly_must_be_pascal.symbols = static_readonly +dotnet_naming_rule.static_readonly_must_be_pascal.style = pascal_case + +dotnet_naming_rule.private_static_fields_must_have_s_prefix.severity = error +dotnet_naming_rule.private_static_fields_must_have_s_prefix.symbols = private_static_fields +dotnet_naming_rule.private_static_fields_must_have_s_prefix.style = s_underscore_camel_case + +dotnet_naming_rule.private_instance_fields_must_have_underscore.severity = error +dotnet_naming_rule.private_instance_fields_must_have_underscore.symbols = private_instance_fields +dotnet_naming_rule.private_instance_fields_must_have_underscore.style = underscore_camel_case + +dotnet_naming_rule.non_api_methods_must_be_pascal.severity = error +dotnet_naming_rule.non_api_methods_must_be_pascal.symbols = non_api_methods +dotnet_naming_rule.non_api_methods_must_be_pascal.style = pascal_case + +dotnet_naming_rule.non_api_properties_must_be_pascal.severity = error +dotnet_naming_rule.non_api_properties_must_be_pascal.symbols = non_api_properties +dotnet_naming_rule.non_api_properties_must_be_pascal.style = pascal_case + +dotnet_naming_rule.non_api_events_must_be_pascal.severity = error +dotnet_naming_rule.non_api_events_must_be_pascal.symbols = non_api_events +dotnet_naming_rule.non_api_events_must_be_pascal.style = pascal_case + +dotnet_naming_rule.non_api_types_must_be_pascal.severity = error +dotnet_naming_rule.non_api_types_must_be_pascal.symbols = non_api_types +dotnet_naming_rule.non_api_types_must_be_pascal.style = pascal_case + +dotnet_naming_rule.parameters_must_be_camel.severity = error +dotnet_naming_rule.parameters_must_be_camel.symbols = parameters +dotnet_naming_rule.parameters_must_be_camel.style = camel_case + +dotnet_naming_rule.locals_must_be_camel.severity = error +dotnet_naming_rule.locals_must_be_camel.symbols = locals +dotnet_naming_rule.locals_must_be_camel.style = camel_case + +dotnet_naming_rule.type_parameters_must_have_t_prefix.severity = error +dotnet_naming_rule.type_parameters_must_have_t_prefix.symbols = type_parameters +dotnet_naming_rule.type_parameters_must_have_t_prefix.style = t_pascal_case + +# ReSharper's inspection engine has its OWN naming-rule DSL parallel to +# Roslyn's dotnet_naming_rule.* — it does NOT read those keys. Without this +# block, Rider applies its default PascalCase-across-the-board and flags +# every Java-parity public ALL_CAPS / camelCase symbol as a red error. Mirror +# the Roslyn carve-out so the two engines agree. Prefix syntax uses ` + `: +# `I + AaBb` means literal `I` followed by PascalCase. +resharper_csharp_naming_rule.constants = AaBb, AA_BB +resharper_csharp_naming_rule.static_readonly = AaBb, AA_BB +resharper_csharp_naming_rule.public_fields = AaBb, AA_BB, aaBb, _ + aaBb, s_ + aaBb + +# Methods: PascalCase or camelCase (Java-parity public methods may retain +# camelCase). Non-public methods are still strict via the Roslyn rule above. +resharper_csharp_naming_rule.method = AaBb, aaBb + +# Enum members: PascalCase or SCREAMING_SNAKE_CASE (upstream-mirrored enums +# such as ErrorCode, AsyncConnectState, ArchiveState). +resharper_csharp_naming_rule.enum_member = AaBb, AA_BB + +resharper_csharp_naming_rule.interfaces = I + AaBb + +resharper_csharp_naming_rule.private_constants = AaBb +resharper_csharp_naming_rule.private_static_readonly = AaBb +resharper_csharp_naming_rule.private_instance_fields = _ + aaBb +resharper_csharp_naming_rule.private_static_fields = s_ + aaBb + +resharper_csharp_naming_rule.local_constants = aaBb + +resharper_csharp_naming_rule.types_and_namespaces = AaBb +resharper_csharp_naming_rule.property = AaBb +resharper_csharp_naming_rule.event = AaBb + +# ReSharper's "user abbreviations" list (keeps 2-letter acronyms like IO/DB/UI +# uppercase against its default IoException-suggesting behaviour) is NOT +# exposed via editorconfig — only via .DotSettings. See +# Adaptive.Aeron.sln.DotSettings for the IO/DB/UI/OK/ID entries. + +[*.cs] + +# Allman braces (Java Checkstyle: LeftCurly nl). Not compiler-enforced; this +# block plus EnforceCodeStyleInBuild makes csc surface violations. +csharp_new_line_before_open_brace = all +csharp_new_line_before_else = true +csharp_new_line_before_catch = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_between_query_expression_clauses = true + +csharp_indent_case_contents = true +csharp_indent_switch_labels = true +csharp_indent_labels = one_less_than_current + +csharp_space_after_cast = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_parentheses = false + +csharp_preserve_single_line_blocks = true +csharp_preserve_single_line_statements = false + +# IDE0055 demoted because CSharpier (/.csharpierrc.json) is the formatting +# authority for this repo and its opinionated style does not always agree +# with Roslyn's interpretation of these editorconfig settings (notably +# switch-case explicit blocks and chopped argument lists). The Checkstyle +# whitespace-cluster parity is preserved by `csharpier check` in CI. +dotnet_diagnostic.IDE0055.severity = suggestion + +# IDE0011 — always-braces (Checkstyle NeedBraces parity). +csharp_prefer_braces = true +dotnet_diagnostic.IDE0011.severity = error + +# IDE0036 — modifier order (Checkstyle ModifierOrder parity). +csharp_preferred_modifier_order = public, private, protected, internal, file, static, extern, new, virtual, abstract, sealed, override, readonly, unsafe, required, volatile, async +dotnet_diagnostic.IDE0036.severity = error + +# IDE0075 — simplify boolean expressions (Checkstyle SimplifyBoolean parity). +dotnet_style_prefer_simplified_boolean_expressions = true +dotnet_diagnostic.IDE0075.severity = warning + +# IDE0005 (unused usings) requires GenerateDocumentationFile=true to fire at +# build (set in Directory.Build.props). Auto-fixable via `dotnet format`. +dotnet_diagnostic.IDE0005.severity = error + +# IDE0130 off: this codebase has Java-style namespaces that intentionally +# do not mirror folders. +dotnet_diagnostic.IDE0130.severity = none + +# Analyzer-pack allowlist. NetAnalyzers and SonarAnalyzer.CSharp ship hundreds +# of rules between them; everything defaults OFF, then we light up exactly the +# parity-with-Checkstyle rules we want. Per-rule severity overrides the +# global default. +dotnet_analyzer_diagnostic.severity = none + +# CA1502 cyclomatic complexity, CA1505 maintainability index, CA1506 class +# coupling. `dotnet_code_quality.CAxxxx.threshold` is documented but not +# honored by the current analyzer pack — defaults are used. +dotnet_diagnostic.CA1502.severity = error +dotnet_diagnostic.CA1505.severity = error +dotnet_diagnostic.CA1506.severity = error + +dotnet_diagnostic.CA1827.severity = error # Don't use Count()/LongCount() when Any() works +dotnet_diagnostic.CA1829.severity = error # Use Length/Count property over Enumerable.Count +dotnet_diagnostic.CA1854.severity = error # TryGetValue over ContainsKey + indexer +dotnet_diagnostic.CA2200.severity = error # Rethrow to preserve stack (throw; not throw ex;) +dotnet_diagnostic.CA2241.severity = error # Provide correct arguments to formatting methods +dotnet_diagnostic.S1854.severity = error # Dead stores +# S2589 (gratuitous boolean) overlaps with IDE0075 above; IDE0075 is canonical. +dotnet_diagnostic.S2589.severity = none +dotnet_diagnostic.IDE0029.severity = error # Use null coalescing +dotnet_diagnostic.IDE0074.severity = error # Use compound assignment + +dotnet_diagnostic.CA1825.severity = error # Array.Empty() over new T[0] +dotnet_diagnostic.CA1834.severity = error # StringBuilder.Append(char) for single chars +dotnet_diagnostic.CA1845.severity = error # Span-based string.Concat +dotnet_diagnostic.CA1860.severity = error # Avoid .Count() == 0 +dotnet_diagnostic.CA2208.severity = error # Instantiate exceptions correctly +dotnet_diagnostic.IDE0034.severity = error # default literal +dotnet_diagnostic.IDE0041.severity = error # is null pattern +dotnet_diagnostic.IDE0054.severity = error # Compound assignment + +dotnet_diagnostic.CA2007.severity = error # ConfigureAwait on await in library code +dotnet_diagnostic.CA2016.severity = error # Forward CancellationToken on async calls +dotnet_diagnostic.IDE0019.severity = error # Use pattern matching with `is X x` +dotnet_diagnostic.IDE0049.severity = error # Language keywords (string) over framework types (String) +dotnet_diagnostic.IDE0150.severity = error # Prefer null check over type check +dotnet_diagnostic.S3236.severity = error # [CallerMemberName] with default arg + +# CA1810 (initialize static fields inline) intentionally not enabled: would +# force divergence from upstream Java's static initializer block pattern, +# which the descriptor classes mirror for merge parity. +dotnet_diagnostic.CA1815.severity = error # Override Equals on value types +dotnet_diagnostic.IDE0017.severity = error # Use object initializer +dotnet_diagnostic.IDE0018.severity = error # Inline out variable +dotnet_diagnostic.IDE0059.severity = error # Unnecessary value assignment +dotnet_diagnostic.S1066.severity = error # Collapsible if +dotnet_diagnostic.S1481.severity = error # Unused local variable + +# S138 method length. Threshold wired from /SonarLint.xml at 100 lines for +# parity with upstream Java Aeron's Checkstyle MethodLength rule. Parameter +# values for parameterised rules live in /SonarLint.xml, not here. +dotnet_diagnostic.S138.severity = error + +# S103 line length (Checkstyle LineLength, max=120) +# S1451 copyright header (Checkstyle RegexpHeader) +# S1118 utility class ctor (Checkstyle FinalClass) +# S1116 empty statements (Checkstyle EmptyStatement) +# S1126 simplify boolean ret (Checkstyle SimplifyBooleanReturn) +# S1141 nested try blocks (Checkstyle NestedTryDepth) +# S2333 redundant modifiers (Checkstyle RedundantModifier) +# S4524 default comes last (Checkstyle DefaultComesLast) +dotnet_diagnostic.S103.severity = error +dotnet_diagnostic.S1451.severity = error +dotnet_diagnostic.S1118.severity = error +dotnet_diagnostic.S1116.severity = error +dotnet_diagnostic.S2333.severity = error +dotnet_diagnostic.S1126.severity = error +dotnet_diagnostic.S1141.severity = error +dotnet_diagnostic.S4524.severity = error + +# CA1067 IEquatable / Equals (Checkstyle CovariantEquals partial parity) +# CA2231 == on overridden ValueType.Equals (other half of CovariantEquals) +dotnet_diagnostic.CA1067.severity = error +dotnet_diagnostic.CA2231.severity = error + +# CS0659 (compiler diagnostic) — override Object.Equals without overriding +# Object.GetHashCode (Checkstyle EqualsHashCode parity). The Roslyn analyzer +# CA2218 was deprecated because the C# compiler covers this case directly. +# Default severity is warning; promoted to error to match Java enforcement. +dotnet_diagnostic.CS0659.severity = error + +# Checkstyle FinalParameters has no Roslyn or SonarAnalyzer.CSharp equivalent +# (Sonar S1226 exists for Java but isn't shipped in SonarAnalyzer.CSharp 10.4; +# deliberate `x = x + 1` on a parameter does not fire any analyzer warning). +# The codebase already follows the convention by defensively copying +# parameters to locals before mutation. No enforcement available; relying on +# convention plus review. + +# AERON0002 — MS PascalCase acronym detector. Per the .NET capitalization +# conventions (https://learn.microsoft.com/dotnet/standard/design-guidelines/ +# capitalization-conventions): 3+ letter acronyms must be PascalCase +# (XmlParser, not XMLParser), 2-letter acronyms stay all-caps (IOException), +# and "ID" is a special-cased word ("StreamId", not "StreamID"). Roslyn's +# pascal_case style is first-char-only so doesn't enforce these. Also catches +# SCREAMING_SNAKE_CASE field names like CORRELATION_ID_FIELD_OFFSET, since +# each underscore-separated token is a run of 3+ uppercase letters. +dotnet_diagnostic.AERON0002.severity = error + +[**/Codecs/**.cs] +generated_code = true +# Sonar's IsGenerated heuristic does not match the `/* Generated SBE */` +# comment our codecs ship with, and `sonar.cs.analyzeGeneratedCode = false` +# in SonarLint.xml only suppresses files Sonar already considers generated. +# So suppress per-rule for everything we light up above. +dotnet_diagnostic.S103.severity = none +dotnet_diagnostic.S138.severity = none +dotnet_diagnostic.S1116.severity = none +dotnet_diagnostic.S1118.severity = none +dotnet_diagnostic.S1126.severity = none +dotnet_diagnostic.S1141.severity = none +dotnet_diagnostic.S1451.severity = none +dotnet_diagnostic.S2333.severity = none +dotnet_diagnostic.S4524.severity = none +dotnet_diagnostic.CA1067.severity = none +dotnet_diagnostic.CA1502.severity = none +dotnet_diagnostic.CA1505.severity = none +dotnet_diagnostic.CA1506.severity = none +dotnet_diagnostic.CA2231.severity = none +dotnet_diagnostic.CS0659.severity = none +# ReSharper does NOT honour generated_code=true — it has its own detection +# (auto-generated comment / *.designer.cs etc.) which our SBE codecs don't +# match. Mirror the Roslyn suppression for ReSharper's parallel inspections. +resharper_enforce_if_statement_braces_highlighting = none +resharper_inconsistent_naming_highlighting = none + +[**/{bin,obj}/**.cs] +generated_code = true + +[src/Weavers/**.cs] +generated_code = true +# ReSharper ignores generated_code=true (see Codecs section); mirror for Fody. +resharper_enforce_if_statement_braces_highlighting = none + +# Samples are illustrative programs (console diagnostics, banners, demo flows). +# Wrapping interpolated diagnostic strings hurts readability without benefit; +# samples are not part of the shipped API surface or upstream parity contract. +[src/Samples/**.cs] +dotnet_diagnostic.S103.severity = none + +# Public / protected symbols in test projects are not part of the consumer- +# facing API surface and are not subject to Java-upstream parity, so apply +# PascalCase to them too. Per-section overrides of +# `dotnet_naming_symbols..applicable_accessibilities` work for type +# kinds but are silently ignored for method/property groups, so this defines +# a dedicated symbol group + rule scoped to this section instead. +[**/{*Tests,*Test}/**.cs] +dotnet_naming_symbols.test_public_members.applicable_kinds = method, property, event, class, struct, interface, enum, delegate, field +dotnet_naming_symbols.test_public_members.applicable_accessibilities = public, protected, protected_internal + +dotnet_naming_rule.test_public_members_must_be_pascal.severity = error +dotnet_naming_rule.test_public_members_must_be_pascal.symbols = test_public_members +dotnet_naming_rule.test_public_members_must_be_pascal.style = pascal_case diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 00000000..794ac724 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,49 @@ + + + + true + + + true + $(NoWarn);CS1591;CS1584;CS1658 + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + diff --git a/SonarLint.xml b/SonarLint.xml new file mode 100644 index 00000000..547ebfec --- /dev/null +++ b/SonarLint.xml @@ -0,0 +1,67 @@ + + + + + + + sonar.cs.analyzeGeneratedCode + false + + + + + + S138 + + + max + 100 + + + + + + + S103 + + + maximumLineLength + 120 + + + + + + + S1451 + + + headerFormat + /\* + \* Copyright \d{4}( ?- ?\d{4})? (Adaptive Financial Consulting|Real Logic) (Ltd|Limited)\.? + + + isRegularExpression + true + + + + + diff --git a/src/Adaptive.Aeron.Analyzers/Adaptive.Aeron.Analyzers.csproj b/src/Adaptive.Aeron.Analyzers/Adaptive.Aeron.Analyzers.csproj new file mode 100644 index 00000000..5bb67437 --- /dev/null +++ b/src/Adaptive.Aeron.Analyzers/Adaptive.Aeron.Analyzers.csproj @@ -0,0 +1,21 @@ + + + netstandard2.0 + latest + enable + true + true + false + false + + + + + + + + + + + + diff --git a/src/Adaptive.Aeron.Analyzers/AnalyzerReleases.Shipped.md b/src/Adaptive.Aeron.Analyzers/AnalyzerReleases.Shipped.md new file mode 100644 index 00000000..c1b674f1 --- /dev/null +++ b/src/Adaptive.Aeron.Analyzers/AnalyzerReleases.Shipped.md @@ -0,0 +1,2 @@ +; Shipped analyzer releases. +; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md diff --git a/src/Adaptive.Aeron.Analyzers/AnalyzerReleases.Unshipped.md b/src/Adaptive.Aeron.Analyzers/AnalyzerReleases.Unshipped.md new file mode 100644 index 00000000..d0119ead --- /dev/null +++ b/src/Adaptive.Aeron.Analyzers/AnalyzerReleases.Unshipped.md @@ -0,0 +1,8 @@ +; Unshipped analyzer release. +; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md + +### New Rules + +Rule ID | Category | Severity | Notes +--------|----------|----------|------- +AERON0002 | Naming | Warning | MS PascalCase acronym detector. Catches 3+ letter all-caps acronyms (XMLParser -> XmlParser) and the MS-special-cased ID (StreamID -> StreamId). Allows 2-letter acronyms (IO, DB, UI) per MS conventions. diff --git a/src/Adaptive.Aeron.Analyzers/StrictPascalCaseAnalyzer.cs b/src/Adaptive.Aeron.Analyzers/StrictPascalCaseAnalyzer.cs new file mode 100644 index 00000000..d7c18b09 --- /dev/null +++ b/src/Adaptive.Aeron.Analyzers/StrictPascalCaseAnalyzer.cs @@ -0,0 +1,188 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System.Collections.Immutable; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Diagnostics; + +namespace Adaptive.Aeron.Analyzers; + +/// +/// Flags identifiers that violate the Microsoft .NET capitalization conventions +/// (https://learn.microsoft.com/dotnet/standard/design-guidelines/capitalization-conventions). +/// +/// Rules enforced: +/// 1. Acronyms of 3+ letters must be PascalCase (Xml, Sql, Html), not all-caps. +/// 2. The abbreviation "ID" is treated as a word ("Id"), even though it's only +/// 2 letters — this is an explicit MS carve-out. +/// +/// Not enforced (per MS): 2-letter acronyms stay all-caps (IO, DB, UI, OK). +/// Roslyn's first-char-only pascal_case check misses both rules; this analyzer +/// closes the gap for non-API symbols (plus public/protected in test paths). +/// +[DiagnosticAnalyzer(LanguageNames.CSharp)] +public sealed class StrictPascalCaseAnalyzer : DiagnosticAnalyzer +{ + public const string DiagnosticId = "AERON0002"; + + private static readonly DiagnosticDescriptor Rule = new( + DiagnosticId, + title: "Identifier violates MS PascalCase capitalization rules", + messageFormat: + "Identifier '{0}' contains a {1}-character all-caps acronym; only " + + "2-letter acronyms stay uppercase per MS conventions, and 'ID' is " + + "cased as 'Id'", + category: "Naming", + defaultSeverity: DiagnosticSeverity.Warning, + isEnabledByDefault: true, + description: + "Microsoft's .NET capitalization conventions require 3+ letter acronyms " + + "to be PascalCase (Xml, Sql, Html). 2-letter acronyms stay all-caps " + + "(IO, DB, UI). The abbreviation 'ID' is a special case treated as a " + + "word ('Id'). Roslyn's built-in pascal_case rule only checks the first " + + "character, so this analyzer closes the gap for non-API symbols."); + + public override ImmutableArray SupportedDiagnostics => + ImmutableArray.Create(Rule); + + public override void Initialize(AnalysisContext context) + { + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); + context.EnableConcurrentExecution(); + context.RegisterSymbolAction( + AnalyzeSymbol, + SymbolKind.Field, + SymbolKind.Method, + SymbolKind.Property, + SymbolKind.Event, + SymbolKind.NamedType, + SymbolKind.Parameter); + } + + private static void AnalyzeSymbol(SymbolAnalysisContext context) + { + var symbol = context.Symbol; + var name = symbol.Name; + if (!TryFindViolation(name, out var acronymLen)) + { + return; + } + + if (symbol.Locations.Length == 0) + { + return; + } + + var path = symbol.Locations[0].SourceTree?.FilePath ?? ""; + + // Skip SBE codecs (auto-generated; Roslyn's generated_code=true does + // not propagate to third-party analyzers). + if (path.Contains("/Codecs/") || path.Contains("\\Codecs\\")) + { + return; + } + + // Non-API only — EXCEPT in test code, where public/protected aren't + // consumer API and aren't subject to Java upstream parity. + if (!IsTestPath(path)) + { + switch (symbol.DeclaredAccessibility) + { + case Accessibility.Private: + case Accessibility.Internal: + case Accessibility.ProtectedOrInternal: + case Accessibility.ProtectedAndInternal: + break; + default: + return; + } + } + + context.ReportDiagnostic(Diagnostic.Create( + Rule, symbol.Locations[0], name, acronymLen)); + } + + /// + /// Returns true if contains either: + /// • A run of consecutive uppercase letters that decomposes into a + /// 3+-letter acronym (with optional trailing PascalCase word start), or + /// • The substring "ID" positioned as a standalone 2-letter acronym + /// (MS-special-cased to "Id"). + /// + private static bool TryFindViolation(string name, out int acronymLen) + { + acronymLen = 0; + + // Check 1: 3+ letter acronyms. + for (int i = 0; i < name.Length;) + { + if (!char.IsUpper(name[i])) + { + i++; + continue; + } + + int j = i; + while (j < name.Length && char.IsUpper(name[j])) + { + j++; + } + + int runLen = j - i; + if (runLen >= 3) + { + // If the run is followed by a lowercase letter, the last + // uppercase letter is the first character of a new PascalCase + // word — so the acronym proper is (runLen - 1) letters long. + // Otherwise the whole run is an acronym. + bool lastStartsNewWord = j < name.Length && char.IsLower(name[j]); + int actualAcronymLen = lastStartsNewWord ? runLen - 1 : runLen; + if (actualAcronymLen >= 3) + { + acronymLen = actualAcronymLen; + return true; + } + } + + i = j; + } + + // Check 2: "ID" as a standalone 2-letter acronym (the MS special case). + for (int i = 0; i + 1 < name.Length; i++) + { + if (name[i] != 'I' || name[i + 1] != 'D') + { + continue; + } + + bool leftOk = i == 0 || char.IsLower(name[i - 1]); + bool rightOk = i + 2 == name.Length + || char.IsUpper(name[i + 2]) + || char.IsDigit(name[i + 2]); + if (leftOk && rightOk) + { + acronymLen = 2; + return true; + } + } + + return false; + } + + private static bool IsTestPath(string path) => + path.Contains(".Tests/") || path.Contains(".Tests\\") || + path.Contains(".Test/") || path.Contains(".Test\\"); +} diff --git a/src/Adaptive.Aeron.Tests/.editorconfig b/src/Adaptive.Aeron.Tests/.editorconfig new file mode 100644 index 00000000..9a4d3fce --- /dev/null +++ b/src/Adaptive.Aeron.Tests/.editorconfig @@ -0,0 +1,6 @@ +# Test method names follow the Method_Scenario_Result convention by design. +# Disable the non-API method PascalCase rule for this project; locals/params/ +# fields still follow the root .editorconfig rules. + +[*.cs] +dotnet_naming_rule.non_api_methods_must_be_pascal.severity = none diff --git a/src/Adaptive.Aeron.Tests/Adaptive.Aeron.Tests.licenseheader b/src/Adaptive.Aeron.Tests/Adaptive.Aeron.Tests.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Adaptive.Aeron.Tests/Adaptive.Aeron.Tests.licenseheader +++ b/src/Adaptive.Aeron.Tests/Adaptive.Aeron.Tests.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Adaptive.Aeron.Tests/AeronCountersTest.cs b/src/Adaptive.Aeron.Tests/AeronCountersTest.cs index 35083523..6558c866 100644 --- a/src/Adaptive.Aeron.Tests/AeronCountersTest.cs +++ b/src/Adaptive.Aeron.Tests/AeronCountersTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using System.Collections.Generic; using System.Linq; @@ -19,7 +35,8 @@ public void ShouldNotHaveOverlappingCounterTypeIds() var fieldByTypeId = new Dictionary(); var duplicates = new Dictionary>(); - var typeIdFields = typeof(AeronCounters).GetFields(BindingFlags.Public | BindingFlags.Static) + var typeIdFields = typeof(AeronCounters) + .GetFields(BindingFlags.Public | BindingFlags.Static) .Where(f => f.IsLiteral || f.IsInitOnly) .Where(f => f.Name.EndsWith("_TYPE_ID")) .Where(f => f.FieldType == typeof(int)); @@ -34,7 +51,11 @@ public void ShouldNotHaveOverlappingCounterTypeIds() list = new List(); duplicates[typeId] = list; } - if (!list.Contains(f)) list.Add(f); + if (!list.Contains(f)) + { + list.Add(f); + } + list.Add(existing); } else @@ -45,8 +66,9 @@ public void ShouldNotHaveOverlappingCounterTypeIds() if (duplicates.Count > 0) { - var lines = duplicates.Select(kv => kv.Key + " -> " + - string.Join(", ", kv.Value.Select(f => f.DeclaringType?.Name + "." + f.Name))); + var lines = duplicates.Select(kv => + kv.Key + " -> " + string.Join(", ", kv.Value.Select(f => f.DeclaringType?.Name + "." + f.Name)) + ); Assert.Fail("Duplicate typeIds: " + string.Join("; ", lines)); } } @@ -54,7 +76,8 @@ public void ShouldNotHaveOverlappingCounterTypeIds() [TestCase( "1.42.1", "8165495befc07e997a7f2f7743beab9d3846b0a5", - "version=1.42.1 commit=8165495befc07e997a7f2f7743beab9d3846b0a5")] + "version=1.42.1 commit=8165495befc07e997a7f2f7743beab9d3846b0a5" + )] [TestCase("1.43.0-SNAPSHOT", "abc", "version=1.43.0-SNAPSHOT commit=abc")] [TestCase("NIL", "12345678", "version=NIL commit=12345678")] public void ShouldFormatVersionInfo(string fullVersion, string commitHash, string expected) @@ -81,16 +104,16 @@ public void ShouldAppendVersionInfo(string fullVersion, string commitHash, strin [TestCase(-1)] public void AppendToLabelThrowsArgumentExceptionIfCounterIsNegative(int counterId) { - var exception = Assert.Throws( - () => AeronCounters.AppendToLabel(new UnsafeBuffer([]), counterId, "test")); + var exception = Assert.Throws(() => + AeronCounters.AppendToLabel(new UnsafeBuffer([]), counterId, "test") + ); Assert.AreEqual("counter id " + counterId + " is negative", exception.Message); } [Test] public void AppendToLabelThrowsArgumentNullExceptionIfBufferIsNull() { - Assert.Throws( - () => AeronCounters.AppendToLabel(null, 5, "test")); + Assert.Throws(() => AeronCounters.AppendToLabel(null, 5, "test")); } [TestCase(1_000_000)] @@ -99,8 +122,9 @@ public void AppendToLabelThrowsArgumentExceptionIfCounterIsOutOfRange(int counte { var metaDataBuffer = new UnsafeBuffer(new byte[METADATA_LENGTH * 3]); - var exception = Assert.Throws( - () => AeronCounters.AppendToLabel(metaDataBuffer, counterId, "test")); + var exception = Assert.Throws(() => + AeronCounters.AppendToLabel(metaDataBuffer, counterId, "test") + ); Assert.AreEqual("counter id " + counterId + " out of range: 0 - maxCounterId=2", exception.Message); } @@ -113,8 +137,9 @@ public void AppendToLabelThrowsArgumentExceptionIfCounterIsInWrongState(int stat int metaDataOffset = MetaDataOffset(counterId); metaDataBuffer.PutInt(metaDataOffset, state); - var exception = Assert.Throws( - () => AeronCounters.AppendToLabel(metaDataBuffer, counterId, "test")); + var exception = Assert.Throws(() => + AeronCounters.AppendToLabel(metaDataBuffer, counterId, "test") + ); Assert.AreEqual("counter id 1 is not allocated, state: " + state, exception.Message); } @@ -124,7 +149,8 @@ public void AppendToLabelShouldAddSuffix() var countersManager = new CountersManager( new UnsafeBuffer(new byte[METADATA_LENGTH]), new UnsafeBuffer(new byte[COUNTER_LENGTH]), - Encoding.ASCII); + Encoding.ASCII + ); int counterId = countersManager.Allocate("initial value: "); int length = AeronCounters.AppendToLabel(countersManager.MetaDataBuffer, counterId, "test"); @@ -139,7 +165,8 @@ public void AppendToLabelShouldAddAPortionOfSuffixUpToTheMaxLength() var countersManager = new CountersManager( new UnsafeBuffer(new byte[METADATA_LENGTH]), new UnsafeBuffer(new byte[COUNTER_LENGTH]), - Encoding.ASCII); + Encoding.ASCII + ); const string initialLabel = "this is a test counter"; int counterId = countersManager.Allocate(initialLabel); string hugeSuffix = " - 42" + new string('x', MAX_LABEL_LENGTH); @@ -148,7 +175,10 @@ public void AppendToLabelShouldAddAPortionOfSuffixUpToTheMaxLength() Assert.AreNotEqual(hugeSuffix.Length, length); Assert.AreEqual(MAX_LABEL_LENGTH - initialLabel.Length, length); - Assert.AreEqual(initialLabel + hugeSuffix.Substring(0, length), countersManager.GetCounterLabel(counterId)); + Assert.AreEqual( + string.Concat(initialLabel, hugeSuffix.AsSpan(0, length)), + countersManager.GetCounterLabel(counterId) + ); } [Test] @@ -157,7 +187,8 @@ public void AppendToLabelIsANoOpIfThereIsNoSpaceInTheLabel() var countersManager = new CountersManager( new UnsafeBuffer(new byte[METADATA_LENGTH]), new UnsafeBuffer(new byte[COUNTER_LENGTH]), - Encoding.ASCII); + Encoding.ASCII + ); string label = new string('a', MAX_LABEL_LENGTH); int counterId = countersManager.Allocate(label); @@ -170,35 +201,44 @@ public void AppendToLabelIsANoOpIfThereIsNoSpaceInTheLabel() [Test] public void SetReferenceIdShouldThrowArgumentNullExceptionIfMetadataBufferIsNull() { - Assert.Throws( - () => AeronCounters.SetReferenceId(null, new UnsafeBuffer(new byte[0]), 1, 123)); + Assert.Throws(() => + AeronCounters.SetReferenceId(null, new UnsafeBuffer(Array.Empty()), 1, 123) + ); } [Test] public void SetReferenceIdShouldThrowArgumentNullExceptionIfValuesBufferIsNull() { - Assert.Throws( - () => AeronCounters.SetReferenceId(new UnsafeBuffer(new byte[0]), null, 1, 123)); + Assert.Throws(() => + AeronCounters.SetReferenceId(new UnsafeBuffer(Array.Empty()), null, 1, 123) + ); } [Test] public void SetReferenceIdShouldRejectNegativeCounterId() { - var exception = Assert.Throws( - () => AeronCounters.SetReferenceId( - new UnsafeBuffer(new byte[0]), new UnsafeBuffer(new byte[0]), -4, 123)); + var exception = Assert.Throws(() => + AeronCounters.SetReferenceId( + new UnsafeBuffer(Array.Empty()), + new UnsafeBuffer(Array.Empty()), + -4, + 123 + ) + ); Assert.AreEqual("counter id -4 is negative", exception.Message); } [Test] public void SetReferenceIdShouldRejectCounterIdWhichIsOutOfRange() { - var exception = Assert.Throws( - () => AeronCounters.SetReferenceId( + var exception = Assert.Throws(() => + AeronCounters.SetReferenceId( new UnsafeBuffer(new byte[2 * METADATA_LENGTH]), - new UnsafeBuffer(new byte[0]), + new UnsafeBuffer(Array.Empty()), 42, - 777)); + 777 + ) + ); Assert.AreEqual("counter id 42 out of range: 0 - maxCounterId=1", exception.Message); } diff --git a/src/Adaptive.Aeron.Tests/BufferBuilderTests.cs b/src/Adaptive.Aeron.Tests/BufferBuilderTests.cs index d879a2de..7994e9ff 100644 --- a/src/Adaptive.Aeron.Tests/BufferBuilderTests.cs +++ b/src/Adaptive.Aeron.Tests/BufferBuilderTests.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,10 +34,12 @@ public void Setup() [Test] public void ShouldFindMaxCapacityWhenRequested() { - Assert.AreEqual(BufferBuilder.MAX_CAPACITY, - BufferBuilder.FindSuitableCapacity(0, BufferBuilder.MAX_CAPACITY)); + Assert.AreEqual( + BufferBuilder.MaxCapacity, + BufferBuilder.FindSuitableCapacity(0, BufferBuilder.MaxCapacity) + ); } - + [Test] public void ShouldInitialiseToDefaultValues() { @@ -49,7 +51,7 @@ public void ShouldInitialiseToDefaultValues() [Test] public void ShouldAppendNothingForZeroLength() { - var srcBuffer = new UnsafeBuffer(new byte[BufferBuilder.INIT_MIN_CAPACITY]); + var srcBuffer = new UnsafeBuffer(new byte[BufferBuilder.InitMinCapacity]); _bufferBuilder.Append(srcBuffer, 0, 0); @@ -59,7 +61,7 @@ public void ShouldAppendNothingForZeroLength() [Test] public void ShouldGrowToMultipleOfInitialCapacity() { - var srcCapacity = BufferBuilder.INIT_MIN_CAPACITY * 5; + var srcCapacity = BufferBuilder.InitMinCapacity * 5; var srcBuffer = new UnsafeBuffer(new byte[srcCapacity]); _bufferBuilder.Append(srcBuffer, 0, srcBuffer.Capacity); @@ -71,7 +73,7 @@ public void ShouldGrowToMultipleOfInitialCapacity() [Test] public void ShouldAppendThenReset() { - var srcBuffer = new UnsafeBuffer(new byte[BufferBuilder.INIT_MIN_CAPACITY]); + var srcBuffer = new UnsafeBuffer(new byte[BufferBuilder.InitMinCapacity]); _bufferBuilder.Append(srcBuffer, 0, srcBuffer.Capacity); @@ -85,7 +87,7 @@ public void ShouldAppendThenReset() [Test] public void ShouldAppendOneBufferWithoutResizing() { - var srcBuffer = new UnsafeBuffer(new byte[BufferBuilder.INIT_MIN_CAPACITY]); + var srcBuffer = new UnsafeBuffer(new byte[BufferBuilder.InitMinCapacity]); var bytes = Encoding.UTF8.GetBytes("Hello World"); srcBuffer.PutBytes(0, bytes, 0, bytes.Length); @@ -95,14 +97,14 @@ public void ShouldAppendOneBufferWithoutResizing() _bufferBuilder.Buffer().GetBytes(0, temp, 0, bytes.Length); Assert.AreEqual(bytes.Length, _bufferBuilder.Limit()); - Assert.AreEqual(BufferBuilder.INIT_MIN_CAPACITY, _bufferBuilder.Capacity()); + Assert.AreEqual(BufferBuilder.InitMinCapacity, _bufferBuilder.Capacity()); Assert.AreEqual(bytes, temp); } [Test] public void ShouldAppendTwoBuffersWithoutResizing() { - var srcBuffer = new UnsafeBuffer(new byte[BufferBuilder.INIT_MIN_CAPACITY]); + var srcBuffer = new UnsafeBuffer(new byte[BufferBuilder.InitMinCapacity]); var bytes = Encoding.UTF8.GetBytes("1111111122222222"); srcBuffer.PutBytes(0, bytes, 0, bytes.Length); @@ -113,7 +115,7 @@ public void ShouldAppendTwoBuffersWithoutResizing() _bufferBuilder.Buffer().GetBytes(0, temp, 0, bytes.Length); Assert.AreEqual(bytes.Length, _bufferBuilder.Limit()); - Assert.AreEqual(BufferBuilder.INIT_MIN_CAPACITY, _bufferBuilder.Capacity()); + Assert.AreEqual(BufferBuilder.InitMinCapacity, _bufferBuilder.Capacity()); Assert.AreEqual(bytes, temp); } @@ -183,14 +185,17 @@ public void ShouldAppendTwoBuffersAndResize() [Test] public void ShouldCompactBufferToLowerLimit() { - var bufferLength = BufferBuilder.INIT_MIN_CAPACITY / 2; + var bufferLength = BufferBuilder.InitMinCapacity / 2; var buffer = new byte[bufferLength]; var srcBuffer = new UnsafeBuffer(buffer); var bufferBuilder = new BufferBuilder(); const int bufferCount = 5; - for (var i = 0; i < bufferCount; i++) bufferBuilder.Append(srcBuffer, 0, buffer.Length); + for (var i = 0; i < bufferCount; i++) + { + bufferBuilder.Append(srcBuffer, 0, buffer.Length); + } var expectedLimit = buffer.Length * bufferCount; Assert.AreEqual(expectedLimit, bufferBuilder.Limit()); @@ -213,13 +218,19 @@ private static class Arrays { internal static void Fill(T[] array, T value) { - for (var i = 0; i < array.Length; i++) array[i] = value; + for (var i = 0; i < array.Length; i++) + { + array[i] = value; + } } internal static void Fill(T[] array, int fromIndex, int toIndex, T value) { - for (var i = fromIndex; i < toIndex; i++) array[i] = value; + for (var i = fromIndex; i < toIndex; i++) + { + array[i] = value; + } } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/ChannelUriStringBuilderTest.cs b/src/Adaptive.Aeron.Tests/ChannelUriStringBuilderTest.cs index f8db45eb..42db2b07 100644 --- a/src/Adaptive.Aeron.Tests/ChannelUriStringBuilderTest.cs +++ b/src/Adaptive.Aeron.Tests/ChannelUriStringBuilderTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using NUnit.Framework; @@ -6,13 +22,13 @@ namespace Adaptive.Aeron.Tests public class ChannelUriStringBuilderTest { // Constants moved here to avoid pulling private nested constants from Aeron.Configuration. - private const string MAX_RESEND_PARAM_NAME = "max-resend"; - private const string PUBLICATION_WINDOW_LENGTH_PARAM_NAME = "pub-wnd"; - private const string STREAM_ID_PARAM_NAME = "stream-id"; - private const string UNTETHERED_LINGER_TIMEOUT_PARAM_NAME = "untethered-linger-timeout"; - private const string UNTETHERED_RESTING_TIMEOUT_PARAM_NAME = "untethered-resting-timeout"; - private const string UNTETHERED_WINDOW_LIMIT_TIMEOUT_PARAM_NAME = "untethered-window-limit-timeout"; - private const string RESPONSE_CORRELATION_ID_PARAM_NAME = "response-correlation-id"; + private const string MaxResendParamName = "max-resend"; + private const string PublicationWindowLengthParamName = "pub-wnd"; + private const string StreamIdParamName = "stream-id"; + private const string UntetheredLingerTimeoutParamName = "untethered-linger-timeout"; + private const string UntetheredRestingTimeoutParamName = "untethered-resting-timeout"; + private const string UntetheredWindowLimitTimeoutParamName = "untethered-window-limit-timeout"; + private const string ResponseCorrelationIdParamName = "response-correlation-id"; [Test] public void ShouldValidateMedia() @@ -29,8 +45,9 @@ public void ShouldValidateEndpointOrControl() [Test] public void ShouldValidateInitialPosition() { - Assert.Throws( - () => new ChannelUriStringBuilder().Media("udp").Endpoint("address:port").TermId(999).Validate()); + Assert.Throws(() => + new ChannelUriStringBuilder().Media("udp").Endpoint("address:port").TermId(999).Validate() + ); } [Test] @@ -43,19 +60,14 @@ public void ShouldGenerateBasicIpcChannel() [Test] public void ShouldGenerateBasicUdpChannel() { - var builder = new ChannelUriStringBuilder() - .Media("udp") - .Endpoint("localhost:9999"); + var builder = new ChannelUriStringBuilder().Media("udp").Endpoint("localhost:9999"); Assert.AreEqual("aeron:udp?endpoint=localhost:9999", builder.Build()); } [Test] public void ShouldGenerateBasicUdpChannelSpy() { - var builder = new ChannelUriStringBuilder() - .Prefix("aeron-spy") - .Media("udp") - .Endpoint("localhost:9999"); + var builder = new ChannelUriStringBuilder().Prefix("aeron-spy").Media("udp").Endpoint("localhost:9999"); Assert.AreEqual("aeron-spy:aeron:udp?endpoint=localhost:9999", builder.Build()); } @@ -82,7 +94,8 @@ public void ShouldGenerateReplayUdpChannel() .TermOffset(64); Assert.AreEqual( "aeron:udp?endpoint=address:9999|term-length=128k|init-term-id=777|term-id=999|term-offset=64", - builder.Build()); + builder.Build() + ); } [Test] @@ -93,9 +106,7 @@ public void ShouldGenerateChannelWithSocketParameters() .Endpoint("address:9999") .SocketSndbufLength(8192) .SocketRcvbufLength(4096); - Assert.AreEqual( - "aeron:udp?endpoint=address:9999|so-sndbuf=8k|so-rcvbuf=4k", - builder.Build()); + Assert.AreEqual("aeron:udp?endpoint=address:9999|so-sndbuf=8k|so-rcvbuf=4k", builder.Build()); } [Test] @@ -105,18 +116,14 @@ public void ShouldGenerateChannelWithReceiverWindow() .Media("udp") .Endpoint("address:9999") .ReceiverWindowLength(8192); - Assert.AreEqual( - "aeron:udp?endpoint=address:9999|rcv-wnd=8k", - builder.Build()); + Assert.AreEqual("aeron:udp?endpoint=address:9999|rcv-wnd=8k", builder.Build()); } [Test] public void ShouldGenerateChannelWithLingerTimeout() { const long lingerNs = 987654321123456789L; - var builder = new ChannelUriStringBuilder() - .Media("ipc") - .Linger(lingerNs); + var builder = new ChannelUriStringBuilder().Media("ipc").Linger(lingerNs); Assert.AreEqual(lingerNs, builder.Linger()); Assert.AreEqual("aeron:ipc?linger=987654321123456789ns", builder.Build()); @@ -125,10 +132,7 @@ public void ShouldGenerateChannelWithLingerTimeout() [Test] public void ShouldGenerateChannelWithoutLingerTimeoutIfNullIsPassed() { - var builder = new ChannelUriStringBuilder() - .Media("udp") - .Endpoint("address:9999") - .Linger((long?)null); + var builder = new ChannelUriStringBuilder().Media("udp").Endpoint("address:9999").Linger((long?)null); Assert.IsNull(builder.Linger()); Assert.AreEqual("aeron:udp?endpoint=address:9999", builder.Build()); @@ -137,8 +141,9 @@ public void ShouldGenerateChannelWithoutLingerTimeoutIfNullIsPassed() [Test] public void ShouldRejectNegativeLingerTimeout() { - var exception = Assert.Throws( - () => new ChannelUriStringBuilder().Media("udp").Endpoint("address:9999").Linger(-1L)); + var exception = Assert.Throws(() => + new ChannelUriStringBuilder().Media("udp").Endpoint("address:9999").Linger(-1L) + ); Assert.AreEqual("`linger` value cannot be negative: -1", exception.Message); } @@ -176,12 +181,15 @@ public void ShouldCopyLingerTimeoutFromChannelUriNegativeValue() [Test] public void ShouldRejectInvalidOffsets() { - Assert.Throws( - () => new ChannelUriStringBuilder().MediaReceiveTimestampOffset("breserved")); - Assert.Throws( - () => new ChannelUriStringBuilder().ChannelReceiveTimestampOffset("breserved")); - Assert.Throws( - () => new ChannelUriStringBuilder().ChannelSendTimestampOffset("breserved")); + Assert.Throws(() => + new ChannelUriStringBuilder().MediaReceiveTimestampOffset("breserved") + ); + Assert.Throws(() => + new ChannelUriStringBuilder().ChannelReceiveTimestampOffset("breserved") + ); + Assert.Throws(() => + new ChannelUriStringBuilder().ChannelSendTimestampOffset("breserved") + ); } [Test] @@ -203,34 +211,48 @@ public void ShouldHandleNakDelayWithUnits() [Test] public void ShouldHandleUntetheredWindowLimitTimeoutWithUnits() { - Assert.AreEqual(1000L, new ChannelUriStringBuilder() - .UntetheredWindowLimitTimeout("1us").UntetheredWindowLimitTimeoutNs()); - Assert.AreEqual(1L, new ChannelUriStringBuilder() - .UntetheredWindowLimitTimeout("1ns").UntetheredWindowLimitTimeoutNs()); - Assert.AreEqual(1000000L, new ChannelUriStringBuilder() - .UntetheredWindowLimitTimeout("1ms").UntetheredWindowLimitTimeoutNs()); + Assert.AreEqual( + 1000L, + new ChannelUriStringBuilder().UntetheredWindowLimitTimeout("1us").UntetheredWindowLimitTimeoutNs() + ); + Assert.AreEqual( + 1L, + new ChannelUriStringBuilder().UntetheredWindowLimitTimeout("1ns").UntetheredWindowLimitTimeoutNs() + ); + Assert.AreEqual( + 1000000L, + new ChannelUriStringBuilder().UntetheredWindowLimitTimeout("1ms").UntetheredWindowLimitTimeoutNs() + ); } [Test] public void ShouldHandleUntetheredRestingTimeoutWithUnits() { - Assert.AreEqual(1000L, new ChannelUriStringBuilder() - .UntetheredRestingTimeout("1us").UntetheredRestingTimeoutNs()); - Assert.AreEqual(1L, new ChannelUriStringBuilder() - .UntetheredRestingTimeout("1ns").UntetheredRestingTimeoutNs()); - Assert.AreEqual(1000000L, new ChannelUriStringBuilder() - .UntetheredRestingTimeout("1ms").UntetheredRestingTimeoutNs()); + Assert.AreEqual( + 1000L, + new ChannelUriStringBuilder().UntetheredRestingTimeout("1us").UntetheredRestingTimeoutNs() + ); + Assert.AreEqual( + 1L, + new ChannelUriStringBuilder().UntetheredRestingTimeout("1ns").UntetheredRestingTimeoutNs() + ); + Assert.AreEqual( + 1000000L, + new ChannelUriStringBuilder().UntetheredRestingTimeout("1ms").UntetheredRestingTimeoutNs() + ); } [Test] public void ShouldHandleMaxRetransmits() { Assert.AreEqual(20, new ChannelUriStringBuilder().MaxResend(20).MaxResend()); - Assert.IsTrue(new ChannelUriStringBuilder().MaxResend(20).Build() - .Contains(MAX_RESEND_PARAM_NAME + "=20")); - Assert.AreEqual(30, new ChannelUriStringBuilder() - .MaxResend(ChannelUri.Parse(new ChannelUriStringBuilder().MaxResend(30).Build())) - .MaxResend()); + Assert.IsTrue(new ChannelUriStringBuilder().MaxResend(20).Build().Contains(MaxResendParamName + "=20")); + Assert.AreEqual( + 30, + new ChannelUriStringBuilder() + .MaxResend(ChannelUri.Parse(new ChannelUriStringBuilder().MaxResend(30).Build())) + .MaxResend() + ); } [Test] @@ -242,7 +264,7 @@ public void ShouldHandleStreamId() Assert.AreEqual(streamId, new ChannelUriStringBuilder().StreamId(streamId).StreamId()); string uri = new ChannelUriStringBuilder().StreamId(streamId).Build(); - Assert.AreEqual(streamId.ToString(), ChannelUri.Parse(uri).Get(STREAM_ID_PARAM_NAME)); + Assert.AreEqual(streamId.ToString(), ChannelUri.Parse(uri).Get(StreamIdParamName)); } [Test] @@ -258,13 +280,16 @@ public void ShouldHandlePublicationWindowLength() Assert.IsNull(new ChannelUriStringBuilder().PublicationWindowLength()); const int pubWindowLength = 7777; - Assert.AreEqual(pubWindowLength, - new ChannelUriStringBuilder().PublicationWindowLength(pubWindowLength).PublicationWindowLength()); + Assert.AreEqual( + pubWindowLength, + new ChannelUriStringBuilder().PublicationWindowLength(pubWindowLength).PublicationWindowLength() + ); string uri = new ChannelUriStringBuilder().PublicationWindowLength(pubWindowLength).Build(); Assert.AreEqual( pubWindowLength.ToString(), - ChannelUri.Parse(uri).Get(PUBLICATION_WINDOW_LENGTH_PARAM_NAME)); + ChannelUri.Parse(uri).Get(PublicationWindowLengthParamName) + ); } [TestCase("abc")] @@ -272,7 +297,7 @@ public void ShouldHandlePublicationWindowLength() public void ShouldRejectInvalidPublicationWindowLength(string pubWnd) { var uri = ChannelUri.Parse("aeron:ipc"); - uri.Put(PUBLICATION_WINDOW_LENGTH_PARAM_NAME, pubWnd); + uri.Put(PublicationWindowLengthParamName, pubWnd); // .NET throws FormatException for "abc", OverflowException for the too-big value. Assert.Catch(() => new ChannelUriStringBuilder().PublicationWindowLength(uri)); } @@ -281,31 +306,33 @@ public void ShouldRejectInvalidPublicationWindowLength(string pubWnd) [TestCase("-2")] public void ShouldThrowAnExceptionOnInvalidResponseCorrelationId(string responseCorrelationId) { - var channelUri = ChannelUri.Parse("aeron:udp?" + RESPONSE_CORRELATION_ID_PARAM_NAME + - "=" + responseCorrelationId); - Assert.Throws( - () => new ChannelUriStringBuilder().ResponseCorrelationId(channelUri)); + var channelUri = ChannelUri.Parse( + "aeron:udp?" + ResponseCorrelationIdParamName + "=" + responseCorrelationId + ); + Assert.Throws(() => new ChannelUriStringBuilder().ResponseCorrelationId(channelUri)); } [TestCase("prototype")] [TestCase("2")] public void ShouldNotThrowAnExceptionOnValidResponseCorrelationId(string responseCorrelationId) { - var channelUri = ChannelUri.Parse("aeron:udp?" + RESPONSE_CORRELATION_ID_PARAM_NAME + - "=" + responseCorrelationId); + var channelUri = ChannelUri.Parse( + "aeron:udp?" + ResponseCorrelationIdParamName + "=" + responseCorrelationId + ); Assert.DoesNotThrow(() => new ChannelUriStringBuilder().ResponseCorrelationId(channelUri)); } [Test] public void ShouldBuildChannelBuilderUsingExistingStringWithAllTheFields() { - const string uri = "aeron-spy:aeron:udp?endpoint=127.0.0.1:0|interface=127.0.0.1|control=127.0.0.2:0|" + - "control-mode=manual|tags=2,4|alias=foo|cc=cubic|fc=min|reliable=false|ttl=16|mtu=8992|" + - "term-length=1m|init-term-id=5|term-offset=64|term-id=4353|session-id=2314234|gtag=3|" + - "linger=100000055000001ns|sparse=true|eos=true|tether=false|group=false|ssc=true|so-sndbuf=8m|" + - "so-rcvbuf=2m|rcv-wnd=1m|media-rcv-ts-offset=reserved|channel-rcv-ts-offset=0|" + - "channel-snd-ts-offset=8|response-endpoint=127.0.0.3:0|response-correlation-id=12345|nak-delay=100us|" + - "untethered-window-limit-timeout=1us|untethered-resting-timeout=5us|stream-id=87|pub-wnd=10224"; + const string uri = + "aeron-spy:aeron:udp?endpoint=127.0.0.1:0|interface=127.0.0.1|control=127.0.0.2:0|" + + "control-mode=manual|tags=2,4|alias=foo|cc=cubic|fc=min|reliable=false|ttl=16|mtu=8992|" + + "term-length=1m|init-term-id=5|term-offset=64|term-id=4353|session-id=2314234|gtag=3|" + + "linger=100000055000001ns|sparse=true|eos=true|tether=false|group=false|ssc=true|so-sndbuf=8m|" + + "so-rcvbuf=2m|rcv-wnd=1m|media-rcv-ts-offset=reserved|channel-rcv-ts-offset=0|" + + "channel-snd-ts-offset=8|response-endpoint=127.0.0.3:0|response-correlation-id=12345|nak-delay=100us|" + + "untethered-window-limit-timeout=1us|untethered-resting-timeout=5us|stream-id=87|pub-wnd=10224"; var fromString = ChannelUri.Parse(uri); var fromBuilder = ChannelUri.Parse(new ChannelUriStringBuilder(uri).Build()); @@ -329,7 +356,8 @@ public void ShouldBuildChannelBuilderUsingExistingStringWithTaggedSessionIdAndIp public void ShouldHandleUntetheredParameters( long untetheredWindowLimitTimeoutNs, long untetheredLingerTimeoutNs, - long untetheredRestingTimeoutNs) + long untetheredRestingTimeoutNs + ) { var builder = new ChannelUriStringBuilder("aeron:ipc") .UntetheredWindowLimitTimeoutNs(untetheredWindowLimitTimeoutNs) @@ -343,13 +371,16 @@ public void ShouldHandleUntetheredParameters( var uri = ChannelUri.Parse(builder.Build()); Assert.AreEqual( Adaptive.Agrona.SystemUtil.FormatDuration(untetheredWindowLimitTimeoutNs), - uri.Get(UNTETHERED_WINDOW_LIMIT_TIMEOUT_PARAM_NAME)); + uri.Get(UntetheredWindowLimitTimeoutParamName) + ); Assert.AreEqual( Adaptive.Agrona.SystemUtil.FormatDuration(untetheredLingerTimeoutNs), - uri.Get(UNTETHERED_LINGER_TIMEOUT_PARAM_NAME)); + uri.Get(UntetheredLingerTimeoutParamName) + ); Assert.AreEqual( Adaptive.Agrona.SystemUtil.FormatDuration(untetheredRestingTimeoutNs), - uri.Get(UNTETHERED_RESTING_TIMEOUT_PARAM_NAME)); + uri.Get(UntetheredRestingTimeoutParamName) + ); } [Test] @@ -381,11 +412,19 @@ public void ShouldFormatSizeAndDurationsWhenCreatingChannelString() .Build(); CollectionAssert.IsEmpty( - ChannelUri.Parse(channel).Diff( - ChannelUri.Parse("aeron:udp?endpoint=localhost:5050|mtu=8k|term-length=4m|rcv-wnd=1k|so-sndbuf=64k|" + - "so-rcvbuf=32k|pub-wnd=1m|untethered-linger-timeout=3ms|untethered-window-limit-timeout=100us|" + - "untethered-resting-timeout=1s|linger=50ms|nak-delay=123456789ns|max-resend=1000|rejoin=false|" + - "tether=true|stream-id=-87|term-id=-5|init-term-id=-9|term-offset=1048576"))); + ChannelUri + .Parse(channel) + .Diff( + ChannelUri.Parse( + "aeron:udp?endpoint=localhost:5050|mtu=8k|term-length=4m|rcv-wnd=1k|so-sndbuf=64k|" + + "so-rcvbuf=32k|pub-wnd=1m|untethered-linger-timeout=3ms|" + + "untethered-window-limit-timeout=100us|" + + "untethered-resting-timeout=1s|linger=50ms|nak-delay=123456789ns|" + + "max-resend=1000|rejoin=false|" + + "tether=true|stream-id=-87|term-id=-5|init-term-id=-9|term-offset=1048576" + ) + ) + ); } } } diff --git a/src/Adaptive.Aeron.Tests/ChannelUriTest.cs b/src/Adaptive.Aeron.Tests/ChannelUriTest.cs index 665aa3ef..c9947ee3 100644 --- a/src/Adaptive.Aeron.Tests/ChannelUriTest.cs +++ b/src/Adaptive.Aeron.Tests/ChannelUriTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,12 +15,6 @@ */ using System; -using Adaptive.Aeron.LogBuffer; -using Adaptive.Aeron.Protocol; -using Adaptive.Agrona; -using Adaptive.Agrona.Concurrent; -using Adaptive.Agrona.Concurrent.Status; -using FakeItEasy; using NUnit.Framework; namespace Adaptive.Aeron.Tests @@ -30,9 +24,21 @@ public class ChannelUriTest [Test] public void ShouldSubstituteEndpoint() { - AssertSubstitution("aeron:udp?endpoint=localhost:12345", "aeron:udp?endpoint=localhost:0", "localhost:12345"); - AssertSubstitution("aeron:udp?endpoint=localhost:12345", "aeron:udp?endpoint=localhost:12345", "localhost:54321"); - AssertSubstitution("aeron:udp?endpoint=localhost:12345", "aeron:udp?endpoint=localhost:0", "127.0.0.1:12345"); + AssertSubstitution( + "aeron:udp?endpoint=localhost:12345", + "aeron:udp?endpoint=localhost:0", + "localhost:12345" + ); + AssertSubstitution( + "aeron:udp?endpoint=localhost:12345", + "aeron:udp?endpoint=localhost:12345", + "localhost:54321" + ); + AssertSubstitution( + "aeron:udp?endpoint=localhost:12345", + "aeron:udp?endpoint=localhost:0", + "127.0.0.1:12345" + ); AssertSubstitution("aeron:udp?endpoint=127.0.0.1:12345", "aeron:udp", "127.0.0.1:12345"); } @@ -40,7 +46,7 @@ public void ShouldSubstituteEndpoint() public void ShouldThrowIfResolvedEndpointInvalid() { ChannelUri uri = ChannelUri.Parse("aeron:udp?endpoint=localhost:0"); - + Assert.Throws(typeof(ArgumentException), () => uri.ReplaceEndpointWildcardPort("localhost:0")); Assert.Throws(typeof(ArgumentException), () => uri.ReplaceEndpointWildcardPort("localhost")); Assert.Throws(typeof(ArgumentNullException), () => uri.ReplaceEndpointWildcardPort(null)); @@ -53,4 +59,4 @@ private static void AssertSubstitution(string expected, string originalChannel, Assert.AreEqual(expected, uri.ToString()); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/ClientConductorTest.cs b/src/Adaptive.Aeron.Tests/ClientConductorTest.cs index b7cde805..c124718c 100644 --- a/src/Adaptive.Aeron.Tests/ClientConductorTest.cs +++ b/src/Adaptive.Aeron.Tests/ClientConductorTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,62 +30,62 @@ namespace Adaptive.Aeron.Tests { public class ClientConductorTest { - private static readonly int TERM_BUFFER_LENGTH = LogBufferDescriptor.TERM_MIN_LENGTH; + private static readonly int TermBufferLength = LogBufferDescriptor.TERM_MIN_LENGTH; - private const int SESSION_ID_1 = 13; - private const int SESSION_ID_2 = 15; + private const int SessionId1 = 13; + private const int SessionId2 = 15; - private const string CHANNEL = "aeron:udp?endpoint=localhost:40124"; - private const int STREAM_ID_1 = 1002; - private const int STREAM_ID_2 = 1004; - private const int SEND_BUFFER_CAPACITY = 1024; - private const int COUNTER_BUFFER_LENGTH = 512 * 1024; + private const string Channel = "aeron:udp?endpoint=localhost:40124"; + private const int StreamId1 = 1002; + private const int StreamId2 = 1004; + private const int SendBufferCapacity = 1024; + private const int CounterBufferLength = 512 * 1024; - private const long CORRELATION_ID = 2000; - private const long CORRELATION_ID_2 = 2002; - private const long CLOSE_CORRELATION_ID = 2001; - private const long UNKNOWN_CORRELATION_ID = 3000; + private const long CorrelationId = 2000; + private const long CorrelationId2 = 2002; + private const long CloseCorrelationId = 2001; + private const long UnknownCorrelationId = 3000; - private static readonly long KEEP_ALIVE_INTERVAL = NanoUtil.FromMilliseconds(500); - private const long AWAIT_TIMEOUT = 100; - private const long INTER_SERVICE_TIMEOUT_MS = 1000; + private static readonly long KeepAliveInterval = NanoUtil.FromMilliseconds(500); + private const long AwaitTimeout = 100; + private const long InterServiceTimeoutMs = 1000; - private const int SUBSCRIPTION_POSITION_ID = 2; - private const int SUBSCRIPTION_POSITION_REGISTRATION_ID = 4001; + private const int SubscriptionPositionId = 2; + private const int SubscriptionPositionRegistrationId = 4001; - private const string SOURCE_INFO = "127.0.0.1:40789"; + private const string SourceInfo = "127.0.0.1:40789"; - private PublicationBuffersReadyFlyweight PublicationReady; - private SubscriptionReadyFlyweight SubscriptionReady; - private OperationSucceededFlyweight OperationSuccess; - private ErrorResponseFlyweight ErrorResponse; - private ClientTimeoutFlyweight ClientTimeout; + private PublicationBuffersReadyFlyweight _publicationReady; + private SubscriptionReadyFlyweight _subscriptionReady; + private OperationSucceededFlyweight _operationSuccess; + private ErrorResponseFlyweight _errorResponse; + private ClientTimeoutFlyweight _clientTimeout; - private UnsafeBuffer PublicationReadyBuffer; - private UnsafeBuffer SubscriptionReadyBuffer; - private UnsafeBuffer OperationSuccessBuffer; - private UnsafeBuffer ErrorMessageBuffer; - private UnsafeBuffer ClientTimeoutBuffer; + private UnsafeBuffer _publicationReadyBuffer; + private UnsafeBuffer _subscriptionReadyBuffer; + private UnsafeBuffer _operationSuccessBuffer; + private UnsafeBuffer _errorMessageBuffer; + private UnsafeBuffer _clientTimeoutBuffer; - private CopyBroadcastReceiver MockToClientReceiver; + private CopyBroadcastReceiver _mockToClientReceiver; - private UnsafeBuffer CounterValuesBuffer; - private UnsafeBuffer CounterMetaDataBuffer; + private UnsafeBuffer _counterValuesBuffer; + private UnsafeBuffer _counterMetaDataBuffer; - private readonly TestEpochClock EpochClock = new TestEpochClock(); - private readonly TestNanoClock NanoClock = new TestNanoClock(); - private IErrorHandler MockClientErrorHandler; + private readonly TestEpochClock _epochClock = new TestEpochClock(); + private readonly TestNanoClock _nanoClock = new TestNanoClock(); + private IErrorHandler _mockClientErrorHandler; - private ClientConductor Conductor; - private DriverProxy DriverProxy; - private AvailableImageHandler MockAvailableImageHandler; - private UnavailableImageHandler MockUnavailableImageHandler; - private Action MockCloseHandler; - private ILogBuffersFactory LogBuffersFactory; - private ILock mockClientLock = A.Fake(); - private Aeron MockAeron; + private ClientConductor _conductor; + private DriverProxy _driverProxy; + private AvailableImageHandler _mockAvailableImageHandler; + private UnavailableImageHandler _mockUnavailableImageHandler; + private Action _mockCloseHandler; + private ILogBuffersFactory _logBuffersFactory; + private ILock _mockClientLock = A.Fake(); + private Aeron _mockAeron; - private bool SuppressPrintError = false; + private bool _suppressPrintError = false; private class PrintingErrorHandler : IErrorHandler { @@ -98,7 +98,7 @@ public PrintingErrorHandler(ClientConductorTest test) public void OnError(Exception throwable) { - if (!_test.SuppressPrintError) + if (!_test._suppressPrintError) { Console.WriteLine(throwable.ToString()); Console.Write(throwable.StackTrace); @@ -109,91 +109,93 @@ public void OnError(Exception throwable) [SetUp] public void SetUp() { - MockClientErrorHandler = A.Fake(options => options.Wrapping(new PrintingErrorHandler(this))); + _mockClientErrorHandler = A.Fake(options => + options.Wrapping(new PrintingErrorHandler(this)) + ); - PublicationReady = new PublicationBuffersReadyFlyweight(); - SubscriptionReady = new SubscriptionReadyFlyweight(); - OperationSuccess = new OperationSucceededFlyweight(); - ErrorResponse = new ErrorResponseFlyweight(); - ClientTimeout = new ClientTimeoutFlyweight(); + _publicationReady = new PublicationBuffersReadyFlyweight(); + _subscriptionReady = new SubscriptionReadyFlyweight(); + _operationSuccess = new OperationSucceededFlyweight(); + _errorResponse = new ErrorResponseFlyweight(); + _clientTimeout = new ClientTimeoutFlyweight(); - PublicationReadyBuffer = new UnsafeBuffer(new byte[SEND_BUFFER_CAPACITY]); - SubscriptionReadyBuffer = new UnsafeBuffer(new byte[SEND_BUFFER_CAPACITY]); - OperationSuccessBuffer = new UnsafeBuffer(new byte[SEND_BUFFER_CAPACITY]); - ErrorMessageBuffer = new UnsafeBuffer(new byte[SEND_BUFFER_CAPACITY]); - ClientTimeoutBuffer = new UnsafeBuffer(new byte[SEND_BUFFER_CAPACITY]); + _publicationReadyBuffer = new UnsafeBuffer(new byte[SendBufferCapacity]); + _subscriptionReadyBuffer = new UnsafeBuffer(new byte[SendBufferCapacity]); + _operationSuccessBuffer = new UnsafeBuffer(new byte[SendBufferCapacity]); + _errorMessageBuffer = new UnsafeBuffer(new byte[SendBufferCapacity]); + _clientTimeoutBuffer = new UnsafeBuffer(new byte[SendBufferCapacity]); - CounterValuesBuffer = new UnsafeBuffer(new byte[COUNTER_BUFFER_LENGTH]); - CounterMetaDataBuffer = new UnsafeBuffer(new byte[COUNTER_BUFFER_LENGTH]); + _counterValuesBuffer = new UnsafeBuffer(new byte[CounterBufferLength]); + _counterMetaDataBuffer = new UnsafeBuffer(new byte[CounterBufferLength]); - MockToClientReceiver = A.Fake(); + _mockToClientReceiver = A.Fake(); - MockAvailableImageHandler = A.Fake(); - MockUnavailableImageHandler = A.Fake(); - MockCloseHandler = A.Fake(); + _mockAvailableImageHandler = A.Fake(); + _mockUnavailableImageHandler = A.Fake(); + _mockCloseHandler = A.Fake(); - LogBuffersFactory = A.Fake(); + _logBuffersFactory = A.Fake(); - DriverProxy = A.Fake(); + _driverProxy = A.Fake(); - MockAeron = A.Fake(); + _mockAeron = A.Fake(); - A.CallTo(() => mockClientLock.TryLock()).Returns(true); + A.CallTo(() => _mockClientLock.TryLock()).Returns(true); - A.CallTo(() => DriverProxy.AddPublication(CHANNEL, STREAM_ID_1)).Returns(CORRELATION_ID); - A.CallTo(() => DriverProxy.AddPublication(CHANNEL, STREAM_ID_2)).Returns(CORRELATION_ID_2); - A.CallTo(() => DriverProxy.RemovePublication(CORRELATION_ID, false)).Returns(CLOSE_CORRELATION_ID); - A.CallTo(() => DriverProxy.AddSubscription(A._, A._)).Returns(CORRELATION_ID); - A.CallTo(() => DriverProxy.RemoveSubscription(CORRELATION_ID)).Returns(CLOSE_CORRELATION_ID); + A.CallTo(() => _driverProxy.AddPublication(Channel, StreamId1)).Returns(CorrelationId); + A.CallTo(() => _driverProxy.AddPublication(Channel, StreamId2)).Returns(CorrelationId2); + A.CallTo(() => _driverProxy.RemovePublication(CorrelationId, false)).Returns(CloseCorrelationId); + A.CallTo(() => _driverProxy.AddSubscription(A._, A._)).Returns(CorrelationId); + A.CallTo(() => _driverProxy.RemoveSubscription(CorrelationId)).Returns(CloseCorrelationId); Aeron.Context ctx = new Aeron.Context() - .ClientLock(mockClientLock) - .EpochClock(EpochClock) - .NanoClock(NanoClock) + .ClientLock(_mockClientLock) + .EpochClock(_epochClock) + .NanoClock(_nanoClock) .AwaitingIdleStrategy(new NoOpIdleStrategy()) - .ToClientBuffer(MockToClientReceiver) - .DriverProxy(DriverProxy) - .LogBuffersFactory(LogBuffersFactory) - .ErrorHandler(MockClientErrorHandler) - .AvailableImageHandler(MockAvailableImageHandler) - .UnavailableImageHandler(MockUnavailableImageHandler) - .CloseHandler(MockCloseHandler) - .KeepAliveIntervalNs(KEEP_ALIVE_INTERVAL) - .DriverTimeoutMs(AWAIT_TIMEOUT) - .InterServiceTimeoutNs(INTER_SERVICE_TIMEOUT_MS * 1000000) - .CountersValuesBuffer(CounterValuesBuffer) - .CountersMetaDataBuffer(CounterMetaDataBuffer); - - Conductor = new ClientConductor(ctx, MockAeron); - - PublicationReady.Wrap(PublicationReadyBuffer, 0); - SubscriptionReady.Wrap(SubscriptionReadyBuffer, 0); - OperationSuccess.Wrap(OperationSuccessBuffer, 0); - ErrorResponse.Wrap(ErrorMessageBuffer, 0); - ClientTimeout.Wrap(ClientTimeoutBuffer, 0); - - PublicationReady.CorrelationId(CORRELATION_ID); - PublicationReady.RegistrationId(CORRELATION_ID); - PublicationReady.SessionId(SESSION_ID_1); - PublicationReady.StreamId(STREAM_ID_1); - PublicationReady.LogFileName(SESSION_ID_1 + "-log"); - - OperationSuccess.CorrelationId(CLOSE_CORRELATION_ID); + .ToClientBuffer(_mockToClientReceiver) + .DriverProxy(_driverProxy) + .LogBuffersFactory(_logBuffersFactory) + .ErrorHandler(_mockClientErrorHandler) + .AvailableImageHandler(_mockAvailableImageHandler) + .UnavailableImageHandler(_mockUnavailableImageHandler) + .CloseHandler(_mockCloseHandler) + .KeepAliveIntervalNs(KeepAliveInterval) + .DriverTimeoutMs(AwaitTimeout) + .InterServiceTimeoutNs(InterServiceTimeoutMs * 1000000) + .CountersValuesBuffer(_counterValuesBuffer) + .CountersMetaDataBuffer(_counterMetaDataBuffer); + + _conductor = new ClientConductor(ctx, _mockAeron); + + _publicationReady.Wrap(_publicationReadyBuffer, 0); + _subscriptionReady.Wrap(_subscriptionReadyBuffer, 0); + _operationSuccess.Wrap(_operationSuccessBuffer, 0); + _errorResponse.Wrap(_errorMessageBuffer, 0); + _clientTimeout.Wrap(_clientTimeoutBuffer, 0); + + _publicationReady.CorrelationId(CorrelationId); + _publicationReady.RegistrationId(CorrelationId); + _publicationReady.SessionId(SessionId1); + _publicationReady.StreamId(StreamId1); + _publicationReady.LogFileName(SessionId1 + "-log"); + + _operationSuccess.CorrelationId(CloseCorrelationId); var termBuffersSession1 = new UnsafeBuffer[LogBufferDescriptor.PARTITION_COUNT]; var termBuffersSession2 = new UnsafeBuffer[LogBufferDescriptor.PARTITION_COUNT]; for (var i = 0; i < LogBufferDescriptor.PARTITION_COUNT; i++) { - termBuffersSession1[i] = new UnsafeBuffer(new byte[TERM_BUFFER_LENGTH]); - termBuffersSession2[i] = new UnsafeBuffer(new byte[TERM_BUFFER_LENGTH]); + termBuffersSession1[i] = new UnsafeBuffer(new byte[TermBufferLength]); + termBuffersSession2[i] = new UnsafeBuffer(new byte[TermBufferLength]); } - UnsafeBuffer logMetaDataSession1 = new UnsafeBuffer(new byte[TERM_BUFFER_LENGTH]); - UnsafeBuffer logMetaDataSession2 = new UnsafeBuffer(new byte[TERM_BUFFER_LENGTH]); + UnsafeBuffer logMetaDataSession1 = new UnsafeBuffer(new byte[TermBufferLength]); + UnsafeBuffer logMetaDataSession2 = new UnsafeBuffer(new byte[TermBufferLength]); - IMutableDirectBuffer header1 = DataHeaderFlyweight.CreateDefaultHeader(SESSION_ID_1, STREAM_ID_1, 0); - IMutableDirectBuffer header2 = DataHeaderFlyweight.CreateDefaultHeader(SESSION_ID_2, STREAM_ID_2, 0); + IMutableDirectBuffer header1 = DataHeaderFlyweight.CreateDefaultHeader(SessionId1, StreamId1, 0); + IMutableDirectBuffer header2 = DataHeaderFlyweight.CreateDefaultHeader(SessionId2, StreamId2, 0); LogBufferDescriptor.StoreDefaultFrameHeader(logMetaDataSession1, header1); LogBufferDescriptor.StoreDefaultFrameHeader(logMetaDataSession2, header2); @@ -201,8 +203,8 @@ public void SetUp() var logBuffersSession1 = A.Fake(); var logBuffersSession2 = A.Fake(); - A.CallTo(() => LogBuffersFactory.Map(SESSION_ID_1 + "-log")).Returns(logBuffersSession1); - A.CallTo(() => LogBuffersFactory.Map(SESSION_ID_2 + "-log")).Returns(logBuffersSession2); + A.CallTo(() => _logBuffersFactory.Map(SessionId1 + "-log")).Returns(logBuffersSession1); + A.CallTo(() => _logBuffersFactory.Map(SessionId2 + "-log")).Returns(logBuffersSession2); A.CallTo(() => logBuffersSession1.DuplicateTermBuffers()).Returns(termBuffersSession1); A.CallTo(() => logBuffersSession2.DuplicateTermBuffers()).Returns(termBuffersSession2); @@ -210,8 +212,8 @@ public void SetUp() A.CallTo(() => logBuffersSession1.MetaDataBuffer()).Returns(logMetaDataSession1); A.CallTo(() => logBuffersSession2.MetaDataBuffer()).Returns(logMetaDataSession2); - A.CallTo(() => logBuffersSession1.TermLength()).Returns(TERM_BUFFER_LENGTH); - A.CallTo(() => logBuffersSession2.TermLength()).Returns(TERM_BUFFER_LENGTH); + A.CallTo(() => logBuffersSession1.TermLength()).Returns(TermBufferLength); + A.CallTo(() => logBuffersSession2.TermLength()).Returns(TermBufferLength); } // -------------------------------- @@ -221,65 +223,86 @@ public void SetUp() [Test] public void AddPublicationShouldNotifyMediaDriver() { - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_PUBLICATION_READY, PublicationReadyBuffer, - buffer => PublicationReady.Length()); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_PUBLICATION_READY, + _publicationReadyBuffer, + buffer => _publicationReady.Length() + ); - Conductor.AddPublication(CHANNEL, STREAM_ID_1); + _conductor.AddPublication(Channel, StreamId1); - A.CallTo(() => DriverProxy.AddPublication(CHANNEL, STREAM_ID_1)).MustHaveHappened(); + A.CallTo(() => _driverProxy.AddPublication(Channel, StreamId1)).MustHaveHappened(); } [Test] public void AddPublicationShouldMapLogFile() { - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_PUBLICATION_READY, PublicationReadyBuffer, - buffer => PublicationReady.Length()); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_PUBLICATION_READY, + _publicationReadyBuffer, + buffer => _publicationReady.Length() + ); - Conductor.AddPublication(CHANNEL, STREAM_ID_1); + _conductor.AddPublication(Channel, StreamId1); - A.CallTo(() => LogBuffersFactory.Map(SESSION_ID_1 + "-log")).MustHaveHappened(); + A.CallTo(() => _logBuffersFactory.Map(SessionId1 + "-log")).MustHaveHappened(); } [Test] [Timeout(5000)] public void AddPublicationShouldTimeoutWithoutReadyMessage() { - Assert.Throws(typeof(DriverTimeoutException), () => Conductor.AddPublication(CHANNEL, STREAM_ID_1)); + Assert.Throws(typeof(DriverTimeoutException), () => _conductor.AddPublication(Channel, StreamId1)); } [Test] public void ClosingPublicationShouldNotifyMediaDriver() { - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_PUBLICATION_READY, PublicationReadyBuffer, - buffer => PublicationReady.Length()); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_PUBLICATION_READY, + _publicationReadyBuffer, + buffer => _publicationReady.Length() + ); - var publication = Conductor.AddPublication(CHANNEL, STREAM_ID_1); + var publication = _conductor.AddPublication(Channel, StreamId1); - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_OPERATION_SUCCESS, OperationSuccessBuffer, - buffer => OperationSucceededFlyweight.LENGTH); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_OPERATION_SUCCESS, + _operationSuccessBuffer, + buffer => OperationSucceededFlyweight.LENGTH + ); publication.Dispose(); - A.CallTo(() => DriverProxy.RemovePublication(CORRELATION_ID, false)).MustHaveHappened(); + A.CallTo(() => _driverProxy.RemovePublication(CorrelationId, false)).MustHaveHappened(); } [Test] public void ClosingPublicationShouldPurgeCache() { - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_PUBLICATION_READY, PublicationReadyBuffer, - buffer => PublicationReady.Length()); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_PUBLICATION_READY, + _publicationReadyBuffer, + buffer => _publicationReady.Length() + ); - var firstPublication = Conductor.AddPublication(CHANNEL, STREAM_ID_1); + var firstPublication = _conductor.AddPublication(Channel, StreamId1); - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_OPERATION_SUCCESS, OperationSuccessBuffer, - buffer => OperationSucceededFlyweight.LENGTH); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_OPERATION_SUCCESS, + _operationSuccessBuffer, + buffer => OperationSucceededFlyweight.LENGTH + ); firstPublication.Dispose(); - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_PUBLICATION_READY, PublicationReadyBuffer, - buffer => PublicationReady.Length()); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_PUBLICATION_READY, + _publicationReadyBuffer, + buffer => _publicationReady.Length() + ); - var secondPublication = Conductor.AddPublication(CHANNEL, STREAM_ID_1); + var secondPublication = _conductor.AddPublication(Channel, StreamId1); Assert.AreNotSame(firstPublication, secondPublication); } @@ -287,67 +310,89 @@ public void ClosingPublicationShouldPurgeCache() [Test] public void ShouldFailToAddPublicationOnMediaDriverError() { - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_ERROR, ErrorMessageBuffer, buffer => - { - ErrorResponse.ErrorCode(ErrorCode.INVALID_CHANNEL); - ErrorResponse.ErrorMessage("invalid channel"); - ErrorResponse.OffendingCommandCorrelationId(CORRELATION_ID); - return ErrorResponse.Length(); - }); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_ERROR, + _errorMessageBuffer, + buffer => + { + _errorResponse.ErrorCode(ErrorCode.INVALID_CHANNEL); + _errorResponse.ErrorMessage("invalid channel"); + _errorResponse.OffendingCommandCorrelationId(CorrelationId); + return _errorResponse.Length(); + } + ); - Assert.Throws(typeof(RegistrationException), () => Conductor.AddPublication(CHANNEL, STREAM_ID_1)); + Assert.Throws(typeof(RegistrationException), () => _conductor.AddPublication(Channel, StreamId1)); } [Test] public void ClosingPublicationDoesNotRemoveOtherPublications() { - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_PUBLICATION_READY, PublicationReadyBuffer, - buffer => PublicationReady.Length()); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_PUBLICATION_READY, + _publicationReadyBuffer, + buffer => _publicationReady.Length() + ); - var publication = Conductor.AddPublication(CHANNEL, STREAM_ID_1); + var publication = _conductor.AddPublication(Channel, StreamId1); - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_PUBLICATION_READY, PublicationReadyBuffer, buffer => - { - PublicationReady.StreamId(STREAM_ID_2); - PublicationReady.SessionId(SESSION_ID_2); - PublicationReady.LogFileName(SESSION_ID_2 + "-log"); - PublicationReady.CorrelationId(CORRELATION_ID_2); - PublicationReady.RegistrationId(CORRELATION_ID_2); - return PublicationReady.Length(); - }); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_PUBLICATION_READY, + _publicationReadyBuffer, + buffer => + { + _publicationReady.StreamId(StreamId2); + _publicationReady.SessionId(SessionId2); + _publicationReady.LogFileName(SessionId2 + "-log"); + _publicationReady.CorrelationId(CorrelationId2); + _publicationReady.RegistrationId(CorrelationId2); + return _publicationReady.Length(); + } + ); - Conductor.AddPublication(CHANNEL, STREAM_ID_2); + _conductor.AddPublication(Channel, StreamId2); - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_OPERATION_SUCCESS, OperationSuccessBuffer, - buffer => OperationSucceededFlyweight.LENGTH); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_OPERATION_SUCCESS, + _operationSuccessBuffer, + buffer => OperationSucceededFlyweight.LENGTH + ); publication.Dispose(); - A.CallTo(() => DriverProxy.RemovePublication(CORRELATION_ID, false)).MustHaveHappened(); - A.CallTo(() => DriverProxy.RemovePublication(CORRELATION_ID_2, false)).MustNotHaveHappened(); + A.CallTo(() => _driverProxy.RemovePublication(CorrelationId, false)).MustHaveHappened(); + A.CallTo(() => _driverProxy.RemovePublication(CorrelationId2, false)).MustNotHaveHappened(); } [Test] public void ShouldNotMapBuffersForUnknownCorrelationId() { - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_PUBLICATION_READY, PublicationReadyBuffer, buffer => - { - PublicationReady.CorrelationId(UNKNOWN_CORRELATION_ID); - PublicationReady.RegistrationId(UNKNOWN_CORRELATION_ID); - return PublicationReady.Length(); - }); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_PUBLICATION_READY, + _publicationReadyBuffer, + buffer => + { + _publicationReady.CorrelationId(UnknownCorrelationId); + _publicationReady.RegistrationId(UnknownCorrelationId); + return _publicationReady.Length(); + } + ); - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_PUBLICATION_READY, PublicationReadyBuffer, buffer => - { - PublicationReady.CorrelationId(CORRELATION_ID); - return PublicationReady.Length(); - }); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_PUBLICATION_READY, + _publicationReadyBuffer, + buffer => + { + _publicationReady.CorrelationId(CorrelationId); + return _publicationReady.Length(); + } + ); - var publication = Conductor.AddPublication(CHANNEL, STREAM_ID_1); - Conductor.DoWork(); + var publication = _conductor.AddPublication(Channel, StreamId1); + _conductor.DoWork(); - A.CallTo(() => LogBuffersFactory.Map(A._)).MustHaveHappened(1, Times.Exactly); - Assert.AreEqual(publication.RegistrationId, CORRELATION_ID); + A.CallTo(() => _logBuffersFactory.Map(A._)).MustHaveHappened(1, Times.Exactly); + Assert.AreEqual(publication.RegistrationId, CorrelationId); } // --------------------------------- @@ -357,113 +402,135 @@ public void ShouldNotMapBuffersForUnknownCorrelationId() [Test] public void AddSubscriptionShouldNotifyMediaDriver() { - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_SUBSCRIPTION_READY, SubscriptionReadyBuffer, + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_SUBSCRIPTION_READY, + _subscriptionReadyBuffer, buffer => { - SubscriptionReady.CorrelationId(CORRELATION_ID); + _subscriptionReady.CorrelationId(CorrelationId); return SubscriptionReadyFlyweight.LENGTH; - }); + } + ); - Conductor.AddSubscription(CHANNEL, STREAM_ID_1); + _conductor.AddSubscription(Channel, StreamId1); - A.CallTo(() => DriverProxy.AddSubscription(CHANNEL, STREAM_ID_1)).MustHaveHappened(); + A.CallTo(() => _driverProxy.AddSubscription(Channel, StreamId1)).MustHaveHappened(); } [Test] public void ClosingSubscriptionShouldNotifyMediaDriver() { - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_SUBSCRIPTION_READY, SubscriptionReadyBuffer, + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_SUBSCRIPTION_READY, + _subscriptionReadyBuffer, buffer => { - SubscriptionReady.CorrelationId(CORRELATION_ID); + _subscriptionReady.CorrelationId(CorrelationId); return SubscriptionReadyFlyweight.LENGTH; - }); + } + ); - var subscription = Conductor.AddSubscription(CHANNEL, STREAM_ID_1); + var subscription = _conductor.AddSubscription(Channel, StreamId1); - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_OPERATION_SUCCESS, OperationSuccessBuffer, buffer => - { - OperationSuccess.CorrelationId(CLOSE_CORRELATION_ID); - return OperationSucceededFlyweight.LENGTH; - }); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_OPERATION_SUCCESS, + _operationSuccessBuffer, + buffer => + { + _operationSuccess.CorrelationId(CloseCorrelationId); + return OperationSucceededFlyweight.LENGTH; + } + ); subscription.Dispose(); - A.CallTo(() => DriverProxy.RemoveSubscription(CORRELATION_ID)).MustHaveHappened(); + A.CallTo(() => _driverProxy.RemoveSubscription(CorrelationId)).MustHaveHappened(); } [Test] [Timeout(5000)] public void AddSubscriptionShouldTimeoutWithoutOperationSuccessful() { - Assert.Throws(typeof(DriverTimeoutException), () => Conductor.AddSubscription(CHANNEL, STREAM_ID_1)); + Assert.Throws(typeof(DriverTimeoutException), () => _conductor.AddSubscription(Channel, StreamId1)); } [Test] public void ShouldFailToAddSubscriptionOnMediaDriverError() { - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_ERROR, ErrorMessageBuffer, buffer => - { - ErrorResponse.ErrorCode(ErrorCode.INVALID_CHANNEL); - ErrorResponse.ErrorMessage("invalid channel"); - ErrorResponse.OffendingCommandCorrelationId(CORRELATION_ID); - return ErrorResponse.Length(); - }); + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_ERROR, + _errorMessageBuffer, + buffer => + { + _errorResponse.ErrorCode(ErrorCode.INVALID_CHANNEL); + _errorResponse.ErrorMessage("invalid channel"); + _errorResponse.OffendingCommandCorrelationId(CorrelationId); + return _errorResponse.Length(); + } + ); - Assert.Throws(typeof(RegistrationException), () => Conductor.AddSubscription(CHANNEL, STREAM_ID_1)); + Assert.Throws(typeof(RegistrationException), () => _conductor.AddSubscription(Channel, StreamId1)); } [Test] public void ClientNotifiedOfNewImageShouldMapLogFile() { - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_SUBSCRIPTION_READY, SubscriptionReadyBuffer, + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_SUBSCRIPTION_READY, + _subscriptionReadyBuffer, buffer => { - SubscriptionReady.CorrelationId(CORRELATION_ID); + _subscriptionReady.CorrelationId(CorrelationId); return SubscriptionReadyFlyweight.LENGTH; - }); + } + ); - Subscription subscription = Conductor.AddSubscription(CHANNEL, STREAM_ID_1); + Subscription subscription = _conductor.AddSubscription(Channel, StreamId1); - Conductor.OnAvailableImage( - CORRELATION_ID, - SESSION_ID_1, + _conductor.OnAvailableImage( + CorrelationId, + SessionId1, subscription.RegistrationId, - SUBSCRIPTION_POSITION_ID, - SESSION_ID_1 + "-log", - SOURCE_INFO); + SubscriptionPositionId, + SessionId1 + "-log", + SourceInfo + ); - A.CallTo(() => LogBuffersFactory.Map(SESSION_ID_1 + "-log")).MustHaveHappened(); + A.CallTo(() => _logBuffersFactory.Map(SessionId1 + "-log")).MustHaveHappened(); } [Test] public void ClientNotifiedOfNewAndInactiveImages() { - WhenReceiveBroadcastOnMessage(ControlProtocolEvents.ON_SUBSCRIPTION_READY, SubscriptionReadyBuffer, + WhenReceiveBroadcastOnMessage( + ControlProtocolEvents.ON_SUBSCRIPTION_READY, + _subscriptionReadyBuffer, buffer => { - SubscriptionReady.CorrelationId(CORRELATION_ID); + _subscriptionReady.CorrelationId(CorrelationId); return SubscriptionReadyFlyweight.LENGTH; - }); + } + ); - var subscription = Conductor.AddSubscription(CHANNEL, STREAM_ID_1); + var subscription = _conductor.AddSubscription(Channel, StreamId1); - Conductor.OnAvailableImage( - CORRELATION_ID, - SESSION_ID_1, + _conductor.OnAvailableImage( + CorrelationId, + SessionId1, subscription.RegistrationId, - SUBSCRIPTION_POSITION_ID, - SESSION_ID_1 + "-log", - SOURCE_INFO); + SubscriptionPositionId, + SessionId1 + "-log", + SourceInfo + ); Assert.False(subscription.HasNoImages); Assert.True(subscription.IsConnected); - A.CallTo(() => MockAvailableImageHandler(A._)).MustHaveHappened(); + A.CallTo(() => _mockAvailableImageHandler(A._)).MustHaveHappened(); - Conductor.OnUnavailableImage(CORRELATION_ID, subscription.RegistrationId); + _conductor.OnUnavailableImage(CorrelationId, subscription.RegistrationId); - A.CallTo(() => MockUnavailableImageHandler(A._)).MustHaveHappened(); + A.CallTo(() => _mockUnavailableImageHandler(A._)).MustHaveHappened(); Assert.True(subscription.HasNoImages); Assert.False(subscription.IsConnected); @@ -472,55 +539,56 @@ public void ClientNotifiedOfNewAndInactiveImages() [Test] public void ShouldIgnoreUnknownNewImage() { - Conductor.OnAvailableImage( - CORRELATION_ID_2, - SESSION_ID_2, - SUBSCRIPTION_POSITION_REGISTRATION_ID, - SUBSCRIPTION_POSITION_ID, - SESSION_ID_2 + "-log", - SOURCE_INFO); - - A.CallTo(() => LogBuffersFactory.Map(A._)).MustNotHaveHappened(); - A.CallTo(() => MockAvailableImageHandler(A._)).MustNotHaveHappened(); + _conductor.OnAvailableImage( + CorrelationId2, + SessionId2, + SubscriptionPositionRegistrationId, + SubscriptionPositionId, + SessionId2 + "-log", + SourceInfo + ); + + A.CallTo(() => _logBuffersFactory.Map(A._)).MustNotHaveHappened(); + A.CallTo(() => _mockAvailableImageHandler(A._)).MustNotHaveHappened(); } [Test] public void ShouldIgnoreUnknownInactiveImage() { - Conductor.OnUnavailableImage(CORRELATION_ID_2, SUBSCRIPTION_POSITION_REGISTRATION_ID); + _conductor.OnUnavailableImage(CorrelationId2, SubscriptionPositionRegistrationId); - A.CallTo(() => LogBuffersFactory.Map(A._)).MustNotHaveHappened(); - A.CallTo(() => MockAvailableImageHandler(A._)).MustNotHaveHappened(); + A.CallTo(() => _logBuffersFactory.Map(A._)).MustNotHaveHappened(); + A.CallTo(() => _mockAvailableImageHandler(A._)).MustNotHaveHappened(); } [Test] public void ShouldTimeoutInterServiceIfTooLongBetweenDoWorkCalls() { - SuppressPrintError = true; + _suppressPrintError = true; - Conductor.DoWork(); - NanoClock.AdvanceMillis(INTER_SERVICE_TIMEOUT_MS); - NanoClock.AdvancedNanos(1); - Conductor.DoWork(); + _conductor.DoWork(); + _nanoClock.AdvanceMillis(InterServiceTimeoutMs); + _nanoClock.AdvancedNanos(1); + _conductor.DoWork(); - A.CallTo(() => MockClientErrorHandler.OnError(A._)).MustHaveHappened(); + A.CallTo(() => _mockClientErrorHandler.OnError(A._)).MustHaveHappened(); - Assert.True(Conductor.IsTerminating()); + Assert.True(_conductor.IsTerminating()); } [Test] public void ShouldTerminateAndErrorOnClientTimeoutFromDriver() { - SuppressPrintError = true; + _suppressPrintError = true; - Conductor.OnClientTimeout(); + _conductor.OnClientTimeout(); - A.CallTo(() => MockClientErrorHandler.OnError(A._)).MustHaveHappened(); + A.CallTo(() => _mockClientErrorHandler.OnError(A._)).MustHaveHappened(); bool threwException = false; try { - Conductor.DoWork(); + _conductor.DoWork(); } catch (AgentTerminationException) { @@ -528,10 +596,10 @@ public void ShouldTerminateAndErrorOnClientTimeoutFromDriver() } Assert.True(threwException); - Assert.True(Conductor.IsTerminating()); + Assert.True(_conductor.IsTerminating()); - Conductor.OnClose(); - A.CallTo(() => MockCloseHandler.Invoke()).MustHaveHappened(); + _conductor.OnClose(); + A.CallTo(() => _mockCloseHandler.Invoke()).MustHaveHappened(); } [Test] @@ -539,28 +607,33 @@ public void ShouldNotCloseAndErrorOnClientTimeoutForAnotherClientIdFromDriver() { WhenReceiveBroadcastOnMessage( ControlProtocolEvents.ON_CLIENT_TIMEOUT, - ClientTimeoutBuffer, + _clientTimeoutBuffer, buffer => { - ClientTimeout.ClientId(Conductor.DriverListenerAdapter().ClientId + 1); + _clientTimeout.ClientId(_conductor.DriverListenerAdapter().ClientId + 1); return ClientTimeoutFlyweight.LENGTH; - }); + } + ); - Conductor.DoWork(); + _conductor.DoWork(); - A.CallTo(() => MockClientErrorHandler.OnError(A._)).MustNotHaveHappened(); + A.CallTo(() => _mockClientErrorHandler.OnError(A._)).MustNotHaveHappened(); - Assert.False(Conductor.IsClosed()); + Assert.False(_conductor.IsClosed()); } - private void WhenReceiveBroadcastOnMessage(int msgTypeId, IMutableDirectBuffer buffer, - Func filler) + private void WhenReceiveBroadcastOnMessage( + int msgTypeId, + IMutableDirectBuffer buffer, + Func filler + ) { - A.CallTo(() => MockToClientReceiver.Receive(A._)).Invokes(() => - { - var length = filler(buffer); - Conductor.DriverListenerAdapter().OnMessage(msgTypeId, buffer, 0, length); - }); + A.CallTo(() => _mockToClientReceiver.Receive(A._)) + .Invokes(() => + { + var length = filler(buffer); + _conductor.DriverListenerAdapter().OnMessage(msgTypeId, buffer, 0, length); + }); } } @@ -593,4 +666,4 @@ public long NanoTime() return _time += 10000000; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/CncFileDescriptorTest.cs b/src/Adaptive.Aeron.Tests/CncFileDescriptorTest.cs index 5a3bafa7..b7c2b708 100644 --- a/src/Adaptive.Aeron.Tests/CncFileDescriptorTest.cs +++ b/src/Adaptive.Aeron.Tests/CncFileDescriptorTest.cs @@ -1,8 +1,24 @@ -using NUnit.Framework; -using Adaptive.Agrona.Util; -using Adaptive.Agrona.Concurrent; -using Adaptive.Agrona; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System.IO; +using Adaptive.Agrona; +using Adaptive.Agrona.Concurrent; +using Adaptive.Agrona.Util; +using NUnit.Framework; namespace Adaptive.Aeron.Tests { @@ -22,14 +38,25 @@ public void ShouldAllocateCapacityForCounterMetadataBuffer() string aeronDir = Aeron.Context.GetAeronDirectoryName(); MappedByteBuffer cncByteBuffer = IoUtil.MapExistingFile( - Path.Combine(aeronDir, "cnc.dat"), MapMode.ReadOnly); + Path.Combine(aeronDir, "cnc.dat"), + MapMode.ReadOnly + ); UnsafeBuffer metadataBuffer = CncFileDescriptor.CreateMetaDataBuffer(cncByteBuffer); - UnsafeBuffer countersValueBuffer = CncFileDescriptor.CreateCountersValuesBuffer(cncByteBuffer, metadataBuffer); - UnsafeBuffer countersMetadataBuffer = CncFileDescriptor.CreateCountersMetaDataBuffer(cncByteBuffer, metadataBuffer); - - Assert.AreEqual(Tests.countersMetadataBufferLength(countersValueBuffer.Capacity), countersMetadataBuffer.Capacity); + UnsafeBuffer countersValueBuffer = CncFileDescriptor.CreateCountersValuesBuffer( + cncByteBuffer, + metadataBuffer + ); + UnsafeBuffer countersMetadataBuffer = CncFileDescriptor.CreateCountersMetaDataBuffer( + cncByteBuffer, + metadataBuffer + ); + + Assert.AreEqual( + Tests.CountersMetadataBufferLength(countersValueBuffer.Capacity), + countersMetadataBuffer.Capacity + ); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/Command/CounterMessageFlyweightTest.cs b/src/Adaptive.Aeron.Tests/Command/CounterMessageFlyweightTest.cs index 41393de8..775ccc23 100644 --- a/src/Adaptive.Aeron.Tests/Command/CounterMessageFlyweightTest.cs +++ b/src/Adaptive.Aeron.Tests/Command/CounterMessageFlyweightTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron.Command; using Adaptive.Agrona; using Adaptive.Agrona.Concurrent; @@ -7,41 +23,45 @@ namespace Adaptive.Aeron.Tests.Command { public class CounterMessageFlyweightTest { - private readonly UnsafeBuffer buffer = new UnsafeBuffer(new byte[128]); - private readonly CounterMessageFlyweight flyweight = new CounterMessageFlyweight(); + private readonly UnsafeBuffer _buffer = new UnsafeBuffer(new byte[128]); + private readonly CounterMessageFlyweight _flyweight = new CounterMessageFlyweight(); [Test] public void KeyBuffer() { const int offset = 24; - buffer.SetMemory(0, offset, 15); - flyweight.Wrap(buffer, offset); + _buffer.SetMemory(0, offset, 15); + _flyweight.Wrap(_buffer, offset); - flyweight.KeyBuffer(NewBuffer(16), 4, 8); + _flyweight.KeyBuffer(NewBuffer(16), 4, 8); - Assert.AreEqual(8, flyweight.KeyBufferLength()); - Assert.AreEqual(CounterMessageFlyweight.KEY_BUFFER_OFFSET, flyweight.KeyBufferOffset()); + Assert.AreEqual(8, _flyweight.KeyBufferLength()); + Assert.AreEqual(CounterMessageFlyweight.KeyBufferFieldOffset, _flyweight.KeyBufferOffset()); } [Test] public void LabelBuffer() { const int offset = 40; - buffer.SetMemory(0, offset, 0xFF); - flyweight.Wrap(buffer, offset); - flyweight.KeyBuffer(NewBuffer(16), 6, 9); + _buffer.SetMemory(0, offset, 0xFF); + _flyweight.Wrap(_buffer, offset); + _flyweight.KeyBuffer(NewBuffer(16), 6, 9); - flyweight.LabelBuffer(NewBuffer(32), 2, 21); + _flyweight.LabelBuffer(NewBuffer(32), 2, 21); - Assert.AreEqual(21, flyweight.LabelBufferLength()); - Assert.AreEqual(CounterMessageFlyweight.KEY_BUFFER_OFFSET + 16, flyweight.LabelBufferOffset()); - Assert.AreEqual(CounterMessageFlyweight.KEY_BUFFER_OFFSET + 37, flyweight.Length()); + Assert.AreEqual(21, _flyweight.LabelBufferLength()); + Assert.AreEqual(CounterMessageFlyweight.KeyBufferFieldOffset + 16, _flyweight.LabelBufferOffset()); + Assert.AreEqual(CounterMessageFlyweight.KeyBufferFieldOffset + 37, _flyweight.Length()); } private static IDirectBuffer NewBuffer(int length) { var bytes = new byte[length]; - for (int i = 0; i < length; i++) bytes[i] = 1; + for (int i = 0; i < length; i++) + { + bytes[i] = 1; + } + var buffer = new UnsafeBuffer(new byte[4 + length]); buffer.PutBytes(4, bytes); return buffer; diff --git a/src/Adaptive.Aeron.Tests/Command/TerminateDriverFlyweightTest.cs b/src/Adaptive.Aeron.Tests/Command/TerminateDriverFlyweightTest.cs index 5d2fab29..c5eb8335 100644 --- a/src/Adaptive.Aeron.Tests/Command/TerminateDriverFlyweightTest.cs +++ b/src/Adaptive.Aeron.Tests/Command/TerminateDriverFlyweightTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using Adaptive.Aeron.Command; using Adaptive.Agrona; @@ -20,8 +36,8 @@ public void TokenBuffer() flyweight.TokenBuffer(NewBuffer(16), 4, 8); Assert.AreEqual(8, flyweight.TokenBufferLength()); - Assert.AreEqual(TerminateDriverFlyweight.TOKEN_BUFFER_OFFSET, flyweight.TokenBufferOffset()); - Assert.AreEqual(TerminateDriverFlyweight.TOKEN_BUFFER_OFFSET + 8, flyweight.Length()); + Assert.AreEqual(TerminateDriverFlyweight.TokenBufferFieldOffset, flyweight.TokenBufferOffset()); + Assert.AreEqual(TerminateDriverFlyweight.TokenBufferFieldOffset + 8, flyweight.Length()); } private static IDirectBuffer NewBuffer(int length) diff --git a/src/Adaptive.Aeron.Tests/ContextText.cs b/src/Adaptive.Aeron.Tests/ContextText.cs index 4afd60a3..9d62f2db 100644 --- a/src/Adaptive.Aeron.Tests/ContextText.cs +++ b/src/Adaptive.Aeron.Tests/ContextText.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron.Exceptions; using NUnit.Framework; @@ -22,6 +38,7 @@ public void ShouldNotAllowConcludeMoreThanOnce() ctx.Conclude(); Assert.Throws(typeof(ConcurrentConcludeException), () => ctx.Conclude()); } + [Test] public void ShouldAllowConcludeOfClonedContext() { @@ -33,4 +50,4 @@ public void ShouldAllowConcludeOfClonedContext() ctx2.Conclude(); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/DriverProxyTests.cs b/src/Adaptive.Aeron.Tests/DriverProxyTests.cs index 97aff291..5408e1e9 100644 --- a/src/Adaptive.Aeron.Tests/DriverProxyTests.cs +++ b/src/Adaptive.Aeron.Tests/DriverProxyTests.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,70 +28,80 @@ public class DriverProxyTest [SetUp] public void Setup() { - conductorBuffer = new ManyToOneRingBuffer(new UnsafeBuffer(BufferUtil.AllocateDirect(RingBufferDescriptor.TrailerLength + 1024))); - conductor = new DriverProxy(conductorBuffer, CLIENT_ID); + _conductorBuffer = new ManyToOneRingBuffer( + new UnsafeBuffer(BufferUtil.AllocateDirect(RingBufferDescriptor.TrailerLength + 1024)) + ); + _conductor = new DriverProxy(_conductorBuffer, ClientId); } - - public const string CHANNEL = "aeron:udp?interface=localhost:40123|endpoint=localhost:40124"; - private const int STREAM_ID = 1001; - private const long CORRELATION_ID = 3; - private const long CLIENT_ID = 7; - private IRingBuffer conductorBuffer; - private DriverProxy conductor; + public const string Channel = "aeron:udp?interface=localhost:40123|endpoint=localhost:40124"; + + private const int StreamId = 1001; + private const long CorrelationId = 3; + private const long ClientId = 7; + private IRingBuffer _conductorBuffer; + private DriverProxy _conductor; [Test] public void ThreadSendsAddChannelMessage() { - ThreadSendsChannelMessage(() => conductor.AddPublication(CHANNEL, STREAM_ID), ControlProtocolEvents.ADD_PUBLICATION); + ThreadSendsChannelMessage( + () => _conductor.AddPublication(Channel, StreamId), + ControlProtocolEvents.ADD_PUBLICATION + ); } [Test] public void ThreadSendsRemoveChannelMessage() { - conductor.RemovePublication(CORRELATION_ID, false); - AssertReadsOneMessage((msgTypeId, buffer, index, length) => - { - RemovePublicationFlyweight message = new RemovePublicationFlyweight(); - message.Wrap(buffer, index); - Assert.AreEqual(ControlProtocolEvents.REMOVE_PUBLICATION, msgTypeId); - Assert.AreEqual(CORRELATION_ID, message.RegistrationId()); - }); + _conductor.RemovePublication(CorrelationId, false); + AssertReadsOneMessage( + (msgTypeId, buffer, index, length) => + { + RemovePublicationFlyweight message = new RemovePublicationFlyweight(); + message.Wrap(buffer, index); + Assert.AreEqual(ControlProtocolEvents.REMOVE_PUBLICATION, msgTypeId); + Assert.AreEqual(CorrelationId, message.RegistrationId()); + } + ); } private void ThreadSendsChannelMessage(Action sendMessage, int expectedMsgTypeId) { sendMessage(); - AssertReadsOneMessage((msgTypeId, buffer, index, length) => - { - PublicationMessageFlyweight publicationMessage = new PublicationMessageFlyweight(); - publicationMessage.Wrap(buffer, index); - Assert.AreEqual(expectedMsgTypeId, msgTypeId); - Assert.AreEqual(CHANNEL, publicationMessage.Channel()); - Assert.AreEqual(STREAM_ID, publicationMessage.StreamId()); - }); + AssertReadsOneMessage( + (msgTypeId, buffer, index, length) => + { + PublicationMessageFlyweight publicationMessage = new PublicationMessageFlyweight(); + publicationMessage.Wrap(buffer, index); + Assert.AreEqual(expectedMsgTypeId, msgTypeId); + Assert.AreEqual(Channel, publicationMessage.Channel()); + Assert.AreEqual(StreamId, publicationMessage.StreamId()); + } + ); } [Test] public void ThreadSendsRemoveSubscriberMessage() { - conductor.RemoveSubscription(CORRELATION_ID); + _conductor.RemoveSubscription(CorrelationId); - AssertReadsOneMessage((msgTypeId, buffer, index, length) => - { - RemoveSubscriptionFlyweight removeMessage = new RemoveSubscriptionFlyweight(); - removeMessage.Wrap(buffer, index); - Assert.AreEqual(ControlProtocolEvents.REMOVE_SUBSCRIPTION, msgTypeId); - Assert.AreEqual(CORRELATION_ID, removeMessage.RegistrationId()); - }); + AssertReadsOneMessage( + (msgTypeId, buffer, index, length) => + { + RemoveSubscriptionFlyweight removeMessage = new RemoveSubscriptionFlyweight(); + removeMessage.Wrap(buffer, index); + Assert.AreEqual(ControlProtocolEvents.REMOVE_SUBSCRIPTION, msgTypeId); + Assert.AreEqual(CorrelationId, removeMessage.RegistrationId()); + } + ); } private void AssertReadsOneMessage(MessageHandler handler) { - int messageCount = conductorBuffer.Read(handler); + int messageCount = _conductorBuffer.Read(handler); Assert.AreEqual(1, messageCount); } } - -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/EmbeddedMediaDriver.cs b/src/Adaptive.Aeron.Tests/EmbeddedMediaDriver.cs index 395cdcb3..12c8403a 100644 --- a/src/Adaptive.Aeron.Tests/EmbeddedMediaDriver.cs +++ b/src/Adaptive.Aeron.Tests/EmbeddedMediaDriver.cs @@ -1,7 +1,22 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using System.Diagnostics; using System.IO; -using System.Linq; using System.Threading; using Adaptive.Agrona.Concurrent; using NUnit.Framework; @@ -21,10 +36,17 @@ public EmbeddedMediaDriver() _aeronDir = Aeron.Context.GetAeronDirectoryName(); if (Directory.Exists(_aeronDir)) { - try { Directory.Delete(_aeronDir, recursive: true); } catch { } + try + { + Directory.Delete(_aeronDir, recursive: true); + } + catch + { + } } - var rootDir = GetSolutionDirectory(TestContext.CurrentContext.TestDirectory)?.Parent + var rootDir = + GetSolutionDirectory(TestContext.CurrentContext.TestDirectory)?.Parent ?? throw new FileNotFoundException("could not find root directory of project"); var jarPath = Path.Combine(rootDir.FullName, "driver", "media-driver.jar"); @@ -33,7 +55,7 @@ public EmbeddedMediaDriver() FileName = "java", RedirectStandardOutput = true, RedirectStandardError = true, - UseShellExecute = false + UseShellExecute = false, }; psi.ArgumentList.Add("--add-opens"); psi.ArgumentList.Add("java.base/jdk.internal.misc=ALL-UNNAMED"); @@ -46,11 +68,12 @@ public EmbeddedMediaDriver() psi.ArgumentList.Add("-cp"); psi.ArgumentList.Add(jarPath); psi.ArgumentList.Add($"-Daeron.dir={_aeronDir}"); - psi.ArgumentList.Add("-Daeron.driver.termination.validator=io.aeron.driver.DefaultAllowTerminationValidator"); + psi.ArgumentList.Add( + "-Daeron.driver.termination.validator=io.aeron.driver.DefaultAllowTerminationValidator" + ); psi.ArgumentList.Add("io.aeron.driver.MediaDriver"); - _driver = Process.Start(psi) - ?? throw new InvalidOperationException("failed to start media driver"); + _driver = Process.Start(psi) ?? throw new InvalidOperationException("failed to start media driver"); WaitForDriverReady(); } @@ -62,8 +85,7 @@ public void Dispose() try { var token = new UnsafeBuffer(Array.Empty()); - Aeron.Context.RequestDriverTermination( - new DirectoryInfo(_aeronDir), token, 0, 0); + Aeron.Context.RequestDriverTermination(new DirectoryInfo(_aeronDir), token, 0, 0); } catch { @@ -72,7 +94,13 @@ public void Dispose() if (!_driver.WaitForExit(ShutdownTimeoutMs)) { - try { _driver.Kill(entireProcessTree: true); } catch { } + try + { + _driver.Kill(entireProcessTree: true); + } + catch + { + } _driver.WaitForExit(ShutdownTimeoutMs); } _driver.Dispose(); @@ -98,14 +126,13 @@ private static void WaitForDriverReady() } } - throw new TimeoutException( - $"media driver did not become ready within {StartupTimeoutMs}ms", last); + throw new TimeoutException($"media driver did not become ready within {StartupTimeoutMs}ms", last); } private static DirectoryInfo GetSolutionDirectory(string currentPath) { var directory = new DirectoryInfo(currentPath ?? Directory.GetCurrentDirectory()); - while (directory != null && !directory.GetFiles("*.sln").Any()) + while (directory != null && directory.GetFiles("*.sln").Length == 0) { directory = directory.Parent; } diff --git a/src/Adaptive.Aeron.Tests/Exceptions/StorageSpaceExceptionTest.cs b/src/Adaptive.Aeron.Tests/Exceptions/StorageSpaceExceptionTest.cs index 1b747fa9..2e2ea096 100644 --- a/src/Adaptive.Aeron.Tests/Exceptions/StorageSpaceExceptionTest.cs +++ b/src/Adaptive.Aeron.Tests/Exceptions/StorageSpaceExceptionTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using System.Collections.Generic; using System.IO; @@ -17,15 +33,17 @@ public void IsStorageSpaceErrorReturnsFalseIfNull() [Test] public void IsStorageSpaceErrorReturnsFalseIfNotIOException() { - Assert.IsFalse(StorageSpaceException.IsStorageSpaceError( - new ArgumentException("No space left on device"))); + Assert.IsFalse(StorageSpaceException.IsStorageSpaceError(new ArgumentException("No space left on device"))); } [Test] public void IsStorageSpaceErrorReturnsFalseIfWrongMessage() { - Assert.IsFalse(StorageSpaceException.IsStorageSpaceError( - new ArgumentException("Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung"))); + Assert.IsFalse( + StorageSpaceException.IsStorageSpaceError( + new ArgumentException("Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung") + ) + ); } [TestCaseSource(nameof(StorageSpaceErrors))] @@ -40,10 +58,14 @@ public static IEnumerable StorageSpaceErrors() yield return new TestCaseData(new AeronException(new StorageSpaceException("test2"))); yield return new TestCaseData(new IOException("No space left on device")); yield return new TestCaseData(new IOException("There is not enough space on the disk")); - yield return new TestCaseData(new IOException( - "something else", new IOException("No space left on device"))); - yield return new TestCaseData(new AeronException( - new ArgumentException("wrap", new IOException("There is not enough space on the disk")))); + yield return new TestCaseData( + new IOException("something else", new IOException("No space left on device")) + ); + yield return new TestCaseData( + new AeronException( + new ArgumentException("wrap", new IOException("There is not enough space on the disk")) + ) + ); } } } diff --git a/src/Adaptive.Aeron.Tests/FlyweightTests.cs b/src/Adaptive.Aeron.Tests/FlyweightTests.cs index 028c913a..8a64a545 100644 --- a/src/Adaptive.Aeron.Tests/FlyweightTests.cs +++ b/src/Adaptive.Aeron.Tests/FlyweightTests.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,118 +23,118 @@ namespace Adaptive.Aeron.Tests { public class FlyweightTest { - private bool InstanceFieldsInitialized = false; + private bool _instanceFieldsInitialized = false; public FlyweightTest() { - if (!InstanceFieldsInitialized) + if (!_instanceFieldsInitialized) { InitializeInstanceFields(); - InstanceFieldsInitialized = true; + _instanceFieldsInitialized = true; } } private void InitializeInstanceFields() { - aBuff = new UnsafeBuffer(buffer); + _aBuff = new UnsafeBuffer(_buffer); } - private readonly ByteBuffer buffer = BufferUtil.Allocate(512); + private readonly ByteBuffer _buffer = BufferUtil.Allocate(512); - private UnsafeBuffer aBuff; - private readonly HeaderFlyweight encodeHeader = new HeaderFlyweight(); - private readonly HeaderFlyweight decodeHeader = new HeaderFlyweight(); - private readonly DataHeaderFlyweight encodeDataHeader = new DataHeaderFlyweight(); - private readonly DataHeaderFlyweight decodeDataHeader = new DataHeaderFlyweight(); + private UnsafeBuffer _aBuff; + private readonly HeaderFlyweight _encodeHeader = new HeaderFlyweight(); + private readonly HeaderFlyweight _decodeHeader = new HeaderFlyweight(); + private readonly DataHeaderFlyweight _encodeDataHeader = new DataHeaderFlyweight(); + private readonly DataHeaderFlyweight _decodeDataHeader = new DataHeaderFlyweight(); [Test] public void ShouldWriteCorrectValuesForGenericHeaderFields() { - encodeHeader.Wrap(aBuff); + _encodeHeader.Wrap(_aBuff); - encodeHeader.Version((short)1); - encodeHeader.Flags(DataHeaderFlyweight.BEGIN_AND_END_FLAGS); - encodeHeader.HeaderType(HeaderFlyweight.HDR_TYPE_DATA); - encodeHeader.FrameLength(8); + _encodeHeader.Version((short)1); + _encodeHeader.Flags(DataHeaderFlyweight.BEGIN_AND_END_FLAGS); + _encodeHeader.HeaderType(HeaderFlyweight.HDR_TYPE_DATA); + _encodeHeader.FrameLength(8); // little endian - Assert.AreEqual((byte)0x08, buffer.Get(0)); - Assert.AreEqual((byte)0x00, buffer.Get(1)); - Assert.AreEqual((byte)0x00, buffer.Get(2)); - Assert.AreEqual((byte)0x00, buffer.Get(3)); - Assert.AreEqual((byte)0x01, buffer.Get(4)); - Assert.AreEqual((byte)0xC0, buffer.Get(5)); - Assert.AreEqual((byte)HeaderFlyweight.HDR_TYPE_DATA, buffer.Get(6)); - Assert.AreEqual((byte)0x00, buffer.Get(7)); + Assert.AreEqual((byte)0x08, _buffer.Get(0)); + Assert.AreEqual((byte)0x00, _buffer.Get(1)); + Assert.AreEqual((byte)0x00, _buffer.Get(2)); + Assert.AreEqual((byte)0x00, _buffer.Get(3)); + Assert.AreEqual((byte)0x01, _buffer.Get(4)); + Assert.AreEqual((byte)0xC0, _buffer.Get(5)); + Assert.AreEqual((byte)HeaderFlyweight.HDR_TYPE_DATA, _buffer.Get(6)); + Assert.AreEqual((byte)0x00, _buffer.Get(7)); } [Test] public void ShouldReadWhatIsWrittenToGenericHeaderFields() { - encodeHeader.Wrap(aBuff); + _encodeHeader.Wrap(_aBuff); - encodeHeader.Version(1); - encodeHeader.Flags(0); - encodeHeader.HeaderType(HeaderFlyweight.HDR_TYPE_DATA); - encodeHeader.FrameLength(8); + _encodeHeader.Version(1); + _encodeHeader.Flags(0); + _encodeHeader.HeaderType(HeaderFlyweight.HDR_TYPE_DATA); + _encodeHeader.FrameLength(8); - decodeHeader.Wrap(aBuff); - Assert.AreEqual((short)1, decodeHeader.Version()); - Assert.AreEqual(HeaderFlyweight.HDR_TYPE_DATA, decodeHeader.HeaderType()); - Assert.AreEqual(8, decodeHeader.FrameLength()); + _decodeHeader.Wrap(_aBuff); + Assert.AreEqual((short)1, _decodeHeader.Version()); + Assert.AreEqual(HeaderFlyweight.HDR_TYPE_DATA, _decodeHeader.HeaderType()); + Assert.AreEqual(8, _decodeHeader.FrameLength()); } [Test] public void ShouldWriteAndReadMultipleFramesCorrectly() { - encodeHeader.Wrap(aBuff); - - encodeHeader.Version(1); - encodeHeader.Flags(0); - encodeHeader.HeaderType(HeaderFlyweight.HDR_TYPE_DATA); - encodeHeader.FrameLength(8); - - encodeHeader.Wrap(aBuff, 8, aBuff.Capacity - 8); - encodeHeader.Version(2); - encodeHeader.Flags(0x01); - encodeHeader.HeaderType(HeaderFlyweight.HDR_TYPE_SM); - encodeHeader.FrameLength(8); - - decodeHeader.Wrap(aBuff); - Assert.AreEqual((short)1, decodeHeader.Version()); - Assert.AreEqual((short)0, decodeHeader.Flags()); - Assert.AreEqual(HeaderFlyweight.HDR_TYPE_DATA, decodeHeader.HeaderType()); - Assert.AreEqual(8, decodeHeader.FrameLength()); - - decodeHeader.Wrap(aBuff, 8, aBuff.Capacity - 8); - Assert.AreEqual((short)2, decodeHeader.Version()); - Assert.AreEqual((short)0x01, decodeHeader.Flags()); - Assert.AreEqual(HeaderFlyweight.HDR_TYPE_SM, decodeHeader.HeaderType()); - Assert.AreEqual(8, decodeHeader.FrameLength()); + _encodeHeader.Wrap(_aBuff); + + _encodeHeader.Version(1); + _encodeHeader.Flags(0); + _encodeHeader.HeaderType(HeaderFlyweight.HDR_TYPE_DATA); + _encodeHeader.FrameLength(8); + + _encodeHeader.Wrap(_aBuff, 8, _aBuff.Capacity - 8); + _encodeHeader.Version(2); + _encodeHeader.Flags(0x01); + _encodeHeader.HeaderType(HeaderFlyweight.HDR_TYPE_SM); + _encodeHeader.FrameLength(8); + + _decodeHeader.Wrap(_aBuff); + Assert.AreEqual((short)1, _decodeHeader.Version()); + Assert.AreEqual((short)0, _decodeHeader.Flags()); + Assert.AreEqual(HeaderFlyweight.HDR_TYPE_DATA, _decodeHeader.HeaderType()); + Assert.AreEqual(8, _decodeHeader.FrameLength()); + + _decodeHeader.Wrap(_aBuff, 8, _aBuff.Capacity - 8); + Assert.AreEqual((short)2, _decodeHeader.Version()); + Assert.AreEqual((short)0x01, _decodeHeader.Flags()); + Assert.AreEqual(HeaderFlyweight.HDR_TYPE_SM, _decodeHeader.HeaderType()); + Assert.AreEqual(8, _decodeHeader.FrameLength()); } [Test] public void ShouldReadAndWriteDataHeaderCorrectly() { - encodeDataHeader.Wrap(aBuff); - - encodeDataHeader.Version(1); - encodeDataHeader.Flags(DataHeaderFlyweight.BEGIN_AND_END_FLAGS); - encodeDataHeader.HeaderType(HeaderFlyweight.HDR_TYPE_DATA); - encodeDataHeader.FrameLength(DataHeaderFlyweight.HEADER_LENGTH); - encodeDataHeader.SessionId(12345); - encodeDataHeader.StreamId(0x44332211); - encodeDataHeader.TermId(99887766); - - decodeDataHeader.Wrap(aBuff); - Assert.AreEqual((short)1, decodeDataHeader.Version()); - Assert.AreEqual(DataHeaderFlyweight.BEGIN_AND_END_FLAGS, decodeDataHeader.Flags()); - Assert.AreEqual(HeaderFlyweight.HDR_TYPE_DATA, decodeDataHeader.HeaderType()); - Assert.AreEqual(DataHeaderFlyweight.HEADER_LENGTH, decodeDataHeader.FrameLength()); - Assert.AreEqual(12345, decodeDataHeader.SessionId()); - Assert.AreEqual(0x44332211, decodeDataHeader.StreamId()); - Assert.AreEqual(99887766, decodeDataHeader.TermId()); - Assert.AreEqual(DataHeaderFlyweight.HEADER_LENGTH, decodeDataHeader.DataOffset()); + _encodeDataHeader.Wrap(_aBuff); + + _encodeDataHeader.Version(1); + _encodeDataHeader.Flags(DataHeaderFlyweight.BEGIN_AND_END_FLAGS); + _encodeDataHeader.HeaderType(HeaderFlyweight.HDR_TYPE_DATA); + _encodeDataHeader.FrameLength(DataHeaderFlyweight.HEADER_LENGTH); + _encodeDataHeader.SessionId(12345); + _encodeDataHeader.StreamId(0x44332211); + _encodeDataHeader.TermId(99887766); + + _decodeDataHeader.Wrap(_aBuff); + Assert.AreEqual((short)1, _decodeDataHeader.Version()); + Assert.AreEqual(DataHeaderFlyweight.BEGIN_AND_END_FLAGS, _decodeDataHeader.Flags()); + Assert.AreEqual(HeaderFlyweight.HDR_TYPE_DATA, _decodeDataHeader.HeaderType()); + Assert.AreEqual(DataHeaderFlyweight.HEADER_LENGTH, _decodeDataHeader.FrameLength()); + Assert.AreEqual(12345, _decodeDataHeader.SessionId()); + Assert.AreEqual(0x44332211, _decodeDataHeader.StreamId()); + Assert.AreEqual(99887766, _decodeDataHeader.TermId()); + Assert.AreEqual(DataHeaderFlyweight.HEADER_LENGTH, _decodeDataHeader.DataOffset()); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/FragmentAssemblerTest.cs b/src/Adaptive.Aeron.Tests/FragmentAssemblerTest.cs index 36ff9a4e..54d3e947 100644 --- a/src/Adaptive.Aeron.Tests/FragmentAssemblerTest.cs +++ b/src/Adaptive.Aeron.Tests/FragmentAssemblerTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,145 +26,171 @@ namespace Adaptive.Aeron.Tests { public class FragmentAssemblerTest { - private const int SESSION_ID = 777; - private const int INITIAL_TERM_ID = 3; + private const int SessionId = 777; + private const int InitialTermId = 3; - private IFragmentHandler delegateFragmentHandler; - private Header header; - private FragmentAssembler assembler; - private DataHeaderFlyweight headerFlyweight; + private IFragmentHandler _delegateFragmentHandler; + private Header _header; + private FragmentAssembler _assembler; + private DataHeaderFlyweight _headerFlyweight; [SetUp] public void SetUp() { - delegateFragmentHandler = A.Fake(); - assembler = new FragmentAssembler(delegateFragmentHandler); - header = A.Fake
(x => x.Wrapping(new Header(INITIAL_TERM_ID, LogBufferDescriptor.TERM_MIN_LENGTH))); + _delegateFragmentHandler = A.Fake(); + _assembler = new FragmentAssembler(_delegateFragmentHandler); + _header = A.Fake
(x => x.Wrapping(new Header(InitialTermId, LogBufferDescriptor.TERM_MIN_LENGTH))); UnsafeBuffer buffer = new UnsafeBuffer(new byte[64]); - headerFlyweight = new DataHeaderFlyweight(); - headerFlyweight.Wrap(buffer, 16, DataHeaderFlyweight.HEADER_LENGTH); - header.SetBuffer(buffer, 16); - headerFlyweight.SessionId(SESSION_ID); + _headerFlyweight = new DataHeaderFlyweight(); + _headerFlyweight.Wrap(buffer, 16, DataHeaderFlyweight.HEADER_LENGTH); + _header.SetBuffer(buffer, 16); + _headerFlyweight.SessionId(SessionId); } [Test] public void ShouldPassThroughUnfragmentedMessage() { - headerFlyweight.Flags(FrameDescriptor.UNFRAGMENTED); - + _headerFlyweight.Flags(FrameDescriptor.UNFRAGMENTED); + var srcBuffer = new UnsafeBuffer(new byte[128]); const int offset = 8; const int length = 32; - assembler.OnFragment(srcBuffer, offset, length, header); + _assembler.OnFragment(srcBuffer, offset, length, _header); - A.CallTo(() => delegateFragmentHandler.OnFragment(srcBuffer, offset, length, header)) + A.CallTo(() => _delegateFragmentHandler.OnFragment(srcBuffer, offset, length, _header)) .MustHaveHappened(1, Times.Exactly); } [Test] public void ShouldAssembleTwoPartMessage() { - A.CallTo(() => header.Flags).ReturnsNextFromSequence(FrameDescriptor.BEGIN_FRAG_FLAG, FrameDescriptor.END_FRAG_FLAG, FrameDescriptor.END_FRAG_FLAG); + A.CallTo(() => _header.Flags) + .ReturnsNextFromSequence( + FrameDescriptor.BEGIN_FRAG_FLAG, + FrameDescriptor.END_FRAG_FLAG, + FrameDescriptor.END_FRAG_FLAG + ); var srcBuffer = new UnsafeBuffer(new byte[1024 + (2 * DataHeaderFlyweight.HEADER_LENGTH)]); var length = 512; int offset = DataHeaderFlyweight.HEADER_LENGTH; - headerFlyweight.Flags(FrameDescriptor.BEGIN_FRAG_FLAG); - assembler.OnFragment(srcBuffer, offset, length, header); - offset = BitUtil.Align(offset + length + DataHeaderFlyweight.HEADER_LENGTH, FrameDescriptor.FRAME_ALIGNMENT); - headerFlyweight.Flags(FrameDescriptor.END_FRAG_FLAG); - assembler.OnFragment(srcBuffer, offset, length, header); - - Func headerAssertion = capturedHeader => capturedHeader.SessionId == SESSION_ID && - capturedHeader.Flags == FrameDescriptor.UNFRAGMENTED; - - A.CallTo(() => delegateFragmentHandler.OnFragment( - A._, - 0, - length * 2, - A
.That.Matches(headerAssertion, "header"))) + _headerFlyweight.Flags(FrameDescriptor.BEGIN_FRAG_FLAG); + _assembler.OnFragment(srcBuffer, offset, length, _header); + offset = BitUtil.Align( + offset + length + DataHeaderFlyweight.HEADER_LENGTH, + FrameDescriptor.FRAME_ALIGNMENT + ); + _headerFlyweight.Flags(FrameDescriptor.END_FRAG_FLAG); + _assembler.OnFragment(srcBuffer, offset, length, _header); + + Func headerAssertion = capturedHeader => + capturedHeader.SessionId == SessionId && capturedHeader.Flags == FrameDescriptor.UNFRAGMENTED; + + A.CallTo(() => + _delegateFragmentHandler.OnFragment( + A._, + 0, + length * 2, + A
.That.Matches(headerAssertion, "header") + ) + ) .MustHaveHappened(1, Times.Exactly); } [Test] public void ShouldAssembleFourPartMessage() { - var srcBuffer = new UnsafeBuffer(new byte[1024 + + (4 * DataHeaderFlyweight.HEADER_LENGTH)]); + var srcBuffer = new UnsafeBuffer(new byte[1024 + +(4 * DataHeaderFlyweight.HEADER_LENGTH)]); var length = 256; int offset = DataHeaderFlyweight.HEADER_LENGTH; - headerFlyweight.Flags(FrameDescriptor.BEGIN_FRAG_FLAG); - assembler.OnFragment(srcBuffer, offset, length, header); - offset = BitUtil.Align(offset + length + DataHeaderFlyweight.HEADER_LENGTH, FrameDescriptor.FRAME_ALIGNMENT); - headerFlyweight.Flags(0); - assembler.OnFragment(srcBuffer, offset, length, header); - offset = BitUtil.Align(offset + length + DataHeaderFlyweight.HEADER_LENGTH, FrameDescriptor.FRAME_ALIGNMENT); - headerFlyweight.Flags(0); - assembler.OnFragment(srcBuffer, offset, length, header); - offset = BitUtil.Align(offset + length + DataHeaderFlyweight.HEADER_LENGTH, FrameDescriptor.FRAME_ALIGNMENT); - headerFlyweight.Flags(FrameDescriptor.END_FRAG_FLAG); - assembler.OnFragment(srcBuffer, offset, length, header); - - Func headerAssertion = capturedHeader => capturedHeader.SessionId == SESSION_ID && - capturedHeader.Flags == FrameDescriptor.UNFRAGMENTED; - - A.CallTo(() => delegateFragmentHandler.OnFragment( - A._, - 0, - length * 4, - A
.That.Matches(headerAssertion, "header"))) + _headerFlyweight.Flags(FrameDescriptor.BEGIN_FRAG_FLAG); + _assembler.OnFragment(srcBuffer, offset, length, _header); + offset = BitUtil.Align( + offset + length + DataHeaderFlyweight.HEADER_LENGTH, + FrameDescriptor.FRAME_ALIGNMENT + ); + _headerFlyweight.Flags(0); + _assembler.OnFragment(srcBuffer, offset, length, _header); + offset = BitUtil.Align( + offset + length + DataHeaderFlyweight.HEADER_LENGTH, + FrameDescriptor.FRAME_ALIGNMENT + ); + _headerFlyweight.Flags(0); + _assembler.OnFragment(srcBuffer, offset, length, _header); + offset = BitUtil.Align( + offset + length + DataHeaderFlyweight.HEADER_LENGTH, + FrameDescriptor.FRAME_ALIGNMENT + ); + _headerFlyweight.Flags(FrameDescriptor.END_FRAG_FLAG); + _assembler.OnFragment(srcBuffer, offset, length, _header); + + Func headerAssertion = capturedHeader => + capturedHeader.SessionId == SessionId && capturedHeader.Flags == FrameDescriptor.UNFRAGMENTED; + + A.CallTo(() => + _delegateFragmentHandler.OnFragment( + A._, + 0, + length * 4, + A
.That.Matches(headerAssertion, "header") + ) + ) .MustHaveHappened(1, Times.Exactly); } [Test] public void ShouldFreeSessionBuffer() { - A.CallTo(() => header.Flags).ReturnsNextFromSequence(FrameDescriptor.BEGIN_FRAG_FLAG, FrameDescriptor.END_FRAG_FLAG); + A.CallTo(() => _header.Flags) + .ReturnsNextFromSequence(FrameDescriptor.BEGIN_FRAG_FLAG, FrameDescriptor.END_FRAG_FLAG); var srcBuffer = new UnsafeBuffer(new byte[1024]); const int offset = 0; - var length = srcBuffer.Capacity/2; + var length = srcBuffer.Capacity / 2; srcBuffer.SetMemory(0, length, 65); srcBuffer.SetMemory(length, length, 66); - Assert.False(assembler.FreeSessionBuffer(SESSION_ID)); + Assert.False(_assembler.FreeSessionBuffer(SessionId)); - assembler.OnFragment(srcBuffer, offset, length, header); - assembler.OnFragment(srcBuffer, length, length, header); + _assembler.OnFragment(srcBuffer, offset, length, _header); + _assembler.OnFragment(srcBuffer, length, length, _header); - Assert.True(assembler.FreeSessionBuffer(SESSION_ID)); - Assert.False(assembler.FreeSessionBuffer(SESSION_ID)); + Assert.True(_assembler.FreeSessionBuffer(SessionId)); + Assert.False(_assembler.FreeSessionBuffer(SessionId)); } [Test] public void ShouldDoNotingIfEndArrivesWithoutBegin() { - A.CallTo(() => header.Flags).Returns(FrameDescriptor.END_FRAG_FLAG); + A.CallTo(() => _header.Flags).Returns(FrameDescriptor.END_FRAG_FLAG); var srcBuffer = new UnsafeBuffer(new byte[1024]); const int offset = 0; - var length = srcBuffer.Capacity/2; + var length = srcBuffer.Capacity / 2; - assembler.OnFragment(srcBuffer, offset, length, header); + _assembler.OnFragment(srcBuffer, offset, length, _header); - A.CallTo(() => delegateFragmentHandler.OnFragment(A._, A._, A._, A
._)).MustNotHaveHappened(); + A.CallTo(() => _delegateFragmentHandler.OnFragment(A._, A._, A._, A
._)) + .MustNotHaveHappened(); } [Test] public void ShouldDoNotingIfMidArrivesWithoutBegin() { - A.CallTo(() => header.Flags).Returns(FrameDescriptor.END_FRAG_FLAG); + A.CallTo(() => _header.Flags).Returns(FrameDescriptor.END_FRAG_FLAG); var srcBuffer = new UnsafeBuffer(new byte[1024]); const int offset = 0; - var length = srcBuffer.Capacity/2; + var length = srcBuffer.Capacity / 2; - assembler.OnFragment(srcBuffer, offset, length, header); - assembler.OnFragment(srcBuffer, offset, length, header); + _assembler.OnFragment(srcBuffer, offset, length, _header); + _assembler.OnFragment(srcBuffer, offset, length, _header); - A.CallTo(() => delegateFragmentHandler.OnFragment(A._, A._, A._, A
._)).MustNotHaveHappened(); + A.CallTo(() => _delegateFragmentHandler.OnFragment(A._, A._, A._, A
._)) + .MustNotHaveHappened(); } [Test] @@ -174,27 +200,41 @@ public void ShouldSkipOverMessagesWithLoss() var length = 256; int offset = DataHeaderFlyweight.HEADER_LENGTH; - headerFlyweight.Flags(FrameDescriptor.BEGIN_FRAG_FLAG); - assembler.OnFragment(srcBuffer, offset, length, header); - offset = BitUtil.Align(offset + length + DataHeaderFlyweight.HEADER_LENGTH, FrameDescriptor.FRAME_ALIGNMENT); - offset = BitUtil.Align(offset + length + DataHeaderFlyweight.HEADER_LENGTH, FrameDescriptor.FRAME_ALIGNMENT); - offset = BitUtil.Align(offset + length + DataHeaderFlyweight.HEADER_LENGTH, FrameDescriptor.FRAME_ALIGNMENT); - headerFlyweight.Flags(FrameDescriptor.END_FRAG_FLAG); - assembler.OnFragment(srcBuffer, offset, length, header); - offset = BitUtil.Align(offset + length + DataHeaderFlyweight.HEADER_LENGTH, FrameDescriptor.FRAME_ALIGNMENT); - headerFlyweight.Flags(FrameDescriptor.UNFRAGMENTED); - assembler.OnFragment(srcBuffer, offset, length, header); - - Func headerAssertion = capturedHeader => capturedHeader.SessionId == SESSION_ID && - capturedHeader.Flags == - FrameDescriptor.UNFRAGMENTED; - - A.CallTo(() => delegateFragmentHandler.OnFragment( - A._, - offset, - length, - A
.That.Matches(headerAssertion, "header"))) + _headerFlyweight.Flags(FrameDescriptor.BEGIN_FRAG_FLAG); + _assembler.OnFragment(srcBuffer, offset, length, _header); + offset = BitUtil.Align( + offset + length + DataHeaderFlyweight.HEADER_LENGTH, + FrameDescriptor.FRAME_ALIGNMENT + ); + offset = BitUtil.Align( + offset + length + DataHeaderFlyweight.HEADER_LENGTH, + FrameDescriptor.FRAME_ALIGNMENT + ); + offset = BitUtil.Align( + offset + length + DataHeaderFlyweight.HEADER_LENGTH, + FrameDescriptor.FRAME_ALIGNMENT + ); + _headerFlyweight.Flags(FrameDescriptor.END_FRAG_FLAG); + _assembler.OnFragment(srcBuffer, offset, length, _header); + offset = BitUtil.Align( + offset + length + DataHeaderFlyweight.HEADER_LENGTH, + FrameDescriptor.FRAME_ALIGNMENT + ); + _headerFlyweight.Flags(FrameDescriptor.UNFRAGMENTED); + _assembler.OnFragment(srcBuffer, offset, length, _header); + + Func headerAssertion = capturedHeader => + capturedHeader.SessionId == SessionId && capturedHeader.Flags == FrameDescriptor.UNFRAGMENTED; + + A.CallTo(() => + _delegateFragmentHandler.OnFragment( + A._, + offset, + length, + A
.That.Matches(headerAssertion, "header") + ) + ) .MustHaveHappened(1, Times.Exactly); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/ImageRangeTest.cs b/src/Adaptive.Aeron.Tests/ImageRangeTest.cs index ed57765a..79931bde 100644 --- a/src/Adaptive.Aeron.Tests/ImageRangeTest.cs +++ b/src/Adaptive.Aeron.Tests/ImageRangeTest.cs @@ -1,7 +1,18 @@ -using System.IO; -using Adaptive.Aeron.LogBuffer; -using Adaptive.Agrona.Concurrent.Status; -using static Adaptive.Aeron.LogBuffer.LogBufferDescriptor; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ namespace Adaptive.Aeron.Tests { @@ -44,4 +55,4 @@ public void ShouldHandleAllPossibleOffsets(bool useSpareFiles, File baseDir) } } */ -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/ImageTest.cs b/src/Adaptive.Aeron.Tests/ImageTest.cs index 7e6434a3..f7e011e5 100644 --- a/src/Adaptive.Aeron.Tests/ImageTest.cs +++ b/src/Adaptive.Aeron.Tests/ImageTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,68 +27,66 @@ namespace Adaptive.Aeron.Tests { public class ImageTest { - private const int TERM_BUFFER_LENGTH = LogBufferDescriptor.TERM_MIN_LENGTH; + private const int TermBufferLength = LogBufferDescriptor.TERM_MIN_LENGTH; - private static readonly int POSITION_BITS_TO_SHIFT = - LogBufferDescriptor.PositionBitsToShift(TERM_BUFFER_LENGTH); + private static readonly int PositionBitsToShift = LogBufferDescriptor.PositionBitsToShift(TermBufferLength); - private static readonly byte[] DATA = new byte[36]; + private static readonly byte[] Data = new byte[36]; static ImageTest() { - for (var i = 0; i < DATA.Length; i++) + for (var i = 0; i < Data.Length; i++) { - DATA[i] = (byte) i; + Data[i] = (byte)i; } } - private const long CORRELATION_ID = 0xC044E1AL; - private const int SESSION_ID = 0x5E55101D; - private const int STREAM_ID = 0xC400E; - private const string SOURCE_IDENTITY = "ipc"; - private const int INITIAL_TERM_ID = 0xEE81D; - private static readonly int MESSAGE_LENGTH = DataHeaderFlyweight.HEADER_LENGTH + DATA.Length; + private const long CorrelationId = 0xC044E1AL; + private const int SessionId = 0x5E55101D; + private const int StreamId = 0xC400E; + private const string SourceIdentity = "ipc"; + private const int InitialTermId = 0xEE81D; + private static readonly int MessageLength = DataHeaderFlyweight.HEADER_LENGTH + Data.Length; - private static readonly int ALIGNED_FRAME_LENGTH = - BitUtil.Align(MESSAGE_LENGTH, FrameDescriptor.FRAME_ALIGNMENT); + private static readonly int AlignedFrameLength = BitUtil.Align(MessageLength, FrameDescriptor.FRAME_ALIGNMENT); - private UnsafeBuffer RcvBuffer; - private DataHeaderFlyweight DataHeader; - private IFragmentHandler MockFragmentHandler; - private IControlledFragmentHandler MockControlledFragmentHandler; - private IPosition Position; - private LogBuffers LogBuffers; - private IErrorHandler ErrorHandler; - private Subscription Subscription; + private UnsafeBuffer _rcvBuffer; + private DataHeaderFlyweight _dataHeader; + private IFragmentHandler _mockFragmentHandler; + private IControlledFragmentHandler _mockControlledFragmentHandler; + private IPosition _position; + private LogBuffers _logBuffers; + private IErrorHandler _errorHandler; + private Subscription _subscription; - private UnsafeBuffer[] TermBuffers; + private UnsafeBuffer[] _termBuffers; [SetUp] public void SetUp() { - RcvBuffer = new UnsafeBuffer(new byte[ALIGNED_FRAME_LENGTH]); - DataHeader = new DataHeaderFlyweight(); - MockFragmentHandler = A.Fake(); - MockControlledFragmentHandler = A.Fake(); - Position = A.Fake(options => options.Wrapping(new AtomicLongPosition())); - LogBuffers = A.Fake(); - ErrorHandler = A.Fake(); - Subscription = A.Fake(); + _rcvBuffer = new UnsafeBuffer(new byte[AlignedFrameLength]); + _dataHeader = new DataHeaderFlyweight(); + _mockFragmentHandler = A.Fake(); + _mockControlledFragmentHandler = A.Fake(); + _position = A.Fake(options => options.Wrapping(new AtomicLongPosition())); + _logBuffers = A.Fake(); + _errorHandler = A.Fake(); + _subscription = A.Fake(); - TermBuffers = new UnsafeBuffer[LogBufferDescriptor.PARTITION_COUNT]; + _termBuffers = new UnsafeBuffer[LogBufferDescriptor.PARTITION_COUNT]; - DataHeader.Wrap(RcvBuffer); + _dataHeader.Wrap(_rcvBuffer); for (var i = 0; i < LogBufferDescriptor.PARTITION_COUNT; i++) { - TermBuffers[i] = new UnsafeBuffer(new byte[TERM_BUFFER_LENGTH]); + _termBuffers[i] = new UnsafeBuffer(new byte[TermBufferLength]); } var logMetaDataBuffer = new UnsafeBuffer(new byte[LogBufferDescriptor.LOG_META_DATA_LENGTH]); - A.CallTo(() => LogBuffers.DuplicateTermBuffers()).Returns(TermBuffers); - A.CallTo(() => LogBuffers.TermLength()).Returns(TERM_BUFFER_LENGTH); - A.CallTo(() => LogBuffers.MetaDataBuffer()).Returns(logMetaDataBuffer); + A.CallTo(() => _logBuffers.DuplicateTermBuffers()).Returns(_termBuffers); + A.CallTo(() => _logBuffers.TermLength()).Returns(TermBufferLength); + A.CallTo(() => _logBuffers.MetaDataBuffer()).Returns(logMetaDataBuffer); } [Test] @@ -99,7 +97,7 @@ public void ShouldHandleClosedImage() image.Close(); Assert.True(image.Closed); - Assert.AreEqual(0, image.Poll(MockFragmentHandler, int.MaxValue)); + Assert.AreEqual(0, image.Poll(_mockFragmentHandler, int.MaxValue)); Assert.AreEqual(0, image.Position); } @@ -107,47 +105,57 @@ public void ShouldHandleClosedImage() public void ShouldAllowValidPosition() { var image = CreateImage(); - var expectedPosition = TERM_BUFFER_LENGTH - 32; + var expectedPosition = TermBufferLength - 32; - Position.SetRelease(expectedPosition); + _position.SetRelease(expectedPosition); Assert.AreEqual(image.Position, expectedPosition); - image.Position = TERM_BUFFER_LENGTH; - Assert.AreEqual(image.Position, (long) TERM_BUFFER_LENGTH); + image.Position = TermBufferLength; + Assert.AreEqual(image.Position, (long)TermBufferLength); } [Test] public void ShouldNotAdvancePastEndOfTerm() { var image = CreateImage(); - var expectedPosition = TERM_BUFFER_LENGTH - 32; + var expectedPosition = TermBufferLength - 32; - Position.SetRelease(expectedPosition); + _position.SetRelease(expectedPosition); Assert.AreEqual(image.Position, expectedPosition); - Assert.Throws(() => image.Position = TERM_BUFFER_LENGTH + 32); + Assert.Throws(() => image.Position = TermBufferLength + 32); } [Test] public void ShouldReportCorrectPositionOnReception() { - var initialPosition = - LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + var initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); - var messages = image.Poll(MockFragmentHandler, int.MaxValue); + var messages = image.Poll(_mockFragmentHandler, int.MaxValue); Assert.AreEqual(1, messages); A.CallTo(() => - MockFragmentHandler.OnFragment(A._, DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, - A
._)).MustHaveHappened(); + _mockFragmentHandler.OnFragment( + A._, + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened(); - A.CallTo(() => Position.SetRelease(initialPosition)).MustHaveHappened().Then( - A.CallTo(() => Position.SetRelease(initialPosition + ALIGNED_FRAME_LENGTH)).MustHaveHappened() - ); + A.CallTo(() => _position.SetRelease(initialPosition)) + .MustHaveHappened() + .Then(A.CallTo(() => _position.SetRelease(initialPosition + AlignedFrameLength)).MustHaveHappened()); } [Test] @@ -155,105 +163,146 @@ public void ShouldReportCorrectPositionOnReceptionWithNonZeroPositionInInitialTe { const int initialMessageIndex = 5; var initialTermOffset = OffsetForFrame(initialMessageIndex); - var initialPosition = LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, initialTermOffset, - POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); + var initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + initialTermOffset, + PositionBitsToShift, + InitialTermId + ); - Position.SetRelease(initialPosition); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(initialMessageIndex)); + InsertDataFrame(InitialTermId, OffsetForFrame(initialMessageIndex)); - var messages = image.Poll(MockFragmentHandler, int.MaxValue); + var messages = image.Poll(_mockFragmentHandler, int.MaxValue); Assert.AreEqual(1, messages); - A.CallTo(() => MockFragmentHandler.OnFragment(A._, - initialTermOffset + DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustHaveHappened(); + A.CallTo(() => + _mockFragmentHandler.OnFragment( + A._, + initialTermOffset + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened(); - A.CallTo(() => Position.SetRelease(initialPosition)).MustHaveHappened().Then( - A.CallTo(() => Position.SetRelease(initialPosition + ALIGNED_FRAME_LENGTH)).MustHaveHappened() - ); + A.CallTo(() => _position.SetRelease(initialPosition)) + .MustHaveHappened() + .Then(A.CallTo(() => _position.SetRelease(initialPosition + AlignedFrameLength)).MustHaveHappened()); } [Test] public void ShouldReportCorrectPositionOnReceptionWithNonZeroPositionInNonInitialTermId() { - var activeTermId = INITIAL_TERM_ID + 1; + var activeTermId = InitialTermId + 1; const int initialMessageIndex = 5; var initialTermOffset = OffsetForFrame(initialMessageIndex); - var initialPosition = LogBufferDescriptor.ComputePosition(activeTermId, initialTermOffset, - POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); + var initialPosition = LogBufferDescriptor.ComputePosition( + activeTermId, + initialTermOffset, + PositionBitsToShift, + InitialTermId + ); - Position.SetRelease(initialPosition); + _position.SetRelease(initialPosition); var image = CreateImage(); InsertDataFrame(activeTermId, OffsetForFrame(initialMessageIndex)); - var messages = image.Poll(MockFragmentHandler, int.MaxValue); + var messages = image.Poll(_mockFragmentHandler, int.MaxValue); Assert.AreEqual(1, messages); - A.CallTo(() => MockFragmentHandler.OnFragment(A._, - initialTermOffset + DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustHaveHappened(); + A.CallTo(() => + _mockFragmentHandler.OnFragment( + A._, + initialTermOffset + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened(); - A.CallTo(() => Position.SetRelease(initialPosition)).MustHaveHappened().Then( - A.CallTo(() => Position.SetRelease(initialPosition + ALIGNED_FRAME_LENGTH)).MustHaveHappened() - ); + A.CallTo(() => _position.SetRelease(initialPosition)) + .MustHaveHappened() + .Then(A.CallTo(() => _position.SetRelease(initialPosition + AlignedFrameLength)).MustHaveHappened()); } [Test] public void ShouldPollNoFragmentsToControlledFragmentHandler() { var image = CreateImage(); - var fragmentsRead = image.ControlledPoll(MockControlledFragmentHandler, int.MaxValue); + var fragmentsRead = image.ControlledPoll(_mockControlledFragmentHandler, int.MaxValue); Assert.AreEqual(0, fragmentsRead); - A.CallTo(() => Position.SetRelease(A._)).MustNotHaveHappened(); - A.CallTo(() => MockFragmentHandler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => _position.SetRelease(A._)).MustNotHaveHappened(); + A.CallTo(() => _mockFragmentHandler.OnFragment(A._, A._, A._, A
._)) .MustNotHaveHappened(); } [Test] public void ShouldPollOneFragmentToControlledFragmentHandlerOnContinue() { - var initialPosition = - LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + var initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._) + ) .Returns(ControlledFragmentHandlerAction.CONTINUE); - var fragmentsRead = image.ControlledPoll(MockControlledFragmentHandler, int.MaxValue); + var fragmentsRead = image.ControlledPoll(_mockControlledFragmentHandler, int.MaxValue); Assert.AreEqual(1, fragmentsRead); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustHaveHappened().Then( - A.CallTo(() => Position.SetRelease(initialPosition + ALIGNED_FRAME_LENGTH)).MustHaveHappened()); + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened() + .Then(A.CallTo(() => _position.SetRelease(initialPosition + AlignedFrameLength)).MustHaveHappened()); } [Test] public void ShouldUpdatePositionOnRethrownExceptionInControlledPoll() { - long initialPosition = - LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + long initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._) + ) .Throws(new Exception()); - A.CallTo(ErrorHandler).Throws(new Exception()); + A.CallTo(_errorHandler).Throws(new Exception()); bool thrown = false; try { - image.ControlledPoll(MockControlledFragmentHandler, int.MaxValue); + image.ControlledPoll(_mockControlledFragmentHandler, int.MaxValue); } catch (Exception) { @@ -261,32 +310,43 @@ public void ShouldUpdatePositionOnRethrownExceptionInControlledPoll() } Assert.True(thrown); - Assert.AreEqual(initialPosition + ALIGNED_FRAME_LENGTH, image.Position); + Assert.AreEqual(initialPosition + AlignedFrameLength, image.Position); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustHaveHappened(); + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened(); } [Test] public void ShouldUpdatePositionOnRethrownExceptionInPoll() { - long initialPosition = - LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + long initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); - A.CallTo(() => MockFragmentHandler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => _mockFragmentHandler.OnFragment(A._, A._, A._, A
._)) .Throws(new Exception()); - A.CallTo(ErrorHandler).Throws(new Exception()); + A.CallTo(_errorHandler).Throws(new Exception()); bool thrown = false; try { - image.Poll(MockFragmentHandler, int.MaxValue); + image.Poll(_mockFragmentHandler, int.MaxValue); } catch (Exception) { @@ -294,302 +354,484 @@ public void ShouldUpdatePositionOnRethrownExceptionInPoll() } Assert.True(thrown); - Assert.AreEqual(initialPosition + ALIGNED_FRAME_LENGTH, image.Position); + Assert.AreEqual(initialPosition + AlignedFrameLength, image.Position); A.CallTo(() => - MockFragmentHandler.OnFragment(A._, DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, - A
._)).MustHaveHappened(); + _mockFragmentHandler.OnFragment( + A._, + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened(); } - [Test] public void ShouldNotPollOneFragmentToControlledFragmentHandlerOnAbort() { - var initialPosition = - LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + var initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._) + ) .Returns(ControlledFragmentHandlerAction.ABORT); - var fragmentsRead = image.ControlledPoll(MockControlledFragmentHandler, int.MaxValue); + var fragmentsRead = image.ControlledPoll(_mockControlledFragmentHandler, int.MaxValue); Assert.AreEqual(0, fragmentsRead); Assert.AreEqual(initialPosition, image.Position); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustHaveHappened(); + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened(); } [Test] public void ShouldPollOneFragmentToControlledFragmentHandlerOnBreak() { - var initialPosition = - LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + var initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(1)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(1)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._) + ) .Returns(ControlledFragmentHandlerAction.BREAK); - var fragmentsRead = image.ControlledPoll(MockControlledFragmentHandler, int.MaxValue); + var fragmentsRead = image.ControlledPoll(_mockControlledFragmentHandler, int.MaxValue); Assert.AreEqual(1, fragmentsRead); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustHaveHappened().Then( - A.CallTo(() => Position.SetRelease(initialPosition + ALIGNED_FRAME_LENGTH)).MustHaveHappened()); + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened() + .Then(A.CallTo(() => _position.SetRelease(initialPosition + AlignedFrameLength)).MustHaveHappened()); } [Test] public void ShouldPollFragmentsToControlledFragmentHandlerOnCommit() { - var initialPosition = - LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + var initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(1)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(1)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._) + ) .Returns(ControlledFragmentHandlerAction.COMMIT); - var fragmentsRead = image.ControlledPoll(MockControlledFragmentHandler, int.MaxValue); + var fragmentsRead = image.ControlledPoll(_mockControlledFragmentHandler, int.MaxValue); Assert.AreEqual(2, fragmentsRead); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustHaveHappened() - .Then(A.CallTo(() => Position.SetRelease(initialPosition + ALIGNED_FRAME_LENGTH)).MustHaveHappened()) - .Then(A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - ALIGNED_FRAME_LENGTH + DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)) - .MustHaveHappened()) - .Then(A.CallTo(() => Position.SetRelease(initialPosition + ALIGNED_FRAME_LENGTH * 2L)) - .MustHaveHappened()); + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened() + .Then(A.CallTo(() => _position.SetRelease(initialPosition + AlignedFrameLength)).MustHaveHappened()) + .Then( + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + AlignedFrameLength + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened() + ) + .Then( + A.CallTo(() => _position.SetRelease(initialPosition + AlignedFrameLength * 2L)).MustHaveHappened() + ); } [Test] public void ShouldPollNoFragmentsToBoundedControlledFragmentHandlerWithMaxPositionBeforeInitialPosition() { - var initialPosition = - LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); + var initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); var maxPosition = initialPosition - DataHeaderFlyweight.HEADER_LENGTH; - Position.SetRelease(initialPosition); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(1)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(1)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._) + ) .Returns(ControlledFragmentHandlerAction.CONTINUE); - var fragmentsRead = - image.BoundedControlledPoll(MockControlledFragmentHandler, maxPosition, int.MaxValue); + var fragmentsRead = image.BoundedControlledPoll(_mockControlledFragmentHandler, maxPosition, int.MaxValue); Assert.That(fragmentsRead, Is.EqualTo(0)); - Assert.That(Position.Get(), Is.EqualTo(initialPosition)); + Assert.That(_position.Get(), Is.EqualTo(initialPosition)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustNotHaveHappened(); + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustNotHaveHappened(); } [Test] public void ShouldPollFragmentsToBoundedControlledFragmentHandlerWithInitialOffsetNotZero() { var initialPosition = LogBufferDescriptor.ComputePosition( - INITIAL_TERM_ID, OffsetForFrame(1), POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - var maxPosition = initialPosition + ALIGNED_FRAME_LENGTH; - Position.SetRelease(initialPosition); + InitialTermId, + OffsetForFrame(1), + PositionBitsToShift, + InitialTermId + ); + var maxPosition = initialPosition + AlignedFrameLength; + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(1)); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(2)); + InsertDataFrame(InitialTermId, OffsetForFrame(1)); + InsertDataFrame(InitialTermId, OffsetForFrame(2)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._) + ) .Returns(ControlledFragmentHandlerAction.CONTINUE); - var fragmentsRead = image.BoundedControlledPoll(MockControlledFragmentHandler, maxPosition, int.MaxValue); + var fragmentsRead = image.BoundedControlledPoll(_mockControlledFragmentHandler, maxPosition, int.MaxValue); Assert.That(fragmentsRead, Is.EqualTo(1)); - Assert.That(Position.Get(), Is.EqualTo(maxPosition)); + Assert.That(_position.Get(), Is.EqualTo(maxPosition)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._) + ) .MustHaveHappened(); } [Test] public void ShouldPollFragmentsToBoundedControlledFragmentHandlerWithMaxPositionBeforeNextMessage() { - var initialPosition = - LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - var maxPosition = initialPosition + ALIGNED_FRAME_LENGTH; - Position.SetRelease(initialPosition); + var initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + var maxPosition = initialPosition + AlignedFrameLength; + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(1)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(1)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._) + ) .Returns(ControlledFragmentHandlerAction.CONTINUE); - var fragmentsRead = image.BoundedControlledPoll(MockControlledFragmentHandler, maxPosition, int.MaxValue); + var fragmentsRead = image.BoundedControlledPoll(_mockControlledFragmentHandler, maxPosition, int.MaxValue); Assert.That(fragmentsRead, Is.EqualTo(1)); - Assert.That(Position.Get(), Is.EqualTo(maxPosition)); + Assert.That(_position.Get(), Is.EqualTo(maxPosition)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustHaveHappened() - .Then(A.CallTo(() => Position.SetRelease(initialPosition + ALIGNED_FRAME_LENGTH)).MustHaveHappened()); + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened() + .Then(A.CallTo(() => _position.SetRelease(initialPosition + AlignedFrameLength)).MustHaveHappened()); } [Test] public void ShouldPollFragmentsToBoundedFragmentHandlerWithMaxPositionBeforeNextMessage() { - var initialPosition = - LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - var maxPosition = initialPosition + ALIGNED_FRAME_LENGTH; - Position.SetRelease(initialPosition); + var initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + var maxPosition = initialPosition + AlignedFrameLength; + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(1)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(1)); - var fragmentsRead = - image.BoundedPoll(MockFragmentHandler, maxPosition, int.MaxValue); + var fragmentsRead = image.BoundedPoll(_mockFragmentHandler, maxPosition, int.MaxValue); Assert.That(fragmentsRead, Is.EqualTo(1)); - A.CallTo(() => MockFragmentHandler.OnFragment(A._, - DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustHaveHappened() - .Then(A.CallTo(() => Position.SetRelease(initialPosition + ALIGNED_FRAME_LENGTH)).MustHaveHappened()); + A.CallTo(() => + _mockFragmentHandler.OnFragment( + A._, + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened() + .Then(A.CallTo(() => _position.SetRelease(initialPosition + AlignedFrameLength)).MustHaveHappened()); } [Test] public void ShouldPollFragmentsToBoundedControlledFragmentHandlerWithMaxPositionAfterEndOfTerm() { - var initialOffset = TERM_BUFFER_LENGTH - (ALIGNED_FRAME_LENGTH * 2); - var initialPosition = LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, initialOffset, - POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - var maxPosition = initialPosition + TERM_BUFFER_LENGTH; - Position.SetRelease(initialPosition); + var initialOffset = TermBufferLength - (AlignedFrameLength * 2); + var initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + initialOffset, + PositionBitsToShift, + InitialTermId + ); + var maxPosition = initialPosition + TermBufferLength; + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, initialOffset); - InsertPaddingFrame(INITIAL_TERM_ID, initialOffset + ALIGNED_FRAME_LENGTH); + InsertDataFrame(InitialTermId, initialOffset); + InsertPaddingFrame(InitialTermId, initialOffset + AlignedFrameLength); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._) + ) .Returns(ControlledFragmentHandlerAction.CONTINUE); - var fragmentsRead = image.BoundedControlledPoll(MockControlledFragmentHandler, maxPosition, int.MaxValue); + var fragmentsRead = image.BoundedControlledPoll(_mockControlledFragmentHandler, maxPosition, int.MaxValue); Assert.That(fragmentsRead, Is.EqualTo(1)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - initialOffset + DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustHaveHappened() - .Then(A.CallTo(() => Position.SetRelease(TERM_BUFFER_LENGTH)).MustHaveHappened()); + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + initialOffset + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened() + .Then(A.CallTo(() => _position.SetRelease(TermBufferLength)).MustHaveHappened()); } [Test] public void ShouldUpdatePositionToEndOfCommittedFragmentOnCommit() { - var initialPosition = - LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + var initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(1)); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(2)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(1)); + InsertDataFrame(InitialTermId, OffsetForFrame(2)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._)) - .ReturnsNextFromSequence(ControlledFragmentHandlerAction.CONTINUE, - ControlledFragmentHandlerAction.COMMIT, ControlledFragmentHandlerAction.CONTINUE); + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._) + ) + .ReturnsNextFromSequence( + ControlledFragmentHandlerAction.CONTINUE, + ControlledFragmentHandlerAction.COMMIT, + ControlledFragmentHandlerAction.CONTINUE + ); - var fragmentsRead = image.ControlledPoll(MockControlledFragmentHandler, int.MaxValue); + var fragmentsRead = image.ControlledPoll(_mockControlledFragmentHandler, int.MaxValue); Assert.AreEqual(3, fragmentsRead); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustHaveHappened() - .Then(A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - ALIGNED_FRAME_LENGTH + DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)) - .MustHaveHappened()) - .Then(A.CallTo(() => Position.SetRelease(initialPosition + ALIGNED_FRAME_LENGTH * 2L)) - .MustHaveHappened()) - .Then(A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - 2 * ALIGNED_FRAME_LENGTH + DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)) - .MustHaveHappened()) - .Then(A.CallTo(() => Position.SetRelease(initialPosition + ALIGNED_FRAME_LENGTH * 3L)) - .MustHaveHappened()); + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened() + .Then( + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + AlignedFrameLength + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened() + ) + .Then( + A.CallTo(() => _position.SetRelease(initialPosition + AlignedFrameLength * 2L)).MustHaveHappened() + ) + .Then( + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + 2 * AlignedFrameLength + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened() + ) + .Then( + A.CallTo(() => _position.SetRelease(initialPosition + AlignedFrameLength * 3L)).MustHaveHappened() + ); } [Test] public void ShouldPollFragmentsToControlledFragmentHandlerOnContinue() { - var initialPosition = - LogBufferDescriptor.ComputePosition(INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + var initialPosition = LogBufferDescriptor.ComputePosition( + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(1)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(1)); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment(A._, A._, A._, A
._) + ) .Returns(ControlledFragmentHandlerAction.CONTINUE); - var fragmentsRead = image.ControlledPoll(MockControlledFragmentHandler, int.MaxValue); + var fragmentsRead = image.ControlledPoll(_mockControlledFragmentHandler, int.MaxValue); Assert.AreEqual(2, fragmentsRead); - A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustHaveHappened() - .Then(A.CallTo(() => MockControlledFragmentHandler.OnFragment(A._, - ALIGNED_FRAME_LENGTH + DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)) - .MustHaveHappened()) - .Then(A.CallTo(() => Position.SetRelease(initialPosition + ALIGNED_FRAME_LENGTH * 2L)) - .MustHaveHappened()); + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened() + .Then( + A.CallTo(() => + _mockControlledFragmentHandler.OnFragment( + A._, + AlignedFrameLength + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened() + ) + .Then( + A.CallTo(() => _position.SetRelease(initialPosition + AlignedFrameLength * 2L)).MustHaveHappened() + ); } - [Test] public void ShouldPollFragmentsToBoundedFragmentHandlerWithMaxPositionAboveIntMaxValue() { - var initialOffset = TERM_BUFFER_LENGTH - (ALIGNED_FRAME_LENGTH * 2); + var initialOffset = TermBufferLength - (AlignedFrameLength * 2); var initialPosition = LogBufferDescriptor.ComputePosition( - INITIAL_TERM_ID, initialOffset, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - var maxPosition = (long) int.MaxValue + 1000; - Position.SetRelease(initialPosition); + InitialTermId, + initialOffset, + PositionBitsToShift, + InitialTermId + ); + var maxPosition = (long)int.MaxValue + 1000; + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, initialOffset); - InsertPaddingFrame(INITIAL_TERM_ID, initialOffset + ALIGNED_FRAME_LENGTH); + InsertDataFrame(InitialTermId, initialOffset); + InsertPaddingFrame(InitialTermId, initialOffset + AlignedFrameLength); - var fragmentsRead = image.BoundedPoll(MockFragmentHandler, maxPosition, int.MaxValue); + var fragmentsRead = image.BoundedPoll(_mockFragmentHandler, maxPosition, int.MaxValue); Assert.That(fragmentsRead, Is.EqualTo(1)); - A.CallTo(() => MockFragmentHandler.OnFragment(A._, - initialOffset + DataHeaderFlyweight.HEADER_LENGTH, DATA.Length, A
._)).MustHaveHappened() - .Then(A.CallTo(() => Position.SetRelease(TERM_BUFFER_LENGTH)).MustHaveHappened()); + A.CallTo(() => + _mockFragmentHandler.OnFragment( + A._, + initialOffset + DataHeaderFlyweight.HEADER_LENGTH, + Data.Length, + A
._ + ) + ) + .MustHaveHappened() + .Then(A.CallTo(() => _position.SetRelease(TermBufferLength)).MustHaveHappened()); } [Test] public void BlockPollDeliversBlockAndAdvancesPosition() { var initialPosition = LogBufferDescriptor.ComputePosition( - INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); int handlerCallCount = 0; - int receivedOffset = -1, receivedLength = -1, receivedSessionId = -1, receivedTermId = -1; + int receivedOffset = -1, + receivedLength = -1, + receivedSessionId = -1, + receivedTermId = -1; var bytes = image.BlockPoll( (buffer, offset, length, sessionId, termId) => { @@ -599,26 +841,31 @@ public void BlockPollDeliversBlockAndAdvancesPosition() receivedSessionId = sessionId; receivedTermId = termId; }, - int.MaxValue); + int.MaxValue + ); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, bytes); + Assert.AreEqual(AlignedFrameLength, bytes); Assert.AreEqual(1, handlerCallCount); Assert.AreEqual(0, receivedOffset); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, receivedLength); - Assert.AreEqual(SESSION_ID, receivedSessionId); - Assert.AreEqual(INITIAL_TERM_ID, receivedTermId); - Assert.AreEqual(initialPosition + ALIGNED_FRAME_LENGTH, image.Position); + Assert.AreEqual(AlignedFrameLength, receivedLength); + Assert.AreEqual(SessionId, receivedSessionId); + Assert.AreEqual(InitialTermId, receivedTermId); + Assert.AreEqual(initialPosition + AlignedFrameLength, image.Position); } [Test] public void BlockPollReturnsZeroAndDoesNothingWhenClosed() { var initialPosition = LogBufferDescriptor.ComputePosition( - INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); image.Close(); bool handlerCalled = false; @@ -645,23 +892,32 @@ public void BlockPollReturnsZeroWhenNoFramesAvailable() public void BlockPollRespectsBlockLengthLimit() { var initialPosition = LogBufferDescriptor.ComputePosition( - INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(1)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(1)); int handlerCallCount = 0; int receivedLength = -1; var bytes = image.BlockPoll( - (b, o, l, s, t) => { handlerCallCount++; receivedLength = l; }, - ALIGNED_FRAME_LENGTH + 1); + (b, o, l, s, t) => + { + handlerCallCount++; + receivedLength = l; + }, + AlignedFrameLength + 1 + ); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, bytes); + Assert.AreEqual(AlignedFrameLength, bytes); Assert.AreEqual(1, handlerCallCount); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, receivedLength); - Assert.AreEqual(initialPosition + ALIGNED_FRAME_LENGTH, image.Position); + Assert.AreEqual(AlignedFrameLength, receivedLength); + Assert.AreEqual(initialPosition + AlignedFrameLength, image.Position); } [Test] @@ -670,39 +926,55 @@ public void BlockPollDeliversPaddingFrameWhenFirstFrameIsPadding() // Padding frame placed near end of term so the helper's TermRebuilder.Insert call // copies only ALIGNED_FRAME_LENGTH bytes (RcvBuffer's capacity). Scan starts at // paddingOffset and the first frame is padding, exercising the corner case. - int paddingOffset = TERM_BUFFER_LENGTH - ALIGNED_FRAME_LENGTH; + int paddingOffset = TermBufferLength - AlignedFrameLength; var initialPosition = LogBufferDescriptor.ComputePosition( - INITIAL_TERM_ID, paddingOffset, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + InitialTermId, + paddingOffset, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertPaddingFrame(INITIAL_TERM_ID, paddingOffset); + InsertPaddingFrame(InitialTermId, paddingOffset); int handlerCallCount = 0; int receivedLength = -1; var bytes = image.BlockPoll( - (b, o, l, s, t) => { handlerCallCount++; receivedLength = l; }, - TERM_BUFFER_LENGTH); + (b, o, l, s, t) => + { + handlerCallCount++; + receivedLength = l; + }, + TermBufferLength + ); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, bytes); + Assert.AreEqual(AlignedFrameLength, bytes); Assert.AreEqual(1, handlerCallCount); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, receivedLength); - Assert.AreEqual(initialPosition + ALIGNED_FRAME_LENGTH, image.Position); + Assert.AreEqual(AlignedFrameLength, receivedLength); + Assert.AreEqual(initialPosition + AlignedFrameLength, image.Position); } [Test] public void RawPollDeliversBlockAndAdvancesPosition() { var initialPosition = LogBufferDescriptor.ComputePosition( - INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); int handlerCallCount = 0; long receivedFileOffset = -1; - int receivedTermOffset = -1, receivedLength = -1, receivedSessionId = -1, receivedTermId = -1; + int receivedTermOffset = -1, + receivedLength = -1, + receivedSessionId = -1, + receivedTermId = -1; var bytes = image.RawPoll( (fs, fileOffset, buf, termOffset, length, sessionId, termId) => { @@ -713,16 +985,17 @@ public void RawPollDeliversBlockAndAdvancesPosition() receivedSessionId = sessionId; receivedTermId = termId; }, - int.MaxValue); + int.MaxValue + ); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, bytes); + Assert.AreEqual(AlignedFrameLength, bytes); Assert.AreEqual(1, handlerCallCount); Assert.AreEqual(0L, receivedFileOffset); Assert.AreEqual(0, receivedTermOffset); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, receivedLength); - Assert.AreEqual(SESSION_ID, receivedSessionId); - Assert.AreEqual(INITIAL_TERM_ID, receivedTermId); - Assert.AreEqual(initialPosition + ALIGNED_FRAME_LENGTH, image.Position); + Assert.AreEqual(AlignedFrameLength, receivedLength); + Assert.AreEqual(SessionId, receivedSessionId); + Assert.AreEqual(InitialTermId, receivedTermId); + Assert.AreEqual(initialPosition + AlignedFrameLength, image.Position); } [Test] @@ -730,11 +1003,15 @@ public void RawPollComputesFileOffsetForNonZeroPartition() { // Place the subscriber position into partition index 2; fileOffset must be // (capacity * activeIndex) + termOffset. - int activeTermId = INITIAL_TERM_ID + 2; + int activeTermId = InitialTermId + 2; int termOffset = OffsetForFrame(0); var initialPosition = LogBufferDescriptor.ComputePosition( - activeTermId, termOffset, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + activeTermId, + termOffset, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); InsertDataFrame(activeTermId, termOffset); @@ -742,10 +1019,11 @@ public void RawPollComputesFileOffsetForNonZeroPartition() long receivedFileOffset = -1; var bytes = image.RawPoll( (fs, fileOffset, buf, to, l, s, t) => receivedFileOffset = fileOffset, - int.MaxValue); + int.MaxValue + ); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, bytes); - long expectedFileOffset = (long)TERM_BUFFER_LENGTH * 2 + termOffset; + Assert.AreEqual(AlignedFrameLength, bytes); + long expectedFileOffset = (long)TermBufferLength * 2 + termOffset; Assert.AreEqual(expectedFileOffset, receivedFileOffset); } @@ -753,11 +1031,15 @@ public void RawPollComputesFileOffsetForNonZeroPartition() public void RawPollReturnsZeroAndDoesNothingWhenClosed() { var initialPosition = LogBufferDescriptor.ComputePosition( - INITIAL_TERM_ID, 0, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + InitialTermId, + 0, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, OffsetForFrame(0)); + InsertDataFrame(InitialTermId, OffsetForFrame(0)); image.Close(); bool handlerCalled = false; @@ -783,108 +1065,148 @@ public void RawPollReturnsZeroWhenNoFramesAvailable() [Test] public void RawPollDeliversPaddingFrameWhenFirstFrameIsPadding() { - int paddingOffset = TERM_BUFFER_LENGTH - ALIGNED_FRAME_LENGTH; + int paddingOffset = TermBufferLength - AlignedFrameLength; var initialPosition = LogBufferDescriptor.ComputePosition( - INITIAL_TERM_ID, paddingOffset, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + InitialTermId, + paddingOffset, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertPaddingFrame(INITIAL_TERM_ID, paddingOffset); + InsertPaddingFrame(InitialTermId, paddingOffset); int handlerCallCount = 0; int receivedLength = -1; var bytes = image.RawPoll( - (fs, fo, buf, to, l, s, t) => { handlerCallCount++; receivedLength = l; }, - TERM_BUFFER_LENGTH); + (fs, fo, buf, to, l, s, t) => + { + handlerCallCount++; + receivedLength = l; + }, + TermBufferLength + ); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, bytes); + Assert.AreEqual(AlignedFrameLength, bytes); Assert.AreEqual(1, handlerCallCount); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, receivedLength); - Assert.AreEqual(initialPosition + ALIGNED_FRAME_LENGTH, image.Position); + Assert.AreEqual(AlignedFrameLength, receivedLength); + Assert.AreEqual(initialPosition + AlignedFrameLength, image.Position); } [Test] public void BlockPollClampsBlockLengthLimitWithoutIntegerOverflow() { - int frameOffset = ALIGNED_FRAME_LENGTH; + int frameOffset = AlignedFrameLength; var initialPosition = LogBufferDescriptor.ComputePosition( - INITIAL_TERM_ID, frameOffset, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + InitialTermId, + frameOffset, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, frameOffset); + InsertDataFrame(InitialTermId, frameOffset); int handlerCallCount = 0; int receivedLength = -1; var bytes = image.BlockPoll( - (b, o, l, s, t) => { handlerCallCount++; receivedLength = l; }, - int.MaxValue); + (b, o, l, s, t) => + { + handlerCallCount++; + receivedLength = l; + }, + int.MaxValue + ); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, bytes); + Assert.AreEqual(AlignedFrameLength, bytes); Assert.AreEqual(1, handlerCallCount); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, receivedLength); - Assert.AreEqual(initialPosition + ALIGNED_FRAME_LENGTH, image.Position); + Assert.AreEqual(AlignedFrameLength, receivedLength); + Assert.AreEqual(initialPosition + AlignedFrameLength, image.Position); } [Test] public void RawPollClampsBlockLengthLimitWithoutIntegerOverflow() { - int frameOffset = ALIGNED_FRAME_LENGTH; + int frameOffset = AlignedFrameLength; var initialPosition = LogBufferDescriptor.ComputePosition( - INITIAL_TERM_ID, frameOffset, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); - Position.SetRelease(initialPosition); + InitialTermId, + frameOffset, + PositionBitsToShift, + InitialTermId + ); + _position.SetRelease(initialPosition); var image = CreateImage(); - InsertDataFrame(INITIAL_TERM_ID, frameOffset); + InsertDataFrame(InitialTermId, frameOffset); int handlerCallCount = 0; int receivedLength = -1; var bytes = image.RawPoll( - (fs, fo, buf, to, l, s, t) => { handlerCallCount++; receivedLength = l; }, - int.MaxValue); + (fs, fo, buf, to, l, s, t) => + { + handlerCallCount++; + receivedLength = l; + }, + int.MaxValue + ); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, bytes); + Assert.AreEqual(AlignedFrameLength, bytes); Assert.AreEqual(1, handlerCallCount); - Assert.AreEqual(ALIGNED_FRAME_LENGTH, receivedLength); - Assert.AreEqual(initialPosition + ALIGNED_FRAME_LENGTH, image.Position); + Assert.AreEqual(AlignedFrameLength, receivedLength); + Assert.AreEqual(initialPosition + AlignedFrameLength, image.Position); } private Image CreateImage() { - return new Image(Subscription, SESSION_ID, Position, LogBuffers, ErrorHandler, SOURCE_IDENTITY, - CORRELATION_ID); + return new Image( + _subscription, + SessionId, + _position, + _logBuffers, + _errorHandler, + SourceIdentity, + CorrelationId + ); } private void InsertDataFrame(int activeTermId, int termOffset) { - DataHeader.TermId(INITIAL_TERM_ID).StreamId(STREAM_ID).SessionId(SESSION_ID).TermOffset(termOffset) - .FrameLength(DATA.Length + DataHeaderFlyweight.HEADER_LENGTH).HeaderType(HeaderFlyweight.HDR_TYPE_DATA) - .Flags(DataHeaderFlyweight.BEGIN_AND_END_FLAGS).Version(HeaderFlyweight.CURRENT_VERSION); + _dataHeader + .TermId(InitialTermId) + .StreamId(StreamId) + .SessionId(SessionId) + .TermOffset(termOffset) + .FrameLength(Data.Length + DataHeaderFlyweight.HEADER_LENGTH) + .HeaderType(HeaderFlyweight.HDR_TYPE_DATA) + .Flags(DataHeaderFlyweight.BEGIN_AND_END_FLAGS) + .Version(HeaderFlyweight.CURRENT_VERSION); - RcvBuffer.PutBytes(DataHeader.DataOffset(), DATA); + _rcvBuffer.PutBytes(_dataHeader.DataOffset(), Data); - var activeIndex = LogBufferDescriptor.IndexByTerm(INITIAL_TERM_ID, activeTermId); - TermRebuilder.Insert(TermBuffers[activeIndex], termOffset, RcvBuffer, ALIGNED_FRAME_LENGTH); + var activeIndex = LogBufferDescriptor.IndexByTerm(InitialTermId, activeTermId); + TermRebuilder.Insert(_termBuffers[activeIndex], termOffset, _rcvBuffer, AlignedFrameLength); } private void InsertPaddingFrame(int activeTermId, int termOffset) { - DataHeader - .TermId(INITIAL_TERM_ID) - .StreamId(STREAM_ID) - .SessionId(SESSION_ID) - .FrameLength(TERM_BUFFER_LENGTH - termOffset) + _dataHeader + .TermId(InitialTermId) + .StreamId(StreamId) + .SessionId(SessionId) + .FrameLength(TermBufferLength - termOffset) .HeaderType(HeaderFlyweight.HDR_TYPE_PAD) .Flags(DataHeaderFlyweight.BEGIN_AND_END_FLAGS) .Version(HeaderFlyweight.CURRENT_VERSION); - var activeIndex = LogBufferDescriptor.IndexByTerm(INITIAL_TERM_ID, activeTermId); - TermRebuilder.Insert(TermBuffers[activeIndex], termOffset, RcvBuffer, TERM_BUFFER_LENGTH - termOffset); + var activeIndex = LogBufferDescriptor.IndexByTerm(InitialTermId, activeTermId); + TermRebuilder.Insert(_termBuffers[activeIndex], termOffset, _rcvBuffer, TermBufferLength - termOffset); } private static int OffsetForFrame(int index) { - return index * ALIGNED_FRAME_LENGTH; + return index * AlignedFrameLength; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/LogBuffer/HeaderTest.cs b/src/Adaptive.Aeron.Tests/LogBuffer/HeaderTest.cs index cc83059a..348e896b 100644 --- a/src/Adaptive.Aeron.Tests/LogBuffer/HeaderTest.cs +++ b/src/Adaptive.Aeron.Tests/LogBuffer/HeaderTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron.LogBuffer; using Adaptive.Aeron.Protocol; using Adaptive.Agrona.Concurrent; @@ -29,12 +45,11 @@ public void PositionCalculationTheEndOfTheMessageInTheLog( int frameLength, int termOffset, int termId, - long expectedPosition) + long expectedPosition + ) { var dataHeaderFlyweight = new DataHeaderFlyweight(); - var header = new Header(initialTermId, positionBitsToShift); - header.Buffer = dataHeaderFlyweight; - header.Offset = 0; + var header = new Header(initialTermId, positionBitsToShift) { Buffer = dataHeaderFlyweight, Offset = 0 }; dataHeaderFlyweight.Wrap(new byte[64], 16, 32); dataHeaderFlyweight.FrameLength(frameLength); dataHeaderFlyweight.TermId(termId); @@ -67,18 +82,15 @@ public void ShouldReadDataFromTheBuffer( int sessionId, int streamId, int termId, - long reservedValue) + long reservedValue + ) { var array = new byte[100]; const int offset = 16; var dataHeaderFlyweight = new DataHeaderFlyweight(); dataHeaderFlyweight.Wrap(array, offset, 64); - dataHeaderFlyweight - .FrameLength(frameLength) - .Version(version) - .Flags(flags) - .HeaderType(type); + dataHeaderFlyweight.FrameLength(frameLength).Version(version).Flags(flags).HeaderType(type); dataHeaderFlyweight .TermOffset(termOffset) @@ -87,9 +99,7 @@ public void ShouldReadDataFromTheBuffer( .TermId(termId) .ReservedValue(reservedValue); - var header = new Header(5, 22); - header.Buffer = new UnsafeBuffer(array); - header.Offset = offset; + var header = new Header(5, 22) { Buffer = new UnsafeBuffer(array), Offset = offset }; Assert.AreEqual(frameLength, header.FrameLength); Assert.AreEqual(flags, header.Flags); diff --git a/src/Adaptive.Aeron.Tests/LogBuffer/HeaderWriterTest.cs b/src/Adaptive.Aeron.Tests/LogBuffer/HeaderWriterTest.cs index 85860080..6d5646ba 100644 --- a/src/Adaptive.Aeron.Tests/LogBuffer/HeaderWriterTest.cs +++ b/src/Adaptive.Aeron.Tests/LogBuffer/HeaderWriterTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using Adaptive.Aeron.LogBuffer; using Adaptive.Aeron.Protocol; @@ -33,28 +49,52 @@ public void ShouldEncodeHeaderUsingLittleEndianByteOrder( int termOffset, int sessionId, int streamId, - int termId) + int termId + ) { Assume.That(BitConverter.IsLittleEndian, "LE-only test"); _defaultHeaderBuffer.PutByte(HeaderFlyweight.VERSION_FIELD_OFFSET, version); _defaultHeaderBuffer.PutByte(HeaderFlyweight.FLAGS_FIELD_OFFSET, flags); PutShort(_defaultHeaderBuffer, HeaderFlyweight.TYPE_FIELD_OFFSET, headerType, ByteOrder.LittleEndian); - PutInt(_defaultHeaderBuffer, DataHeaderFlyweight.SESSION_ID_FIELD_OFFSET, sessionId, ByteOrder.LittleEndian); + PutInt( + _defaultHeaderBuffer, + DataHeaderFlyweight.SESSION_ID_FIELD_OFFSET, + sessionId, + ByteOrder.LittleEndian + ); PutInt(_defaultHeaderBuffer, DataHeaderFlyweight.STREAM_ID_FIELD_OFFSET, streamId, ByteOrder.LittleEndian); var headerWriter = HeaderWriter.NewInstance(_defaultHeaderBuffer); Assert.AreEqual(typeof(HeaderWriter), headerWriter.GetType()); headerWriter.Write(_termBuffer, termOffset, frameLength, termId); - Assert.AreEqual(-frameLength, GetInt(_termBuffer, termOffset + HeaderFlyweight.FRAME_LENGTH_FIELD_OFFSET, ByteOrder.LittleEndian)); + Assert.AreEqual( + -frameLength, + GetInt(_termBuffer, termOffset + HeaderFlyweight.FRAME_LENGTH_FIELD_OFFSET, ByteOrder.LittleEndian) + ); Assert.AreEqual(version, _termBuffer.GetByte(termOffset + HeaderFlyweight.VERSION_FIELD_OFFSET)); Assert.AreEqual(flags, _termBuffer.GetByte(termOffset + HeaderFlyweight.FLAGS_FIELD_OFFSET)); - Assert.AreEqual(headerType, GetShort(_termBuffer, termOffset + HeaderFlyweight.TYPE_FIELD_OFFSET, ByteOrder.LittleEndian)); - Assert.AreEqual(termOffset, GetInt(_termBuffer, termOffset + DataHeaderFlyweight.TERM_OFFSET_FIELD_OFFSET, ByteOrder.LittleEndian)); - Assert.AreEqual(sessionId, GetInt(_termBuffer, termOffset + DataHeaderFlyweight.SESSION_ID_FIELD_OFFSET, ByteOrder.LittleEndian)); - Assert.AreEqual(streamId, GetInt(_termBuffer, termOffset + DataHeaderFlyweight.STREAM_ID_FIELD_OFFSET, ByteOrder.LittleEndian)); - Assert.AreEqual(termId, GetInt(_termBuffer, termOffset + DataHeaderFlyweight.TERM_ID_FIELD_OFFSET, ByteOrder.LittleEndian)); + Assert.AreEqual( + headerType, + GetShort(_termBuffer, termOffset + HeaderFlyweight.TYPE_FIELD_OFFSET, ByteOrder.LittleEndian) + ); + Assert.AreEqual( + termOffset, + GetInt(_termBuffer, termOffset + DataHeaderFlyweight.TERM_OFFSET_FIELD_OFFSET, ByteOrder.LittleEndian) + ); + Assert.AreEqual( + sessionId, + GetInt(_termBuffer, termOffset + DataHeaderFlyweight.SESSION_ID_FIELD_OFFSET, ByteOrder.LittleEndian) + ); + Assert.AreEqual( + streamId, + GetInt(_termBuffer, termOffset + DataHeaderFlyweight.STREAM_ID_FIELD_OFFSET, ByteOrder.LittleEndian) + ); + Assert.AreEqual( + termId, + GetInt(_termBuffer, termOffset + DataHeaderFlyweight.TERM_ID_FIELD_OFFSET, ByteOrder.LittleEndian) + ); } [TestCase(100, (byte)8, (byte)5, (short)9, 352, -777, -1000, -33)] @@ -69,9 +109,13 @@ public void ShouldEncodeHeaderUsingBigEndianByteOrder( int termOffset, int sessionId, int streamId, - int termId) + int termId + ) { - Assume.That(!BitConverter.IsLittleEndian, "BE-only test (skipped on LE platforms)"); + if (BitConverter.IsLittleEndian) + { + Assert.Ignore("BE-only test; .NET has no BE host. Kept for Java parity."); + } _defaultHeaderBuffer.PutByte(HeaderFlyweight.VERSION_FIELD_OFFSET, version); _defaultHeaderBuffer.PutByte(HeaderFlyweight.FLAGS_FIELD_OFFSET, flags); @@ -83,29 +127,47 @@ public void ShouldEncodeHeaderUsingBigEndianByteOrder( Assert.AreNotEqual(typeof(HeaderWriter), headerWriter.GetType()); headerWriter.Write(_termBuffer, termOffset, frameLength, termId); - Assert.AreEqual(-frameLength, GetInt(_termBuffer, termOffset + HeaderFlyweight.FRAME_LENGTH_FIELD_OFFSET, ByteOrder.BigEndian)); + Assert.AreEqual( + -frameLength, + GetInt(_termBuffer, termOffset + HeaderFlyweight.FRAME_LENGTH_FIELD_OFFSET, ByteOrder.BigEndian) + ); Assert.AreEqual(version, _termBuffer.GetByte(termOffset + HeaderFlyweight.VERSION_FIELD_OFFSET)); Assert.AreEqual(flags, _termBuffer.GetByte(termOffset + HeaderFlyweight.FLAGS_FIELD_OFFSET)); - Assert.AreEqual(headerType, GetShort(_termBuffer, termOffset + HeaderFlyweight.TYPE_FIELD_OFFSET, ByteOrder.BigEndian)); - Assert.AreEqual(termOffset, GetInt(_termBuffer, termOffset + DataHeaderFlyweight.TERM_OFFSET_FIELD_OFFSET, ByteOrder.BigEndian)); - Assert.AreEqual(sessionId, GetInt(_termBuffer, termOffset + DataHeaderFlyweight.SESSION_ID_FIELD_OFFSET, ByteOrder.BigEndian)); - Assert.AreEqual(streamId, GetInt(_termBuffer, termOffset + DataHeaderFlyweight.STREAM_ID_FIELD_OFFSET, ByteOrder.BigEndian)); - Assert.AreEqual(termId, GetInt(_termBuffer, termOffset + DataHeaderFlyweight.TERM_ID_FIELD_OFFSET, ByteOrder.BigEndian)); + Assert.AreEqual( + headerType, + GetShort(_termBuffer, termOffset + HeaderFlyweight.TYPE_FIELD_OFFSET, ByteOrder.BigEndian) + ); + Assert.AreEqual( + termOffset, + GetInt(_termBuffer, termOffset + DataHeaderFlyweight.TERM_OFFSET_FIELD_OFFSET, ByteOrder.BigEndian) + ); + Assert.AreEqual( + sessionId, + GetInt(_termBuffer, termOffset + DataHeaderFlyweight.SESSION_ID_FIELD_OFFSET, ByteOrder.BigEndian) + ); + Assert.AreEqual( + streamId, + GetInt(_termBuffer, termOffset + DataHeaderFlyweight.STREAM_ID_FIELD_OFFSET, ByteOrder.BigEndian) + ); + Assert.AreEqual( + termId, + GetInt(_termBuffer, termOffset + DataHeaderFlyweight.TERM_ID_FIELD_OFFSET, ByteOrder.BigEndian) + ); } // Native UnsafeBuffer reads/writes use host order. These helpers apply the requested // byte order via EndianessConverter so the test reads match Java's putShort/getShort // overloads that take a ByteOrder argument. - private static void PutShort(UnsafeBuffer buffer, int index, short value, ByteOrder byteOrder) - => buffer.PutShort(index, EndianessConverter.ApplyInt16(byteOrder, value)); + private static void PutShort(UnsafeBuffer buffer, int index, short value, ByteOrder byteOrder) => + buffer.PutShort(index, EndianessConverter.ApplyInt16(byteOrder, value)); - private static void PutInt(UnsafeBuffer buffer, int index, int value, ByteOrder byteOrder) - => buffer.PutInt(index, EndianessConverter.ApplyInt32(byteOrder, value)); + private static void PutInt(UnsafeBuffer buffer, int index, int value, ByteOrder byteOrder) => + buffer.PutInt(index, EndianessConverter.ApplyInt32(byteOrder, value)); - private static short GetShort(UnsafeBuffer buffer, int index, ByteOrder byteOrder) - => EndianessConverter.ApplyInt16(byteOrder, buffer.GetShort(index)); + private static short GetShort(UnsafeBuffer buffer, int index, ByteOrder byteOrder) => + EndianessConverter.ApplyInt16(byteOrder, buffer.GetShort(index)); - private static int GetInt(UnsafeBuffer buffer, int index, ByteOrder byteOrder) - => EndianessConverter.ApplyInt32(byteOrder, buffer.GetInt(index)); + private static int GetInt(UnsafeBuffer buffer, int index, ByteOrder byteOrder) => + EndianessConverter.ApplyInt32(byteOrder, buffer.GetInt(index)); } } diff --git a/src/Adaptive.Aeron.Tests/LogBuffer/LogBufferDescriptorTest.cs b/src/Adaptive.Aeron.Tests/LogBuffer/LogBufferDescriptorTest.cs index 7ff2e15a..fe2b03a4 100644 --- a/src/Adaptive.Aeron.Tests/LogBuffer/LogBufferDescriptorTest.cs +++ b/src/Adaptive.Aeron.Tests/LogBuffer/LogBufferDescriptorTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona.Concurrent; using NUnit.Framework; diff --git a/src/Adaptive.Aeron.Tests/LogBuffer/TermBlockScannerTest.cs b/src/Adaptive.Aeron.Tests/LogBuffer/TermBlockScannerTest.cs index efdcdbb9..dd5c232c 100644 --- a/src/Adaptive.Aeron.Tests/LogBuffer/TermBlockScannerTest.cs +++ b/src/Adaptive.Aeron.Tests/LogBuffer/TermBlockScannerTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -53,8 +53,7 @@ public void ShouldReadFirstMessage() const int messageLength = 50; int alignedMessageLength = BitUtil.Align(messageLength, FrameDescriptor.FRAME_ALIGNMENT); - A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(offset))) - .Returns(messageLength); + A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(offset))).Returns(messageLength); A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(offset))) .Returns((short)HeaderFlyweight.HDR_TYPE_DATA); @@ -70,8 +69,7 @@ public void ShouldReadBlockOfTwoMessages() const int messageLength = 50; int alignedMessageLength = BitUtil.Align(messageLength, FrameDescriptor.FRAME_ALIGNMENT); - A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(offset))) - .Returns(messageLength); + A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(offset))).Returns(messageLength); A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(offset))) .Returns((short)HeaderFlyweight.HDR_TYPE_DATA); A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(alignedMessageLength))) @@ -93,8 +91,7 @@ public void ShouldReadBlockOfThreeMessagesThatFillBuffer() int alignedMessageLength = BitUtil.Align(messageLength, FrameDescriptor.FRAME_ALIGNMENT); int thirdMessageLength = limit - (alignedMessageLength * 2); - A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(offset))) - .Returns(messageLength); + A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(offset))).Returns(messageLength); A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(offset))) .Returns((short)HeaderFlyweight.HDR_TYPE_DATA); A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(alignedMessageLength))) @@ -105,7 +102,7 @@ public void ShouldReadBlockOfThreeMessagesThatFillBuffer() .Returns(thirdMessageLength); A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(alignedMessageLength * 2))) .Returns((short)HeaderFlyweight.HDR_TYPE_DATA); - + int newOffset = TermBlockScanner.Scan(_termBuffer, offset, limit); Assert.AreEqual(limit, newOffset); @@ -119,8 +116,7 @@ public void ShouldReadBlockOfTwoMessagesBecauseOfLimit() int alignedMessageLength = BitUtil.Align(messageLength, FrameDescriptor.FRAME_ALIGNMENT); int limit = (alignedMessageLength * 2) + 1; - A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(offset))) - .Returns(messageLength); + A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(offset))).Returns(messageLength); A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(offset))) .Returns((short)HeaderFlyweight.HDR_TYPE_DATA); A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(alignedMessageLength))) @@ -131,7 +127,7 @@ public void ShouldReadBlockOfTwoMessagesBecauseOfLimit() .Returns(messageLength); A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(alignedMessageLength * 2))) .Returns((short)HeaderFlyweight.HDR_TYPE_DATA); - + int newOffset = TermBlockScanner.Scan(_termBuffer, offset, limit); Assert.AreEqual(alignedMessageLength * 2, newOffset); @@ -145,8 +141,7 @@ public void ShouldFailToReadFirstMessageBecauseOfLimit() int alignedMessageLength = BitUtil.Align(messageLength, FrameDescriptor.FRAME_ALIGNMENT); int limit = alignedMessageLength - 1; - A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(offset))) - .Returns(messageLength); + A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(offset))).Returns(messageLength); A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(offset))) .Returns((short)HeaderFlyweight.HDR_TYPE_DATA); @@ -163,8 +158,7 @@ public void ShouldReadOneMessageOnLimit() int alignedMessageLength = BitUtil.Align(messageLength, FrameDescriptor.FRAME_ALIGNMENT); int limit = alignedMessageLength; - A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(offset))) - .Returns(messageLength); + A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(offset))).Returns(messageLength); int newOffset = TermBlockScanner.Scan(_termBuffer, offset, limit); @@ -178,12 +172,15 @@ public void ShouldReadBlockOfOneMessageThenPadding() int limit = _termBuffer.Capacity; int messageLength = 50; int alignedMessageLength = BitUtil.Align(messageLength, FrameDescriptor.FRAME_ALIGNMENT); - + A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(offset))).Returns(messageLength); - A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(offset))).Returns((short)HeaderFlyweight.HDR_TYPE_DATA); - A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(alignedMessageLength))).Returns(messageLength); - A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(alignedMessageLength))).Returns((short)HeaderFlyweight.HDR_TYPE_PAD); - + A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(offset))) + .Returns((short)HeaderFlyweight.HDR_TYPE_DATA); + A.CallTo(() => _termBuffer.GetIntVolatile(FrameDescriptor.LengthOffset(alignedMessageLength))) + .Returns(messageLength); + A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(alignedMessageLength))) + .Returns((short)HeaderFlyweight.HDR_TYPE_PAD); + int firstOffset = TermBlockScanner.Scan(_termBuffer, offset, limit); Assert.AreEqual(alignedMessageLength, firstOffset); @@ -191,4 +188,4 @@ public void ShouldReadBlockOfOneMessageThenPadding() Assert.AreEqual(alignedMessageLength * 2, secondOffset); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/LogBuffer/TermReaderTest.cs b/src/Adaptive.Aeron.Tests/LogBuffer/TermReaderTest.cs index 437bf921..ea90d60e 100644 --- a/src/Adaptive.Aeron.Tests/LogBuffer/TermReaderTest.cs +++ b/src/Adaptive.Aeron.Tests/LogBuffer/TermReaderTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,51 +27,60 @@ namespace Adaptive.Aeron.Tests.LogBuffer [TestFixture] public class TermReaderTest { - private static readonly int TERM_BUFFER_CAPACITY = LogBufferDescriptor.TERM_MIN_LENGTH; - private static readonly int HEADER_LENGTH = DataHeaderFlyweight.HEADER_LENGTH; - private const int INITIAL_TERM_ID = 7; - private static readonly int POSITION_BITS_TO_SHIFT = - LogBufferDescriptor.PositionBitsToShift(TERM_BUFFER_CAPACITY); - - private Header header; - private UnsafeBuffer termBuffer; - private IErrorHandler errorHandler; - private IFragmentHandler handler; - private IPosition subscriberPosition; + private static readonly int TermBufferCapacity = LogBufferDescriptor.TERM_MIN_LENGTH; + private static readonly int HeaderLength = DataHeaderFlyweight.HEADER_LENGTH; + private const int InitialTermId = 7; + private static readonly int PositionBitsToShift = LogBufferDescriptor.PositionBitsToShift(TermBufferCapacity); + + private Header _header; + private UnsafeBuffer _termBuffer; + private IErrorHandler _errorHandler; + private IFragmentHandler _handler; + private IPosition _subscriberPosition; [SetUp] public void SetUp() { - header = new Header(INITIAL_TERM_ID, TERM_BUFFER_CAPACITY); - termBuffer = A.Fake(); - errorHandler = A.Fake(); - handler = A.Fake(); - subscriberPosition = A.Fake(); + _header = new Header(InitialTermId, TermBufferCapacity); + _termBuffer = A.Fake(); + _errorHandler = A.Fake(); + _handler = A.Fake(); + _subscriberPosition = A.Fake(); - A.CallTo(() => termBuffer.Capacity).Returns(TERM_BUFFER_CAPACITY); + A.CallTo(() => _termBuffer.Capacity).Returns(TermBufferCapacity); } [Test] public void ShouldReadFirstMessage() { const int msgLength = 1; - int frameLength = HEADER_LENGTH + msgLength; + int frameLength = HeaderLength + msgLength; int alignedFrameLength = BitUtil.Align(frameLength, FrameDescriptor.FRAME_ALIGNMENT); const int termOffset = 0; - A.CallTo(() => termBuffer.GetIntVolatile(0)) - .Returns(frameLength); - A.CallTo(() => termBuffer.GetShort(FrameDescriptor.TypeOffset(0))) - .Returns((short) HeaderFlyweight.HDR_TYPE_DATA); + A.CallTo(() => _termBuffer.GetIntVolatile(0)).Returns(frameLength); + A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(0))) + .Returns((short)HeaderFlyweight.HDR_TYPE_DATA); - int readOutcome = TermReader.Read(termBuffer, termOffset, handler, int.MaxValue, header, errorHandler, 0, - subscriberPosition); + int readOutcome = TermReader.Read( + _termBuffer, + termOffset, + _handler, + int.MaxValue, + _header, + _errorHandler, + 0, + _subscriberPosition + ); Assert.AreEqual(1, TermReader.FragmentsRead(readOutcome)); - A.CallTo(() => termBuffer.GetIntVolatile(0)).MustHaveHappened() - .Then(A.CallTo(() => handler.OnFragment(termBuffer, HEADER_LENGTH, msgLength, A
._)) - .MustHaveHappened()) - .Then(A.CallTo(() => subscriberPosition.SetRelease(alignedFrameLength)).MustHaveHappened()); + A.CallTo(() => _termBuffer.GetIntVolatile(0)) + .MustHaveHappened() + .Then( + A.CallTo(() => _handler.OnFragment(_termBuffer, HeaderLength, msgLength, A
._)) + .MustHaveHappened() + ) + .Then(A.CallTo(() => _subscriberPosition.SetRelease(alignedFrameLength)).MustHaveHappened()); } [Test] @@ -79,14 +88,22 @@ public void ShouldNotReadPastTail() { const int termOffset = 0; - int readOutcome = TermReader.Read(termBuffer, termOffset, handler, int.MaxValue, header, errorHandler, 0, - subscriberPosition); + int readOutcome = TermReader.Read( + _termBuffer, + termOffset, + _handler, + int.MaxValue, + _header, + _errorHandler, + 0, + _subscriberPosition + ); Assert.AreEqual(0, readOutcome); - A.CallTo(() => subscriberPosition.SetRelease(A._)).MustNotHaveHappened(); - A.CallTo(() => termBuffer.GetIntVolatile(0)).MustHaveHappened(); - A.CallTo(() => handler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => _subscriberPosition.SetRelease(A._)).MustNotHaveHappened(); + A.CallTo(() => _termBuffer.GetIntVolatile(0)).MustHaveHappened(); + A.CallTo(() => _handler.OnFragment(A._, A._, A._, A
._)) .MustNotHaveHappened(); } @@ -94,117 +111,153 @@ public void ShouldNotReadPastTail() public void ShouldReadOneLimitedMessage() { const int msgLength = 1; - int frameLength = HEADER_LENGTH + msgLength; + int frameLength = HeaderLength + msgLength; int alignedFrameLength = BitUtil.Align(frameLength, FrameDescriptor.FRAME_ALIGNMENT); const int termOffset = 0; - A.CallTo(() => termBuffer.GetIntVolatile(A._)) - .Returns(frameLength); - A.CallTo(() => termBuffer.GetShort(A._)) - .Returns((short) HeaderFlyweight.HDR_TYPE_DATA); + A.CallTo(() => _termBuffer.GetIntVolatile(A._)).Returns(frameLength); + A.CallTo(() => _termBuffer.GetShort(A._)).Returns((short)HeaderFlyweight.HDR_TYPE_DATA); - int readOutcome = TermReader.Read(termBuffer, termOffset, handler, 1, header, errorHandler, 0, - subscriberPosition); + int readOutcome = TermReader.Read( + _termBuffer, + termOffset, + _handler, + 1, + _header, + _errorHandler, + 0, + _subscriberPosition + ); Assert.AreEqual(1, readOutcome); - A.CallTo(() => termBuffer.GetIntVolatile(0)).MustHaveHappened() - .Then(A.CallTo(() => handler.OnFragment(termBuffer, HEADER_LENGTH, msgLength, A
._)) - .MustHaveHappened()) - .Then(A.CallTo(() => subscriberPosition.SetRelease(alignedFrameLength)).MustHaveHappened()); + A.CallTo(() => _termBuffer.GetIntVolatile(0)) + .MustHaveHappened() + .Then( + A.CallTo(() => _handler.OnFragment(_termBuffer, HeaderLength, msgLength, A
._)) + .MustHaveHappened() + ) + .Then(A.CallTo(() => _subscriberPosition.SetRelease(alignedFrameLength)).MustHaveHappened()); } [Test] public void ShouldReadMultipleMessages() { const int msgLength = 1; - int frameLength = HEADER_LENGTH + msgLength; + int frameLength = HeaderLength + msgLength; int alignedFrameLength = BitUtil.Align(frameLength, FrameDescriptor.FRAME_ALIGNMENT); const int termOffset = 0; - A.CallTo(() => termBuffer.GetIntVolatile(0)).Returns(frameLength); - A.CallTo(() => termBuffer.GetIntVolatile(alignedFrameLength)).Returns(frameLength); - A.CallTo(() => termBuffer.GetShort(A._)).Returns((short) HeaderFlyweight.HDR_TYPE_DATA); + A.CallTo(() => _termBuffer.GetIntVolatile(0)).Returns(frameLength); + A.CallTo(() => _termBuffer.GetIntVolatile(alignedFrameLength)).Returns(frameLength); + A.CallTo(() => _termBuffer.GetShort(A._)).Returns((short)HeaderFlyweight.HDR_TYPE_DATA); - int readOutcome = TermReader.Read(termBuffer, termOffset, handler, int.MaxValue, header, errorHandler, 0, - subscriberPosition); + int readOutcome = TermReader.Read( + _termBuffer, + termOffset, + _handler, + int.MaxValue, + _header, + _errorHandler, + 0, + _subscriberPosition + ); Assert.AreEqual(2, readOutcome); - A.CallTo(() => termBuffer.GetIntVolatile(0)).MustHaveHappened() - .Then(A.CallTo(() => handler.OnFragment(termBuffer, HEADER_LENGTH, msgLength, A
._)) - .MustHaveHappened()) - .Then(A.CallTo(() => termBuffer.GetIntVolatile(alignedFrameLength)).MustHaveHappened()) - .Then(A.CallTo(() => - handler.OnFragment(termBuffer, alignedFrameLength + HEADER_LENGTH, msgLength, A
._)) - .MustHaveHappened()) - .Then(A.CallTo(() => subscriberPosition.SetRelease(alignedFrameLength * 2L)).MustHaveHappened()); + A.CallTo(() => _termBuffer.GetIntVolatile(0)) + .MustHaveHappened() + .Then( + A.CallTo(() => _handler.OnFragment(_termBuffer, HeaderLength, msgLength, A
._)) + .MustHaveHappened() + ) + .Then(A.CallTo(() => _termBuffer.GetIntVolatile(alignedFrameLength)).MustHaveHappened()) + .Then( + A.CallTo(() => + _handler.OnFragment(_termBuffer, alignedFrameLength + HeaderLength, msgLength, A
._) + ) + .MustHaveHappened() + ) + .Then(A.CallTo(() => _subscriberPosition.SetRelease(alignedFrameLength * 2L)).MustHaveHappened()); } [Test] public void ShouldReadLastMessage() { const int msgLength = 1; - int frameLength = HEADER_LENGTH + msgLength; + int frameLength = HeaderLength + msgLength; int alignedFrameLength = BitUtil.Align(frameLength, FrameDescriptor.FRAME_ALIGNMENT); - int frameOffset = TERM_BUFFER_CAPACITY - alignedFrameLength; + int frameOffset = TermBufferCapacity - alignedFrameLength; long startingPosition = LogBufferDescriptor.ComputePosition( - INITIAL_TERM_ID, frameOffset, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); + InitialTermId, + frameOffset, + PositionBitsToShift, + InitialTermId + ); - A.CallTo(() => termBuffer.GetIntVolatile(frameOffset)).Returns(frameLength); - A.CallTo(() => termBuffer.GetShort(FrameDescriptor.TypeOffset(frameOffset))) - .Returns((short) HeaderFlyweight.HDR_TYPE_DATA); - A.CallTo(() => subscriberPosition.GetVolatile()).Returns(startingPosition); + A.CallTo(() => _termBuffer.GetIntVolatile(frameOffset)).Returns(frameLength); + A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(frameOffset))) + .Returns((short)HeaderFlyweight.HDR_TYPE_DATA); + A.CallTo(() => _subscriberPosition.GetVolatile()).Returns(startingPosition); int readOutcome = TermReader.Read( - termBuffer, + _termBuffer, frameOffset, - handler, + _handler, int.MaxValue, - header, - errorHandler, + _header, + _errorHandler, startingPosition, - subscriberPosition); - + _subscriberPosition + ); + Assert.AreEqual(1, readOutcome); - A.CallTo(() => termBuffer.GetIntVolatile(frameOffset)).MustHaveHappened() - .Then(A.CallTo( - () => handler.OnFragment(termBuffer, frameOffset + HEADER_LENGTH, msgLength, A
._)) - .MustHaveHappened()) - .Then(A.CallTo(() => subscriberPosition.SetRelease(TERM_BUFFER_CAPACITY)).MustHaveHappened()); + A.CallTo(() => _termBuffer.GetIntVolatile(frameOffset)) + .MustHaveHappened() + .Then( + A.CallTo(() => _handler.OnFragment(_termBuffer, frameOffset + HeaderLength, msgLength, A
._)) + .MustHaveHappened() + ) + .Then(A.CallTo(() => _subscriberPosition.SetRelease(TermBufferCapacity)).MustHaveHappened()); } [Test] public void ShouldNotReadLastMessageWhenPadding() { const int msgLength = 1; - int frameLength = HEADER_LENGTH + msgLength; + int frameLength = HeaderLength + msgLength; int alignedFrameLength = BitUtil.Align(frameLength, FrameDescriptor.FRAME_ALIGNMENT); - int frameOffset = TERM_BUFFER_CAPACITY - alignedFrameLength; + int frameOffset = TermBufferCapacity - alignedFrameLength; long startingPosition = LogBufferDescriptor.ComputePosition( - INITIAL_TERM_ID, frameOffset, POSITION_BITS_TO_SHIFT, INITIAL_TERM_ID); + InitialTermId, + frameOffset, + PositionBitsToShift, + InitialTermId + ); - A.CallTo(() => termBuffer.GetIntVolatile(frameOffset)).Returns(frameLength); - A.CallTo(() => termBuffer.GetShort(FrameDescriptor.TypeOffset(frameOffset))) - .Returns((short) FrameDescriptor.PADDING_FRAME_TYPE); - A.CallTo(() => subscriberPosition.GetVolatile()).Returns(startingPosition); + A.CallTo(() => _termBuffer.GetIntVolatile(frameOffset)).Returns(frameLength); + A.CallTo(() => _termBuffer.GetShort(FrameDescriptor.TypeOffset(frameOffset))) + .Returns((short)FrameDescriptor.PADDING_FRAME_TYPE); + A.CallTo(() => _subscriberPosition.GetVolatile()).Returns(startingPosition); int readOutcome = TermReader.Read( - termBuffer, + _termBuffer, frameOffset, - handler, + _handler, int.MaxValue, - header, - errorHandler, + _header, + _errorHandler, startingPosition, - subscriberPosition); - + _subscriberPosition + ); + Assert.AreEqual(0, readOutcome); - A.CallTo(() => termBuffer.GetIntVolatile(frameOffset)).MustHaveHappened() - .Then(A.CallTo(() => subscriberPosition.SetRelease(TERM_BUFFER_CAPACITY)).MustHaveHappened()); + A.CallTo(() => _termBuffer.GetIntVolatile(frameOffset)) + .MustHaveHappened() + .Then(A.CallTo(() => _subscriberPosition.SetRelease(TermBufferCapacity)).MustHaveHappened()); - A.CallTo(() => handler.OnFragment(A._, A._, A._, A
._)) + A.CallTo(() => _handler.OnFragment(A._, A._, A._, A
._)) .MustNotHaveHappened(); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/LogBuffer/TermRebuilderTest.cs b/src/Adaptive.Aeron.Tests/LogBuffer/TermRebuilderTest.cs index 44441629..f23ca624 100644 --- a/src/Adaptive.Aeron.Tests/LogBuffer/TermRebuilderTest.cs +++ b/src/Adaptive.Aeron.Tests/LogBuffer/TermRebuilderTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ namespace Adaptive.Aeron.Tests.LogBuffer [TestFixture] public class TermRebuilderTest { - private static readonly int TERM_BUFFER_CAPACITY = LogBufferDescriptor.TERM_MIN_LENGTH; + private static readonly int TermBufferCapacity = LogBufferDescriptor.TERM_MIN_LENGTH; private IAtomicBuffer _termBuffer; @@ -34,7 +34,7 @@ public class TermRebuilderTest public void SetUp() { _termBuffer = A.Fake(); - A.CallTo(() => _termBuffer.Capacity).Returns(TERM_BUFFER_CAPACITY); + A.CallTo(() => _termBuffer.Capacity).Returns(TermBufferCapacity); } [Test] @@ -47,21 +47,28 @@ public void ShouldInsertIntoEmptyBuffer() packet.PutInt(srcOffset, length); TermRebuilder.Insert(_termBuffer, termOffset, packet, length); - - A.CallTo(() => _termBuffer.PutBytes(termOffset + DataHeaderFlyweight.HEADER_LENGTH, packet, srcOffset + DataHeaderFlyweight.HEADER_LENGTH, length - DataHeaderFlyweight.HEADER_LENGTH)).MustHaveHappened() + + A.CallTo(() => + _termBuffer.PutBytes( + termOffset + DataHeaderFlyweight.HEADER_LENGTH, + packet, + srcOffset + DataHeaderFlyweight.HEADER_LENGTH, + length - DataHeaderFlyweight.HEADER_LENGTH + ) + ) + .MustHaveHappened() .Then(A.CallTo(() => _termBuffer.PutLong(termOffset + 24, packet.GetLong(24))).MustHaveHappened()) .Then(A.CallTo(() => _termBuffer.PutLong(termOffset + 16, packet.GetLong(16))).MustHaveHappened()) .Then(A.CallTo(() => _termBuffer.PutLong(termOffset + 8, packet.GetLong(8))).MustHaveHappened()) .Then(A.CallTo(() => _termBuffer.PutLongRelease(termOffset, packet.GetLong(0))).MustHaveHappened()); } - [Test] public void ShouldInsertLastFrameIntoBuffer() { int frameLength = BitUtil.Align(256, FrameDescriptor.FRAME_ALIGNMENT); const int srcOffset = 0; - int tail = TERM_BUFFER_CAPACITY - frameLength; + int tail = TermBufferCapacity - frameLength; int termOffset = tail; UnsafeBuffer packet = new UnsafeBuffer(BufferUtil.Allocate(frameLength)); packet.PutShort(FrameDescriptor.TypeOffset(srcOffset), (short)FrameDescriptor.PADDING_FRAME_TYPE); @@ -69,7 +76,15 @@ public void ShouldInsertLastFrameIntoBuffer() TermRebuilder.Insert(_termBuffer, termOffset, packet, frameLength); - A.CallTo(() => _termBuffer.PutBytes(tail + DataHeaderFlyweight.HEADER_LENGTH, packet, srcOffset + DataHeaderFlyweight.HEADER_LENGTH, frameLength - DataHeaderFlyweight.HEADER_LENGTH)).MustHaveHappened(); + A.CallTo(() => + _termBuffer.PutBytes( + tail + DataHeaderFlyweight.HEADER_LENGTH, + packet, + srcOffset + DataHeaderFlyweight.HEADER_LENGTH, + frameLength - DataHeaderFlyweight.HEADER_LENGTH + ) + ) + .MustHaveHappened(); } [Test] @@ -84,7 +99,15 @@ public void ShouldFillSingleGap() TermRebuilder.Insert(_termBuffer, termOffset, packet, alignedFrameLength); - A.CallTo(() => _termBuffer.PutBytes(tail + DataHeaderFlyweight.HEADER_LENGTH, packet, srcOffset + DataHeaderFlyweight.HEADER_LENGTH, alignedFrameLength - DataHeaderFlyweight.HEADER_LENGTH)).MustHaveHappened(); + A.CallTo(() => + _termBuffer.PutBytes( + tail + DataHeaderFlyweight.HEADER_LENGTH, + packet, + srcOffset + DataHeaderFlyweight.HEADER_LENGTH, + alignedFrameLength - DataHeaderFlyweight.HEADER_LENGTH + ) + ) + .MustHaveHappened(); } [Test] @@ -98,7 +121,15 @@ public void ShouldFillAfterAGap() TermRebuilder.Insert(_termBuffer, termOffset, packet, alignedFrameLength); - A.CallTo(() => _termBuffer.PutBytes((alignedFrameLength * 2) + DataHeaderFlyweight.HEADER_LENGTH, packet, srcOffset + DataHeaderFlyweight.HEADER_LENGTH, alignedFrameLength - DataHeaderFlyweight.HEADER_LENGTH)).MustHaveHappened(); + A.CallTo(() => + _termBuffer.PutBytes( + (alignedFrameLength * 2) + DataHeaderFlyweight.HEADER_LENGTH, + packet, + srcOffset + DataHeaderFlyweight.HEADER_LENGTH, + alignedFrameLength - DataHeaderFlyweight.HEADER_LENGTH + ) + ) + .MustHaveHappened(); } [Test] @@ -109,10 +140,18 @@ public void ShouldFillGapButNotMoveTailOrHwm() const int srcOffset = 0; UnsafeBuffer packet = new UnsafeBuffer(BufferUtil.Allocate(alignedFrameLength)); int termOffset = alignedFrameLength * 2; - + TermRebuilder.Insert(_termBuffer, termOffset, packet, alignedFrameLength); - A.CallTo(() => _termBuffer.PutBytes((alignedFrameLength * 2) + DataHeaderFlyweight.HEADER_LENGTH, packet, srcOffset + DataHeaderFlyweight.HEADER_LENGTH, alignedFrameLength - DataHeaderFlyweight.HEADER_LENGTH)).MustHaveHappened(); + A.CallTo(() => + _termBuffer.PutBytes( + (alignedFrameLength * 2) + DataHeaderFlyweight.HEADER_LENGTH, + packet, + srcOffset + DataHeaderFlyweight.HEADER_LENGTH, + alignedFrameLength - DataHeaderFlyweight.HEADER_LENGTH + ) + ) + .MustHaveHappened(); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/LogBuffersTest.cs b/src/Adaptive.Aeron.Tests/LogBuffersTest.cs index 6eed95af..78aaac11 100644 --- a/src/Adaptive.Aeron.Tests/LogBuffersTest.cs +++ b/src/Adaptive.Aeron.Tests/LogBuffersTest.cs @@ -1,6 +1,21 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using System.IO; -using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona.Concurrent; using NUnit.Framework; using static Adaptive.Aeron.LogBuffer.LogBufferDescriptor; @@ -48,7 +63,8 @@ public void ThrowsIllegalStateExceptionIfTermLengthIsInvalid(int termLength) var exception = Assert.Throws(() => new LogBuffers(logFile)); Assert.IsTrue( exception.Message.StartsWith("Term length") && exception.Message.EndsWith("length=" + termLength), - "Unexpected message: " + exception.Message); + "Unexpected message: " + exception.Message + ); } [TestCase(-100)] @@ -69,7 +85,8 @@ public void ThrowsIllegalStateExceptionIfPageSizeIsInvalid(int pageSize) var exception = Assert.Throws(() => new LogBuffers(logFile)); Assert.IsTrue( exception.Message.StartsWith("Page size") && exception.Message.EndsWith("page size=" + pageSize), - "Unexpected message: " + exception.Message); + "Unexpected message: " + exception.Message + ); } [Test] @@ -88,7 +105,8 @@ public void ThrowsIllegalStateExceptionIfLogFileSizeIsLessThanLogMetaDataLength( var exception = Assert.Throws(() => new LogBuffers(logFile)); Assert.AreEqual( "Log file length less than min length of " + LOG_META_DATA_LENGTH + ": length=" + fileLength, - exception.Message); + exception.Message + ); } } } diff --git a/src/Adaptive.Aeron.Tests/Protocol/HeaderFlyweightTest.cs b/src/Adaptive.Aeron.Tests/Protocol/HeaderFlyweightTest.cs index d50b7a88..81ab3eeb 100644 --- a/src/Adaptive.Aeron.Tests/Protocol/HeaderFlyweightTest.cs +++ b/src/Adaptive.Aeron.Tests/Protocol/HeaderFlyweightTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System.Text; using Adaptive.Aeron.Protocol; using NUnit.Framework; @@ -28,4 +44,4 @@ public void ShouldAppendFlags() Assert.That(builder.ToString(), Is.EqualTo("01100000")); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/PublicationTest.cs b/src/Adaptive.Aeron.Tests/PublicationTest.cs index e7c7f63f..c2812526 100644 --- a/src/Adaptive.Aeron.Tests/PublicationTest.cs +++ b/src/Adaptive.Aeron.Tests/PublicationTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,27 +33,27 @@ namespace Adaptive.Aeron.Tests { public class PublicationTest { - private const string CHANNEL = "aeron:udp?endpoint=localhost:40124"; - private const int STREAM_ID1 = 1002; - private const int SESSION_ID1 = 13; - private const int TERM_ID_1 = 1; - private const int CORRELATION_ID = 2000; - private const int SEND_BUFFER_CAPACITY = 1024; - private const int PARTITION_INDEX = 0; - private const int MTU_LENGTH = 4096; - private const int PAGE_SIZE = 4 * 1024; - private const int TERM_LENGTH = TERM_MIN_LENGTH * 4; - private const int MAX_PAYLOAD_SIZE = MTU_LENGTH - HEADER_LENGTH; - private static readonly int MAX_MESSAGE_SIZE = ComputeMaxMessageLength(TERM_LENGTH); - - private static readonly int TOTAL_ALIGNED_MAX_MESSAGE_SIZE = - (MAX_MESSAGE_SIZE / MAX_PAYLOAD_SIZE) * MTU_LENGTH + - BitUtil.Align(MAX_MESSAGE_SIZE % MAX_PAYLOAD_SIZE + HEADER_LENGTH, FRAME_ALIGNMENT); - - private static readonly int POSITION_BITS_TO_SHIFT = PositionBitsToShift(TERM_LENGTH); - private static readonly int DEFAULT_FRAME_TYPE = HeaderFlyweight.HDR_TYPE_RTTM; - private const int SESSION_ID = 42; - private const int STREAM_ID = 111; + private const string Channel = "aeron:udp?endpoint=localhost:40124"; + private const int StreamId1 = 1002; + private const int SessionId1 = 13; + private const int TermId1 = 1; + private const int CorrelationId = 2000; + private const int SendBufferCapacity = 1024; + private const int PartitionIndex = 0; + private const int MtuLength = 4096; + private const int PageSize = 4 * 1024; + private const int TermLength = TERM_MIN_LENGTH * 4; + private const int MaxPayloadSize = MtuLength - HEADER_LENGTH; + private static readonly int MaxMessageSize = ComputeMaxMessageLength(TermLength); + + private static readonly int TotalAlignedMaxMessageSize = + (MaxMessageSize / MaxPayloadSize) * MtuLength + + BitUtil.Align(MaxMessageSize % MaxPayloadSize + HEADER_LENGTH, FRAME_ALIGNMENT); + + private static readonly int PositionBitsToShift = PositionBitsToShift(TermLength); + private static readonly int DefaultFrameType = HeaderFlyweight.HDR_TYPE_RTTM; + private const int SessionId = 42; + private const int StreamId = 111; private UnsafeBuffer _logMetaDataBuffer; private UnsafeBuffer[] _termBuffers; @@ -65,49 +65,52 @@ public class PublicationTest [SetUp] public void SetUp() { - _logMetaDataBuffer = - A.Fake(x => x.Wrapping(new UnsafeBuffer())); + _logMetaDataBuffer = A.Fake(x => x.Wrapping(new UnsafeBuffer())); _logMetaDataBuffer.Wrap(new byte[LOG_META_DATA_LENGTH]); - + _termBuffers = new UnsafeBuffer[PARTITION_COUNT]; - + _conductor = A.Fake(); _logBuffers = A.Fake(); _publicationLimit = A.Fake(); - A.CallTo(() => _publicationLimit.GetVolatile()).Returns(2 * SEND_BUFFER_CAPACITY); + A.CallTo(() => _publicationLimit.GetVolatile()).Returns(2 * SendBufferCapacity); A.CallTo(() => _logBuffers.DuplicateTermBuffers()).Returns(_termBuffers); - A.CallTo(() => _logBuffers.TermLength()).Returns(TERM_LENGTH); + A.CallTo(() => _logBuffers.TermLength()).Returns(TermLength); A.CallTo(() => _logBuffers.MetaDataBuffer()).Returns(_logMetaDataBuffer); - var defaultHeader = CreateDefaultHeader(SESSION_ID, STREAM_ID, TERM_ID_1); - defaultHeader.PutShort(DataHeaderFlyweight.TYPE_FIELD_OFFSET, (short)DEFAULT_FRAME_TYPE, - ByteOrder.LittleEndian); + var defaultHeader = CreateDefaultHeader(SessionId, StreamId, TermId1); + defaultHeader.PutShort( + DataHeaderFlyweight.TYPE_FIELD_OFFSET, + (short)DefaultFrameType, + ByteOrder.LittleEndian + ); StoreDefaultFrameHeader(_logMetaDataBuffer, defaultHeader); - InitialTermId(_logMetaDataBuffer, TERM_ID_1); - MtuLength(_logMetaDataBuffer, MTU_LENGTH); - TermLength(_logMetaDataBuffer, TERM_LENGTH); - PageSize(_logMetaDataBuffer, PAGE_SIZE); + InitialTermId(_logMetaDataBuffer, TermId1); + MtuLength(_logMetaDataBuffer, MtuLength); + TermLength(_logMetaDataBuffer, TermLength); + PageSize(_logMetaDataBuffer, PageSize); IsConnected(_logMetaDataBuffer, false); for (var i = 0; i < PARTITION_COUNT; i++) { - _termBuffers[i] = new UnsafeBuffer(BufferUtil.AllocateDirect(TERM_LENGTH)); + _termBuffers[i] = new UnsafeBuffer(BufferUtil.AllocateDirect(TermLength)); } _publication = new ConcurrentPublication( _conductor, - CHANNEL, - STREAM_ID1, - SESSION_ID1, + Channel, + StreamId1, + SessionId1, _publicationLimit, ChannelEndpointStatus.NO_ID_ALLOCATED, _logBuffers, - CORRELATION_ID, - CORRELATION_ID); + CorrelationId, + CorrelationId + ); - InitialiseTailWithTermId(_logMetaDataBuffer, PARTITION_INDEX, TERM_ID_1); + InitialiseTailWithTermId(_logMetaDataBuffer, PartitionIndex, TermId1); A.CallTo(() => _conductor.RemovePublication(_publication)).Invokes(() => _publication.InternalClose()); } @@ -148,7 +151,7 @@ public void ShouldReportInitialPosition() [Test] public void ShouldReportMaxMessageLength() { - Assert.AreEqual(ComputeMaxMessageLength(TERM_LENGTH), _publication.MaxMessageLength); + Assert.AreEqual(ComputeMaxMessageLength(TermLength), _publication.MaxMessageLength); } [Test] @@ -191,9 +194,9 @@ public void ReturnsClosedIfPublicationWasClosed() Assert.AreEqual(CLOSED, Invoke(length, null)); - OnError(_termBuffers[PARTITION_INDEX], termOffset, length); - AssertFrameType(PARTITION_INDEX, termOffset, PADDING_FRAME_TYPE); - AssertFrameLength(PARTITION_INDEX, termOffset, 0); + OnError(_termBuffers[PartitionIndex], termOffset, length); + AssertFrameType(PartitionIndex, termOffset, PADDING_FRAME_TYPE); + AssertFrameLength(PartitionIndex, termOffset, 0); } [Test] @@ -202,21 +205,21 @@ public void ReturnsAdminActionIfTermCountAndTermIdDoNotMatch() const int termCount = 9; const int termOffset = 0; const int length = 10; - Assert.AreEqual(IndexByTermCount(termCount), PARTITION_INDEX); - InitialiseTailWithTermId(_logMetaDataBuffer, PARTITION_INDEX, TERM_ID_1 + 5); + Assert.AreEqual(IndexByTermCount(termCount), PartitionIndex); + InitialiseTailWithTermId(_logMetaDataBuffer, PartitionIndex, TermId1 + 5); Assert.AreEqual(ADMIN_ACTION, Invoke(length, null)); - OnError(_termBuffers[PARTITION_INDEX], termOffset, length); - AssertFrameType(PARTITION_INDEX, termOffset, PADDING_FRAME_TYPE); - AssertFrameLength(PARTITION_INDEX, termOffset, 0); + OnError(_termBuffers[PartitionIndex], termOffset, length); + AssertFrameType(PartitionIndex, termOffset, PADDING_FRAME_TYPE); + AssertFrameLength(PartitionIndex, termOffset, 0); } [Test] public void ReturnsMaxPositionExceededIfPublicationLimitReached() { const int partitionIndex = 1; - int termOffset = TERM_LENGTH - 140; + int termOffset = TermLength - 140; const int length = 100; A.CallTo(() => _publicationLimit.GetVolatile()).Returns(16L); @@ -238,12 +241,14 @@ public void ReturnsBackPressuredIfPublicationLimitReached() const int termOffset = 64; const int length = 11; A.CallTo(() => _publicationLimit.GetVolatile()).Returns(16L); - RawTail(_logMetaDataBuffer, partitionIndex, PackTail(TERM_ID_1 + 1, termOffset)); + RawTail(_logMetaDataBuffer, partitionIndex, PackTail(TermId1 + 1, termOffset)); ActiveTermCount(_logMetaDataBuffer, 1); IsConnected(_logMetaDataBuffer, true); - Assert.AreEqual(BACK_PRESSURED, - Invoke(length, (termBuffer, termOffset1, frameLength) => long.MaxValue)); + Assert.AreEqual( + BACK_PRESSURED, + Invoke(length, (termBuffer, termOffset1, frameLength) => long.MaxValue) + ); UnsafeBuffer termBuffer = _termBuffers[partitionIndex]; OnError(termBuffer, termOffset, length); @@ -259,7 +264,7 @@ public void ReturnsNotConnectedIfPublicationLimitReachedAndNotConnected() const int termOffset = 0; const int length = 10; A.CallTo(() => _publicationLimit.GetVolatile()).Returns(16L); - InitialiseTailWithTermId(_logMetaDataBuffer, partitionIndex, TERM_ID_1 + 1); + InitialiseTailWithTermId(_logMetaDataBuffer, partitionIndex, TermId1 + 1); ActiveTermCount(_logMetaDataBuffer, 1); Assert.AreEqual(NOT_CONNECTED, Invoke(length, null)); @@ -272,28 +277,28 @@ public void ReturnsNotConnectedIfPublicationLimitReachedAndNotConnected() [Test] public void ReturnsAdminActionIfTermWasRotated() { - int termOffset = TERM_LENGTH - 64; + int termOffset = TermLength - 64; const int length = 60; A.CallTo(() => _publicationLimit.GetVolatile()).Returns(1L + int.MaxValue); - RawTailVolatile(_logMetaDataBuffer, 0, PackTail(TERM_ID_1, termOffset)); - RawTailVolatile(_logMetaDataBuffer, 1, PackTail(TERM_ID_1 + 1 - PARTITION_COUNT, 555)); - RawTailVolatile(_logMetaDataBuffer, 2, PackTail(STREAM_ID, 777)); + RawTailVolatile(_logMetaDataBuffer, 0, PackTail(TermId1, termOffset)); + RawTailVolatile(_logMetaDataBuffer, 1, PackTail(TermId1 + 1 - PARTITION_COUNT, 555)); + RawTailVolatile(_logMetaDataBuffer, 2, PackTail(StreamId, 777)); Assert.AreEqual(ADMIN_ACTION, Invoke(length, null)); OnError(_termBuffers[0], termOffset, length); AssertFrameType(0, termOffset, PADDING_FRAME_TYPE); AssertFrameLength(0, termOffset, 64); - Assert.AreEqual(PackTail(TERM_ID_1, termOffset + 96), RawTail(_logMetaDataBuffer, 0)); - Assert.AreEqual(PackTail(TERM_ID_1 + 1, 0), RawTail(_logMetaDataBuffer, 1)); - Assert.AreEqual(PackTail(STREAM_ID, 777), RawTail(_logMetaDataBuffer, 2)); + Assert.AreEqual(PackTail(TermId1, termOffset + 96), RawTail(_logMetaDataBuffer, 0)); + Assert.AreEqual(PackTail(TermId1 + 1, 0), RawTail(_logMetaDataBuffer, 1)); + Assert.AreEqual(PackTail(StreamId, 777), RawTail(_logMetaDataBuffer, 2)); } [Test] public void ReturnsMaxPositionExceededIfThereIsNotEnoughSpaceLeft() { const int partitionIndex = 1; - int termOffset = TERM_LENGTH - 128; + int termOffset = TermLength - 128; const int length = 96; A.CallTo(() => _publicationLimit.GetVolatile()).Returns(1L + int.MaxValue); RawTail(_logMetaDataBuffer, partitionIndex, PackTail(int.MinValue, termOffset)); @@ -312,8 +317,13 @@ public void ReturnsMaxPositionExceededIfThereIsNotEnoughSpaceLeft() Assert.AreEqual(PackTail(222, 222), RawTail(_logMetaDataBuffer, 2)); } - protected void TestPositionUponSuccess(int length, int termId, int termCount, long tailAfterUpdate, - long expectedPosition) + protected void TestPositionUponSuccess( + int length, + int termId, + int termCount, + long tailAfterUpdate, + long expectedPosition + ) { A.CallTo(() => _publicationLimit.GetVolatile()).Returns(int.MaxValue); IsConnected(_logMetaDataBuffer, true); @@ -329,9 +339,9 @@ protected void TestPositionUponSuccess(int length, int termId, int termCount, lo Assert.AreEqual(expectedPosition, position); UnsafeBuffer buffer = _termBuffers[partitionIndex]; int termOffset = TermOffset(tailAfterUpdate); - AssertFrameType(partitionIndex, termOffset, DEFAULT_FRAME_TYPE); - Assert.AreEqual(SESSION_ID, FrameSessionId(buffer, termOffset)); - Assert.AreEqual(STREAM_ID, StreamId(buffer, termOffset)); + AssertFrameType(partitionIndex, termOffset, DefaultFrameType); + Assert.AreEqual(SessionId, FrameSessionId(buffer, termOffset)); + Assert.AreEqual(StreamId, StreamId(buffer, termOffset)); Assert.AreEqual(TermId(tailAfterUpdate), TermId(buffer, termOffset)); OnSuccess(buffer, termOffset, length); } @@ -340,16 +350,16 @@ protected void TestPositionUponSuccess(int length, int termId, int termCount, lo [TestFixture] public class TryClaim : BaseTests { - private readonly BufferClaim bufferClaim = new BufferClaim(); + private readonly BufferClaim _bufferClaim = new BufferClaim(); protected override long Invoke(int length, ReservedValueSupplier reservedValueSupplier) { - return _publication.TryClaim(length, bufferClaim); + return _publication.TryClaim(length, _bufferClaim); } protected override void OnError(UnsafeBuffer termBuffer, int termOffset, int length) { - IMutableDirectBuffer buffer = bufferClaim.Buffer; + IMutableDirectBuffer buffer = _bufferClaim.Buffer; Assert.AreEqual(0, buffer.Capacity); } @@ -357,12 +367,17 @@ protected override void OnSuccess(UnsafeBuffer termBuffer, int termOffset, int l { Assert.AreEqual(-(length + HEADER_LENGTH), FragmentLength(termBuffer, termOffset)); Assert.AreEqual(0, ReservedValue(termBuffer, termOffset)); - Assert.AreEqual(length, bufferClaim.Length); + Assert.AreEqual(length, _bufferClaim.Length); } [Test, TestCaseSource(nameof(TryClaimPositions))] - public void TryClaimShouldReturnPositionAtWhichTheClaimedSpaceEnds(int length, int termId, int termCount, - long tailAfterUpdate, long expectedPosition) + public void TryClaimShouldReturnPositionAtWhichTheClaimedSpaceEnds( + int length, + int termId, + int termCount, + long tailAfterUpdate, + long expectedPosition + ) { TestPositionUponSuccess(length, termId, termCount, tailAfterUpdate, expectedPosition); } @@ -385,7 +400,8 @@ protected override void OnError(UnsafeBuffer termBuffer, int termOffset, int len protected override void OnSuccess(UnsafeBuffer termBuffer, int termOffset, int length) { - int index = 0, processedBytes = 0; + int index = 0; + int processedBytes = 0; int offset = termOffset; UnsafeBuffer dataBuffer = Buffer(0); while (processedBytes < length) @@ -426,8 +442,13 @@ protected override void OnSuccess(UnsafeBuffer termBuffer, int termOffset, int l } [Test, TestCaseSource(nameof(OfferPositions))] - public void ReturnsPositionAfterDataIsCopied(int length, int termId, int termCount, long tailAfterUpdate, - long expectedPosition) + public void ReturnsPositionAfterDataIsCopied( + int length, + int termId, + int termCount, + long tailAfterUpdate, + long expectedPosition + ) { TestPositionUponSuccess(length, termId, termCount, tailAfterUpdate, expectedPosition); } @@ -436,31 +457,31 @@ public void ReturnsPositionAfterDataIsCopied(int length, int termId, int termCou [TestFixture] public class Offer : OfferBase { - private UnsafeBuffer sendBuffer; + private UnsafeBuffer _sendBuffer; [SetUp] public void Before() { - byte[] bytes = new byte[MAX_MESSAGE_SIZE]; + byte[] bytes = new byte[MaxMessageSize]; Random.NextBytes(bytes); - sendBuffer = new UnsafeBuffer(bytes); + _sendBuffer = new UnsafeBuffer(bytes); } protected override UnsafeBuffer Buffer(int length) { - return sendBuffer; + return _sendBuffer; } protected override long Invoke(int length, ReservedValueSupplier reservedValueSupplier) { - return _publication.Offer(sendBuffer, 0, length, reservedValueSupplier); + return _publication.Offer(_sendBuffer, 0, length, reservedValueSupplier); } [Test] public void OfferWithAnOffset() { const int partitionIndex = 2; - int termId = TERM_ID_1 + 2; + int termId = TermId1 + 2; const int termOffset = 992; const int offset = 11; const int length = 23; @@ -469,15 +490,22 @@ public void OfferWithAnOffset() RawTail(_logMetaDataBuffer, partitionIndex, PackTail(termId, termOffset)); ActiveTermCount(_logMetaDataBuffer, 2); - long position = _publication.Offer(sendBuffer, offset, length, - (termBuffer, frameOffset, frameLength) => long.MinValue); + long position = _publication.Offer( + _sendBuffer, + offset, + length, + (termBuffer, frameOffset, frameLength) => long.MinValue + ); Assert.AreEqual(525344, position); UnsafeBuffer termBuffer = _termBuffers[partitionIndex]; Assert.AreEqual(long.MinValue, ReservedValue(termBuffer, termOffset)); for (int i = 0; i < length; i++) { - Assert.AreEqual(sendBuffer.GetByte(offset + i), termBuffer.GetByte(termOffset + HEADER_LENGTH + i)); + Assert.AreEqual( + _sendBuffer.GetByte(offset + i), + termBuffer.GetByte(termOffset + HEADER_LENGTH + i) + ); } } } @@ -485,12 +513,12 @@ public void OfferWithAnOffset() [TestFixture] public class OfferWithTwoBuffers : OfferBase { - private UnsafeBuffer buffer1; - private UnsafeBuffer buffer2; + private UnsafeBuffer _buffer1; + private UnsafeBuffer _buffer2; protected override UnsafeBuffer Buffer(int processedBytes) { - return processedBytes < buffer1.Capacity ? buffer1 : buffer2; + return processedBytes < _buffer1.Capacity ? _buffer1 : _buffer2; } protected override long Invoke(int length, ReservedValueSupplier reservedValueSupplier) @@ -499,17 +527,17 @@ protected override long Invoke(int length, ReservedValueSupplier reservedValueSu Random.NextBytes(bytes); int chunk1Length = (int)(length * 0.25); int chunk2Length = length - chunk1Length; - buffer1 = new UnsafeBuffer(bytes, 0, chunk1Length); - buffer2 = new UnsafeBuffer(bytes, chunk1Length, chunk2Length); + _buffer1 = new UnsafeBuffer(bytes, 0, chunk1Length); + _buffer2 = new UnsafeBuffer(bytes, chunk1Length, chunk2Length); - return _publication.Offer(buffer1, 0, chunk1Length, buffer2, 0, chunk2Length, reservedValueSupplier); + return _publication.Offer(_buffer1, 0, chunk1Length, _buffer2, 0, chunk2Length, reservedValueSupplier); } [Test] public void OfferWithOffsets() { const int partitionIndex = 1; - int termId = TERM_ID_1 + 1; + int termId = TermId1 + 1; const int termOffset = 64; A.CallTo(() => _publicationLimit.GetVolatile()).Returns(int.MaxValue); IsConnected(_logMetaDataBuffer, true); @@ -525,8 +553,15 @@ public void OfferWithOffsets() const int offsetOne = 2; const int lengthTwo = 3; const int offsetTwo = 4; - long position = _publication.Offer(buffer1, offsetOne, lengthOne, buffer2, offsetTwo, lengthTwo, - (termBuffer, frameOffset, frameLength) => -1); + long position = _publication.Offer( + buffer1, + offsetOne, + lengthOne, + buffer2, + offsetTwo, + lengthTwo, + (termBuffer, frameOffset, frameLength) => -1 + ); Assert.AreEqual(262272, position); UnsafeBuffer termBuffer = _termBuffers[partitionIndex]; @@ -538,8 +573,10 @@ public void OfferWithOffsets() for (int i = 0; i < lengthTwo; i++) { - Assert.AreEqual(buffer2.GetByte(offsetTwo + i), - termBuffer.GetByte(termOffset + HEADER_LENGTH + lengthOne + i)); + Assert.AreEqual( + buffer2.GetByte(offsetTwo + i), + termBuffer.GetByte(termOffset + HEADER_LENGTH + lengthOne + i) + ); } } } @@ -547,28 +584,28 @@ public void OfferWithOffsets() [TestFixture] public class VectorOffer : OfferBase { - private readonly DirectBufferVector[] vectors = new DirectBufferVector[3]; + private readonly DirectBufferVector[] _vectors = new DirectBufferVector[3]; protected override UnsafeBuffer Buffer(int processedBytes) { - return (UnsafeBuffer)vectors[0].Buffer(); + return (UnsafeBuffer)_vectors[0].Buffer(); } protected override long Invoke(int length, ReservedValueSupplier reservedValueSupplier) { byte[] bytes = new byte[length]; Random.NextBytes(bytes); - int numVectors = vectors.Length; + int numVectors = _vectors.Length; int chunkSize = length / numVectors; UnsafeBuffer buffer = new UnsafeBuffer(bytes); for (int i = 0, offset = 0; i < numVectors; i++) { int size = numVectors - 1 == i ? (length - offset) : chunkSize; - vectors[i] = new DirectBufferVector(buffer, offset, size); + _vectors[i] = new DirectBufferVector(buffer, offset, size); offset += size; } - return _publication.Offer(vectors, reservedValueSupplier); + return _publication.Offer(_vectors, reservedValueSupplier); } } @@ -584,18 +621,38 @@ private void AssertFrameLength(int partitionIndex, int termOffset, int expectedF protected static IEnumerable TryClaimPositions() { - yield return new TestCaseData(100, 31, 30, PackTail(31, 16 * 1024), - ComputePosition(31, 16 * 1024 + 160, POSITION_BITS_TO_SHIFT, TERM_ID_1)); - yield return new TestCaseData(999, 7, 6, PackTail(212, 8192), - ComputePosition(212, 8192 + 1056, POSITION_BITS_TO_SHIFT, TERM_ID_1)); + yield return new TestCaseData( + 100, + 31, + 30, + PackTail(31, 16 * 1024), + ComputePosition(31, 16 * 1024 + 160, PositionBitsToShift, TermId1) + ); + yield return new TestCaseData( + 999, + 7, + 6, + PackTail(212, 8192), + ComputePosition(212, 8192 + 1056, PositionBitsToShift, TermId1) + ); } protected static IEnumerable OfferPositions() { - yield return new TestCaseData(124, 5, 4, PackTail(11, 3072), - ComputePosition(11, 3072 + 160, POSITION_BITS_TO_SHIFT, TERM_ID_1)); - yield return new TestCaseData(MAX_MESSAGE_SIZE, 77, 76, PackTail(77, 1024), - ComputePosition(77, 1024 + TOTAL_ALIGNED_MAX_MESSAGE_SIZE, POSITION_BITS_TO_SHIFT, TERM_ID_1)); + yield return new TestCaseData( + 124, + 5, + 4, + PackTail(11, 3072), + ComputePosition(11, 3072 + 160, PositionBitsToShift, TermId1) + ); + yield return new TestCaseData( + MaxMessageSize, + 77, + 76, + PackTail(77, 1024), + ComputePosition(77, 1024 + TotalAlignedMaxMessageSize, PositionBitsToShift, TermId1) + ); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/Security/AuthorisationServiceTest.cs b/src/Adaptive.Aeron.Tests/Security/AuthorisationServiceTest.cs index 9c70f2b8..d3ae5a6e 100644 --- a/src/Adaptive.Aeron.Tests/Security/AuthorisationServiceTest.cs +++ b/src/Adaptive.Aeron.Tests/Security/AuthorisationServiceTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using Adaptive.Aeron.Security; using Adaptive.Agrona; @@ -6,31 +22,34 @@ namespace Adaptive.Aeron.Tests.Security { - public class authorisation_service_test + public class AuthorisationServiceTest { [Test] public void ShouldAllowAnyCommandIfAllowAllIsUsed() { - byte[] encodedCredentials = {0x1, 0x2, 0x3}; + byte[] encodedCredentials = { 0x1, 0x2, 0x3 }; var errorHandler = A.Fake(); const int protocolId = 77; int actionId = new Random().Next(); - Assert.True(AllowAllAuthorisationService.INSTANCE.IsAuthorised(protocolId, actionId, null, encodedCredentials)); + Assert.True( + AllowAllAuthorisationService.INSTANCE.IsAuthorised(protocolId, actionId, null, encodedCredentials) + ); A.CallTo(errorHandler).MustNotHaveHappened(); } [Test] public void ShouldForbidAllCommandsIfDenyAllIsUsed() { - byte[] encodedCredentials = {0x4, 0x5, 0x6}; + byte[] encodedCredentials = { 0x4, 0x5, 0x6 }; var errorHandler = A.Fake(); const int protocolId = 77; int actionId = new Random().Next(); - Assert.False(DenyAllAuthorisationService.INSTANCE.IsAuthorised(protocolId, actionId, null, encodedCredentials)); + Assert.False( + DenyAllAuthorisationService.INSTANCE.IsAuthorised(protocolId, actionId, null, encodedCredentials) + ); A.CallTo(errorHandler).MustNotHaveHappened(); } } - -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/SubscriptionTest.cs b/src/Adaptive.Aeron.Tests/SubscriptionTest.cs index b1eb24d4..b0732590 100644 --- a/src/Adaptive.Aeron.Tests/SubscriptionTest.cs +++ b/src/Adaptive.Aeron.Tests/SubscriptionTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,6 @@ * limitations under the License. */ -using System.Text; using Adaptive.Aeron.LogBuffer; using Adaptive.Aeron.Protocol; using Adaptive.Agrona.Concurrent; @@ -26,121 +25,135 @@ namespace Adaptive.Aeron.Tests { public class SubscriptionTest { - private const string CHANNEL = "aeron:udp?endpoint=localhost:40124"; - private const int STREAM_ID_1 = 1002; - private const int INITIAL_TERM_ID = 7; - private const long SUBSCRIPTION_CORRELATION_ID = 100; - private const int READ_BUFFER_CAPACITY = 1024; - private static readonly int FRAGMENT_COUNT_LIMIT = int.MaxValue; - private const int HEADER_LENGTH = DataHeaderFlyweight.HEADER_LENGTH; - - private UnsafeBuffer AtomicReadBuffer; - private ClientConductor Conductor; - private IFragmentHandler FragmentHandler; - private Image ImageOneMock; - private Image ImageTwoMock; - private Header Header = new Header( - INITIAL_TERM_ID, LogBufferDescriptor.PositionBitsToShift(LogBufferDescriptor.TERM_MIN_LENGTH)); - private AvailableImageHandler AvailableImageHandler; - private UnavailableImageHandler UnavailableImageHandler; - - private readonly UnsafeBuffer tempBuffer = new UnsafeBuffer(new byte[1024]); - private CountersManager countersManager = Tests.NewCountersManager(16 * 1024); - - private Subscription Subscription; + private const string Channel = "aeron:udp?endpoint=localhost:40124"; + private const int StreamId1 = 1002; + private const int InitialTermId = 7; + private const long SubscriptionCorrelationId = 100; + private const int ReadBufferCapacity = 1024; + private static readonly int FragmentCountLimit = int.MaxValue; + private const int HeaderLength = DataHeaderFlyweight.HEADER_LENGTH; + + private UnsafeBuffer _atomicReadBuffer; + private ClientConductor _conductor; + private IFragmentHandler _fragmentHandler; + private Image _imageOneMock; + private Image _imageTwoMock; + private Header _header = new Header( + InitialTermId, + LogBufferDescriptor.PositionBitsToShift(LogBufferDescriptor.TERM_MIN_LENGTH) + ); + private AvailableImageHandler _availableImageHandler; + private UnavailableImageHandler _unavailableImageHandler; + + private readonly UnsafeBuffer _tempBuffer = new UnsafeBuffer(new byte[1024]); + private CountersManager _countersManager = Tests.NewCountersManager(16 * 1024); + + private Subscription _subscription; [SetUp] public void Setup() { - ImageOneMock = A.Fake(); - ImageTwoMock = A.Fake(); - - A.CallTo(() => ImageOneMock.CorrelationId).Returns(1); - A.CallTo(() => ImageTwoMock.CorrelationId).Returns(2); - - AtomicReadBuffer = new UnsafeBuffer(new byte[READ_BUFFER_CAPACITY]); - Conductor = A.Fake(); - FragmentHandler = A.Fake(); - AvailableImageHandler = A.Fake(); - UnavailableImageHandler = A.Fake(); - - A.CallTo(() => Conductor.CountersReader()).Returns(countersManager); - - Subscription = new Subscription( - Conductor, - CHANNEL, - STREAM_ID_1, - SUBSCRIPTION_CORRELATION_ID, - AvailableImageHandler, - UnavailableImageHandler); - - A.CallTo(() => Conductor.RemoveSubscription(Subscription)).Invokes(() => Subscription.InternalClose(Aeron.NULL_VALUE)); + _imageOneMock = A.Fake(); + _imageTwoMock = A.Fake(); + + A.CallTo(() => _imageOneMock.CorrelationId).Returns(1); + A.CallTo(() => _imageTwoMock.CorrelationId).Returns(2); + + _atomicReadBuffer = new UnsafeBuffer(new byte[ReadBufferCapacity]); + _conductor = A.Fake(); + _fragmentHandler = A.Fake(); + _availableImageHandler = A.Fake(); + _unavailableImageHandler = A.Fake(); + + A.CallTo(() => _conductor.CountersReader()).Returns(_countersManager); + + _subscription = new Subscription( + _conductor, + Channel, + StreamId1, + SubscriptionCorrelationId, + _availableImageHandler, + _unavailableImageHandler + ); + + A.CallTo(() => _conductor.RemoveSubscription(_subscription)) + .Invokes(() => _subscription.InternalClose(Aeron.NULL_VALUE)); } [Test] public void ShouldEnsureTheSubscriptionIsOpenWhenPolling() { - Subscription.Dispose(); - Assert.True(Subscription.IsClosed); + _subscription.Dispose(); + Assert.True(_subscription.IsClosed); - A.CallTo(() => Conductor.RemoveSubscription(Subscription)).MustHaveHappened(); + A.CallTo(() => _conductor.RemoveSubscription(_subscription)).MustHaveHappened(); } [Test] public void ShouldReadNothingWhenNoImages() { - Assert.AreEqual(0, Subscription.Poll(FragmentHandler, 1)); + Assert.AreEqual(0, _subscription.Poll(_fragmentHandler, 1)); } [Test] public void ShouldReadNothingWhenThereIsNoData() { - Subscription.AddImage(ImageOneMock); + _subscription.AddImage(_imageOneMock); + A.CallTo(() => _imageOneMock.Poll(A._, A._)).Returns(0); - A.CallTo(() => ImageOneMock.Poll(A._, A._)).Returns(0); - - Assert.AreEqual(0, Subscription.Poll(FragmentHandler, 1)); + Assert.AreEqual(0, _subscription.Poll(_fragmentHandler, 1)); } [Test] public void ShouldReadData() { - Subscription.AddImage(ImageOneMock); - - A.CallTo(() => ImageOneMock.Poll(A._, A._)).ReturnsLazily(o => - { - var handler = (IFragmentHandler) o.Arguments[0]; - handler.OnFragment(AtomicReadBuffer, HEADER_LENGTH, READ_BUFFER_CAPACITY - HEADER_LENGTH, Header); - return 1; - }); - - Assert.AreEqual(1, Subscription.Poll(FragmentHandler, FRAGMENT_COUNT_LIMIT)); - - A.CallTo(() => FragmentHandler.OnFragment(AtomicReadBuffer, HEADER_LENGTH, READ_BUFFER_CAPACITY - HEADER_LENGTH, A
._)).MustHaveHappened(); + _subscription.AddImage(_imageOneMock); + + A.CallTo(() => _imageOneMock.Poll(A._, A._)) + .ReturnsLazily(o => + { + var handler = (IFragmentHandler)o.Arguments[0]; + handler.OnFragment(_atomicReadBuffer, HeaderLength, ReadBufferCapacity - HeaderLength, _header); + return 1; + }); + + Assert.AreEqual(1, _subscription.Poll(_fragmentHandler, FragmentCountLimit)); + + A.CallTo(() => + _fragmentHandler.OnFragment( + _atomicReadBuffer, + HeaderLength, + ReadBufferCapacity - HeaderLength, + A
._ + ) + ) + .MustHaveHappened(); } [Test] public void ShouldReadDataFromMultipleSources() { - Subscription.AddImage(ImageOneMock); - Subscription.AddImage(ImageTwoMock); - - A.CallTo(() => ImageOneMock.Poll(A._, A._)).ReturnsLazily(o => - { - var handler = (IFragmentHandler) o.Arguments[0]; - handler.OnFragment(AtomicReadBuffer, HEADER_LENGTH, READ_BUFFER_CAPACITY - HEADER_LENGTH, Header); - return 1; - }); - - A.CallTo(() => ImageTwoMock.Poll(A._, A._)).ReturnsLazily(o => - { - var handler = (IFragmentHandler) o.Arguments[0]; - handler.OnFragment(AtomicReadBuffer, HEADER_LENGTH, READ_BUFFER_CAPACITY - HEADER_LENGTH, Header); - return 1; - }); - - Assert.AreEqual(2, Subscription.Poll(FragmentHandler, FRAGMENT_COUNT_LIMIT)); + _subscription.AddImage(_imageOneMock); + _subscription.AddImage(_imageTwoMock); + + A.CallTo(() => _imageOneMock.Poll(A._, A._)) + .ReturnsLazily(o => + { + var handler = (IFragmentHandler)o.Arguments[0]; + handler.OnFragment(_atomicReadBuffer, HeaderLength, ReadBufferCapacity - HeaderLength, _header); + return 1; + }); + + A.CallTo(() => _imageTwoMock.Poll(A._, A._)) + .ReturnsLazily(o => + { + var handler = (IFragmentHandler)o.Arguments[0]; + handler.OnFragment(_atomicReadBuffer, HeaderLength, ReadBufferCapacity - HeaderLength, _header); + return 1; + }); + + Assert.AreEqual(2, _subscription.Poll(_fragmentHandler, FragmentCountLimit)); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.Tests/SystemTest.cs b/src/Adaptive.Aeron.Tests/SystemTest.cs index d86308bb..cbdeb5fc 100644 --- a/src/Adaptive.Aeron.Tests/SystemTest.cs +++ b/src/Adaptive.Aeron.Tests/SystemTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using System.Text; using System.Threading; diff --git a/src/Adaptive.Aeron.Tests/Tests.cs b/src/Adaptive.Aeron.Tests/Tests.cs index dce2dc64..5ab14284 100644 --- a/src/Adaptive.Aeron.Tests/Tests.cs +++ b/src/Adaptive.Aeron.Tests/Tests.cs @@ -1,20 +1,37 @@ -using Adaptive.Agrona; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona; using Adaptive.Agrona.Concurrent; using Adaptive.Agrona.Concurrent.Status; namespace Adaptive.Aeron.Tests; -public class Tests +public static class Tests { public static CountersManager NewCountersManager(int dataLength) { return new CountersManager( - new UnsafeBuffer(BufferUtil.AllocateDirect(countersMetadataBufferLength(dataLength))), - new UnsafeBuffer(BufferUtil.AllocateDirect(dataLength))); + new UnsafeBuffer(BufferUtil.AllocateDirect(CountersMetadataBufferLength(dataLength))), + new UnsafeBuffer(BufferUtil.AllocateDirect(dataLength)) + ); } - public static int countersMetadataBufferLength(int counterValuesBufferLength) + public static int CountersMetadataBufferLength(int counterValuesBufferLength) { return counterValuesBufferLength * (CountersReader.METADATA_LENGTH / CountersReader.COUNTER_LENGTH); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron.sln b/src/Adaptive.Aeron.sln index 0dd11214..20d73426 100644 --- a/src/Adaptive.Aeron.sln +++ b/src/Adaptive.Aeron.sln @@ -59,292 +59,404 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Weavers", "Weavers", "{E287 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unsealer.Fody", "Weavers\Unsealer.Fody\Unsealer.Fody.csproj", "{E28646AF-556E-423E-B54F-ADFBD75F2611}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Adaptive.Aeron.Analyzers", "Adaptive.Aeron.Analyzers\Adaptive.Aeron.Analyzers.csproj", "{926CB849-94C6-4F3E-8B4F-1DB5157A8782}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|arm64 = Debug|arm64 Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|arm64 = Release|arm64 Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Debug|arm64.ActiveCfg = Debug|Any CPU + {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Debug|arm64.Build.0 = Debug|Any CPU {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Debug|x64.ActiveCfg = Debug|Any CPU {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Debug|x64.Build.0 = Debug|Any CPU {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Debug|x86.ActiveCfg = Debug|Any CPU {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Debug|x86.Build.0 = Debug|Any CPU {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Release|Any CPU.ActiveCfg = Release|Any CPU {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Release|Any CPU.Build.0 = Release|Any CPU + {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Release|arm64.ActiveCfg = Release|Any CPU + {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Release|arm64.Build.0 = Release|Any CPU {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Release|x64.ActiveCfg = Release|Any CPU {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Release|x64.Build.0 = Release|Any CPU {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Release|x86.ActiveCfg = Release|Any CPU {3E3FA5C6-CFBA-4604-B10E-C7EC97D226CF}.Release|x86.Build.0 = Release|Any CPU {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Debug|arm64.ActiveCfg = Debug|Any CPU + {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Debug|arm64.Build.0 = Debug|Any CPU {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Debug|x64.ActiveCfg = Debug|Any CPU {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Debug|x64.Build.0 = Debug|Any CPU {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Debug|x86.ActiveCfg = Debug|Any CPU {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Debug|x86.Build.0 = Debug|Any CPU {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Release|Any CPU.ActiveCfg = Release|Any CPU {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Release|Any CPU.Build.0 = Release|Any CPU + {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Release|arm64.ActiveCfg = Release|Any CPU + {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Release|arm64.Build.0 = Release|Any CPU {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Release|x64.ActiveCfg = Release|Any CPU {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Release|x64.Build.0 = Release|Any CPU {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Release|x86.ActiveCfg = Release|Any CPU {E6F84F8E-68C6-43C8-A20E-E1F91DF99ABC}.Release|x86.Build.0 = Release|Any CPU {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Debug|arm64.ActiveCfg = Debug|Any CPU + {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Debug|arm64.Build.0 = Debug|Any CPU {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Debug|x64.ActiveCfg = Debug|Any CPU {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Debug|x64.Build.0 = Debug|Any CPU {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Debug|x86.ActiveCfg = Debug|Any CPU {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Debug|x86.Build.0 = Debug|Any CPU {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Release|Any CPU.ActiveCfg = Release|Any CPU {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Release|Any CPU.Build.0 = Release|Any CPU + {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Release|arm64.ActiveCfg = Release|Any CPU + {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Release|arm64.Build.0 = Release|Any CPU {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Release|x64.ActiveCfg = Release|Any CPU {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Release|x64.Build.0 = Release|Any CPU {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Release|x86.ActiveCfg = Release|Any CPU {46A1DE6D-55B0-4D64-959F-D19B8D378842}.Release|x86.Build.0 = Release|Any CPU {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Debug|arm64.ActiveCfg = Debug|Any CPU + {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Debug|arm64.Build.0 = Debug|Any CPU {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Debug|x64.ActiveCfg = Debug|Any CPU {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Debug|x64.Build.0 = Debug|Any CPU {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Debug|x86.ActiveCfg = Debug|Any CPU {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Debug|x86.Build.0 = Debug|Any CPU {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Release|Any CPU.ActiveCfg = Release|Any CPU {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Release|Any CPU.Build.0 = Release|Any CPU + {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Release|arm64.ActiveCfg = Release|Any CPU + {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Release|arm64.Build.0 = Release|Any CPU {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Release|x64.ActiveCfg = Release|Any CPU {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Release|x64.Build.0 = Release|Any CPU {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Release|x86.ActiveCfg = Release|Any CPU {A1ABAA99-CAAE-41B2-B3F9-9BF2C23DFA8B}.Release|x86.Build.0 = Release|Any CPU {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Debug|arm64.ActiveCfg = Debug|Any CPU + {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Debug|arm64.Build.0 = Debug|Any CPU {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Debug|x64.ActiveCfg = Debug|Any CPU {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Debug|x64.Build.0 = Debug|Any CPU {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Debug|x86.ActiveCfg = Debug|Any CPU {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Debug|x86.Build.0 = Debug|Any CPU {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Release|Any CPU.ActiveCfg = Release|Any CPU {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Release|Any CPU.Build.0 = Release|Any CPU + {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Release|arm64.ActiveCfg = Release|Any CPU + {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Release|arm64.Build.0 = Release|Any CPU {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Release|x64.ActiveCfg = Release|Any CPU {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Release|x64.Build.0 = Release|Any CPU {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Release|x86.ActiveCfg = Release|Any CPU {29386401-8D9B-4F56-8B8D-A8242D4E295D}.Release|x86.Build.0 = Release|Any CPU {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Debug|arm64.ActiveCfg = Debug|Any CPU + {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Debug|arm64.Build.0 = Debug|Any CPU {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Debug|x64.ActiveCfg = Debug|Any CPU {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Debug|x64.Build.0 = Debug|Any CPU {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Debug|x86.ActiveCfg = Debug|Any CPU {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Debug|x86.Build.0 = Debug|Any CPU {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Release|Any CPU.ActiveCfg = Release|Any CPU {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Release|Any CPU.Build.0 = Release|Any CPU + {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Release|arm64.ActiveCfg = Release|Any CPU + {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Release|arm64.Build.0 = Release|Any CPU {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Release|x64.ActiveCfg = Release|Any CPU {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Release|x64.Build.0 = Release|Any CPU {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Release|x86.ActiveCfg = Release|Any CPU {BB3FCE67-1719-4A1F-98BF-B56509C08794}.Release|x86.Build.0 = Release|Any CPU {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Debug|arm64.ActiveCfg = Debug|Any CPU + {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Debug|arm64.Build.0 = Debug|Any CPU {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Debug|x64.ActiveCfg = Debug|Any CPU {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Debug|x64.Build.0 = Debug|Any CPU {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Debug|x86.ActiveCfg = Debug|Any CPU {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Debug|x86.Build.0 = Debug|Any CPU {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Release|Any CPU.ActiveCfg = Release|Any CPU {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Release|Any CPU.Build.0 = Release|Any CPU + {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Release|arm64.ActiveCfg = Release|Any CPU + {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Release|arm64.Build.0 = Release|Any CPU {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Release|x64.ActiveCfg = Release|Any CPU {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Release|x64.Build.0 = Release|Any CPU {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Release|x86.ActiveCfg = Release|Any CPU {16B25C6A-67C5-46E9-95BE-DB3B17D70DF8}.Release|x86.Build.0 = Release|Any CPU {B8324314-0695-4919-91AE-9683972D4125}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B8324314-0695-4919-91AE-9683972D4125}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B8324314-0695-4919-91AE-9683972D4125}.Debug|arm64.ActiveCfg = Debug|Any CPU + {B8324314-0695-4919-91AE-9683972D4125}.Debug|arm64.Build.0 = Debug|Any CPU {B8324314-0695-4919-91AE-9683972D4125}.Debug|x64.ActiveCfg = Debug|Any CPU {B8324314-0695-4919-91AE-9683972D4125}.Debug|x64.Build.0 = Debug|Any CPU {B8324314-0695-4919-91AE-9683972D4125}.Debug|x86.ActiveCfg = Debug|Any CPU {B8324314-0695-4919-91AE-9683972D4125}.Debug|x86.Build.0 = Debug|Any CPU {B8324314-0695-4919-91AE-9683972D4125}.Release|Any CPU.ActiveCfg = Release|Any CPU {B8324314-0695-4919-91AE-9683972D4125}.Release|Any CPU.Build.0 = Release|Any CPU + {B8324314-0695-4919-91AE-9683972D4125}.Release|arm64.ActiveCfg = Release|Any CPU + {B8324314-0695-4919-91AE-9683972D4125}.Release|arm64.Build.0 = Release|Any CPU {B8324314-0695-4919-91AE-9683972D4125}.Release|x64.ActiveCfg = Release|Any CPU {B8324314-0695-4919-91AE-9683972D4125}.Release|x64.Build.0 = Release|Any CPU {B8324314-0695-4919-91AE-9683972D4125}.Release|x86.ActiveCfg = Release|Any CPU {B8324314-0695-4919-91AE-9683972D4125}.Release|x86.Build.0 = Release|Any CPU {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Debug|arm64.ActiveCfg = Debug|Any CPU + {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Debug|arm64.Build.0 = Debug|Any CPU {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Debug|x64.ActiveCfg = Debug|Any CPU {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Debug|x64.Build.0 = Debug|Any CPU {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Debug|x86.ActiveCfg = Debug|Any CPU {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Debug|x86.Build.0 = Debug|Any CPU {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Release|Any CPU.ActiveCfg = Release|Any CPU {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Release|Any CPU.Build.0 = Release|Any CPU + {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Release|arm64.ActiveCfg = Release|Any CPU + {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Release|arm64.Build.0 = Release|Any CPU {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Release|x64.ActiveCfg = Release|Any CPU {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Release|x64.Build.0 = Release|Any CPU {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Release|x86.ActiveCfg = Release|Any CPU {A15D0AF3-F1D9-4AD4-9542-EB021EA31EA6}.Release|x86.Build.0 = Release|Any CPU {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Debug|arm64.ActiveCfg = Debug|Any CPU + {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Debug|arm64.Build.0 = Debug|Any CPU {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Debug|x64.ActiveCfg = Debug|Any CPU {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Debug|x64.Build.0 = Debug|Any CPU {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Debug|x86.ActiveCfg = Debug|Any CPU {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Debug|x86.Build.0 = Debug|Any CPU {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Release|Any CPU.ActiveCfg = Release|Any CPU {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Release|Any CPU.Build.0 = Release|Any CPU + {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Release|arm64.ActiveCfg = Release|Any CPU + {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Release|arm64.Build.0 = Release|Any CPU {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Release|x64.ActiveCfg = Release|Any CPU {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Release|x64.Build.0 = Release|Any CPU {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Release|x86.ActiveCfg = Release|Any CPU {183BDA16-AF0C-43CD-BF4E-73DC3284A5C7}.Release|x86.Build.0 = Release|Any CPU {00DF060E-573A-4236-B462-89CE45698191}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {00DF060E-573A-4236-B462-89CE45698191}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00DF060E-573A-4236-B462-89CE45698191}.Debug|arm64.ActiveCfg = Debug|Any CPU + {00DF060E-573A-4236-B462-89CE45698191}.Debug|arm64.Build.0 = Debug|Any CPU {00DF060E-573A-4236-B462-89CE45698191}.Debug|x64.ActiveCfg = Debug|Any CPU {00DF060E-573A-4236-B462-89CE45698191}.Debug|x64.Build.0 = Debug|Any CPU {00DF060E-573A-4236-B462-89CE45698191}.Debug|x86.ActiveCfg = Debug|Any CPU {00DF060E-573A-4236-B462-89CE45698191}.Debug|x86.Build.0 = Debug|Any CPU {00DF060E-573A-4236-B462-89CE45698191}.Release|Any CPU.ActiveCfg = Release|Any CPU {00DF060E-573A-4236-B462-89CE45698191}.Release|Any CPU.Build.0 = Release|Any CPU + {00DF060E-573A-4236-B462-89CE45698191}.Release|arm64.ActiveCfg = Release|Any CPU + {00DF060E-573A-4236-B462-89CE45698191}.Release|arm64.Build.0 = Release|Any CPU {00DF060E-573A-4236-B462-89CE45698191}.Release|x64.ActiveCfg = Release|Any CPU {00DF060E-573A-4236-B462-89CE45698191}.Release|x64.Build.0 = Release|Any CPU {00DF060E-573A-4236-B462-89CE45698191}.Release|x86.ActiveCfg = Release|Any CPU {00DF060E-573A-4236-B462-89CE45698191}.Release|x86.Build.0 = Release|Any CPU {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Debug|arm64.ActiveCfg = Debug|Any CPU + {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Debug|arm64.Build.0 = Debug|Any CPU {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Debug|x64.ActiveCfg = Debug|Any CPU {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Debug|x64.Build.0 = Debug|Any CPU {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Debug|x86.ActiveCfg = Debug|Any CPU {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Debug|x86.Build.0 = Debug|Any CPU {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Release|Any CPU.ActiveCfg = Release|Any CPU {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Release|Any CPU.Build.0 = Release|Any CPU + {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Release|arm64.ActiveCfg = Release|Any CPU + {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Release|arm64.Build.0 = Release|Any CPU {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Release|x64.ActiveCfg = Release|Any CPU {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Release|x64.Build.0 = Release|Any CPU {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Release|x86.ActiveCfg = Release|Any CPU {DCB69FB3-9E28-4A0F-9E25-DAE0D083E555}.Release|x86.Build.0 = Release|Any CPU {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Debug|arm64.ActiveCfg = Debug|Any CPU + {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Debug|arm64.Build.0 = Debug|Any CPU {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Debug|x64.ActiveCfg = Debug|Any CPU {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Debug|x64.Build.0 = Debug|Any CPU {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Debug|x86.ActiveCfg = Debug|Any CPU {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Debug|x86.Build.0 = Debug|Any CPU {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Release|Any CPU.ActiveCfg = Release|Any CPU {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Release|Any CPU.Build.0 = Release|Any CPU + {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Release|arm64.ActiveCfg = Release|Any CPU + {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Release|arm64.Build.0 = Release|Any CPU {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Release|x64.ActiveCfg = Release|Any CPU {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Release|x64.Build.0 = Release|Any CPU {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Release|x86.ActiveCfg = Release|Any CPU {E2506D08-AF46-4B53-817A-A56B43C7C1EA}.Release|x86.Build.0 = Release|Any CPU {2D449099-F238-4105-97B8-697F93FA07CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2D449099-F238-4105-97B8-697F93FA07CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D449099-F238-4105-97B8-697F93FA07CF}.Debug|arm64.ActiveCfg = Debug|Any CPU + {2D449099-F238-4105-97B8-697F93FA07CF}.Debug|arm64.Build.0 = Debug|Any CPU {2D449099-F238-4105-97B8-697F93FA07CF}.Debug|x64.ActiveCfg = Debug|Any CPU {2D449099-F238-4105-97B8-697F93FA07CF}.Debug|x64.Build.0 = Debug|Any CPU {2D449099-F238-4105-97B8-697F93FA07CF}.Debug|x86.ActiveCfg = Debug|Any CPU {2D449099-F238-4105-97B8-697F93FA07CF}.Debug|x86.Build.0 = Debug|Any CPU {2D449099-F238-4105-97B8-697F93FA07CF}.Release|Any CPU.ActiveCfg = Release|Any CPU {2D449099-F238-4105-97B8-697F93FA07CF}.Release|Any CPU.Build.0 = Release|Any CPU + {2D449099-F238-4105-97B8-697F93FA07CF}.Release|arm64.ActiveCfg = Release|Any CPU + {2D449099-F238-4105-97B8-697F93FA07CF}.Release|arm64.Build.0 = Release|Any CPU {2D449099-F238-4105-97B8-697F93FA07CF}.Release|x64.ActiveCfg = Release|Any CPU {2D449099-F238-4105-97B8-697F93FA07CF}.Release|x64.Build.0 = Release|Any CPU {2D449099-F238-4105-97B8-697F93FA07CF}.Release|x86.ActiveCfg = Release|Any CPU {2D449099-F238-4105-97B8-697F93FA07CF}.Release|x86.Build.0 = Release|Any CPU {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Debug|arm64.ActiveCfg = Debug|Any CPU + {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Debug|arm64.Build.0 = Debug|Any CPU {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Debug|x64.ActiveCfg = Debug|Any CPU {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Debug|x64.Build.0 = Debug|Any CPU {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Debug|x86.ActiveCfg = Debug|Any CPU {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Debug|x86.Build.0 = Debug|Any CPU {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Release|Any CPU.ActiveCfg = Release|Any CPU {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Release|Any CPU.Build.0 = Release|Any CPU + {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Release|arm64.ActiveCfg = Release|Any CPU + {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Release|arm64.Build.0 = Release|Any CPU {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Release|x64.ActiveCfg = Release|Any CPU {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Release|x64.Build.0 = Release|Any CPU {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Release|x86.ActiveCfg = Release|Any CPU {8038E62C-1D44-48AF-9E2B-C02228D4156F}.Release|x86.Build.0 = Release|Any CPU {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Debug|arm64.ActiveCfg = Debug|Any CPU + {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Debug|arm64.Build.0 = Debug|Any CPU {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Debug|x64.ActiveCfg = Debug|Any CPU {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Debug|x64.Build.0 = Debug|Any CPU {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Debug|x86.ActiveCfg = Debug|Any CPU {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Debug|x86.Build.0 = Debug|Any CPU {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Release|Any CPU.ActiveCfg = Release|Any CPU {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Release|Any CPU.Build.0 = Release|Any CPU + {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Release|arm64.ActiveCfg = Release|Any CPU + {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Release|arm64.Build.0 = Release|Any CPU {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Release|x64.ActiveCfg = Release|Any CPU {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Release|x64.Build.0 = Release|Any CPU {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Release|x86.ActiveCfg = Release|Any CPU {9C2B605E-5C8C-4BDC-9977-96FADDBA1967}.Release|x86.Build.0 = Release|Any CPU {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Debug|arm64.ActiveCfg = Debug|Any CPU + {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Debug|arm64.Build.0 = Debug|Any CPU {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Debug|x64.ActiveCfg = Debug|Any CPU {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Debug|x64.Build.0 = Debug|Any CPU {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Debug|x86.ActiveCfg = Debug|Any CPU {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Debug|x86.Build.0 = Debug|Any CPU {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Release|Any CPU.ActiveCfg = Release|Any CPU {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Release|Any CPU.Build.0 = Release|Any CPU + {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Release|arm64.ActiveCfg = Release|Any CPU + {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Release|arm64.Build.0 = Release|Any CPU {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Release|x64.ActiveCfg = Release|Any CPU {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Release|x64.Build.0 = Release|Any CPU {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Release|x86.ActiveCfg = Release|Any CPU {FD430CC0-2053-4C2D-845E-8BC421D6F114}.Release|x86.Build.0 = Release|Any CPU {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Debug|arm64.ActiveCfg = Debug|Any CPU + {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Debug|arm64.Build.0 = Debug|Any CPU {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Debug|x64.ActiveCfg = Debug|Any CPU {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Debug|x64.Build.0 = Debug|Any CPU {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Debug|x86.ActiveCfg = Debug|Any CPU {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Debug|x86.Build.0 = Debug|Any CPU {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Release|Any CPU.ActiveCfg = Release|Any CPU {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Release|Any CPU.Build.0 = Release|Any CPU + {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Release|arm64.ActiveCfg = Release|Any CPU + {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Release|arm64.Build.0 = Release|Any CPU {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Release|x64.ActiveCfg = Release|Any CPU {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Release|x64.Build.0 = Release|Any CPU {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Release|x86.ActiveCfg = Release|Any CPU {5500E5A6-B22F-4FA3-B933-8C844A3CEC1A}.Release|x86.Build.0 = Release|Any CPU {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Debug|arm64.ActiveCfg = Debug|Any CPU + {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Debug|arm64.Build.0 = Debug|Any CPU {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Debug|x64.ActiveCfg = Debug|Any CPU {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Debug|x64.Build.0 = Debug|Any CPU {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Debug|x86.ActiveCfg = Debug|Any CPU {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Debug|x86.Build.0 = Debug|Any CPU {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Release|Any CPU.ActiveCfg = Release|Any CPU {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Release|Any CPU.Build.0 = Release|Any CPU + {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Release|arm64.ActiveCfg = Release|Any CPU + {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Release|arm64.Build.0 = Release|Any CPU {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Release|x64.ActiveCfg = Release|Any CPU {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Release|x64.Build.0 = Release|Any CPU {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Release|x86.ActiveCfg = Release|Any CPU {61C62DB8-CB67-4E3F-A2EA-30547183C64F}.Release|x86.Build.0 = Release|Any CPU {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Debug|arm64.ActiveCfg = Debug|Any CPU + {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Debug|arm64.Build.0 = Debug|Any CPU {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Debug|x64.ActiveCfg = Debug|Any CPU {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Debug|x64.Build.0 = Debug|Any CPU {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Debug|x86.ActiveCfg = Debug|Any CPU {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Debug|x86.Build.0 = Debug|Any CPU {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Release|Any CPU.ActiveCfg = Release|Any CPU {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Release|Any CPU.Build.0 = Release|Any CPU + {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Release|arm64.ActiveCfg = Release|Any CPU + {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Release|arm64.Build.0 = Release|Any CPU {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Release|x64.ActiveCfg = Release|Any CPU {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Release|x64.Build.0 = Release|Any CPU {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Release|x86.ActiveCfg = Release|Any CPU {DB22F44D-0ABF-428F-BAA1-E0D89696ABD3}.Release|x86.Build.0 = Release|Any CPU {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Debug|arm64.ActiveCfg = Debug|Any CPU + {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Debug|arm64.Build.0 = Debug|Any CPU {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Debug|x64.ActiveCfg = Debug|Any CPU {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Debug|x64.Build.0 = Debug|Any CPU {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Debug|x86.ActiveCfg = Debug|Any CPU {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Debug|x86.Build.0 = Debug|Any CPU {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Release|Any CPU.ActiveCfg = Release|Any CPU {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Release|Any CPU.Build.0 = Release|Any CPU + {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Release|arm64.ActiveCfg = Release|Any CPU + {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Release|arm64.Build.0 = Release|Any CPU {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Release|x64.ActiveCfg = Release|Any CPU {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Release|x64.Build.0 = Release|Any CPU {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Release|x86.ActiveCfg = Release|Any CPU {F1B693B4-F0C6-4467-BC09-2D1B9FB73D4E}.Release|x86.Build.0 = Release|Any CPU {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Debug|arm64.ActiveCfg = Debug|Any CPU + {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Debug|arm64.Build.0 = Debug|Any CPU {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Debug|x64.ActiveCfg = Debug|Any CPU {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Debug|x64.Build.0 = Debug|Any CPU {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Debug|x86.ActiveCfg = Debug|Any CPU {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Debug|x86.Build.0 = Debug|Any CPU {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Release|Any CPU.ActiveCfg = Release|Any CPU {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Release|Any CPU.Build.0 = Release|Any CPU + {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Release|arm64.ActiveCfg = Release|Any CPU + {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Release|arm64.Build.0 = Release|Any CPU {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Release|x64.ActiveCfg = Release|Any CPU {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Release|x64.Build.0 = Release|Any CPU {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Release|x86.ActiveCfg = Release|Any CPU {572CA144-CECC-43AC-AF10-5BEA6007C2DE}.Release|x86.Build.0 = Release|Any CPU {E28646AF-556E-423E-B54F-ADFBD75F2611}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E28646AF-556E-423E-B54F-ADFBD75F2611}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E28646AF-556E-423E-B54F-ADFBD75F2611}.Debug|arm64.ActiveCfg = Debug|Any CPU + {E28646AF-556E-423E-B54F-ADFBD75F2611}.Debug|arm64.Build.0 = Debug|Any CPU {E28646AF-556E-423E-B54F-ADFBD75F2611}.Debug|x64.ActiveCfg = Debug|Any CPU {E28646AF-556E-423E-B54F-ADFBD75F2611}.Debug|x64.Build.0 = Debug|Any CPU {E28646AF-556E-423E-B54F-ADFBD75F2611}.Debug|x86.ActiveCfg = Debug|Any CPU {E28646AF-556E-423E-B54F-ADFBD75F2611}.Debug|x86.Build.0 = Debug|Any CPU {E28646AF-556E-423E-B54F-ADFBD75F2611}.Release|Any CPU.ActiveCfg = Release|Any CPU {E28646AF-556E-423E-B54F-ADFBD75F2611}.Release|Any CPU.Build.0 = Release|Any CPU + {E28646AF-556E-423E-B54F-ADFBD75F2611}.Release|arm64.ActiveCfg = Release|Any CPU + {E28646AF-556E-423E-B54F-ADFBD75F2611}.Release|arm64.Build.0 = Release|Any CPU {E28646AF-556E-423E-B54F-ADFBD75F2611}.Release|x64.ActiveCfg = Release|Any CPU {E28646AF-556E-423E-B54F-ADFBD75F2611}.Release|x64.Build.0 = Release|Any CPU {E28646AF-556E-423E-B54F-ADFBD75F2611}.Release|x86.ActiveCfg = Release|Any CPU {E28646AF-556E-423E-B54F-ADFBD75F2611}.Release|x86.Build.0 = Release|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Debug|Any CPU.Build.0 = Debug|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Debug|arm64.ActiveCfg = Debug|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Debug|arm64.Build.0 = Debug|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Debug|x64.ActiveCfg = Debug|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Debug|x64.Build.0 = Debug|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Debug|x86.ActiveCfg = Debug|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Debug|x86.Build.0 = Debug|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Release|Any CPU.ActiveCfg = Release|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Release|Any CPU.Build.0 = Release|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Release|arm64.ActiveCfg = Release|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Release|arm64.Build.0 = Release|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Release|x64.ActiveCfg = Release|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Release|x64.Build.0 = Release|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Release|x86.ActiveCfg = Release|Any CPU + {926CB849-94C6-4F3E-8B4F-1DB5157A8782}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/Adaptive.Aeron.sln.DotSettings b/src/Adaptive.Aeron.sln.DotSettings new file mode 100644 index 00000000..85184522 --- /dev/null +++ b/src/Adaptive.Aeron.sln.DotSettings @@ -0,0 +1,23 @@ + + Aeron Naming Only + False + False + False + False + False + False + False + False + False + False + False + False + True + DB + GC + ID + IO + IP + OK + UI + diff --git a/src/Adaptive.Aeron/Adaptive.Aeron.csproj b/src/Adaptive.Aeron/Adaptive.Aeron.csproj index a94c38bf..b5d49aa9 100644 --- a/src/Adaptive.Aeron/Adaptive.Aeron.csproj +++ b/src/Adaptive.Aeron/Adaptive.Aeron.csproj @@ -33,6 +33,16 @@ + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + diff --git a/src/Adaptive.Aeron/Aeron.cs b/src/Adaptive.Aeron/Aeron.cs index 9c009b9d..6d23f791 100644 --- a/src/Adaptive.Aeron/Aeron.cs +++ b/src/Adaptive.Aeron/Aeron.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,14 +32,17 @@ namespace Adaptive.Aeron { /// - /// Aeron entry point for communicating to the Media Driver for creating s and s. + /// Aeron entry point for communicating to the Media Driver for creating s and + /// s. /// Use an to configure the Aeron object. - /// + /// /// A client application requires only one Aeron object per Media Driver. - /// - /// Note: If is not set and a - /// occurs then the process will face the wrath of . See . - /// + /// + /// Note: If is not set and a + /// + /// occurs then the process will face the wrath of . See + /// . + /// /// public class Aeron : IDisposable { @@ -59,9 +62,8 @@ public class Aeron : IDisposable // For testing purposes only internal Aeron() { - } - + internal Aeron(Context ctx) { try @@ -97,9 +99,9 @@ internal Aeron(Context ctx) /// /// Create an Aeron instance and connect to the media driver with a default . - /// + /// /// Threads required for interacting with the media driver are created and managed within the Aeron instance. - /// + /// /// /// the new instance connected to the Media Driver. public static Aeron Connect() @@ -111,7 +113,7 @@ public static Aeron Connect() /// Create an Aeron instance and connect to the media driver. /// /// Threads required for interacting with the media driver are created and managed within the Aeron instance. - /// + /// /// /// /// for configuration of the client. @@ -153,7 +155,6 @@ public void PrintCounters(StreamWriter @out) counters.ForEach((value, id, label) => @out.WriteLine("{0,3}: {1:} - {2}", id, value, label)); } - /// /// Has the client been closed? If not then the CnC file may not be unmapped. /// @@ -182,7 +183,8 @@ public void PrintCounters(StreamWriter @out) /// Is the command still active for a given correlation id. /// /// to check if it is still active. - /// true in the command is still in active processing or false if completed successfully or errored. + /// true in the command is still in active processing or false if completed successfully or errored. + /// /// /// /// @@ -194,10 +196,12 @@ public bool IsCommandActive(long correlationId) /// /// Does the client have any active asynchronous commands? /// - /// When close operations are performed on s, s, and s the + /// When close operations are performed on s, s, and + /// s the /// commands are sent asynchronously to the driver. The client tracks active commands in case errors need to be - /// reported. If you wish to wait for acknowledgement of close operations then wait for this method to return false. - /// + /// reported. If you wish to wait for acknowledgement of close operations then wait for this method to return + /// false. + /// /// /// /// true if any commands are currently active otherwise false. @@ -209,9 +213,9 @@ public bool HasActiveCommands() /// /// Clean up and release all Aeron client resources and shutdown conducator thread if not using /// . - /// - /// This will close all currently open s, s and s created - /// from this client. To check for the command being acknowledged by the driver. + /// + /// This will close all currently open s, s and + /// s created from this client. To check for the command being acknowledged by the driver. /// public void Dispose() { @@ -230,7 +234,8 @@ public void Dispose() } /// - /// Add a for publishing messages to subscribers. The publication returned is threadsafe. + /// Add a for publishing messages to subscribers. The publication returned is + /// threadsafe. /// /// for sending the messages known to the media layer. /// within the channel scope. @@ -252,8 +257,8 @@ public ExclusivePublication AddExclusivePublication(string channel, int streamId } /// - /// Asynchronously add a for publishing messages to subscribers. The added publication returned - /// is threadsafe. + /// Asynchronously add a for publishing messages to subscribers. The added + /// publication returned is threadsafe. /// /// for sending the messages known to the media layer. /// within the channel scope. @@ -276,11 +281,13 @@ public void AsyncRemovePublication(long registrationId) } /// - /// Asynchronously add a for publishing messages to subscribers from a single thread. + /// Asynchronously add a for publishing messages to subscribers from a single + /// thread. /// /// for sending the messages known to the media layer. /// within the channel scope. - /// the registration id of the publication which can be used to get the added exclusive publication. + /// the registration id of the publication which can be used to get the added exclusive publication. + /// /// public long AsyncAddExclusivePublication(string channel, int streamId) { @@ -288,7 +295,8 @@ public long AsyncAddExclusivePublication(string channel, int streamId) } /// - /// Get a for publishing messages to subscribers. The publication returned is threadsafe. + /// Get a for publishing messages to subscribers. The publication returned is + /// threadsafe. /// /// returned from . /// a new when available otherwise null. @@ -322,7 +330,7 @@ public Subscription AddSubscription(string channel, int streamId) /// /// Add a new for subscribing to messages from publishers. - /// + /// /// This method will override the default handlers from the , i.e. /// and /// . Null values are valid and will @@ -330,30 +338,40 @@ public Subscription AddSubscription(string channel, int streamId) /// /// for receiving the messages known to the media layer. /// within the channel scope. - /// called when s become available for consumption. Null is valid if no action is to be taken. - /// called when s go unavailable for consumption. Null is valid if no action is to be taken. + /// called when s become available for consumption. + /// Null is valid if no action is to be taken. + /// called when s go unavailable for consumption. + /// Null is valid if no action is to be taken. /// the for the channel and streamId pair. - public Subscription AddSubscription(string channel, int streamId, AvailableImageHandler availableImageHandler, - UnavailableImageHandler unavailableImageHandler) + public Subscription AddSubscription( + string channel, + int streamId, + AvailableImageHandler availableImageHandler, + UnavailableImageHandler unavailableImageHandler + ) { return _conductor.AddSubscription(channel, streamId, availableImageHandler, unavailableImageHandler); } - /// /// Add a new for subscribing to messages from publishers. /// /// for receiving the messages known to the media layer. /// within the channel scope. - /// called when s become available for consumption. Null is valid if no - /// action is to be taken. - /// called when s go unavailable for consumption. Null is valid if no - /// action is to be taken. - /// the registration id of the subscription which can be used to get the added subscription. + /// called when s become available for consumption. + /// Null is valid if no action is to be taken. + /// called when s go unavailable for consumption. + /// Null is valid if no action is to be taken. + /// the registration id of the subscription which can be used to get the added subscription. + /// /// /// - public long AsyncAddSubscription(string channel, int streamId, AvailableImageHandler availableImageHandler, - UnavailableImageHandler unavailableImageHandler) + public long AsyncAddSubscription( + string channel, + int streamId, + AvailableImageHandler availableImageHandler, + UnavailableImageHandler unavailableImageHandler + ) { return _conductor.AsyncAddSubscription(channel, streamId, availableImageHandler, unavailableImageHandler); } @@ -363,7 +381,8 @@ public long AsyncAddSubscription(string channel, int streamId, AvailableImageHan /// /// for receiving the messages known to the media layer. /// within the channel scope. - /// the registration id of the subscription which can be used to get the added subscription. + /// the registration id of the subscription which can be used to get the added subscription. + /// /// /// public long AsyncAddSubscription(string channel, int streamId) @@ -386,8 +405,8 @@ public void AsyncRemoveSubscription(long registrationId) /// Get a for subscribing to messages from publishers. /// /// returned from - /// - /// or + /// + /// or /// a new when available otherwise null. /// /// @@ -398,10 +417,10 @@ public Subscription GetSubscription(long registrationId) /// /// Generate the next correlation id that is unique for the connected media driver. - /// + /// /// This is useful generating correlation identifiers for pairing requests with responses in a clients own /// application protocol. - /// + /// /// This method is thread safe and will work across processes that all use the same media driver. /// /// next correlation id that is unique for the media driver. @@ -419,13 +438,13 @@ public long NextCorrelationId() /// Get next available session id from the media driver. The session id will be unique for the connected media /// driver and given {@code streamId}. /// - /// If media driver's version is 1.49.0 or higher, then the session id is returned by the media driver. Otherwise, - /// a random session id is generated. - /// + /// If media driver's version is 1.49.0 or higher, then the session id is returned by the media driver. + /// Otherwise, a random session id is generated. + /// /// /// - /// for which a new session id is requested. Media driver only checks for session clashes at the - /// stream level. + /// for which a new session id is requested. Media driver only checks for session + /// clashes at the stream level. /// next available session id that is unique for the media driver and given {@code streamId}. /// @since 1.49.0 public int NextSessionId(int streamId) @@ -461,22 +480,37 @@ public CountersReader CountersReader /// The counter should be freed by calling . /// /// The typeId should be 1000 or greater. Values lower than that are reserved for use by Aeron. - /// + /// /// /// /// for the counter. /// containing the optional key for the counter. /// within the keyBuffer at which the key begins. /// of the key in the keyBuffer. - /// containing the mandatory label for the counter. The label should not be length prefixed. + /// containing the mandatory label for the counter. The label should not be length + /// prefixed. /// within the labelBuffer at which the label begins. /// of the label in the labelBuffer. /// the newly allocated counter. - public Counter AddCounter(int typeId, IDirectBuffer keyBuffer, int keyOffset, int keyLength, - IDirectBuffer labelBuffer, int labelOffset, int labelLength) + public Counter AddCounter( + int typeId, + IDirectBuffer keyBuffer, + int keyOffset, + int keyLength, + IDirectBuffer labelBuffer, + int labelOffset, + int labelLength + ) { - return _conductor.AddCounter(typeId, keyBuffer, keyOffset, keyLength, labelBuffer, labelOffset, - labelLength); + return _conductor.AddCounter( + typeId, + keyBuffer, + keyOffset, + keyLength, + labelBuffer, + labelOffset, + labelLength + ); } /// @@ -485,7 +519,7 @@ public Counter AddCounter(int typeId, IDirectBuffer keyBuffer, int keyOffset, in /// The counter should be freed by calling . /// /// The typeId should be 1000 or greater. Values lower than that are reserved for use by Aeron. - /// + /// /// /// /// for the counter. @@ -502,29 +536,47 @@ public Counter AddCounter(int typeId, string label) /// {@code registrationId} pair. Such a counter cannot be deleted and its lifecycle is decoupled from this /// instance, i.e. won't be closed when this instance is closed or times out. /// - /// Note: calling will only close the counter instance itself but will - /// not free the counter in the CnC file. + /// Note: calling will only close the counter instance + /// itself but will not free the counter in the CnC file. /// /// The typeId should be 1000 or greater. Values lower than that are reserved for use by Aeron. - /// + /// /// /// /// for the counter. /// containing the optional key for the counter. /// within the keyBuffer at which the key begins. /// of the key in the keyBuffer. - /// containing the mandatory label for the counter. The label should not be length prefixed. + /// containing the mandatory label for the counter. The label should not be length + /// prefixed. /// within the labelBuffer at which the label begins. /// of the label in the labelBuffer. - /// that uniquely identifies the static counter for a given {@code typeId}. + /// that uniquely identifies the static counter for a given {@code typeId}. + /// /// the static counter instance. /// /// Since 1.45.0 - public Counter AddStaticCounter(int typeId, IDirectBuffer keyBuffer, int keyOffset, int keyLength, - IDirectBuffer labelBuffer, int labelOffset, int labelLength, long registrationId) + public Counter AddStaticCounter( + int typeId, + IDirectBuffer keyBuffer, + int keyOffset, + int keyLength, + IDirectBuffer labelBuffer, + int labelOffset, + int labelLength, + long registrationId + ) { - return _conductor.AddStaticCounter(typeId, keyBuffer, keyOffset, keyLength, labelBuffer, labelOffset, - labelLength, registrationId); + return _conductor.AddStaticCounter( + typeId, + keyBuffer, + keyOffset, + keyLength, + labelBuffer, + labelOffset, + labelLength, + registrationId + ); } /// @@ -532,16 +584,17 @@ public Counter AddStaticCounter(int typeId, IDirectBuffer keyBuffer, int keyOffs /// {@code registrationId} pair. Such a counter cannot be deleted and its lifecycle is decoupled from this /// instance, i.e. won't be closed when this instance is closed or times out. /// - /// Note: calling will only close the counter instance itself but will - /// not free the counter in the CnC file. + /// Note: calling will only close the counter instance + /// itself but will not free the counter in the CnC file. /// /// The typeId should be 1000 or greater. Values lower than that are reserved for use by Aeron. - /// + /// /// /// /// for the counter. /// for the counter. It should be US-ASCII. - /// that uniquely identifies the static counter for a given {@code typeId}. + /// that uniquely identifies the static counter for a given {@code typeId}. + /// /// the static counter. /// /// Since 1.45.0 @@ -554,12 +607,13 @@ public Counter AddStaticCounter(int typeId, string label, long registrationId) /// Asynchronously allocate a counter on the media driver. /// /// The typeId should be 1000 or greater. Values lower than that are reserved for use by Aeron. - /// + /// /// /// /// for the counter. /// for the counter. It should be US-ASCII. - /// the registration id of the counter which can be used to get it by calling + /// the registration id of the counter which can be used to get it by calling + /// /// method. /// /// Since 1.49.0 @@ -572,25 +626,41 @@ public long AsyncAddCounter(int typeId, string label) /// Asynchronously allocate a counter on the media driver. /// /// The typeId should be 1000 or greater. Values lower than that are reserved for use by Aeron. - /// + /// /// /// /// for the counter. /// containing the optional key for the counter. /// within the keyBuffer at which the key begins. /// of the key in the keyBuffer. - /// containing the mandatory label for the counter. The label should not be length prefixed. + /// containing the mandatory label for the counter. The label should not be length + /// prefixed. /// within the labelBuffer at which the label begins. /// of the label in the labelBuffer. - /// the registration id of the counter which can be used to get it by calling + /// the registration id of the counter which can be used to get it by calling + /// /// method. /// /// Since 1.49.0 - public long AsyncAddCounter(int typeId, IDirectBuffer keyBuffer, int keyOffset, int keyLength, - IDirectBuffer labelBuffer, int labelOffset, int labelLength) + public long AsyncAddCounter( + int typeId, + IDirectBuffer keyBuffer, + int keyOffset, + int keyLength, + IDirectBuffer labelBuffer, + int labelOffset, + int labelLength + ) { - return _conductor.AsyncAddCounter(typeId, keyBuffer, keyOffset, keyLength, labelBuffer, labelOffset, - labelLength); + return _conductor.AsyncAddCounter( + typeId, + keyBuffer, + keyOffset, + keyLength, + labelBuffer, + labelOffset, + labelLength + ); } /// @@ -598,17 +668,18 @@ public long AsyncAddCounter(int typeId, IDirectBuffer keyBuffer, int keyOffset, /// {@code registrationId} pair. Such a counter cannot be deleted and its lifecycle is decoupled from this /// instance, i.e. won't be closed when this instance is closed or times out. /// - /// Note: calling will only close the counter instance itself but will - /// not free the counter in the CnC file. + /// Note: calling will only close the counter instance + /// itself but will not free the counter in the CnC file. /// /// /// The typeId should be 1000 or greater. Values lower than that are reserved for use by Aeron. - /// + /// /// /// /// for the counter. /// for the counter. It should be US-ASCII. - /// that uniquely identifies the static counter for a given {@code typeId}. + /// that uniquely identifies the static counter for a given {@code typeId}. + /// /// the correlation id of the command which can be used to get the counter by calling /// method. /// @@ -623,31 +694,49 @@ public long AsyncAddStaticCounter(int typeId, string label, long registrationId) /// {@code registrationId} pair. Such a counter cannot be deleted and its lifecycle is decoupled from this /// instance, i.e. won't be closed when this instance is closed or times out. /// - /// Note: calling will only close the counter instance itself but will - /// not free the counter in the CnC file. + /// Note: calling will only close the counter instance + /// itself but will not free the counter in the CnC file. /// /// /// The typeId should be 1000 or greater. Values lower than that are reserved for use by Aeron. - /// + /// /// /// /// for the counter. /// containing the optional key for the counter. /// within the keyBuffer at which the key begins. /// of the key in the keyBuffer. - /// containing the mandatory label for the counter. The label should not be length prefixed. + /// containing the mandatory label for the counter. The label should not be length + /// prefixed. /// within the labelBuffer at which the label begins. /// of the label in the labelBuffer. - /// that uniquely identifies the static counter for a given {@code typeId}. + /// that uniquely identifies the static counter for a given {@code typeId}. + /// /// the correlation id of the command which can be used to get the counter by calling /// method. /// /// Since 1.49.0 - public long AsyncAddStaticCounter(int typeId, IDirectBuffer keyBuffer, int keyOffset, int keyLength, - IDirectBuffer labelBuffer, int labelOffset, int labelLength, long registrationId) + public long AsyncAddStaticCounter( + int typeId, + IDirectBuffer keyBuffer, + int keyOffset, + int keyLength, + IDirectBuffer labelBuffer, + int labelOffset, + int labelLength, + long registrationId + ) { - return _conductor.AsyncAddStaticCounter(typeId, keyBuffer, keyOffset, keyLength, labelBuffer, labelOffset, - labelLength, registrationId); + return _conductor.AsyncAddStaticCounter( + typeId, + keyBuffer, + keyOffset, + keyLength, + labelBuffer, + labelOffset, + labelLength, + registrationId + ); } /// @@ -655,9 +744,10 @@ public long AsyncAddStaticCounter(int typeId, IDirectBuffer keyBuffer, int keyOf /// /// returned from one of the async methods: /// , - /// , + /// , /// or - /// . + /// . + /// /// a new when available, otherwise {@code null}. /// /// @@ -793,7 +883,7 @@ internal void InternalClose() public static class Configuration { /// - /// Duration in milliseconds for which the client conductor will sleep between duty cycles. + /// Duration in milliseconds for which the client conductor will sleep between duty cycles. /// public static readonly int IDLE_SLEEP_DEFAULT_MS = 16; @@ -818,8 +908,8 @@ public static class Configuration public static readonly long KeepaliveIntervalNs = NanoUtil.FromMilliseconds(500); /// - /// Duration to wait while lingering an entity such as an before deleting underlying resources - /// such as memory mapped files. + /// Duration to wait while lingering an entity such as an before deleting underlying + /// resources such as memory mapped files. /// public const string RESOURCE_LINGER_DURATION_PROP_NAME = "aeron.client.resource.linger.duration"; @@ -829,9 +919,9 @@ public static class Configuration public static readonly long RESOURCE_LINGER_DURATION_DEFAULT_NS = NanoUtil.FromSeconds(3); /// - /// Duration to linger on close so that publishers subscribers have time to notice closed resources. - /// This value can be set to a few seconds if the application is likely to experience CPU starvation or - /// long GC pauses. + /// Duration to linger on close so that publishers subscribers have time to notice closed resources. This + /// value can be set to a few seconds if the application is likely to experience CPU starvation or long GC + /// pauses. /// public const string CLOSE_LINGER_DURATION_PROP_NAME = "aeron.client.close.linger.duration"; @@ -843,8 +933,8 @@ public static class Configuration /// /// Should memory-mapped files be pre-touched so that they are already faulted into a process. /// - /// Pre-touching files can result in it taking taking longer for resources to become available in - /// return for avoiding later pauses due to page faults. + /// Pre-touching files can result in it taking taking longer for resources to become available in return for + /// avoiding later pauses due to page faults. /// /// public const string PRE_TOUCH_MAPPED_MEMORY_PROP_NAME = "aeron.pre.touch.mapped.memory"; @@ -861,11 +951,11 @@ public static class Configuration public static readonly string CLIENT_NAME_PROP_NAME = "aeron.client.name"; /// - /// The Default handler for Aeron runtime exceptions. - /// When a is encountered, this handler will exit the program. + /// The Default handler for Aeron runtime exceptions. When a is + /// encountered, this handler will exit the program. /// /// The error handler can be overridden by supplying an with a custom handler. - /// + /// /// /// /// @@ -902,20 +992,22 @@ public static long IdleSleepDurationNs() } /// - /// Duration to wait while lingering an entity such as an before deleting underlying resources - /// such as memory mapped files. + /// Duration to wait while lingering an entity such as an before deleting underlying + /// resources such as memory mapped files. /// /// duration in nanoseconds to wait before deleting an expired resource. /// public static long ResourceLingerDurationNs() { - return Config.GetDurationInNanos(RESOURCE_LINGER_DURATION_PROP_NAME, - RESOURCE_LINGER_DURATION_DEFAULT_NS); + return Config.GetDurationInNanos( + RESOURCE_LINGER_DURATION_PROP_NAME, + RESOURCE_LINGER_DURATION_DEFAULT_NS + ); } /// - /// Duration to wait while lingering an entity such as an before deleting underlying resources - /// such as memory mapped files. + /// Duration to wait while lingering an entity such as an before deleting underlying + /// resources such as memory mapped files. /// /// duration in nanoseconds to wait before deleting an expired resource. /// @@ -957,12 +1049,14 @@ public static string ClientName() } /// - /// Provides a means to override configuration for an class via the - /// method and its overloads. It gives applications some control over the interactions with the Aeron Media Driver. - /// It can also set up error handling as well as application callbacks for image information from the Media Driver. - /// + /// Provides a means to override configuration for an class via the + /// + /// method and its overloads. It gives applications some control over the interactions with the Aeron Media + /// Driver. It can also set up error handling as well as application callbacks for image information from the + /// Media Driver. + /// /// A number of the properties are for testing and should not be set by end users. - /// + /// /// Note: Do not reuse instances of the context across different clients. /// /// The context will be owned be after a successful @@ -971,7 +1065,7 @@ public static string ClientName() public class Context : IDisposable { private long _clientId; - private string clientName = Configuration.ClientName(); + private string _clientName = Configuration.ClientName(); private bool _useConductorAgentInvoker = false; private bool _preTouchMappedMemory = Configuration.PreTouchMappedMemory(); private AgentInvoker _driverAgentInvoker; @@ -990,21 +1084,22 @@ public class Context : IDisposable private UnavailableImageHandler _unavailableImageHandler; private AvailableCounterHandler _availableCounterHandler; private UnavailableCounterHandler _unavailableCounterHandler; - private IPublicationErrorFrameHandler publicationErrorFrameHandler = new NoOpPublicationErrorFrameHandler(); + private IPublicationErrorFrameHandler _publicationErrorFrameHandler = + new NoOpPublicationErrorFrameHandler(); private Action _closeHandler; private long _keepAliveIntervalNs = Configuration.KeepaliveIntervalNs; private long _interServiceTimeoutNs; - private long idleSleepDurationNs = Configuration.IdleSleepDurationNs(); + private long _idleSleepDurationNs = Configuration.IdleSleepDurationNs(); private long _resourceLingerDurationNs = Configuration.ResourceLingerDurationNs(); private long _closeLingerDurationNs = Configuration.CloseLingerDurationNs(); - private int filePageSize; + private int _filePageSize; private int _isConcluded = 0; private long _driverTimeoutMs = DRIVER_TIMEOUT_MS; private string _aeronDirectoryName = GetAeronDirectoryName(); private DirectoryInfo _aeronDirectory; private FileInfo _cncFile; - private bool enableExperimentalFeatures = Config.GetBoolean(ENABLE_EXPERIMENTAL_FEATURES_PROP_NAME); + private bool _enableExperimentalFeatures = Config.GetBoolean(ENABLE_EXPERIMENTAL_FEATURES_PROP_NAME); private MappedByteBuffer _cncByteBuffer; private UnsafeBuffer _cncMetaDataBuffer; @@ -1016,12 +1111,9 @@ static Context() { string baseDirName = null; - if (Environment.OSVersion.Platform == PlatformID.Unix) + if (Environment.OSVersion.Platform == PlatformID.Unix && Directory.Exists(@"/dev/shm")) { - if (Directory.Exists(@"/dev/shm")) - { - baseDirName = "/dev/shm/aeron"; - } + baseDirName = "/dev/shm/aeron"; } if (null == baseDirName) @@ -1049,18 +1141,20 @@ static Context() public const string ENABLE_EXPERIMENTAL_FEATURES_PROP_NAME = "aeron.enable.experimental.features"; /// - /// Property name for a fallback based logger when it is not possible to use the error logging - /// callback. Supported values are stdout, stderr, no_op (stderr is the default). + /// Property name for a fallback based logger when it is not possible to use + /// the error logging callback. Supported values are stdout, stderr, no_op (stderr is the default). /// public const string FALLBACK_LOGGER_PROP_NAME = "aeron.fallback.logger"; /// - /// Media type used for IPC shared memory from to channels. + /// Media type used for IPC shared memory from to + /// channels. /// public const string IPC_MEDIA = "ipc"; /// - /// Media type used for UDP sockets from to channels. + /// Media type used for UDP sockets from to + /// channels. /// public const string UDP_MEDIA = "udp"; @@ -1075,14 +1169,14 @@ static Context() public const string UDP_CHANNEL = "aeron:udp"; /// - /// URI used for Spy s whereby an outgoing unicast or multicast publication can be spied on - /// by IPC without receiving it again via the network. + /// URI used for Spy s whereby an outgoing unicast or multicast publication can be + /// spied on by IPC without receiving it again via the network. /// public const string SPY_PREFIX = "aeron-spy:"; /// - /// The address and port used for a UDP channel. For the publisher it is the socket to send to, - /// for the subscriber it is the socket to receive from. + /// The address and port used for a UDP channel. For the publisher it is the socket to send to, for the + /// subscriber it is the socket to receive from. /// public const string ENDPOINT_PARAM_NAME = "endpoint"; @@ -1133,8 +1227,8 @@ static Context() public const string TERM_LENGTH_PARAM_NAME = "term-length"; /// - /// MTU length parameter name for using as a channel URI param. If this is greater than the network MTU for UDP - /// then the packet will be fragmented and can amplify the impact of loss. + /// MTU length parameter name for using as a channel URI param. If this is greater than the network MTU for + /// UDP then the packet will be fragmented and can amplify the impact of loss. /// public const string MTU_LENGTH_PARAM_NAME = "mtu"; @@ -1169,7 +1263,8 @@ static Context() public const string MDC_CONTROL_MODE_MANUAL = "manual"; /// - /// Valid value for when dynamic control is desired. Default value. + /// Valid value for when dynamic control is desired. Default + /// value. /// public const string MDC_CONTROL_MODE_DYNAMIC = "dynamic"; @@ -1189,8 +1284,8 @@ static Context() public const string LINGER_PARAM_NAME = "linger"; /// - /// Parameter name for channel URI param to indicate if a subscribed stream must be reliable or not. - /// Value is boolean with true to recover loss and false to gap fill. + /// Parameter name for channel URI param to indicate if a subscribed stream must be reliable or not. Value + /// is boolean with true to recover loss and false to gap fill. /// public const string RELIABLE_STREAM_PARAM_NAME = "reliable"; @@ -1210,30 +1305,36 @@ static Context() public const string SPARSE_PARAM_NAME = "sparse"; /// - /// Parameter name for channel URI param to indicate an alias for the given URI. Value not interpreted by Aeron. + /// Parameter name for channel URI param to indicate an alias for the given URI. Value not interpreted by + /// Aeron. /// - /// This is a reserved application level param used to identify a particular channel for application purposes. + /// This is a reserved application level param used to identify a particular channel for application + /// purposes. /// public const string ALIAS_PARAM_NAME = "alias"; /// - /// Parameter name for channel URI param to indicate if End of Stream (EOS) should be sent or not. Value is boolean. + /// Parameter name for channel URI param to indicate if End of Stream (EOS) should be sent or not. Value is + /// boolean. /// public const string EOS_PARAM_NAME = "eos"; /// /// Parameter name for channel URI param to indicate if a subscription should tether for local flow control. - /// Value is boolean. A tether only applies when there is more than one matching active subscription. If tether is - /// true then that subscription is included in flow control. If only one subscription then it tethers pace. + /// Value is boolean. A tether only applies when there is more than one matching active subscription. If + /// tether is true then that subscription is included in flow control. If only one subscription then it + /// tethers pace. /// public const string TETHER_PARAM_NAME = "tether"; /// - /// Parameter name for channel URI param to indicate if a Subscription represents a group member or individual - /// from the perspective of message reception. This can inform loss handling and similar semantics. + /// Parameter name for channel URI param to indicate if a Subscription represents a group member or + /// individual from the perspective of message reception. This can inform loss handling and similar + /// semantics. /// - /// When configuring a subscription for an MDC publication then should be added as this is effective multicast. - /// + /// When configuring a subscription for an MDC publication then should be added as this is effective + /// multicast. + /// /// /// /// @@ -1253,8 +1354,8 @@ static Context() public const string CONGESTION_CONTROL_PARAM_NAME = "cc"; /// - /// Parameter name for Publication URI param to indicate the flow control strategy to be used. - /// Options include {@code min}, {@code max}, and {@code pref}. + /// Parameter name for Publication URI param to indicate the flow control strategy to be used. Options + /// include {@code min}, {@code max}, and {@code pref}. /// public const string FLOW_CONTROL_PARAM_NAME = "fc"; @@ -1264,7 +1365,8 @@ static Context() public const string GROUP_TAG_PARAM_NAME = "gtag"; /// - /// Parameter name for Publication URI param to indicate whether spy subscriptions should simulate a connection. + /// Parameter name for Publication URI param to indicate whether spy subscriptions should simulate a + /// connection. /// public const string SPIES_SIMULATE_CONNECTION_PARAM_NAME = "ssc"; @@ -1284,54 +1386,56 @@ static Context() public const string RECEIVER_WINDOW_LENGTH_PARAM_NAME = "rcv-wnd"; /// - /// Parameter name of the offset for the media receive timestamp to be inserted into the incoming message on a - /// subscription. The special value of 'reserved' can be used to insert into the reserved value field. Media - /// receive timestamp is taken as the earliest possible point after the packet is received from the network. This - /// is only supported in the C media driver, the Java Media Driver will generate an error if used. + /// Parameter name of the offset for the media receive timestamp to be inserted into the incoming message on + /// a subscription. The special value of 'reserved' can be used to insert into the reserved value field. + /// Media receive timestamp is taken as the earliest possible point after the packet is received from the + /// network. This is only supported in the C media driver, the Java Media Driver will generate an error if + /// used. /// public const string MEDIA_RCV_TIMESTAMP_OFFSET_PARAM_NAME = "media-rcv-ts-offset"; /// - /// Parameter name of the offset for the channel receive timestamp to be inserted into the incoming message on a - /// subscription. The special value of 'reserved' can be used to insert into the reserved value field. Channel - /// receive timestamp is taken as soon a possible after the packet is received by Aeron receiver from the transport - /// bindings. + /// Parameter name of the offset for the channel receive timestamp to be inserted into the incoming message + /// on a subscription. The special value of 'reserved' can be used to insert into the reserved value field. + /// Channel receive timestamp is taken as soon a possible after the packet is received by Aeron receiver + /// from the transport bindings. /// public const string CHANNEL_RECEIVE_TIMESTAMP_OFFSET_PARAM_NAME = "channel-rcv-ts-offset"; /// - /// Parameter name of the offset for the channel send timestamp to be inserted into the outgoing message - /// on a publication. The special value of 'reserved' can be used to insert into the reserved value - /// field. Channel send timestamp is taken shortly before passing the message over to the configured transport + /// Parameter name of the offset for the channel send timestamp to be inserted into the outgoing message on + /// a publication. The special value of 'reserved' can be used to insert into the reserved value field. + /// Channel send timestamp is taken shortly before passing the message over to the configured transport /// bindings. /// public const string CHANNEL_SEND_TIMESTAMP_OFFSET_PARAM_NAME = "channel-snd-ts-offset"; /// - /// Placeholder value to use in URIs to specify that a timestamp should be stored in the reserved value field. + /// Placeholder value to use in URIs to specify that a timestamp should be stored in the reserved value + /// field. /// public const string RESERVED_OFFSET = "reserved"; /// - /// Parameter name for the field that will be used to specify the response endpoint on a subscription and publication - /// used in a response "server". + /// Parameter name for the field that will be used to specify the response endpoint on a subscription and + /// publication used in a response "server". /// /// Since 1.44.0 public const string RESPONSE_ENDPOINT_PARAM_NAME = "response-endpoint"; /// - /// Parameter name for the field that will be used to specify the correlation id used on a publication to connect it - /// to a subscription's image in order to set up a response stream. + /// Parameter name for the field that will be used to specify the correlation id used on a publication to + /// connect it to a subscription's image in order to set up a response stream. /// /// Since 1.44.0 public const string RESPONSE_CORRELATION_ID_PARAM_NAME = "response-correlation-id"; /// - /// Placeholder value to use in response channels where the publication is to be pre-created to reserve and hold - /// onto the local port. + /// Placeholder value to use in response channels where the publication is to be pre-created to reserve and + /// hold onto the local port. /// public const string PROTOTYPE_CORRELATION_ID = "prototype"; - + /// /// Parameter name to set explicit NAK delay (e.g. {@code nak-delay=200ms}). /// @@ -1339,14 +1443,15 @@ static Context() public const string NAK_DELAY_PARAM_NAME = "nak-delay"; /// - /// Parameter name to set explicit untethered window limit timeout, e.g. {@code untethered-window-limit-timeout=10s}. + /// Parameter name to set explicit untethered window limit timeout, e.g. + /// {@code untethered-window-limit-timeout=10s}. /// /// Since 1.45.0 public const string UNTETHERED_WINDOW_LIMIT_TIMEOUT_PARAM_NAME = "untethered-window-limit-timeout"; /// /// Parameter name to set explicit untethered linger timeout, e.g. {@code untethered-linger-timeout=10s}. - /// + /// /// Since 1.48.0 /// public const string UNTETHERED_LINGER_TIMEOUT_PARAM_NAME = "untethered-linger-timeout"; @@ -1370,7 +1475,7 @@ static Context() public const string STREAM_ID_PARAM_NAME = "stream-id"; /// - /// Parameter name for the publication window length, i.e. how far ahead can publication accept offers. + /// Parameter name for the publication window length, i.e. how far ahead can publication accept offers. /// /// Since 1.47.0 public const string PUBLICATION_WINDOW_LENGTH_PARAM_NAME = "pub-wnd"; @@ -1407,10 +1512,12 @@ public static TextWriter FallbackLogger() } /// - /// Get the default directory name to be used if is not set. This will take - /// the if set and if not then . + /// Get the default directory name to be used if is not set. + /// This will take the if set and if not then + /// . /// - /// the default directory name to be used if is not set. + /// the default directory name to be used if is not + /// set. public static string GetAeronDirectoryName() { return Config.GetProperty(AERON_DIR_PROP_NAME, AERON_DIR_PROP_DEFAULT); @@ -1446,11 +1553,17 @@ public Context Clone() } /// - /// This is called automatically by and its overloads. - /// There is no need to call it from a client application. It is responsible for providing default - /// values for options that are not individually changed through field setters. + /// This is called automatically by and its overloads. There is no need to call + /// it from a client application. It is responsible for providing default values for options that are not + /// individually changed through field setters. /// /// this for a fluent API. + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S138:Functions should not have too many lines", + // Upstream: io.aeron.Aeron.Context#conclude is @SuppressWarnings("checkstyle:methodlength"). + Justification = "Upstream Java parity; method is itself @SuppressWarnings(\"MethodLength\")." + )] public Context Conclude() { if (0 != Interlocked.Exchange(ref _isConcluded, 1)) @@ -1469,21 +1582,24 @@ public Context Conclude() else if (_clientLock is NoOpLock && !_useConductorAgentInvoker) { throw new ConfigurationException( - "Must use Aeron.Context.UseConductorAgentInvoker(true) when Aeron.Context.ClientLock(...) " + - "is using a NoOpLock"); + "Must use Aeron.Context.UseConductorAgentInvoker(true) when Aeron.Context.ClientLock(...) " + + "is using a NoOpLock" + ); } if (null != _driverAgentInvoker && !_useConductorAgentInvoker) { throw new ConfigurationException( - "Must use Aeron.Context.useConductorAgentInvoker(true) when Aeron.Context.driverAgentInvoker() " + - "is set"); + "Must use Aeron.Context.useConductorAgentInvoker(true) when Aeron.Context.driverAgentInvoker() " + + "is set" + ); } - if (clientName.Length > Configuration.MAX_CLIENT_NAME_LENGTH) + if (_clientName.Length > Configuration.MAX_CLIENT_NAME_LENGTH) { throw new ConfigurationException( - "clientName length must <= " + Configuration.MAX_CLIENT_NAME_LENGTH); + "clientName length must <= " + Configuration.MAX_CLIENT_NAME_LENGTH + ); } if (_epochClock == null) @@ -1496,15 +1612,14 @@ public Context Conclude() _nanoClock = SystemNanoClock.INSTANCE; } - - if (idleSleepDurationNs < 0 || idleSleepDurationNs > 1_000_000_000) + if (_idleSleepDurationNs < 0 || _idleSleepDurationNs > 1_000_000_000) { - throw new ConfigurationException("Invalid idle sleep duration: " + idleSleepDurationNs + "ns"); + throw new ConfigurationException("Invalid idle sleep duration: " + _idleSleepDurationNs + "ns"); } if (_idleStrategy == null) { - _idleStrategy = new SleepingIdleStrategy((int)TimeUnit.NANOSECONDS.ToMillis(idleSleepDurationNs)); + _idleStrategy = new SleepingIdleStrategy((int)TimeUnit.NANOSECONDS.ToMillis(_idleSleepDurationNs)); } if (null == _awaitingIdleStrategy) @@ -1513,67 +1628,80 @@ public Context Conclude() } ConnectToDriver(); - filePageSize = DriverFilePageSize(_cncMetaDataBuffer); + _filePageSize = DriverFilePageSize(_cncMetaDataBuffer); _interServiceTimeoutNs = CncFileDescriptor.ClientLivenessTimeoutNs(_cncMetaDataBuffer); if (_interServiceTimeoutNs <= _keepAliveIntervalNs) { - throw new ConfigurationException("interServiceTimeoutNs=" + _interServiceTimeoutNs + - " <= keepAliveIntervalNs=" + _keepAliveIntervalNs); + throw new ConfigurationException( + "interServiceTimeoutNs=" + + _interServiceTimeoutNs + + " <= keepAliveIntervalNs=" + + _keepAliveIntervalNs + ); } if (_toDriverBuffer == null) { - _toDriverBuffer = - new ManyToOneRingBuffer(CncFileDescriptor.CreateToDriverBuffer(_cncByteBuffer, - _cncMetaDataBuffer)); + _toDriverBuffer = new ManyToOneRingBuffer( + CncFileDescriptor.CreateToDriverBuffer(_cncByteBuffer, _cncMetaDataBuffer) + ); } if (_toClientBuffer == null) { - _toClientBuffer = new CopyBroadcastReceiver(new BroadcastReceiver( - CncFileDescriptor.CreateToClientsBuffer(_cncByteBuffer, _cncMetaDataBuffer)), - new ExpandableArrayBuffer(CopyBroadcastReceiver.ScratchBufferSize)); + _toClientBuffer = new CopyBroadcastReceiver( + new BroadcastReceiver( + CncFileDescriptor.CreateToClientsBuffer(_cncByteBuffer, _cncMetaDataBuffer) + ), + new ExpandableArrayBuffer(CopyBroadcastReceiver.ScratchBufferSize) + ); } - if (CountersMetaDataBuffer() == null) + if (null == CountersMetaDataBuffer()) { - CountersMetaDataBuffer(CncFileDescriptor.CreateCountersMetaDataBuffer(_cncByteBuffer, - _cncMetaDataBuffer)); + CountersMetaDataBuffer( + CncFileDescriptor.CreateCountersMetaDataBuffer(_cncByteBuffer, _cncMetaDataBuffer) + ); } - if (CountersValuesBuffer() == null) + if (null == CountersValuesBuffer()) { - CountersValuesBuffer(CncFileDescriptor.CreateCountersValuesBuffer(_cncByteBuffer, - _cncMetaDataBuffer)); + CountersValuesBuffer( + CncFileDescriptor.CreateCountersValuesBuffer(_cncByteBuffer, _cncMetaDataBuffer) + ); } - if (_logBuffersFactory == null) + if (null == _logBuffersFactory) { _logBuffersFactory = new MappedLogBuffersFactory(); } - if (_errorHandler == null) + if (null == _errorHandler) { _errorHandler = Configuration.DEFAULT_ERROR_HANDLER; } - if (_subscriberErrorHandler == null) + if (null == _subscriberErrorHandler) { _subscriberErrorHandler = _errorHandler; } - if (_availableImageHandler == null) + if (null == _availableImageHandler) { - _availableImageHandler = image => { }; + _availableImageHandler = image => + { + }; } - if (_unavailableImageHandler == null) + if (null == _unavailableImageHandler) { - _unavailableImageHandler = image => { }; + _unavailableImageHandler = image => + { + }; } - if (null == _driverProxy) + if (_driverProxy == null) { _clientId = _toDriverBuffer.NextCorrelationId(); _driverProxy = new DriverProxy(ToDriverBuffer(), _clientId); @@ -1600,7 +1728,7 @@ public long ClientId() /// Since 1.44.0 public Context ClientName(string clientName) { - this.clientName = string.IsNullOrEmpty(clientName) ? "" : clientName; + _clientName = string.IsNullOrEmpty(clientName) ? "" : clientName; return this; } @@ -1612,10 +1740,9 @@ public Context ClientName(string clientName) /// Since 1.44.0 public string ClientName() { - return clientName; + return _clientName; } - /// /// Get the command and control file. /// @@ -1626,10 +1753,11 @@ public FileInfo CncFile() } /// - /// Should an be used for running the rather than run it on - /// a thread with an + /// Should an be used for running the rather than + /// run it on a thread with an /// - /// use for running the + /// use for running the + /// /// this for a fluent API. public Context UseConductorAgentInvoker(bool useConductorAgentInvoker) { @@ -1638,10 +1766,11 @@ public Context UseConductorAgentInvoker(bool useConductorAgentInvoker) } /// - /// Should an be used for running the rather than run it on - /// a thread with an + /// Should an be used for running the rather than + /// run it on a thread with an /// - /// true if the will be run with an otherwise false. + /// true if the will be run with an + /// otherwise false. public bool UseConductorAgentInvoker() { return _useConductorAgentInvoker; @@ -1650,7 +1779,8 @@ public bool UseConductorAgentInvoker() /// /// Should mapped-memory be pre-touched to avoid soft page faults. /// - /// true if mapped-memory should be pre-touched otherwise false. + /// true if mapped-memory should be pre-touched otherwise false. + /// /// this for a fluent API. /// public Context PreTouchMappedMemory(bool preTouchMappedMemory) @@ -1670,10 +1800,11 @@ public bool PreTouchMappedMemory() } /// - /// Set the for the Media Driver to be used while awaiting a synchronous response. + /// Set the for the Media Driver to be used while awaiting a synchronous + /// response. /// /// Useful for when running on a low thread count scenario. - /// + /// /// /// /// to be invoked while awaiting a response in the client. @@ -1685,7 +1816,8 @@ public Context DriverAgentInvoker(AgentInvoker driverAgentInvoker) } /// - /// Get the that is used to run the Media Driver while awaiting a synchronous response. + /// Get the that is used to run the Media Driver while awaiting a synchronous + /// response. /// /// the that is used for running the Media Driver. public AgentInvoker DriverAgentInvoker() @@ -1695,10 +1827,10 @@ public AgentInvoker DriverAgentInvoker() /// /// The that is used to provide mutual exclusion in the Aeron client. - /// - /// If the is set and only one thread accesses the client - /// then the lock can be set to to elide the lock overhead. - /// + /// + /// If the is set and only one thread accesses the client then + /// the lock can be set to to elide the lock overhead. + /// /// /// that is used to provide mutual exclusion in the Aeron client. /// this for a fluent API. @@ -1711,16 +1843,19 @@ public Context ClientLock(ILock @lock) /// /// Get the that is used to provide mutual exclusion in the Aeron client. /// - /// the that is used to provide mutual exclusion in the Aeron client. + /// the that is used to provide mutual exclusion in the Aeron + /// client. public ILock ClientLock() { return _clientLock; } /// - /// Set the to be used for tracking wall clock time when interacting with the driver. + /// Set the to be used for tracking wall clock time when interacting with the + /// driver. /// - /// to be used for tracking wall clock time when interacting with the driver. + /// to be used for tracking wall clock time when + /// interacting with the driver. /// this for a fluent API. public Context EpochClock(IEpochClock clock) { @@ -1731,13 +1866,13 @@ public Context EpochClock(IEpochClock clock) /// /// Get the used by the client for the epoch time in milliseconds. /// - /// the used by the client for the epoch time in milliseconds. + /// the used by the client for the epoch time in milliseconds. + /// public IEpochClock EpochClock() { return _epochClock; } - /// /// Set the to be used for tracking high resolution time. /// @@ -1772,7 +1907,8 @@ public Context IdleStrategy(IIdleStrategy idleStrategy) /// /// Get the employed by the client for the client duty cycle. /// - /// the employed by the client for the client duty cycle. + /// the employed by the client for the client duty cycle. + /// public IIdleStrategy IdleStrategy() { return _idleStrategy; @@ -1792,12 +1928,14 @@ public Context AwaitingIdleStrategy(IIdleStrategy idleStrategy) /// /// The to be used when awaiting a response from the Media Driver. /// - /// This can be changed to a or for lower response + /// This can be changed to a or + /// for lower response /// time, especially for adding counters or releasing resources, at the expense of CPU usage. - /// + /// /// /// - /// the to be used when awaiting a response from the Media Driver. + /// the to be used when awaiting a response from the Media Driver. + /// public IIdleStrategy AwaitingIdleStrategy() { return _awaitingIdleStrategy; @@ -1852,7 +1990,6 @@ public DriverProxy DriverProxy() return _driverProxy; } - /// /// This method is used for testing and debugging. /// @@ -1873,14 +2010,15 @@ internal ILogBuffersFactory LogBuffersFactory() return _logBuffersFactory; } - /// /// Handle Aeron exceptions in a callback method. The default behavior is defined by - /// . This is the error handler which will be used if an error occurs - /// during the callback for poll operations such as . - /// - /// The error handler can be reset after and the latest version will always be used - /// so that the bootstrapping process can be performed such as replacing the default one with a + /// . This is the error handler which will be used if + /// an error occurs during the callback for poll operations such as + /// . + /// + /// The error handler can be reset after and the latest version will + /// always be used so that the bootstrapping process can be performed such as replacing the default one with + /// a /// . /// /// Method to handle objects of type Throwable. @@ -1894,9 +2032,11 @@ public Context ErrorHandler(IErrorHandler errorHandler) } /// - /// Get the error handler that will be called for errors reported back from the media driver or during poll operations. + /// Get the error handler that will be called for errors reported back from the media driver or during poll + /// operations. /// - /// the error handler that will be called for errors reported back from the media driver or during poll operations. + /// the error handler that will be called for errors reported back from the media driver or during + /// poll operations. public IErrorHandler ErrorHandler() { return _errorHandler; @@ -1904,7 +2044,8 @@ public IErrorHandler ErrorHandler() /// /// The error handler which will be used if an error occurs during the callback for poll operations such as - /// . The default will be if not set. + /// . The default will be + /// if not set. /// /// Method to handle objects of type Throwable. /// this for a fluent API. @@ -1918,11 +2059,13 @@ public Context SubscriberErrorHandler(IErrorHandler errorHandler) /// /// This is the error handler which will be used if an error occurs during the callback for poll operations - /// such as . The default will be if not + /// such as . The default will be + /// if not /// set. To have not delegate then set with /// . /// - /// the error handler that will be called for errors reported back from the media driver. + /// the error handler that will be called for errors reported back from the media driver. + /// public IErrorHandler SubscriberErrorHandler() { return _subscriberErrorHandler; @@ -2012,10 +2155,10 @@ public UnavailableCounterHandler UnavailableCounterHandler() /// /// Set a that is called when the client is closed by timeout or normal means. - /// - /// It is not safe to call any API functions from any threads after this hook is called. In addition, any - /// in flight calls may still cause faults. Thus treating this as a hard error and - /// terminate the process in this hook as soon as possible is recommended. + /// + /// It is not safe to call any API functions from any threads after this hook is called. In addition, any in + /// flight calls may still cause faults. Thus treating this as a hard error and terminate the process in + /// this hook as soon as possible is recommended. /// /// that is called when the client is closed. /// this for a fluent API. @@ -2055,9 +2198,9 @@ public Context CountersMetaDataBuffer(UnsafeBuffer countersMetaDataBuffer) return this; } - /// - /// Get the buffer containing the counters. These counters are R/W for the driver, read only for all other users. + /// Get the buffer containing the counters. These counters are R/W for the driver, read only for all other + /// users. /// /// The buffer storing the counters. public UnsafeBuffer CountersValuesBuffer() @@ -2076,11 +2219,11 @@ public Context CountersValuesBuffer(UnsafeBuffer countersValuesBuffer) return this; } - /// /// Set the interval in nanoseconds for which the client will perform keep-alive operations. /// - /// the interval in nanoseconds for which the client will perform keep-alive operations. + /// the interval in nanoseconds for which the client will perform keep-alive + /// operations. /// this Aeron.Context for method chaining. public Context KeepAliveIntervalNs(long value) { @@ -2091,7 +2234,8 @@ public Context KeepAliveIntervalNs(long value) /// /// Get the interval in nanoseconds for which the client will perform keep-alive operations. /// - /// the interval in nanoseconds for which the client will perform keep-alive operations. + /// the interval in nanoseconds for which the client will perform keep-alive operations. + /// public long KeepAliveIntervalNs() { return _keepAliveIntervalNs; @@ -2127,24 +2271,24 @@ public long DriverTimeoutMs() /// Since 1.44.0 public bool EnableExperimentalFeatures() { - return enableExperimentalFeatures; + return _enableExperimentalFeatures; } /// /// Should experimental features for the driver be enabled. /// - /// indicate whether experimental features for the driver should be enabled. + /// indicate whether experimental features for the driver should + /// be enabled. /// this for a fluent API /// /// /// Since 1.44.0 public Context EnableExperimentalFeatures(bool enableExperimentalFeatures) { - this.enableExperimentalFeatures = enableExperimentalFeatures; + _enableExperimentalFeatures = enableExperimentalFeatures; return this; } - private static readonly ConcurrentDictionary DebugFieldsSeen = new ConcurrentDictionary(); @@ -2152,28 +2296,27 @@ public Context EnableExperimentalFeatures(bool enableExperimentalFeatures) /// Override the supplied timeout with the debug value if it has been set, and we are in debug mode. /// /// The timeout value currently in use. - /// The units of the timeout value. Debug timeout is specified in ns, so will be converted to this - /// unit. + /// The units of the timeout value. Debug timeout is specified in ns, so will be + /// converted to this unit. /// The field name to be added to the map. - /// The debug timeout if specified, and we are being debugged or the supplied value if not. Will be in - /// timeUnit units. + /// The debug timeout if specified, and we are being debugged or the supplied value if not. Will + /// be in timeUnit units. public static long CheckDebugTimeout(long timeout, TimeUnit timeUnit, string debugFieldName) { return CheckDebugTimeout(timeout, timeUnit, 1.0, debugFieldName); } - /// /// Override the supplied timeout with the debug value if it has been set, and we are in debug mode. /// /// The timeout value currently in use. - /// The units of the timeout value. Debug timeout is specified in ns, so will be converted to this - /// unit. - /// to multiply the debug timeout by. Required when some timeouts need to be larger than others in - /// order to pass validation. E.g. clientLiveness and publicationUnblock. + /// The units of the timeout value. Debug timeout is specified in ns, so will be + /// converted to this unit. + /// to multiply the debug timeout by. Required when some timeouts need to be larger + /// than others in order to pass validation. E.g. clientLiveness and publicationUnblock. /// The field name to be added to the map. - /// The debug timeout if specified, and we are being debugged or the supplied value if not. Will be in - /// timeUnit units. + /// The debug timeout if specified, and we are being debugged or the supplied value if not. Will + /// be in timeUnit units. public static long CheckDebugTimeout(long timeout, TimeUnit timeUnit, double factor, string debugFieldName) { string debugTimeoutString = Config.GetProperty(DEBUG_TIMEOUT_PROP_NAME); @@ -2184,13 +2327,20 @@ public static long CheckDebugTimeout(long timeout, TimeUnit timeUnit, double fac try { - long debugTimeoutNs = - (long)(factor * SystemUtil.ParseDuration(DEBUG_TIMEOUT_PROP_NAME, debugTimeoutString)); + long debugTimeoutNs = (long)( + factor * SystemUtil.ParseDuration(DEBUG_TIMEOUT_PROP_NAME, debugTimeoutString) + ); long debugTimeout = timeUnit.Convert(debugTimeoutNs, TimeUnit.NANOSECONDS); if (DebugFieldsSeen.TryAdd(debugFieldName, true)) { - string message = "Using debug timeout [" + debugTimeout + "] for " + debugFieldName + - " replacing [" + timeout + "]"; + string message = + "Using debug timeout [" + + debugTimeout + + "] for " + + debugFieldName + + " replacing [" + + timeout + + "]"; Console.WriteLine(message); } @@ -2203,11 +2353,13 @@ public static long CheckDebugTimeout(long timeout, TimeUnit timeUnit, double fac } /// - /// Set the timeout between service calls the to duty cycles in nanoseconds. + /// Set the timeout between service calls the to duty cycles in + /// nanoseconds. /// /// Note: this method is used for testing only. /// - /// the timeout (ns) between service calls the to duty cycle. + /// the timeout (ns) between service calls the to + /// duty cycle. /// this Aeron.Context for method chaining. internal Context InterServiceTimeoutNs(long interServiceTimeout) { @@ -2218,7 +2370,8 @@ internal Context InterServiceTimeoutNs(long interServiceTimeout) /// /// Return the timeout between service calls to the duty cycle for the client. /// - /// When exceeded, will be called and the active s, s, + /// When exceeded, will be called and the active + /// s, s, /// and s will be closed. /// /// @@ -2240,7 +2393,7 @@ public long InterServiceTimeoutNs() /// public Context IdleSleepDurationNs(long idleSleepDurationNs) { - this.idleSleepDurationNs = idleSleepDurationNs; + _idleSleepDurationNs = idleSleepDurationNs; return this; } @@ -2251,12 +2404,12 @@ public Context IdleSleepDurationNs(long idleSleepDurationNs) /// public long IdleSleepDurationNs() { - return idleSleepDurationNs; + return _idleSleepDurationNs; } /// - /// Duration to wait while lingering an entity such as an before deleting underlying resources - /// such as memory mapped files. + /// Duration to wait while lingering an entity such as an before deleting underlying + /// resources such as memory mapped files. /// /// to wait before deleting an expired resource. /// this for a fluent API. @@ -2268,8 +2421,8 @@ public Context ResourceLingerDurationNs(long resourceLingerDurationNs) } /// - /// Duration to wait while lingering an entity such as an before deleting underlying resources - /// such as memory mapped files. + /// Duration to wait while lingering an entity such as an before deleting underlying + /// resources such as memory mapped files. /// /// duration in nanoseconds to wait before deleting an expired resource. /// @@ -2281,10 +2434,10 @@ public long ResourceLingerDurationNs() /// /// Duration to linger on closing to allow publishers and subscribers time to notice closed resources. /// - /// This value can be increased from the default to a few seconds to better cope with long GC pauses - /// or resource starved environments. Issues could manifest as seg faults using files after they have - /// been unmapped from publishers or subscribers not noticing the close in a timely fashion. - /// + /// This value can be increased from the default to a few seconds to better cope with long GC pauses or + /// resource starved environments. Issues could manifest as seg faults using files after they have been + /// unmapped from publishers or subscribers not noticing the close in a timely fashion. + /// /// /// /// to wait before deleting resources when closing. @@ -2299,10 +2452,10 @@ public Context CloseLingerDurationNs(long closeLingerDurationNs) /// /// Duration to linger on closing to allow publishers and subscribers time to notice closed resources. /// - /// This value can be increased from the default to a few seconds to better cope with long GC pauses - /// or resource starved environments. Issues could manifest as seg faults using files after they have - /// been unmapped from publishers or subscribers not noticing the close in a timely fashion. - /// + /// This value can be increased from the default to a few seconds to better cope with long GC pauses or + /// resource starved environments. Issues could manifest as seg faults using files after they have been + /// unmapped from publishers or subscribers not noticing the close in a timely fashion. + /// /// /// /// duration in nanoseconds to wait before deleting resources when closing. @@ -2313,8 +2466,8 @@ public long CloseLingerDurationNs() } /// - /// Get the top level Aeron directory used for communication between the client and Media Driver, and - /// the location of the data buffers. + /// Get the top level Aeron directory used for communication between the client and Media Driver, and the + /// location of the data buffers. /// /// The top level Aeron directory. public string AeronDirectoryName() @@ -2324,12 +2477,12 @@ public string AeronDirectoryName() /// /// Get the directory in which the aeron config files are stored. - /// + /// /// This is valid after a call to or . /// /// the directory in which the aeron config files are stored. /// - /// + /// /// public DirectoryInfo AeronDirectory() { @@ -2337,10 +2490,10 @@ public DirectoryInfo AeronDirectory() } /// - /// Set the top level Aeron directory used for communication between the client and Media Driver, and the location - /// of the data buffers. - /// Check this setting if there is a DriverTimeoutException - /// The default path for communicating between the driver and client is based on the process owner's temp directory. %localappdata%\temp\aeron-[username] + /// Set the top level Aeron directory used for communication between the client and Media Driver, and the + /// location of the data buffers. Check this setting if there is a DriverTimeoutException The default path + /// for communicating between the driver and client is based on the process owner's temp directory. + /// %localappdata%\temp\aeron-[username] /// /// New top level Aeron directory. /// this Object for method chaining. @@ -2364,34 +2517,35 @@ public Context ThreadFactory(IThreadFactory threadFactory) /// /// The thread factory to be used to construct the conductor thread /// - /// the specified thread factory of if none is provided. + /// the specified thread factory of if none is provided. + /// public IThreadFactory ThreadFactory() { return _threadFactory; } /// - /// Set the handler to receive error frames that have been received by the local driver for publications added by - /// this client. + /// Set the handler to receive error frames that have been received by the local driver for publications + /// added by this client. /// /// to be called back when an error frame is received. /// this for a fluent API. - /// Since 1.47.0 + /// Since 1.47.0 public Context PublicationErrorFrameHandler(IPublicationErrorFrameHandler publicationErrorFrameHandler) { - this.publicationErrorFrameHandler = Objects.RequireNonNull(publicationErrorFrameHandler); + _publicationErrorFrameHandler = Objects.RequireNonNull(publicationErrorFrameHandler); return this; } /// - /// Get the handler to receive error frames that have been received by the local driver for publications added by - /// this client. + /// Get the handler to receive error frames that have been received by the local driver for publications + /// added by this client. /// /// the to call back on to. /// Since 1.47.0 public IPublicationErrorFrameHandler PublicationErrorFrameHandler() { - return this.publicationErrorFrameHandler; + return _publicationErrorFrameHandler; } /// @@ -2401,10 +2555,9 @@ public IPublicationErrorFrameHandler PublicationErrorFrameHandler() /// Since 1.48.0 public int FilePageSize() { - return filePageSize; + return _filePageSize; } - /// /// Clean up all resources that the client uses to communicate with the Media Driver. /// @@ -2424,44 +2577,45 @@ public void Dispose() /// public override string ToString() { - return "Aeron.Context" + - "\n{" + - "\n isConcluded=" + _isConcluded + - "\n aeronDirectory=" + AeronDirectory() + - "\n aeronDirectoryName='" + AeronDirectoryName() + '\'' + - "\n cncFile=" + CncFile() + - "\n countersMetaDataBuffer=" + CountersMetaDataBuffer() + - "\n countersValuesBuffer=" + CountersValuesBuffer() + - "\n driverTimeoutMs=" + DriverTimeoutMs() + - "\n clientId=" + _clientId + - "\n clientName=" + clientName + - "\n useConductorAgentInvoker=" + _useConductorAgentInvoker + - "\n preTouchMappedMemory=" + _preTouchMappedMemory + - "\n driverAgentInvoker=" + _driverAgentInvoker + - "\n clientLock=" + _clientLock + - "\n epochClock=" + _epochClock + - "\n nanoClock=" + _nanoClock + - "\n idleStrategy=" + _idleStrategy + - "\n awaitingIdleStrategy=" + _awaitingIdleStrategy + - "\n toClientBuffer=" + _toClientBuffer + - "\n toDriverBuffer=" + _toDriverBuffer + - "\n driverProxy=" + _driverProxy + - "\n cncByteBuffer=" + _cncByteBuffer + - "\n cncMetaDataBuffer=" + _cncMetaDataBuffer + - "\n logBuffersFactory=" + _logBuffersFactory + - "\n errorHandler=" + _errorHandler + - "\n subscriberErrorHandler=" + _subscriberErrorHandler + - "\n availableImageHandler=" + _availableImageHandler + - "\n unavailableImageHandler=" + _unavailableImageHandler + - "\n availableCounterHandler=" + _availableCounterHandler + - "\n unavailableCounterHandler=" + _unavailableCounterHandler + - "\n closeHandler=" + _closeHandler + - "\n keepAliveIntervalNs=" + _keepAliveIntervalNs + - "\n interServiceTimeoutNs=" + _interServiceTimeoutNs + - "\n resourceLingerDurationNs=" + _resourceLingerDurationNs + - "\n closeLingerDurationNs=" + _closeLingerDurationNs + - "\n threadFactory=" + _threadFactory + - "\n}"; + return + "Aeron.Context" + + "\n{" + + "\n isConcluded=" + _isConcluded + + "\n aeronDirectory=" + AeronDirectory() + + "\n aeronDirectoryName='" + AeronDirectoryName() + '\'' + + "\n cncFile=" + CncFile() + + "\n countersMetaDataBuffer=" + CountersMetaDataBuffer() + + "\n countersValuesBuffer=" + CountersValuesBuffer() + + "\n driverTimeoutMs=" + DriverTimeoutMs() + + "\n clientId=" + _clientId + + "\n clientName=" + _clientName + + "\n useConductorAgentInvoker=" + _useConductorAgentInvoker + + "\n preTouchMappedMemory=" + _preTouchMappedMemory + + "\n driverAgentInvoker=" + _driverAgentInvoker + + "\n clientLock=" + _clientLock + + "\n epochClock=" + _epochClock + + "\n nanoClock=" + _nanoClock + + "\n idleStrategy=" + _idleStrategy + + "\n awaitingIdleStrategy=" + _awaitingIdleStrategy + + "\n toClientBuffer=" + _toClientBuffer + + "\n toDriverBuffer=" + _toDriverBuffer + + "\n driverProxy=" + _driverProxy + + "\n cncByteBuffer=" + _cncByteBuffer + + "\n cncMetaDataBuffer=" + _cncMetaDataBuffer + + "\n logBuffersFactory=" + _logBuffersFactory + + "\n errorHandler=" + _errorHandler + + "\n subscriberErrorHandler=" + _subscriberErrorHandler + + "\n availableImageHandler=" + _availableImageHandler + + "\n unavailableImageHandler=" + _unavailableImageHandler + + "\n availableCounterHandler=" + _availableCounterHandler + + "\n unavailableCounterHandler=" + _unavailableCounterHandler + + "\n closeHandler=" + _closeHandler + + "\n keepAliveIntervalNs=" + _keepAliveIntervalNs + + "\n interServiceTimeoutNs=" + _interServiceTimeoutNs + + "\n resourceLingerDurationNs=" + _resourceLingerDurationNs + + "\n closeLingerDurationNs=" + _closeLingerDurationNs + + "\n threadFactory=" + _threadFactory + + "\n}"; } private void ConnectToDriver() @@ -2482,8 +2636,9 @@ private void ConnectToDriver() { if (clock.Time() > deadlineMs) { - throw new DriverTimeoutException("CnC file is created but not initialised: " + - cncFile.FullName); + throw new DriverTimeoutException( + "CnC file is created but not initialised: " + cncFile.FullName + ); } Sleep(Configuration.AWAITING_IDLE_SLEEP_MS); @@ -2493,9 +2648,10 @@ private void ConnectToDriver() if (SemanticVersion.Minor(cncVersion) < SemanticVersion.Minor(CncFileDescriptor.CNC_VERSION)) { - throw new AeronException("driverVersion=" + SemanticVersion.ToString(cncVersion) + - " insufficient for clientVersion=" + - SemanticVersion.ToString(CncFileDescriptor.CNC_VERSION)); + throw new AeronException( + "driverVersion=" + SemanticVersion.ToString(cncVersion) + + " insufficient for clientVersion=" + SemanticVersion.ToString(CncFileDescriptor.CNC_VERSION) + ); } if (!CncFileDescriptor.IsCncFileLengthSufficient(_cncMetaDataBuffer, _cncByteBuffer.Capacity)) @@ -2508,9 +2664,9 @@ private void ConnectToDriver() continue; } - ManyToOneRingBuffer ringBuffer = - new ManyToOneRingBuffer( - CncFileDescriptor.CreateToDriverBuffer(_cncByteBuffer, _cncMetaDataBuffer)); + ManyToOneRingBuffer ringBuffer = new ManyToOneRingBuffer( + CncFileDescriptor.CreateToDriverBuffer(_cncByteBuffer, _cncMetaDataBuffer) + ); while (0 == ringBuffer.ConsumerHeartbeatTime()) { @@ -2542,8 +2698,7 @@ private void ConnectToDriver() } } - private static MappedByteBuffer WaitForFileMapping(FileInfo cncFile, - IEpochClock clock, long deadLineMs) + private static MappedByteBuffer WaitForFileMapping(FileInfo cncFile, IEpochClock clock, long deadLineMs) { while (true) { @@ -2572,7 +2727,8 @@ private static MappedByteBuffer WaitForFileMapping(FileInfo cncFile, if (clock.Time() > deadLineMs) { throw new DriverTimeoutException( - "CnC file is created but not populated: " + cncFile.FullName); + "CnC file is created but not populated: " + cncFile.FullName + ); } fileStream.Dispose(); @@ -2671,15 +2827,18 @@ public bool IsDriverActive(long driverTimeoutMs, Action logger) } /// - /// Is a media driver active in the current mapped CnC buffer? If the driver is starting then it will wait for - /// up to the driverTimeoutMs by checking for the cncVersion being set. + /// Is a media driver active in the current mapped CnC buffer? If the driver is starting then it will wait + /// for up to the driverTimeoutMs by checking for the cncVersion being set. /// /// for the driver liveness check. /// for feedback as liveness checked. /// for the existing CnC file. /// true if a driver is active or false if not. - public static bool IsDriverActive(long driverTimeoutMs, Action logger, - MappedByteBuffer cncByteBuffer) + public static bool IsDriverActive( + long driverTimeoutMs, + Action logger, + MappedByteBuffer cncByteBuffer + ) { if (null == cncByteBuffer) { @@ -2702,8 +2861,9 @@ public static bool IsDriverActive(long driverTimeoutMs, Action logger, CncFileDescriptor.CheckVersion(cncVersion); - ManyToOneRingBuffer toDriverBuffer = - new ManyToOneRingBuffer(CncFileDescriptor.CreateToDriverBuffer(cncByteBuffer, cncMetaDataBuffer)); + ManyToOneRingBuffer toDriverBuffer = new ManyToOneRingBuffer( + CncFileDescriptor.CreateToDriverBuffer(cncByteBuffer, cncMetaDataBuffer) + ); long timestampMs = toDriverBuffer.ConsumerHeartbeatTime(); long nowMs = DateTime.Now.ToFileTimeUtc(); @@ -2726,7 +2886,8 @@ public static bool RequestDriverTermination( DirectoryInfo directory, IDirectBuffer tokenBuffer, int tokenOffset, - int tokenLength) + int tokenLength + ) { FileInfo cncFile = new FileInfo(Path.Combine(directory.FullName, CncFileDescriptor.CNC_FILE)); @@ -2742,9 +2903,9 @@ public static bool RequestDriverTermination( { CncFileDescriptor.CheckVersion(cncVersion); - ManyToOneRingBuffer toDriverBuffer = - new ManyToOneRingBuffer( - CncFileDescriptor.CreateToDriverBuffer(cncByteBuffer, cncMetaDataBuffer)); + ManyToOneRingBuffer toDriverBuffer = new ManyToOneRingBuffer( + CncFileDescriptor.CreateToDriverBuffer(cncByteBuffer, cncMetaDataBuffer) + ); long clientId = toDriverBuffer.NextCorrelationId(); DriverProxy driverProxy = new DriverProxy(toDriverBuffer, clientId); @@ -2865,7 +3026,8 @@ public static IErrorHandler SetupErrorHandler(IErrorHandler userErrorHandler, Di /// where driver is running. /// to use. /// for awaiting connection. - /// file page size from running media driver or if driver is old. + /// file page size from running media driver or + /// if driver is old. /// @since 1.48.0 public static int DriverFilePageSize(DirectoryInfo aeronDirectory, IEpochClock clock, long timeoutMs) { @@ -2887,7 +3049,6 @@ public static int DriverFilePageSize(DirectoryInfo aeronDirectory, IEpochClock c } } - internal static int DriverFilePageSize(IDirectBuffer metadata) { int pageSize = CncFileDescriptor.FilePageSize(metadata); @@ -2936,4 +3097,4 @@ public void Dispose() } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/AeronCounters.cs b/src/Adaptive.Aeron/AeronCounters.cs index 41ee7f97..8e3dce3c 100644 --- a/src/Adaptive.Aeron/AeronCounters.cs +++ b/src/Adaptive.Aeron/AeronCounters.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using Adaptive.Aeron.Exceptions; using Adaptive.Aeron.Status; @@ -13,12 +29,8 @@ namespace Adaptive.Aeron /// This class serves as a registry for all counter type IDs used by Aeron. /// /// Type IDs less than 1000 are reserved for Aeron use. Any custom counters should use a typeId of 1000 or higher. - /// Aeron uses the following specific ranges: - ///
    - ///
  • {@code 0 - 99}: for client/driver counters.
  • - ///
  • {@code 100 - 199}: for archive counters.
  • - ///
  • {@code 200 - 299}: for cluster counters.
  • - ///
+ /// Aeron uses the following specific ranges:
  • {@code 0 - 99}: for client/driver counters.
  • + ///
  • {@code 100 - 199}: for archive counters.
  • {@code 200 - 299}: for cluster counters.
///
///
public static class AeronCounters @@ -115,13 +127,14 @@ public static class AeronCounters public const int SYSTEM_COUNTER_ID_FREE_FAILS = 17; /// - /// Counter id for the times a sender has entered the state of being back-pressured when it could have sent faster. + /// Counter id for the times a sender has entered the state of being back-pressured when it could have sent + /// faster. /// public const int SYSTEM_COUNTER_ID_SENDER_FLOW_CONTROL_LIMITS = 18; /// - /// Counter id for the times a publication has been unblocked after a client failed to complete an offer within a - /// timeout. + /// Counter id for the times a publication has been unblocked after a client failed to complete an offer within + /// a timeout. /// public const int SYSTEM_COUNTER_ID_UNBLOCKED_PUBLICATIONS = 19; @@ -163,7 +176,8 @@ public static class AeronCounters public const int SYSTEM_COUNTER_ID_CONDUCTOR_MAX_CYCLE_TIME = 26; /// - /// Counter id for the number of times the cycle time threshold has been exceeded by the conductor in its work cycle. + /// Counter id for the number of times the cycle time threshold has been exceeded by the conductor in its work + /// cycle. /// public const int SYSTEM_COUNTER_ID_CONDUCTOR_CYCLE_TIME_THRESHOLD_EXCEEDED = 27; @@ -173,7 +187,8 @@ public static class AeronCounters public const int SYSTEM_COUNTER_ID_SENDER_MAX_CYCLE_TIME = 28; /// - /// Counter id for the number of times the cycle time threshold has been exceeded by the sender in its work cycle. + /// Counter id for the number of times the cycle time threshold has been exceeded by the sender in its work + /// cycle. /// public const int SYSTEM_COUNTER_ID_SENDER_CYCLE_TIME_THRESHOLD_EXCEEDED = 29; @@ -183,7 +198,8 @@ public static class AeronCounters public const int SYSTEM_COUNTER_ID_RECEIVER_MAX_CYCLE_TIME = 30; /// - /// Counter id for the number of times the cycle time threshold has been exceeded by the receiver in its work cycle. + /// Counter id for the number of times the cycle time threshold has been exceeded by the receiver in its work + /// cycle. /// public const int SYSTEM_COUNTER_ID_RECEIVER_CYCLE_TIME_THRESHOLD_EXCEEDED = 31; @@ -245,7 +261,7 @@ public static class AeronCounters /// /// Counter id for the control protocol between clients and media driver. /// - /// Since 1.49.0 + /// Since 1.49.0 public const int SYSTEM_COUNTER_ID_CONTROL_PROTOCOL_VERSION = 43; // Client/driver counters @@ -267,8 +283,8 @@ public static class AeronCounters public const int DRIVER_SENDER_POSITION_TYPE_ID = 2; /// - /// The highest position the Receiver has observed on a session-channel-stream tuple while rebuilding the stream. - /// It is possible the stream is not complete to this point if the stream has experienced loss. + /// The highest position the Receiver has observed on a session-channel-stream tuple while rebuilding the + /// stream. It is possible the stream is not complete to this point if the stream has experienced loss. /// public const int DRIVER_RECEIVER_HWM_TYPE_ID = 3; @@ -336,8 +352,8 @@ public static class AeronCounters /// /// Counter used to store the status of a bind address and port for the local end of a channel. /// - /// When the value is then the key value and label will be updated with the - /// socket address and port which is bound. + /// When the value is then the key value and label will be + /// updated with the socket address and port which is bound. /// /// public const int DRIVER_LOCAL_SOCKET_ADDRESS_STATUS_TYPE_ID = 14; @@ -348,7 +364,7 @@ public static class AeronCounters public const int FLOW_CONTROL_RECEIVERS_COUNTER_TYPE_ID = 17; /// - /// Count of number of destinations for multi-destination cast channels. + /// Count of number of destinations for multi-destination cast channels. /// public const int MDC_DESTINATIONS_COUNTER_TYPE_ID = 18; @@ -369,59 +385,62 @@ public static class AeronCounters public const int ARCHIVE_RECORDING_POSITION_TYPE_ID = 100; /// - /// The type id of the used for keeping track of the number of errors that have occurred. + /// The type id of the used for keeping track of the number of errors that have + /// occurred. /// public const int ARCHIVE_ERROR_COUNT_TYPE_ID = 101; /// - /// The type id of the used for keeping track of the count of concurrent control sessions. + /// The type id of the used for keeping track of the count of concurrent control + /// sessions. /// public const int ARCHIVE_CONTROL_SESSIONS_TYPE_ID = 102; /// - /// The type id of the used for keeping track of the max duty cycle time of an archive agent. + /// The type id of the used for keeping track of the max duty cycle time of an archive + /// agent. /// public const int ARCHIVE_MAX_CYCLE_TIME_TYPE_ID = 103; /// - /// The type id of the used for keeping track of the count of cycle time threshold exceeded of - /// an archive agent. + /// The type id of the used for keeping track of the count of cycle time threshold + /// exceeded of an archive agent. /// public const int ARCHIVE_CYCLE_TIME_THRESHOLD_EXCEEDED_TYPE_ID = 104; /// - /// The type id of the used for keeping track of the max time it took recorder to write a block of - /// data to the storage. + /// The type id of the used for keeping track of the max time it took recorder to + /// write a block of data to the storage. /// public const int ARCHIVE_RECORDER_MAX_WRITE_TIME_TYPE_ID = 105; /// - /// The type id of the used for keeping track of the total number of bytes written by the recorder - /// to the storage. + /// The type id of the used for keeping track of the total number of bytes written by + /// the recorder to the storage. /// public const int ARCHIVE_RECORDER_TOTAL_WRITE_BYTES_TYPE_ID = 106; /// - /// The type id of the used for keeping track of the total time the recorder spent writing data to - /// the storage. + /// The type id of the used for keeping track of the total time the recorder spent + /// writing data to the storage. /// public const int ARCHIVE_RECORDER_TOTAL_WRITE_TIME_TYPE_ID = 107; /// - /// The type id of the used for keeping track of the max time it took replayer to read a block from - /// the storage. + /// The type id of the used for keeping track of the max time it took replayer to read + /// a block from the storage. /// public const int ARCHIVE_REPLAYER_MAX_READ_TIME_TYPE_ID = 108; /// - /// The type id of the used for keeping track of the total number of bytes read by the replayer from - /// the storage. + /// The type id of the used for keeping track of the total number of bytes read by the + /// replayer from the storage. /// public const int ARCHIVE_REPLAYER_TOTAL_READ_BYTES_TYPE_ID = 109; /// - /// The type id of the used for keeping track of the total time the replayer spent reading data from - /// the storage. + /// The type id of the used for keeping track of the total time the replayer spent + /// reading data from the storage. /// public const int ARCHIVE_REPLAYER_TOTAL_READ_TIME_TYPE_ID = 110; @@ -494,7 +513,8 @@ public static class AeronCounters public const int CLUSTER_BACKUP_QUERY_DEADLINE_TYPE_ID = 210; /// - /// The type id of the used for keeping track of the number of errors that have occurred. + /// The type id of the used for keeping track of the number of errors that have + /// occurred. /// public const int CLUSTER_BACKUP_ERROR_COUNT_TYPE_ID = 211; @@ -519,24 +539,26 @@ public static class AeronCounters public const int CLUSTER_CLUSTERED_SERVICE_ERROR_COUNT_TYPE_ID = 215; /// - /// The type id of the used for keeping track of the max duty cycle time of the consensus module. + /// The type id of the used for keeping track of the max duty cycle time of the + /// consensus module. /// public const int CLUSTER_MAX_CYCLE_TIME_TYPE_ID = 216; /// - /// The type id of the used for keeping track of the count of cycle time threshold exceeded of - /// the consensus module. + /// The type id of the used for keeping track of the count of cycle time threshold + /// exceeded of the consensus module. /// public const int CLUSTER_CYCLE_TIME_THRESHOLD_EXCEEDED_TYPE_ID = 217; /// - /// The type id of the used for keeping track of the max duty cycle time of the service container. + /// The type id of the used for keeping track of the max duty cycle time of the + /// service container. /// public const int CLUSTER_CLUSTERED_SERVICE_MAX_CYCLE_TIME_TYPE_ID = 218; /// - /// The type id of the used for keeping track of the count of cycle time threshold exceeded of - /// the service container. + /// The type id of the used for keeping track of the count of cycle time threshold + /// exceeded of the service container. /// public const int CLUSTER_CLUSTERED_SERVICE_CYCLE_TIME_THRESHOLD_EXCEEDED_TYPE_ID = 219; @@ -576,30 +598,32 @@ public static class AeronCounters public const int TRANSITION_MODULE_ERROR_COUNT_TYPE_ID = 226; /// - /// The type id of the used for keeping track of the max duty cycle time of the cluster standby. + /// The type id of the used for keeping track of the max duty cycle time of the + /// cluster standby. /// public const int CLUSTER_STANDBY_MAX_CYCLE_TIME_TYPE_ID = 227; /// - /// The type id of the used for keeping track of the count of cycle time threshold exceeded of - /// the cluster standby. + /// The type id of the used for keeping track of the count of cycle time threshold + /// exceeded of the cluster standby. /// public const int CLUSTER_STANDBY_CYCLE_TIME_THRESHOLD_EXCEEDED_TYPE_ID = 228; /// - /// The type id of the used for keeping track of the max duty cycle time of the transition module. + /// The type id of the used for keeping track of the max duty cycle time of the + /// transition module. /// public const int TRANSITION_MODULE_MAX_CYCLE_TIME_TYPE_ID = 229; /// - /// The type id of the used for keeping track of the count of cycle time threshold exceeded of - /// the transition module. + /// The type id of the used for keeping track of the count of cycle time threshold + /// exceeded of the transition module. /// public const int TRANSITION_MODULE_CYCLE_TIME_THRESHOLD_EXCEEDED_TYPE_ID = 230; /// - /// The type id of the to make visible the memberId that the cluster standby is currently using to - /// as a source for the cluster log. + /// The type id of the to make visible the memberId that the cluster standby is + /// currently using to as a source for the cluster log. /// public const int CLUSTER_STANDBY_SOURCE_MEMBER_ID_TYPE_ID = 231; @@ -619,25 +643,26 @@ public static class AeronCounters public const int CLUSTER_TOTAL_MAX_SNAPSHOT_DURATION_TYPE_ID = 234; /// - /// The type id of the used for keeping track of the count total snapshot duration - /// has exceeded the threshold. + /// The type id of the used for keeping track of the count total snapshot duration has + /// exceeded the threshold. /// public const int CLUSTER_TOTAL_SNAPSHOT_DURATION_THRESHOLD_EXCEEDED_TYPE_ID = 235; /// - /// The type id of the used for keeping track of the maximum snapshot duration - /// for a given clustered service. + /// The type id of the used for keeping track of the maximum snapshot duration for a + /// given clustered service. /// public const int CLUSTERED_SERVICE_MAX_SNAPSHOT_DURATION_TYPE_ID = 236; /// - /// The type id of the used for keeping track of the count snapshot duration - /// has exceeded the threshold for a given clustered service. + /// The type id of the used for keeping track of the count snapshot duration has + /// exceeded the threshold for a given clustered service. /// public const int CLUSTERED_SERVICE_SNAPSHOT_DURATION_THRESHOLD_EXCEEDED_TYPE_ID = 237; /// - /// The type id of the used for keeping track of the number of elections that have occurred. + /// The type id of the used for keeping track of the number of elections that have + /// occurred. /// public const int CLUSTER_ELECTION_COUNT_TYPE_ID = 238; @@ -787,28 +812,36 @@ public static class AeronCounters public const int SEQUENCER_REPLAY_INDEX_INITIAL_SEQUENCE_LOG_POSITION_COUNTER_TYPE_ID = 525; /// - /// Checks that the counter specified by {@code counterId} has the counterTypeId that matches the specified value. - /// If not it will throw a . + /// Checks that the counter specified by {@code counterId} has the counterTypeId that matches the specified + /// value. If not it will throw a . /// /// to look up the counter type id. /// counter to reference. /// the expected type id for the counter. /// if the type id does not match. /// if the counterId is not valid. - public static void ValidateCounterTypeId(CountersReader countersReader, int counterId, - int expectedCounterTypeId) + public static void ValidateCounterTypeId( + CountersReader countersReader, + int counterId, + int expectedCounterTypeId + ) { int counterTypeId = countersReader.GetCounterTypeId(counterId); if (expectedCounterTypeId != counterTypeId) { - throw new ConfigurationException("The type for counterId=" + counterId + - ", typeId=" + counterTypeId + - " does not match the expected=" + expectedCounterTypeId); + throw new ConfigurationException( + "The type for counterId=" + + counterId + + ", typeId=" + + counterTypeId + + " does not match the expected=" + + expectedCounterTypeId + ); } } /// - /// Convenience overload for . + /// Convenience overload for . /// /// to resolve a counters' reader. /// to be checked for the appropriate counterTypeId. @@ -831,8 +864,7 @@ public static void ValidateCounterTypeId(Aeron aeron, Counter counter, int expec public static int AppendVersionInfo(IMutableDirectBuffer tempBuffer, int offset, string fullVersion) { int length = tempBuffer.PutStringWithoutLengthAscii(offset, " "); - length += tempBuffer.PutStringWithoutLengthAscii( - offset + length, FormatVersionInfo(fullVersion)); + length += tempBuffer.PutStringWithoutLengthAscii(offset + length, FormatVersionInfo(fullVersion)); return length; } @@ -845,11 +877,17 @@ public static int AppendVersionInfo(IMutableDirectBuffer tempBuffer, int offset, /// identifying the commit. /// length of the suffix appended. public static int AppendVersionInfo( - IMutableDirectBuffer tempBuffer, int offset, string fullVersion, string commitHashCode) + IMutableDirectBuffer tempBuffer, + int offset, + string fullVersion, + string commitHashCode + ) { int length = tempBuffer.PutStringWithoutLengthAscii(offset, " "); length += tempBuffer.PutStringWithoutLengthAscii( - offset + length, FormatVersionInfo(fullVersion, commitHashCode)); + offset + length, + FormatVersionInfo(fullVersion, commitHashCode) + ); return length; } @@ -861,10 +899,15 @@ public static int AppendVersionInfo( /// to append version info to. /// to be appended to the label. /// number of bytes that got appended. - /// if {@code counterId} is invalid or points to non-allocated counter. + /// if {@code counterId} is invalid or points to non-allocated counter. + /// public static int AppendToLabel(IAtomicBuffer metaDataBuffer, int counterId, string value) { - if (null == metaDataBuffer) throw new ArgumentNullException(nameof(metaDataBuffer)); + if (null == metaDataBuffer) + { + throw new ArgumentNullException(nameof(metaDataBuffer)); + } + ValidateCounterId(metaDataBuffer, counterId); int counterMetaDataOffset = MetaDataOffset(counterId); @@ -881,11 +924,11 @@ public static int AppendToLabel(IAtomicBuffer metaDataBuffer, int counterId, str counterMetaDataOffset + LABEL_OFFSET + SIZE_OF_INT + existingLabelLength, value, 0, - remainingLabelLength); + remainingLabelLength + ); if (writtenLength > 0) { - metaDataBuffer.PutIntRelease( - counterMetaDataOffset + LABEL_OFFSET, existingLabelLength + writtenLength); + metaDataBuffer.PutIntRelease(counterMetaDataOffset + LABEL_OFFSET, existingLabelLength + writtenLength); } return writtenLength; @@ -920,10 +963,22 @@ public static string FormatVersionInfo(string fullVersion, string commitHash) /// to be set. /// to set for the counter. public static void SetReferenceId( - IAtomicBuffer metaDataBuffer, IAtomicBuffer valuesBuffer, int counterId, long referenceId) + IAtomicBuffer metaDataBuffer, + IAtomicBuffer valuesBuffer, + int counterId, + long referenceId + ) { - if (null == metaDataBuffer) throw new ArgumentNullException(nameof(metaDataBuffer)); - if (null == valuesBuffer) throw new ArgumentNullException(nameof(valuesBuffer)); + if (null == metaDataBuffer) + { + throw new ArgumentNullException(nameof(metaDataBuffer)); + } + + if (null == valuesBuffer) + { + throw new ArgumentNullException(nameof(valuesBuffer)); + } + ValidateCounterId(metaDataBuffer, counterId); valuesBuffer.PutLongRelease(CounterOffset(counterId) + REFERENCE_ID_OFFSET, referenceId); @@ -940,8 +995,9 @@ private static void ValidateCounterId(IAtomicBuffer metaDataBuffer, int counterI if (counterId > maxCounterId) { throw new ArgumentException( - "counter id " + counterId + " out of range: 0 - maxCounterId=" + maxCounterId); + "counter id " + counterId + " out of range: 0 - maxCounterId=" + maxCounterId + ); } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/AeronThrowHelper.cs b/src/Adaptive.Aeron/AeronThrowHelper.cs index af43831f..364b0600 100644 --- a/src/Adaptive.Aeron/AeronThrowHelper.cs +++ b/src/Adaptive.Aeron/AeronThrowHelper.cs @@ -1,8 +1,29 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System.Runtime.CompilerServices; using Adaptive.Aeron.Exceptions; namespace Adaptive.Aeron { + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class AeronThrowHelper { [MethodImpl(MethodImplOptions.NoInlining)] @@ -10,11 +31,11 @@ public static void ThrowAeronException(string message) { throw GetAeronException(message); } - + [MethodImpl(MethodImplOptions.NoInlining)] private static AeronException GetAeronException(string message) { return new AeronException(message); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/AeronVersion.cs b/src/Adaptive.Aeron/AeronVersion.cs index d7752688..528a3e8c 100644 --- a/src/Adaptive.Aeron/AeronVersion.cs +++ b/src/Adaptive.Aeron/AeronVersion.cs @@ -1,5 +1,26 @@ -namespace Adaptive.Aeron +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Aeron { + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class AeronVersion { public const string VERSION = "1.49.0"; @@ -7,4 +28,4 @@ public class AeronVersion public const int MINOR_VERSION = 49; public const int PATCH_VERSION = 0; } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/AvailableCounterHandler.cs b/src/Adaptive.Aeron/AvailableCounterHandler.cs index 5779d5a1..d20c1338 100644 --- a/src/Adaptive.Aeron/AvailableCounterHandler.cs +++ b/src/Adaptive.Aeron/AvailableCounterHandler.cs @@ -1,4 +1,20 @@ -using Adaptive.Agrona.Concurrent.Status; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona.Concurrent.Status; namespace Adaptive.Aeron { @@ -6,13 +22,13 @@ namespace Adaptive.Aeron /// Interface for notification ofs becoming available via a client. /// /// Method called by Aeron to deliver notification of a {@link Counter} being available. - /// - /// Within this callback reentrant calls to the client are not permitted and - /// will result in undefined behaviour. - /// + /// + /// Within this callback reentrant calls to the client are not permitted and will result in + /// undefined behaviour. + /// /// /// for more detail on the counter. /// for the counter. /// that is available. public delegate void AvailableCounterHandler(CountersReader countersReader, long registrationId, int counterId); -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/AvailableImageHandler.cs b/src/Adaptive.Aeron/AvailableImageHandler.cs index d745c78e..a7e7373d 100644 --- a/src/Adaptive.Aeron/AvailableImageHandler.cs +++ b/src/Adaptive.Aeron/AvailableImageHandler.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,13 +17,13 @@ namespace Adaptive.Aeron { /// - /// Interface for notification of new s becoming available under a - /// + /// Interface for notification of new s becoming available under a + /// /// Method called by Aeron to deliver notification of a new being available for polling. - /// - /// Within this callback reentrant calls to the client are not permitted and - /// will result in undefined behaviour. + /// + /// Within this callback reentrant calls to the client are not permitted and will result in + /// undefined behaviour. /// /// that is now available. public delegate void AvailableImageHandler(Image image); -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/BufferBuilder.cs b/src/Adaptive.Aeron/BufferBuilder.cs index 3835fea4..ceaf3ac6 100644 --- a/src/Adaptive.Aeron/BufferBuilder.cs +++ b/src/Adaptive.Aeron/BufferBuilder.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,25 +30,25 @@ namespace Adaptive.Aeron { /// /// Reusable Builder for appending a sequence of buffers that grows internal capacity as needed. - /// + /// /// Similar in concept to /// public sealed class BufferBuilder { - internal const int MAX_CAPACITY = Int32.MaxValue - 8; - internal const int INIT_MIN_CAPACITY = 4096; + internal const int MaxCapacity = Int32.MaxValue - 8; + internal const int InitMinCapacity = 4096; private int _limit; private int _nextTermOffset = Aeron.NULL_VALUE; private readonly UnsafeBuffer _buffer = new UnsafeBuffer(); - readonly UnsafeBuffer headerBuffer = new UnsafeBuffer(); - readonly Header completeHeader = new Header(0, 0); - + readonly UnsafeBuffer _headerBuffer = new UnsafeBuffer(); + readonly Header _completeHeader = new Header(0, 0); /// /// Construct a buffer builder with an initial capacity of zero and isDirect false. /// - public BufferBuilder() : this(0) + public BufferBuilder() + : this(0) { } @@ -58,10 +58,11 @@ public BufferBuilder() : this(0) /// at which the capacity will start. public BufferBuilder(int initialCapacity) { - if (initialCapacity < 0 || initialCapacity > MAX_CAPACITY) + if (initialCapacity < 0 || initialCapacity > MaxCapacity) { - throw new ArgumentException("initialCapacity outside range 0 - " + MAX_CAPACITY + - ": initialCapacity=" + initialCapacity); + throw new ArgumentException( + "initialCapacity outside range 0 - " + MaxCapacity + ": initialCapacity=" + initialCapacity + ); } if (initialCapacity > 0) @@ -69,7 +70,7 @@ public BufferBuilder(int initialCapacity) _buffer.Wrap(new byte[initialCapacity]); } - headerBuffer.Wrap(new byte[HEADER_LENGTH]); + _headerBuffer.Wrap(new byte[HEADER_LENGTH]); } /// @@ -100,7 +101,8 @@ public void Limit(int limit) if (limit < 0 || limit >= _buffer.Capacity) { ThrowHelper.ThrowArgumentException( - $"limit outside range: capacity={_buffer.Capacity:D} limit={limit:D}"); + $"limit outside range: capacity={_buffer.Capacity:D} limit={limit:D}" + ); } _limit = limit; @@ -141,8 +143,8 @@ public BufferBuilder Reset() { _limit = 0; _nextTermOffset = Aeron.NULL_VALUE; - completeHeader.Context = null; - completeHeader.FragmentedFrameLength = Aeron.NULL_VALUE; + _completeHeader.Context = null; + _completeHeader.FragmentedFrameLength = Aeron.NULL_VALUE; return this; } @@ -152,7 +154,7 @@ public BufferBuilder Reset() /// the builder for fluent API usage. public BufferBuilder Compact() { - int newCapacity = Math.Max(INIT_MIN_CAPACITY, _limit); + int newCapacity = Math.Max(InitMinCapacity, _limit); if (newCapacity < _buffer.Capacity) { Resize(newCapacity); @@ -185,34 +187,34 @@ public BufferBuilder Append(IDirectBuffer srcBuffer, int srcOffset, int length) /// the builder for fluent API usage. public BufferBuilder CaptureHeader(Header header) { - completeHeader.InitialTermId = header.InitialTermId; - completeHeader.PositionBitsToShift = header.PositionBitsToShift; - completeHeader.Offset = 0; - completeHeader.Buffer = headerBuffer; + _completeHeader.InitialTermId = header.InitialTermId; + _completeHeader.PositionBitsToShift = header.PositionBitsToShift; + _completeHeader.Offset = 0; + _completeHeader.Buffer = _headerBuffer; - headerBuffer.PutBytes(0, header.Buffer, header.Offset, HEADER_LENGTH); + _headerBuffer.PutBytes(0, header.Buffer, header.Offset, HEADER_LENGTH); return this; } /// - /// Use the information from the header of the last frame to create a header for the assembled message, i.e. fixups - /// the flags and the frame length. + /// Use the information from the header of the last frame to create a header for the assembled message, i.e. + /// fixups the flags and the frame length. /// /// of the last frame. /// complete message header. public Header CompleteHeader(Header header) { - int firstFrameLength = headerBuffer.GetInt(FRAME_LENGTH_FIELD_OFFSET, ByteOrder.LittleEndian); + int firstFrameLength = _headerBuffer.GetInt(FRAME_LENGTH_FIELD_OFFSET, ByteOrder.LittleEndian); int fragmentedFrameLength = ComputeFragmentedFrameLength(_limit, firstFrameLength - HEADER_LENGTH); - completeHeader.Context = header.Context; - completeHeader.FragmentedFrameLength = fragmentedFrameLength; + _completeHeader.Context = header.Context; + _completeHeader.FragmentedFrameLength = fragmentedFrameLength; - headerBuffer.PutInt(FRAME_LENGTH_FIELD_OFFSET, HEADER_LENGTH + _limit, ByteOrder.LittleEndian); + _headerBuffer.PutInt(FRAME_LENGTH_FIELD_OFFSET, HEADER_LENGTH + _limit, ByteOrder.LittleEndian); // compute complete flags - headerBuffer.PutByte(FLAGS_OFFSET, (byte)(headerBuffer.GetByte(FLAGS_OFFSET) | header.Flags)); + _headerBuffer.PutByte(FLAGS_OFFSET, (byte)(_headerBuffer.GetByte(FLAGS_OFFSET) | header.Flags)); // compute the `fragmented frame length` of the complete message - return completeHeader; + return _completeHeader; } private void EnsureCapacity(int additionalLength) @@ -222,10 +224,16 @@ private void EnsureCapacity(int additionalLength) if (requiredCapacity > capacity) { - if (requiredCapacity > MAX_CAPACITY) + if (requiredCapacity > MaxCapacity) { - throw new InvalidOperationException("insufficient capacity: maxCapacity=" + MAX_CAPACITY + - " limit=" + _limit + " additionalLength=" + additionalLength); + throw new InvalidOperationException( + "insufficient capacity: maxCapacity=" + + MaxCapacity + + " limit=" + + _limit + + " additionalLength=" + + additionalLength + ); } Resize(FindSuitableCapacity(capacity, requiredCapacity)); @@ -246,14 +254,14 @@ private static T[] CopyOf(T[] original, int newLength) internal static int FindSuitableCapacity(int capacity, long requiredCapacity) { - long newCapacity = Math.Max(capacity, INIT_MIN_CAPACITY); + long newCapacity = Math.Max(capacity, InitMinCapacity); while (newCapacity < requiredCapacity) { - newCapacity = newCapacity + (newCapacity >> 1); - if (newCapacity > MAX_CAPACITY) + newCapacity += newCapacity >> 1; + if (newCapacity > MaxCapacity) { - newCapacity = MAX_CAPACITY; + newCapacity = MaxCapacity; break; } } @@ -261,4 +269,4 @@ internal static int FindSuitableCapacity(int capacity, long requiredCapacity) return (int)newCapacity; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/ChannelUri.cs b/src/Adaptive.Aeron/ChannelUri.cs index 8d93139d..4d96c4c5 100644 --- a/src/Adaptive.Aeron/ChannelUri.cs +++ b/src/Adaptive.Aeron/ChannelUri.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Collections.Generic; using System.Text; using Adaptive.Aeron.LogBuffer; @@ -27,7 +43,7 @@ private enum State { MEDIA, PARAMS_KEY, - PARAMS_VALUE + PARAMS_VALUE, } /// @@ -44,16 +60,16 @@ private enum State /// Invalid tag value returned when calling and the channel is not tagged. /// public const long INVALID_TAG = Aeron.NULL_VALUE; - + /// /// Max length in characters for the URI string. /// public const int MAX_URI_LENGTH = 4095; - private const int CHANNEL_TAG_INDEX = 0; - private const int ENTITY_TAG_INDEX = 1; + private const int ChannelTagIndex = 0; + private const int EntityTagIndex = 1; - private static readonly string AERON_PREFIX = AERON_SCHEME + ":"; + private static readonly string AeronPrefix = AERON_SCHEME + ":"; private string _prefix; private string _media; @@ -118,13 +134,15 @@ public ChannelUri Media(string media) /// /// Is the channel equal to . /// - /// true the channel equals . + /// true the channel equals . + /// public bool IsUdp => UDP_MEDIA.Equals(_media); /// /// Is the channel equal to . /// - /// true the channel equals . + /// true the channel equals . + /// public bool IsIpc => IPC_MEDIA.Equals(_media); /// @@ -189,8 +207,7 @@ public string Remove(string key) /// /// to be lookup. /// true if the key has a value otherwise false. - /// - /// + /// public bool ContainsKey(string key) { return _params.ContainsKey(key); @@ -202,24 +219,25 @@ public bool ContainsKey(string key) /// channel tag if it exists or null if not in this URI. public string ChannelTag() { - return (null != _tags && _tags.Length > CHANNEL_TAG_INDEX) ? _tags[CHANNEL_TAG_INDEX] : null; + return (null != _tags && _tags.Length > ChannelTagIndex) ? _tags[ChannelTagIndex] : null; } /// /// Get the entity tag, if it exists, that refers to an entity such as subscription or publication. /// /// entity tag if it exists or null if not in this URI. - /// - /// + /// public string EntityTag() { - return _tags.Length > ENTITY_TAG_INDEX ? _tags[ENTITY_TAG_INDEX] : null; + return _tags.Length > EntityTagIndex ? _tags[EntityTagIndex] : null; } private bool Equals(ChannelUri other) { - return _prefix == other._prefix && _media == other._media && Equals(_params, other._params) && - Equals(_tags, other._tags); + return _prefix == other._prefix + && _media == other._media + && Equals(_params, other._params) + && Equals(_tags, other._tags); } public override bool Equals(object obj) @@ -234,10 +252,10 @@ public override bool Equals(object obj) return false; } - return Equals(_prefix, other._prefix) && - Equals(_media, other._media) && - Equals(_params, other._params) && - Equals(_tags, other._tags); + return Equals(_prefix, other._prefix) + && Equals(_media, other._media) + && Equals(_params, other._params) + && Equals(_tags, other._tags); } public override int GetHashCode() @@ -259,7 +277,7 @@ public override int GetHashCode() public override string ToString() { StringBuilder sb; - if (ReferenceEquals(_prefix, null) || string.IsNullOrEmpty(_prefix)) + if (_prefix is null || string.IsNullOrEmpty(_prefix)) { sb = new StringBuilder((_params.Count * 20) + 10); } @@ -270,11 +288,11 @@ public override string ToString() if (!_prefix.EndsWith(":")) { - sb.Append(":"); + sb.Append(':'); } } - sb.Append(AERON_PREFIX).Append(_media); + sb.Append(AeronPrefix).Append(_media); if (_params.Count > 0) { @@ -285,7 +303,7 @@ public override string ToString() sb.Append(entry.Key).Append('=').Append(entry.Value).Append('|'); } - sb.Length = sb.Length - 1; + sb.Length--; } return sb.ToString(); @@ -314,22 +332,32 @@ public void InitialPosition(long position, int initialTermId, int termLength) Put(TERM_LENGTH_PARAM_NAME, Convert.ToString(termLength)); } - /// /// Parse a which contains an Aeron URI. /// /// to be parsed. /// a new representing the URI string. + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S138:Functions should not have too many lines", + // Upstream: io.aeron.ChannelUri#parse is @SuppressWarnings("MethodLength"). + Justification = "Upstream Java parity; method is itself @SuppressWarnings(\"MethodLength\")." + )] public static ChannelUri Parse(string uri) { int length = uri.Length; if (length > MAX_URI_LENGTH) { - throw new ArgumentException("URI length (" + length + ") exceeds max supported length (" + - MAX_URI_LENGTH + "): " + uri.Substring(0, MAX_URI_LENGTH)); + throw new ArgumentException( + "URI length (" + + length + + ") exceeds max supported length (" + + MAX_URI_LENGTH + + "): " + + uri.Substring(0, MAX_URI_LENGTH) + ); } - int position = 0; string prefix; if (StartsWith(uri, 0, SPY_PREFIX)) @@ -342,13 +370,13 @@ public static ChannelUri Parse(string uri) prefix = ""; } - if (!StartsWith(uri, position, AERON_PREFIX)) + if (!StartsWith(uri, position, AeronPrefix)) { throw new ArgumentException("Aeron URIs must start with 'aeron:', found: " + uri); } else { - position += AERON_PREFIX.Length; + position += AeronPrefix.Length; } var builder = new StringBuilder(); @@ -374,8 +402,9 @@ public static ChannelUri Parse(string uri) case ':': case '|': case '=': - throw new ArgumentException("encountered '" + c + - "' within media definition at index " + i + " in " + uri); + throw new ArgumentException( + "encountered '" + c + "' within media definition at index " + i + " in " + uri + ); default: builder.Append(c); @@ -458,13 +487,14 @@ public static string AddSessionId(string channel, int sessionId) return channelUri.ToString(); } - + /// /// Add alias to the uri if none exists. /// /// to add alias to. /// to add to the uri. - /// original uri if alias is empty or one is already defined, otherwise new uri with an alias. + /// original uri if alias is empty or one is already defined, otherwise new uri with an alias. + /// public static string AddAliasIfAbsent(string uri, string alias) { if (!string.IsNullOrEmpty(alias)) @@ -484,8 +514,7 @@ public static string AddAliasIfAbsent(string uri, string alias) /// /// to check if tagged. /// true if tagged or false if not. - /// - /// + /// public static bool IsTagged(string paramValue) { return StartsWith(paramValue, 0, TAG_PREFIX); @@ -496,18 +525,18 @@ public static bool IsTagged(string paramValue) /// /// to extract the tag value from. /// the value of the tag or if not tagged. - /// - /// + /// public static long GetTag(string paramValue) { return IsTagged(paramValue) ? long.Parse(paramValue.Substring(4, paramValue.Length - 4)) : INVALID_TAG; } /// - /// Create a channel URI for a destination, i.e. a channel that uses {@code media} and {@code interface} parameters - /// of the original channel and adds specified {@code endpoint} to it. For example given the input channel is - /// {@code aeron:udp?mtu=1440|ttl=0|endpoint=localhost:8090|term-length=128k|interface=eth0} and the endpoint is - /// {@code 192.168.0.14} the output of this method will be {@code aeron:udp?endpoint=192.168.0.14|interface=eth0}. + /// Create a channel URI for a destination, i.e. a channel that uses {@code media} and {@code interface} + /// parameters of the original channel and adds specified {@code endpoint} to it. For example given the input + /// channel is {@code aeron:udp?mtu=1440|ttl=0|endpoint=localhost:8090|term-length=128k|interface=eth0} and the + /// endpoint is {@code 192.168.0.14} the output of this method will be + /// {@code aeron:udp?endpoint=192.168.0.14|interface=eth0}. /// /// for which the destination is being added. /// for the target destination. @@ -515,7 +544,7 @@ public static long GetTag(string paramValue) public static string CreateDestinationUri(string channel, string endpoint) { ChannelUri channelUri = ChannelUri.Parse(channel); - string uri = AERON_PREFIX + channelUri.Media() + "?" + ENDPOINT_PARAM_NAME + "=" + endpoint; + string uri = AeronPrefix + channelUri.Media() + "?" + ENDPOINT_PARAM_NAME + "=" + endpoint; string networkInterface = channelUri.Get(INTERFACE_PARAM_NAME); if (null != networkInterface) @@ -527,13 +556,14 @@ public static string CreateDestinationUri(string channel, string endpoint) } /// - /// Uses the supplied endpoint to resolve any wildcard ports. If the existing endpoint has a value of "0" for then - /// the port of this endpoint will be used instead. If the endpoint is not specified in this uri, then the whole - /// supplied endpoint is used. If the endpoint exists and has a non-wildcard port, then the existing endpoint is - /// retained. + /// Uses the supplied endpoint to resolve any wildcard ports. If the existing endpoint has a value of "0" for + /// then the port of this endpoint will be used instead. If the endpoint is not specified in this uri, then the + /// whole supplied endpoint is used. If the endpoint exists and has a non-wildcard port, then the existing + /// endpoint is retained. /// /// The endpoint to supply a resolved endpoint port. - /// if the supplied resolvedEndpoint does not have a port or the port is zero. + /// if the supplied resolvedEndpoint does not have a port or the port is + /// zero. /// if the supplied resolvedEndpoint is null public void ReplaceEndpointWildcardPort(string resolvedEndpoint) { @@ -560,12 +590,13 @@ public void ReplaceEndpointWildcardPort(string resolvedEndpoint) } else if (existingEndpoint.EndsWith(":0", StringComparison.Ordinal)) { - string endpoint = existingEndpoint.Substring(0, existingEndpoint.Length - 2) + - resolvedEndpoint.Substring(resolvedEndpoint.LastIndexOf(':')); + string endpoint = + existingEndpoint.Substring(0, existingEndpoint.Length - 2) + + resolvedEndpoint.Substring(resolvedEndpoint.LastIndexOf(':')); Put(ENDPOINT_PARAM_NAME, endpoint); } } - + /// /// Call consumer for each parameter defined in the URI. /// @@ -576,8 +607,8 @@ public void ForEachParameter(Action consumer) } /// - /// Compute a map of differences between this and another. Each entry's value - /// is a "this != that" string describing the divergence. + /// Compute a map of differences between this and another. Each entry's value is a + /// "this != that" string describing the divergence. /// /// to compare against. /// a map of differences, empty if the two URIs are equivalent. @@ -595,14 +626,16 @@ public IDictionary Diff(ChannelUri that) differingValues["media"] = _media + " != " + that._media; } - _params.ForEach((key, value) => - { - string thatValue = that._params.Get(key); - if (!string.Equals(value, thatValue)) + _params.ForEach( + (key, value) => { - differingValues[key] = value + " != " + thatValue; + string thatValue = that._params.Get(key); + if (!string.Equals(value, thatValue)) + { + differingValues[key] = value + " != " + thatValue; + } } - }); + ); if (!TagsEqual(_tags, that._tags)) { @@ -614,19 +647,39 @@ public IDictionary Diff(ChannelUri that) private static bool TagsEqual(string[] a, string[] b) { - if (ReferenceEquals(a, b)) return true; - if (a == null || b == null) return false; - if (a.Length != b.Length) return false; + if (ReferenceEquals(a, b)) + { + return true; + } + + if (a == null || b == null) + { + return false; + } + + if (a.Length != b.Length) + { + return false; + } + for (int i = 0; i < a.Length; i++) { - if (!string.Equals(a[i], b[i])) return false; + if (!string.Equals(a[i], b[i])) + { + return false; + } } + return true; } private static string TagsToString(string[] tags) { - if (tags == null) return "null"; + if (tags == null) + { + return "null"; + } + return "[" + string.Join(", ", tags) + "]"; } @@ -649,7 +702,6 @@ public static bool IsControlModeResponse(string channelUri) return Parse(channelUri).HasControlModeResponse(); } - private static void ValidateMedia(string media) { if (IPC_MEDIA.Equals(media) || UDP_MEDIA.Equals(media)) @@ -660,7 +712,6 @@ private static void ValidateMedia(string media) throw new ArgumentException("unknown media: " + media); } - private static bool StartsWith(string input, int position, string prefix) { if (input.Length - position < prefix.Length) @@ -730,4 +781,4 @@ private static int CountTags(string tags) return count; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/ChannelUriStringBuilder.cs b/src/Adaptive.Aeron/ChannelUriStringBuilder.cs index f4c3a3a3..bf2693cb 100644 --- a/src/Adaptive.Aeron/ChannelUriStringBuilder.cs +++ b/src/Adaptive.Aeron/ChannelUriStringBuilder.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Text; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; @@ -8,7 +24,8 @@ namespace Adaptive.Aeron { /// - /// Typesafe means of building a channel URI associated with a or . + /// Typesafe means of building a channel URI associated with a or + /// . /// /// /// @@ -18,7 +35,7 @@ public sealed class ChannelUriStringBuilder /// /// Can be used when the likes of session-id wants to reference another entity such as a tagged publication. /// - /// For example {@code session-id=tag:777} where the publication uses {@code tags=777}. + /// For example {@code session-id=tag:777} where the publication uses {@code tags=777} . /// /// public const string TAG_PREFIX = "tag:"; @@ -62,10 +79,10 @@ public sealed class ChannelUriStringBuilder private long? _sessionId; private long? _groupTag; private long? _linger; - private long? nakDelay; + private long? _nakDelay; private long? _untetheredWindowLimitTimeoutNs; private long? _untetheredLingerTimeoutNs; - private long? untetheredRestingTimeoutNs; + private long? _untetheredRestingTimeoutNs; private bool _isSessionIdTagged; /// @@ -80,7 +97,8 @@ public ChannelUriStringBuilder() /// incoming URI during this process, so could through an exception at this point of the URI is badly formed. /// /// initial values for the builder. - public ChannelUriStringBuilder(string initialUri) : this(ChannelUri.Parse(initialUri)) + public ChannelUriStringBuilder(string initialUri) + : this(ChannelUri.Parse(initialUri)) { } @@ -199,7 +217,6 @@ public ChannelUriStringBuilder Validate() throw new ArgumentException("either 'endpoint' or 'control' must be specified for UDP."); } - bool anyNonNull = null != _initialTermId || null != _termId || null != _termOffset; bool anyNull = null == _initialTermId || null == _termId || null == _termOffset; if (anyNonNull) @@ -207,13 +224,16 @@ public ChannelUriStringBuilder Validate() if (anyNull) { throw new ArgumentException( - "either all or none of the parameters ['initialTermId', 'termId', 'termOffset'] must be provided"); + "either all or none of the parameters " + + "['initialTermId', 'termId', 'termOffset'] must be provided" + ); } if (_termId - _initialTermId < 0) { throw new ArgumentException( - "difference greater than 2^31 - 1: termId=" + _termId + " - initialTermId=" + _initialTermId); + "difference greater than 2^31 - 1: termId=" + _termId + " - initialTermId=" + _initialTermId + ); } if (null != _termLength && _termOffset > _termLength) @@ -243,7 +263,7 @@ public ChannelUriStringBuilder Prefix(string prefix) } /// - /// Set the prefix value to be what is in the . + /// Set the prefix value to be what is in the . /// /// to read the value from. /// this for a fluent API. @@ -284,7 +304,7 @@ public ChannelUriStringBuilder Media(string media) } /// - /// Set the endpoint value to be what is in the . + /// Set the endpoint value to be what is in the . /// /// to read the value from. /// this for a fluent API. @@ -362,7 +382,8 @@ public ChannelUriStringBuilder NetworkInterface(ChannelUri channelUri) /// /// Get the address of the local interface in the form host:[port]/[subnet mask] for routing traffic. /// - /// the address of the local interface in the form host:[port]/[subnet mask] for routing traffic. + /// the address of the local interface in the form host:[port]/[subnet mask] for routing traffic. + /// /// public string NetworkInterface() { @@ -395,7 +416,8 @@ public ChannelUriStringBuilder ControlEndpoint(ChannelUri channelUri) /// /// Get the control address:port pair for dynamically joining a multi-destination-cast publication. /// - /// the control address:port pair for dynamically joining a multi-destination-cast publication. + /// the control address:port pair for dynamically joining a multi-destination-cast publication. + /// /// public string ControlEndpoint() { @@ -403,7 +425,8 @@ public string ControlEndpoint() } /// - /// Set the control mode for multi-destination-cast. Set to "manual" for allowing control from the publication API. + /// Set the control mode for multi-destination-cast. Set to "manual" for allowing control from the publication + /// API. /// /// for taking control of MDC. /// this for a fluent API. @@ -414,11 +437,12 @@ public string ControlEndpoint() /// public ChannelUriStringBuilder ControlMode(string controlMode) { - if (null != controlMode && - !controlMode.Equals(MDC_CONTROL_MODE_MANUAL) && - !controlMode.Equals(MDC_CONTROL_MODE_DYNAMIC) && - !controlMode.Equals(CONTROL_MODE_RESPONSE) - ) + if ( + null != controlMode + && !controlMode.Equals(MDC_CONTROL_MODE_MANUAL) + && !controlMode.Equals(MDC_CONTROL_MODE_DYNAMIC) + && !controlMode.Equals(CONTROL_MODE_RESPONSE) + ) { throw new ArgumentException("invalid control mode: " + controlMode); } @@ -486,7 +510,8 @@ public ChannelUriStringBuilder Reliable(ChannelUri channelUri) /// /// Get the subscription semantics for if loss is acceptable, or not, for a reliable message delivery. /// - /// the subscription semantics for if loss is acceptable, or not, for a reliable message delivery. + /// the subscription semantics for if loss is acceptable, or not, for a reliable message delivery. + /// /// public bool? Reliable() { @@ -494,8 +519,8 @@ public ChannelUriStringBuilder Reliable(ChannelUri channelUri) } /// - /// Set the Time To Live (TTL) for a multicast datagram. Valid values are 0-255 for the number of hops the datagram - /// can progress along. + /// Set the Time To Live (TTL) for a multicast datagram. Valid values are 0-255 for the number of hops the + /// datagram can progress along. /// /// value for a multicast datagram. /// this for a fluent API. @@ -593,8 +618,7 @@ public ChannelUriStringBuilder Mtu(ChannelUri channelUri) long value = SystemUtil.ParseSize(MTU_LENGTH_PARAM_NAME, mtuValue); if (value > int.MaxValue) { - throw new InvalidOperationException(MTU_LENGTH_PARAM_NAME + " " + value + " > " + - int.MaxValue); + throw new InvalidOperationException(MTU_LENGTH_PARAM_NAME + " " + value + " > " + int.MaxValue); } return Mtu((int)value); @@ -648,9 +672,12 @@ public ChannelUriStringBuilder TermLength(ChannelUri channelUri) long value = SystemUtil.ParseSize(TERM_LENGTH_PARAM_NAME, termLengthValue); if (value > int.MaxValue) { - throw new ArgumentException("term length more than max length of " + - LogBufferDescriptor.TERM_MAX_LENGTH + ": length=" + - _termLength); + throw new ArgumentException( + "term length more than max length of " + + LogBufferDescriptor.TERM_MAX_LENGTH + + ": length=" + + _termLength + ); } return TermLength((int)value); @@ -767,8 +794,8 @@ public ChannelUriStringBuilder TermId(ChannelUri channelUri) } /// - /// Set the offset within a term at which a publication will start. This when combined with the term id can establish - /// a starting position. + /// Set the offset within a term at which a publication will start. This when combined with the term id can + /// establish a starting position. /// /// within a term at which a publication will start. /// this for a fluent API. @@ -829,7 +856,6 @@ public ChannelUriStringBuilder TermOffset(ChannelUri channelUri) return _termOffset; } - /// /// Set the session id for a publication or restricted subscription. /// @@ -843,8 +869,8 @@ public ChannelUriStringBuilder SessionId(int? sessionId) } /// - /// Set the session id for a publication or restricted subscription from a formatted string. Supports a format of - /// either a string encoded signed 32-bit number or 'tag:' followed by a signed 64 bit value. + /// Set the session id for a publication or restricted subscription from a formatted string. Supports a format + /// of either a string encoded signed 32-bit number or 'tag:' followed by a signed 64 bit value. /// /// for the publication or a restricted subscription. /// this for a fluent API. @@ -907,10 +933,17 @@ public ChannelUriStringBuilder SessionId(ChannelUri channelUri) /// /// the session id for a publication or restricted subscription. /// - /// @deprecated this method will not correctly handle tagged sessionId values that are outside the range of - /// a signed 32-bit number. If this is called and a tagged value outside this range is currently held in this - /// object, then the result will be the the least significant bits. + /// @deprecated this method will not correctly handle tagged sessionId values that are outside the range of a + /// signed 32-bit number. If this is called and a tagged value outside this range is currently held in this + /// object, then the result will be the the least significant bits. [Obsolete("this method will not correctly handle tagged sessionId values that are outside the range of")] + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S2333:Redundant modifiers should be removed", + // The [Obsolete] above documents that tagged long sessionIds are silently truncated; + // the explicit `unchecked` is defensive against any future flip. + Justification = "Intentional silent-truncation of tagged long sessionIds; see [Obsolete] above." + )] public int? SessionId() { return unchecked((int?)_sessionId); @@ -1164,7 +1197,7 @@ public ChannelUriStringBuilder Tags(ChannelUri channelUri) } /// - /// Set the tags to the specified channel and publication/subscription tag . The + /// Set the tags to the specified channel and publication/subscription tag . The /// publication/subscription may be null. If channel tag is null, then the pubSubTag must be null. /// /// optional value for the channel tag. @@ -1306,8 +1339,10 @@ public ChannelUriStringBuilder FlowControl(string flowControl) /// specified in the MediaDriver.Context will be used instead. /// /// receiver tag for this stream. - /// group size required to allow publications for this channel to be moved to connected status. - /// timeout receivers, default is ns, but allows suffixing of time units (e.g. 5s). + /// group size required to allow publications for this channel to be moved to + /// connected status. + /// timeout receivers, default is ns, but allows suffixing of time units (e.g. 5s). + /// /// this for fluent API. public ChannelUriStringBuilder TaggedFlowControl(long? groupTag, int? minGroupSize, string timeout) { @@ -1340,8 +1375,10 @@ public ChannelUriStringBuilder TaggedFlowControl(long? groupTag, int? minGroupSi /// Set min flow control settings to be used on a stream. All specified values may be null and the default /// specified in the MediaDriver.Context will be used instead. /// - /// group size required to allow publications for this stream to be moved to connected status. - /// timeout receivers, default is ns, but allows suffixing of time units (e.g. 5s). + /// group size required to allow publications for this stream to be moved to + /// connected status. + /// timeout receivers, default is ns, but allows suffixing of time units (e.g. 5s). + /// /// this for fluent API. public ChannelUriStringBuilder MinFlowControl(int? minGroupSize, string timeout) { @@ -1475,7 +1512,8 @@ public ChannelUriStringBuilder Rejoin(ChannelUri channelUri) /// /// Set the publication semantics for whether the presence of spy subscriptions simulate a connection. /// - /// true if the presence of spy subscriptions simulate a connection. + /// true if the presence of spy subscriptions simulate a connection. + /// /// this for a fluent API. /// public ChannelUriStringBuilder SpiesSimulateConnection(bool? spiesSimulateConnection) @@ -1485,8 +1523,8 @@ public ChannelUriStringBuilder SpiesSimulateConnection(bool? spiesSimulateConnec } /// - /// Set the publication semantics for whether the presence of spy subscriptions simulate a connection to be what is in - /// the which may be null. + /// Set the publication semantics for whether the presence of spy subscriptions simulate a connection to be what + /// is in the which may be null. /// /// to read the value from. /// this for a fluent API. @@ -1531,8 +1569,9 @@ public ChannelUriStringBuilder InitialPosition(long position, int initialTermId, if (0 != (position & (FRAME_ALIGNMENT - 1))) { - throw new ArgumentException("invalid position=" + position + " does not have frame alignment=" + - FRAME_ALIGNMENT); + throw new ArgumentException( + "invalid position=" + position + " does not have frame alignment=" + FRAME_ALIGNMENT + ); } int bitsToShift = LogBufferDescriptor.PositionBitsToShift(termLength); @@ -1606,8 +1645,8 @@ public ChannelUriStringBuilder SocketRcvbufLength(int? socketRcvbufLength) } /// - /// Set the underlying OS receive buffer length from an existing , which may have a null value for - /// this field. + /// Set the underlying OS receive buffer length from an existing , which may have a + /// null value for this field. /// /// to read the value from. /// this for a fluent API. @@ -1655,7 +1694,8 @@ public ChannelUriStringBuilder ReceiverWindowLength(int? receiverWindowLength) } /// - /// Set the flow control initial receiver window length for this channel from an existing , + /// Set the flow control initial receiver window length for this channel from an existing + /// , /// which may have a null value for this field. /// /// to read the value from. @@ -1692,11 +1732,11 @@ public ChannelUriStringBuilder ReceiverWindowLength(ChannelUri channelUri) } /// - /// Offset into a message to store the media receive timestamp. May also be the special value 'reserved' which means - /// to store the timestamp in the reserved value field. + /// Offset into a message to store the media receive timestamp. May also be the special value 'reserved' which + /// means to store the timestamp in the reserved value field. /// - /// current mediaReceiveTimestampOffset value either as string representation of an integer index or the - /// special value 'reserved' + /// current mediaReceiveTimestampOffset value either as string representation of an integer index or + /// the special value 'reserved' /// public string MediaReceiveTimestampOffset() { @@ -1704,12 +1744,13 @@ public string MediaReceiveTimestampOffset() } /// - /// Offset into a message to store the media receive timestamp. May also be the special value 'reserved' which means - /// to store the timestamp in the reserved value field. + /// Offset into a message to store the media receive timestamp. May also be the special value 'reserved' which + /// means to store the timestamp in the reserved value field. /// /// to use as the offset. /// this for a fluent API. - /// if the string is not null and doesn't represent an int or the 'reserved' value. + /// if the string is not null and doesn't represent an int or the + /// 'reserved' value. /// public ChannelUriStringBuilder MediaReceiveTimestampOffset(string timestampOffset) { @@ -1721,19 +1762,22 @@ public ChannelUriStringBuilder MediaReceiveTimestampOffset(string timestampOffse } catch (FormatException) { - throw new ArgumentException("mediaReceiveTimestampOffset must be a number or the value '" + - RESERVED_OFFSET + "' found: " + timestampOffset); + throw new ArgumentException( + "mediaReceiveTimestampOffset must be a number or the value '" + + RESERVED_OFFSET + + "' found: " + + timestampOffset + ); } } - this._mediaReceiveTimestampOffset = timestampOffset; return this; } /// - /// Offset into a message to store the media receive timestamp. May also be the special value 'reserved' which means - /// to store the timestamp in the reserved value field. + /// Offset into a message to store the media receive timestamp. May also be the special value 'reserved' which + /// means to store the timestamp in the reserved value field. /// /// the existing URI to extract the mediaReceiveTimestampOffset from /// this for a fluent API. @@ -1761,7 +1805,8 @@ public string ChannelReceiveTimestampOffset() /// /// to use as the offset. /// this for a fluent API. - /// if the string doesn't represent an int or the 'reserved' value. + /// if the string doesn't represent an int or the 'reserved' value. + /// /// public ChannelUriStringBuilder ChannelReceiveTimestampOffset(string timestampOffset) { @@ -1773,8 +1818,12 @@ public ChannelUriStringBuilder ChannelReceiveTimestampOffset(string timestampOff } catch (FormatException) { - throw new ArgumentException("channelReceiveTimestampOffset must be a number or the value '" + - RESERVED_OFFSET + "' found: " + timestampOffset); + throw new ArgumentException( + "channelReceiveTimestampOffset must be a number or the value '" + + RESERVED_OFFSET + + "' found: " + + timestampOffset + ); } } @@ -1791,18 +1840,18 @@ public ChannelUriStringBuilder ChannelReceiveTimestampOffset(string timestampOff /// public ChannelUriStringBuilder ChannelReceiveTimestampOffset(ChannelUri channelUri) { - return ChannelReceiveTimestampOffset( - channelUri.Get(CHANNEL_RECEIVE_TIMESTAMP_OFFSET_PARAM_NAME)); + return ChannelReceiveTimestampOffset(channelUri.Get(CHANNEL_RECEIVE_TIMESTAMP_OFFSET_PARAM_NAME)); } /// - /// Offset into a message to store the channel send timestamp. May also be the special value 'reserved' which means - /// to store the timestamp in the reserved value field. + /// Offset into a message to store the channel send timestamp. May also be the special value 'reserved' which + /// means to store the timestamp in the reserved value field. /// /// to use as the offset. /// /// this for a fluent API. - /// if the string is not null doesn't represent an int or the 'reserved' value. + /// if the string is not null doesn't represent an int or the 'reserved' + /// value. /// public ChannelUriStringBuilder ChannelSendTimestampOffset(string timestampOffset) { @@ -1814,8 +1863,12 @@ public ChannelUriStringBuilder ChannelSendTimestampOffset(string timestampOffset } catch (FormatException) { - throw new ArgumentException("channelSendTimestampOffset must be a number or the value '" + - RESERVED_OFFSET + "' found: " + timestampOffset); + throw new ArgumentException( + "channelSendTimestampOffset must be a number or the value '" + + RESERVED_OFFSET + + "' found: " + + timestampOffset + ); } } @@ -1824,8 +1877,8 @@ public ChannelUriStringBuilder ChannelSendTimestampOffset(string timestampOffset } /// - /// Offset into a message to store the channel send timestamp. May also be the special value 'reserved' which means - /// to store the timestamp in the reserved value field. + /// Offset into a message to store the channel send timestamp. May also be the special value 'reserved' which + /// means to store the timestamp in the reserved value field. /// /// the existing URI to extract the channelSendTimestampOffset from. /// this for a fluent API. @@ -1836,11 +1889,11 @@ public ChannelUriStringBuilder ChannelSendTimestampOffset(ChannelUri channelUri) } /// - /// Offset into a message to store the channel send timestamp. May also be the special value 'reserved' which means - /// to store the timestamp in the reserved value field. + /// Offset into a message to store the channel send timestamp. May also be the special value 'reserved' which + /// means to store the timestamp in the reserved value field. /// - /// current sendTimestampOffset value either as string representation of an integer index or the special - /// value 'reserved'. + /// current sendTimestampOffset value either as string representation of an integer index or the + /// special value 'reserved'. /// public string ChannelSendTimestampOffset() { @@ -1860,8 +1913,8 @@ public ChannelUriStringBuilder ResponseEndpoint(string responseEndpoint) } /// - /// Set the response endpoint to be used for a response channel subscription or publication by extracting it from the - /// ChannelUri. + /// Set the response endpoint to be used for a response channel subscription or publication by extracting it + /// from the ChannelUri. /// /// the existing URI to extract the responseEndpoint from. /// this for a fluent API. @@ -1882,8 +1935,8 @@ public string ResponseEndpoint() } /// - /// Get the correlation id from the image received on the response "server's" subscription to be used by a response - /// publication. + /// Get the correlation id from the image received on the response "server's" subscription to be used by a + /// response publication. /// /// correlation id of an image from the response "server's" subscription. /// @@ -1893,10 +1946,11 @@ public string ResponseCorrelationId() } /// - /// Set the correlation id from the image received on the response "server's" subscription to be used by a response - /// publication. + /// Set the correlation id from the image received on the response "server's" subscription to be used by a + /// response publication. /// - /// correlation id of an image from the response "server's" subscription. + /// correlation id of an image from the response "server's" subscription. + /// /// this for a fluent API. /// public ChannelUriStringBuilder ResponseCorrelationId(long? responseCorrelationId) @@ -1906,10 +1960,11 @@ public ChannelUriStringBuilder ResponseCorrelationId(long? responseCorrelationId } /// - /// Set the correlation id from the image received on the response "server's" subscription to be used by a response - /// publication. + /// Set the correlation id from the image received on the response "server's" subscription to be used by a + /// response publication. /// - /// correlation id of an image from the response "server's" subscription. + /// correlation id of an image from the response "server's" subscription. + /// /// this for a fluent API. /// public ChannelUriStringBuilder ResponseCorrelationId(string responseCorrelationId) @@ -1926,8 +1981,11 @@ public ChannelUriStringBuilder ResponseCorrelationId(string responseCorrelationI catch (FormatException) { throw new System.ArgumentException( - "responseCorrelationId must be a number greater than or equal to -1, or the value '" + - PROTOTYPE_CORRELATION_ID + "' found: " + responseCorrelationId); + "responseCorrelationId must be a number greater than or equal to -1, or the value '" + + PROTOTYPE_CORRELATION_ID + + "' found: " + + responseCorrelationId + ); } } @@ -1936,8 +1994,8 @@ public ChannelUriStringBuilder ResponseCorrelationId(string responseCorrelationI } /// - /// Set the correlation id from the image received on the response "server's" subscription to be used by a response - /// publication extracted from the channelUri. + /// Set the correlation id from the image received on the response "server's" subscription to be used by a + /// response publication extracted from the channelUri. /// /// the existing URI to extract the responseCorrelationId from. /// this for a fluent API. @@ -1964,11 +2022,11 @@ public ChannelUriStringBuilder NakDelay(string nakDelay) { if (null != nakDelay) { - this.nakDelay = SystemUtil.ParseDuration(NAK_DELAY_PARAM_NAME, nakDelay); + _nakDelay = SystemUtil.ParseDuration(NAK_DELAY_PARAM_NAME, nakDelay); } else { - this.nakDelay = null; + _nakDelay = null; } return this; @@ -1986,7 +2044,7 @@ public ChannelUriStringBuilder NakDelay(long? nakDelayNs) { throw new ArgumentException("`" + NAK_DELAY_PARAM_NAME + "` value cannot be negative: " + nakDelayNs); } - this.nakDelay = nakDelayNs; + _nakDelay = nakDelayNs; return this; } @@ -2008,7 +2066,7 @@ public ChannelUriStringBuilder NakDelay(ChannelUri channelUri) /// public long? NakDelay() { - return nakDelay; + return _nakDelay; } /// @@ -2022,8 +2080,10 @@ public ChannelUriStringBuilder UntetheredWindowLimitTimeout(string timeout) { if (null != timeout) { - _untetheredWindowLimitTimeoutNs = - SystemUtil.ParseDuration(UNTETHERED_WINDOW_LIMIT_TIMEOUT_PARAM_NAME, timeout); + _untetheredWindowLimitTimeoutNs = SystemUtil.ParseDuration( + UNTETHERED_WINDOW_LIMIT_TIMEOUT_PARAM_NAME, + timeout + ); } else { @@ -2125,8 +2185,8 @@ public ChannelUriStringBuilder UntetheredLingerTimeout(ChannelUri channelUri) } /// - /// The timeout for when an untethered subscription is resting after not being able to keep up before it is allowed - /// to rejoin a stream. + /// The timeout for when an untethered subscription is resting after not being able to keep up before it is + /// allowed to rejoin a stream. /// /// specified either in nanoseconds or using a units suffix, e.g. 1ms, 1us. /// this for a fluent API. @@ -2135,32 +2195,32 @@ public ChannelUriStringBuilder UntetheredRestingTimeout(string timeout) { if (null != timeout) { - untetheredRestingTimeoutNs = SystemUtil.ParseDuration(UNTETHERED_RESTING_TIMEOUT_PARAM_NAME, timeout); + _untetheredRestingTimeoutNs = SystemUtil.ParseDuration(UNTETHERED_RESTING_TIMEOUT_PARAM_NAME, timeout); } else { - untetheredRestingTimeoutNs = null; + _untetheredRestingTimeoutNs = null; } return this; } /// - /// The timeout for when an untethered subscription is resting after not being able to keep up before it is allowed - /// to rejoin a stream. + /// The timeout for when an untethered subscription is resting after not being able to keep up before it is + /// allowed to rejoin a stream. /// /// specified either in nanoseconds. /// this for a fluent API. /// public ChannelUriStringBuilder UntetheredRestingTimeoutNs(long? timeout) { - this.untetheredRestingTimeoutNs = timeout; + _untetheredRestingTimeoutNs = timeout; return this; } /// - /// The timeout for when an untethered subscription is resting after not being able to keep up before it is allowed - /// to rejoin a stream. + /// The timeout for when an untethered subscription is resting after not being able to keep up before it is + /// allowed to rejoin a stream. /// /// the existing URI to extract the untetheredRestingTimeout from. /// this for a fluent API. @@ -2172,14 +2232,14 @@ public ChannelUriStringBuilder UntetheredRestingTimeout(ChannelUri channelUri) } /// - /// The timeout for when an untethered subscription is resting after not being able to keep up before it is allowed - /// to rejoin a stream. + /// The timeout for when an untethered subscription is resting after not being able to keep up before it is + /// allowed to rejoin a stream. /// /// the timeout in ns. /// public long? UntetheredRestingTimeoutNs() { - return untetheredRestingTimeoutNs; + return _untetheredRestingTimeoutNs; } /// @@ -2290,8 +2350,8 @@ public ChannelUriStringBuilder PublicationWindowLength(int? publicationWindowLen } /// - /// Set the publication window length for this channel from an existing , - /// which may have a null value for this field. + /// Set the publication window length for this channel from an existing , which may + /// have a null value for this field. /// /// to read the value from. /// this for a fluent API. @@ -2334,7 +2394,6 @@ public string Build() { _sb.Length = 0; - if (!string.IsNullOrEmpty(_prefix)) { _sb.Append(_prefix).Append(':'); @@ -2375,24 +2434,22 @@ public string Build() AppendSize(_sb, SOCKET_RCVBUF_PARAM_NAME, _socketRcvbufLength); AppendSize(_sb, RECEIVER_WINDOW_LENGTH_PARAM_NAME, _receiverWindowLength); AppendParameter(_sb, MEDIA_RCV_TIMESTAMP_OFFSET_PARAM_NAME, _mediaReceiveTimestampOffset); - AppendParameter(_sb, CHANNEL_RECEIVE_TIMESTAMP_OFFSET_PARAM_NAME, - _channelReceiveTimestampOffset); + AppendParameter(_sb, CHANNEL_RECEIVE_TIMESTAMP_OFFSET_PARAM_NAME, _channelReceiveTimestampOffset); AppendParameter(_sb, CHANNEL_SEND_TIMESTAMP_OFFSET_PARAM_NAME, _channelSendTimestampOffset); AppendParameter(_sb, RESPONSE_ENDPOINT_PARAM_NAME, _responseEndpoint); AppendParameter(_sb, RESPONSE_CORRELATION_ID_PARAM_NAME, _responseCorrelationId); - AppendDuration(_sb, NAK_DELAY_PARAM_NAME, nakDelay); + AppendDuration(_sb, NAK_DELAY_PARAM_NAME, _nakDelay); AppendDuration(_sb, UNTETHERED_WINDOW_LIMIT_TIMEOUT_PARAM_NAME, _untetheredWindowLimitTimeoutNs); AppendDuration(_sb, UNTETHERED_LINGER_TIMEOUT_PARAM_NAME, _untetheredLingerTimeoutNs); - AppendDuration(_sb, UNTETHERED_RESTING_TIMEOUT_PARAM_NAME, untetheredRestingTimeoutNs); + AppendDuration(_sb, UNTETHERED_RESTING_TIMEOUT_PARAM_NAME, _untetheredRestingTimeoutNs); AppendParameter(_sb, MAX_RESEND_PARAM_NAME, _maxResend); AppendParameter(_sb, STREAM_ID_PARAM_NAME, _streamId); AppendSize(_sb, PUBLICATION_WINDOW_LENGTH_PARAM_NAME, _publicationWindowLength); - char lastChar = _sb[_sb.Length - 1]; if (lastChar == '|' || lastChar == '?') { - _sb.Length = _sb.Length - 1; + _sb.Length--; } return _sb.ToString(); @@ -2408,7 +2465,11 @@ private static void AppendParameter(StringBuilder sb, String paramName, object p private static string FormatValue(object value) { - if (value is bool b) return b ? "true" : "false"; + if (value is bool b) + { + return b ? "true" : "false"; + } + return value.ToString(); } @@ -2438,4 +2499,4 @@ private static string PrefixTag(bool isTagged, long? value) return isTagged ? TAG_PREFIX + value : value.ToString(); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/ClientConductor.cs b/src/Adaptive.Aeron/ClientConductor.cs index a2e62601..5454b883 100644 --- a/src/Adaptive.Aeron/ClientConductor.cs +++ b/src/Adaptive.Aeron/ClientConductor.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,19 +35,19 @@ namespace Adaptive.Aeron { /// - /// Client conductor receives responses and notifications from Media Driver and acts on them in addition to forwarding - /// commands from the Client API to the Media Driver conductor. + /// Client conductor receives responses and notifications from Media Driver and acts on them in addition to + /// forwarding commands from the Client API to the Media Driver conductor. /// internal class ClientConductor : IAgent { - private const long NO_CORRELATION_ID = NULL_VALUE; - private static readonly long EXPLICIT_CLOSE_LINGER_NS = 1000000000; + private const long NoCorrelationId = NULL_VALUE; + private static readonly long ExplicitCloseLingerNs = 1000000000; - internal readonly int CONTROL_PROTOCOL_VERSION_WITH_NEXT_AVAILABLE_SESSION_ID_COMMAND = + internal static readonly int ControlProtocolVersionWithNextAvailableSessionIdCommand = SemanticVersion.Compose(1, 0, 0); - internal readonly int controlProtocolVersion; - private readonly long idleSleepDurationNs; + internal readonly int _controlProtocolVersion; + private readonly long _idleSleepDurationNs; private readonly long _keepAliveIntervalNs; private readonly long _driverTimeoutMs; private readonly long _driverTimeoutNs; @@ -93,9 +93,9 @@ internal class ClientConductor : IAgent private readonly AgentInvoker _driverAgentInvoker; private readonly UnsafeBuffer _counterValuesBuffer; private readonly CountersReader _countersReader; - private readonly PublicationErrorFrame publicationErrorFrame = new PublicationErrorFrame(); + private readonly PublicationErrorFrame _publicationErrorFrame = new PublicationErrorFrame(); private AtomicCounter _heartbeatTimestamp; - private long lastResponseValue; + private long _lastResponseValue; // For testing purposes only internal ClientConductor() @@ -113,19 +113,26 @@ internal ClientConductor(Context ctx, Aeron aeron) _awaitingIdleStrategy = ctx.AwaitingIdleStrategy(); _driverProxy = ctx.DriverProxy(); _logBuffersFactory = ctx.LogBuffersFactory(); - idleSleepDurationNs = ctx.IdleSleepDurationNs(); + _idleSleepDurationNs = ctx.IdleSleepDurationNs(); _keepAliveIntervalNs = ctx.KeepAliveIntervalNs(); _driverTimeoutMs = ctx.DriverTimeoutMs(); _driverTimeoutNs = _driverTimeoutMs * 1000000; _interServiceTimeoutNs = ctx.InterServiceTimeoutNs(); _defaultAvailableImageHandler = ctx.AvailableImageHandler(); _defaultUnavailableImageHandler = ctx.UnavailableImageHandler(); - _driverEventsAdapter = - new DriverEventsAdapter(ctx.ClientId(), ctx.ToClientBuffer(), this, _asyncCommandIdSet); + _driverEventsAdapter = new DriverEventsAdapter( + ctx.ClientId(), + ctx.ToClientBuffer(), + this, + _asyncCommandIdSet + ); _driverAgentInvoker = ctx.DriverAgentInvoker(); _counterValuesBuffer = ctx.CountersValuesBuffer(); - _countersReader = - new CountersReader(ctx.CountersMetaDataBuffer(), ctx.CountersValuesBuffer(), Encoding.ASCII); + _countersReader = new CountersReader( + ctx.CountersMetaDataBuffer(), + ctx.CountersValuesBuffer(), + Encoding.ASCII + ); if (null != ctx.AvailableCounterHandler()) { @@ -142,19 +149,23 @@ internal ClientConductor(Context ctx, Aeron aeron) _closeHandlersByIdMap.Put(aeron.NextCorrelationId(), ctx.CloseHandler()); } - if (RECORD_ALLOCATED == - _countersReader.GetCounterState(AeronCounters.SYSTEM_COUNTER_ID_CONTROL_PROTOCOL_VERSION) && - AeronCounters.DRIVER_SYSTEM_COUNTER_TYPE_ID == - _countersReader.GetCounterTypeId(AeronCounters.SYSTEM_COUNTER_ID_CONTROL_PROTOCOL_VERSION) && - AeronCounters.SYSTEM_COUNTER_ID_CONTROL_PROTOCOL_VERSION == - _countersReader.GetCounterRegistrationId(AeronCounters.SYSTEM_COUNTER_ID_CONTROL_PROTOCOL_VERSION)) + if ( + RECORD_ALLOCATED + == _countersReader.GetCounterState(AeronCounters.SYSTEM_COUNTER_ID_CONTROL_PROTOCOL_VERSION) + && AeronCounters.DRIVER_SYSTEM_COUNTER_TYPE_ID + == _countersReader.GetCounterTypeId(AeronCounters.SYSTEM_COUNTER_ID_CONTROL_PROTOCOL_VERSION) + && AeronCounters.SYSTEM_COUNTER_ID_CONTROL_PROTOCOL_VERSION + == _countersReader.GetCounterRegistrationId( + AeronCounters.SYSTEM_COUNTER_ID_CONTROL_PROTOCOL_VERSION + ) + ) { - controlProtocolVersion = - (int)_countersReader.GetCounterValue(AeronCounters.SYSTEM_COUNTER_ID_CONTROL_PROTOCOL_VERSION); + _controlProtocolVersion = (int) + _countersReader.GetCounterValue(AeronCounters.SYSTEM_COUNTER_ID_CONTROL_PROTOCOL_VERSION); } else { - controlProtocolVersion = 0; + _controlProtocolVersion = 0; } long nowNs = _nanoClock.NanoTime(); @@ -231,7 +242,7 @@ public int DoWork() throw new AgentTerminationException(); } - workCount = Service(NO_CORRELATION_ID); + workCount = Service(NoCorrelationId); } finally { @@ -289,20 +300,23 @@ internal void OnChannelEndpointError(long correlationId, string message) HandleError(new ChannelEndpointException(statusIndicatorId, message)); } } - else if (resource is Publication publication) + else if (resource is Publication publication && publication.ChannelStatusId == statusIndicatorId) { - if (publication.ChannelStatusId == statusIndicatorId) - { - HandleError(new ChannelEndpointException(statusIndicatorId, message)); - } + HandleError(new ChannelEndpointException(statusIndicatorId, message)); } } if (_asyncCommandIdSet.Remove(correlationId)) { _stashedChannelByRegistrationId.Remove(correlationId); - HandleError(new RegistrationException( - correlationId, (int)ErrorCode.CHANNEL_ENDPOINT_ERROR, ErrorCode.CHANNEL_ENDPOINT_ERROR, message)); + HandleError( + new RegistrationException( + correlationId, + (int)ErrorCode.CHANNEL_ENDPOINT_ERROR, + ErrorCode.CHANNEL_ENDPOINT_ERROR, + message + ) + ); } } @@ -315,8 +329,8 @@ internal void OnPublicationError(PublicationErrorFrameFlyweight errorFrameFlywei Publication publication = (Publication)resource; if (publication.OriginalRegistrationId == errorFrameFlyweight.RegistrationId()) { - publicationErrorFrame.Set(errorFrameFlyweight); - _ctx.PublicationErrorFrameHandler().OnPublicationError(publicationErrorFrame); + _publicationErrorFrame.Set(errorFrameFlyweight); + _ctx.PublicationErrorFrameHandler().OnPublicationError(_publicationErrorFrame); } } } @@ -329,7 +343,8 @@ internal void OnNewPublication( int sessionId, int publicationLimitId, int statusIndicatorId, - string logFileName) + string logFileName + ) { string stashedChannel = _stashedChannelByRegistrationId.Remove(correlationId); var publication = new ConcurrentPublication( @@ -354,12 +369,16 @@ internal void OnNewExclusivePublication( int sessionId, int publicationLimitId, int statusIndicatorId, - string logFileName) + string logFileName + ) { if (correlationId != registrationId) { - HandleError(new InvalidOperationException("correlationId=" + correlationId + " registrationId=" + - registrationId)); + HandleError( + new InvalidOperationException( + "correlationId=" + correlationId + " registrationId=" + registrationId + ) + ); } string stashedChannel = _stashedChannelByRegistrationId.Remove(correlationId); @@ -385,7 +404,7 @@ internal void OnNewSubscription(long correlationId, int statusIndicatorId) if (resource is PendingSubscription) { - subscription = ((PendingSubscription)resource).Subscription; + subscription = ((PendingSubscription)resource)._subscription; _resourceByRegIdMap.Put(correlationId, subscription); } else @@ -402,7 +421,8 @@ internal void OnAvailableImage( long subscriptionRegistrationId, int subscriberPositionId, string logFileName, - string sourceIdentity) + string sourceIdentity + ) { Subscription subscription = (Subscription)_resourceByRegIdMap.Get(subscriptionRegistrationId); if (null != subscription) @@ -414,7 +434,8 @@ internal void OnAvailableImage( LogBuffers(correlationId, logFileName, subscription.Channel), _ctx.SubscriberErrorHandler(), sourceIdentity, - correlationId); + correlationId + ); subscription.AddImage(image); @@ -499,7 +520,7 @@ internal void HandleError(Exception ex) internal int NextSessionId(int streamId) { - if (controlProtocolVersion >= CONTROL_PROTOCOL_VERSION_WITH_NEXT_AVAILABLE_SESSION_ID_COMMAND) + if (_controlProtocolVersion >= ControlProtocolVersionWithNextAvailableSessionIdCommand) { _clientLock.Lock(); try @@ -507,11 +528,11 @@ internal int NextSessionId(int streamId) EnsureActive(); EnsureNotReentrant(); - lastResponseValue = NULL_VALUE; + _lastResponseValue = NULL_VALUE; long correlationId = _driverProxy.NextAvailableSessionId(streamId); AwaitResponse(correlationId); - return (int)lastResponseValue; + return (int)_lastResponseValue; } finally { @@ -614,7 +635,7 @@ internal ConcurrentPublication GetPublication(long registrationId) if (_asyncCommandIdSet.Contains(registrationId)) { - Service(NO_CORRELATION_ID); + Service(NoCorrelationId); } return ResourceOrThrow(registrationId); @@ -635,7 +656,7 @@ internal ExclusivePublication GetExclusivePublication(long registrationId) if (_asyncCommandIdSet.Contains(registrationId)) { - Service(NO_CORRELATION_ID); + Service(NoCorrelationId); } return ResourceOrThrow(registrationId); @@ -664,10 +685,14 @@ internal void RemovePublication(Publication publication) if (publication == _resourceByRegIdMap.Remove(publication.RegistrationId)) { - ReleaseLogBuffers(publication.LogBuffers, publication.OriginalRegistrationId, - EXPLICIT_CLOSE_LINGER_NS); - _asyncCommandIdSet.Add(_driverProxy.RemovePublication(publication.RegistrationId, - publication.revokeOnClose)); + ReleaseLogBuffers( + publication.LogBuffers, + publication.OriginalRegistrationId, + ExplicitCloseLingerNs + ); + _asyncCommandIdSet.Add( + _driverProxy.RemovePublication(publication.RegistrationId, publication._revokeOnClose) + ); } } } @@ -701,9 +726,12 @@ internal void RemovePublication(long publicationRegistrationId) { _resourceByRegIdMap.Remove(publicationRegistrationId); publication.InternalClose(); - ReleaseLogBuffers(publication.LogBuffers, publication.OriginalRegistrationId, - EXPLICIT_CLOSE_LINGER_NS); - revokeOnClose = publication.revokeOnClose; + ReleaseLogBuffers( + publication.LogBuffers, + publication.OriginalRegistrationId, + ExplicitCloseLingerNs + ); + revokeOnClose = publication._revokeOnClose; } if (_asyncCommandIdSet.Remove(publicationRegistrationId) || null != publication) @@ -723,8 +751,12 @@ internal Subscription AddSubscription(string channel, int streamId) return AddSubscription(channel, streamId, _defaultAvailableImageHandler, _defaultUnavailableImageHandler); } - internal Subscription AddSubscription(string channel, int streamId, AvailableImageHandler availableImageHandler, - UnavailableImageHandler unavailableImageHandler) + internal Subscription AddSubscription( + string channel, + int streamId, + AvailableImageHandler availableImageHandler, + UnavailableImageHandler unavailableImageHandler + ) { _clientLock.Lock(); try @@ -733,8 +765,14 @@ internal Subscription AddSubscription(string channel, int streamId, AvailableIma EnsureNotReentrant(); long correlationId = _driverProxy.AddSubscription(channel, streamId); - Subscription subscription = new Subscription(this, channel, streamId, correlationId, - availableImageHandler, unavailableImageHandler); + Subscription subscription = new Subscription( + this, + channel, + streamId, + correlationId, + availableImageHandler, + unavailableImageHandler + ); _resourceByRegIdMap.Put(correlationId, subscription); AwaitResponse(correlationId); @@ -749,12 +787,20 @@ internal Subscription AddSubscription(string channel, int streamId, AvailableIma internal long AsyncAddSubscription(string channel, int streamId) { - return AsyncAddSubscription(channel, streamId, _defaultAvailableImageHandler, - _defaultUnavailableImageHandler); + return AsyncAddSubscription( + channel, + streamId, + _defaultAvailableImageHandler, + _defaultUnavailableImageHandler + ); } - internal long AsyncAddSubscription(string channel, int streamId, AvailableImageHandler availableImageHandler, - UnavailableImageHandler unavailableImageHandler) + internal long AsyncAddSubscription( + string channel, + int streamId, + AvailableImageHandler availableImageHandler, + UnavailableImageHandler unavailableImageHandler + ) { _clientLock.Lock(); try @@ -763,8 +809,16 @@ internal long AsyncAddSubscription(string channel, int streamId, AvailableImageH EnsureNotReentrant(); long registrationId = _driverProxy.AddSubscription(channel, streamId); - PendingSubscription subscription = new PendingSubscription(new Subscription(this, channel, streamId, - registrationId, availableImageHandler, unavailableImageHandler)); + PendingSubscription subscription = new PendingSubscription( + new Subscription( + this, + channel, + streamId, + registrationId, + availableImageHandler, + unavailableImageHandler + ) + ); _resourceByRegIdMap.Put(registrationId, subscription); _asyncCommandIdSet.Add(registrationId); @@ -787,7 +841,7 @@ internal Subscription GetSubscription(long registrationId) if (_asyncCommandIdSet.Contains(registrationId)) { - Service(NO_CORRELATION_ID); + Service(NoCorrelationId); } return ResourceOrThrow(registrationId); @@ -812,7 +866,7 @@ internal void RemoveSubscription(Subscription subscription) { EnsureNotReentrant(); - subscription.InternalClose(EXPLICIT_CLOSE_LINGER_NS); + subscription.InternalClose(ExplicitCloseLingerNs); long registrationId = subscription.RegistrationId; if (subscription == _resourceByRegIdMap.Remove(registrationId)) { @@ -844,13 +898,14 @@ internal void RemoveSubscription(long subscriptionRegistrationId) throw new AeronException("registration id is not a Subscription: " + resource.GetType().Name); } - Subscription subscription = resource is PendingSubscription - ? ((PendingSubscription)resource).Subscription - : (Subscription)resource; + Subscription subscription = + resource is PendingSubscription + ? ((PendingSubscription)resource)._subscription + : (Subscription)resource; if (null != subscription) { _resourceByRegIdMap.Remove(subscriptionRegistrationId); - subscription.InternalClose(EXPLICIT_CLOSE_LINGER_NS); + subscription.InternalClose(ExplicitCloseLingerNs); } if (_asyncCommandIdSet.Remove(subscriptionRegistrationId) || null != subscription) @@ -930,7 +985,6 @@ internal void RemoveDestination(long publicationRegistrationId, long destination } } - internal void AddRcvDestination(long registrationId, string endpointChannel) { _clientLock.Lock(); @@ -1017,7 +1071,6 @@ internal long AsyncRemoveDestination(long registrationId, long destinationRegist } } - internal long AsyncAddRcvDestination(long registrationId, string endpointChannel) { _clientLock.Lock(); @@ -1068,7 +1121,7 @@ internal bool IsCommandActive(long correlationId) if (_asyncCommandIdSet.Contains(correlationId)) { - Service(NO_CORRELATION_ID); + Service(NoCorrelationId); } return _asyncCommandIdSet.Contains(correlationId); @@ -1099,8 +1152,15 @@ internal bool HasActiveCommands() } } - internal Counter AddCounter(int typeId, IDirectBuffer keyBuffer, int keyOffset, int keyLength, - IDirectBuffer labelBuffer, int labelOffset, int labelLength) + internal Counter AddCounter( + int typeId, + IDirectBuffer keyBuffer, + int keyOffset, + int keyLength, + IDirectBuffer labelBuffer, + int labelOffset, + int labelLength + ) { _clientLock.Lock(); try @@ -1118,8 +1178,15 @@ internal Counter AddCounter(int typeId, IDirectBuffer keyBuffer, int keyOffset, throw new ArgumentException("label length out of bounds: " + labelLength); } - long registrationId = _driverProxy.AddCounter(typeId, keyBuffer, keyOffset, keyLength, labelBuffer, - labelOffset, labelLength); + long registrationId = _driverProxy.AddCounter( + typeId, + keyBuffer, + keyOffset, + keyLength, + labelBuffer, + labelOffset, + labelLength + ); AwaitResponse(registrationId); return (Counter)_resourceByRegIdMap.Get(registrationId); @@ -1163,7 +1230,8 @@ internal Counter AddStaticCounter( IDirectBuffer labelBuffer, int labelOffset, int labelLength, - long registrationId) + long registrationId + ) { _clientLock.Lock(); try @@ -1181,8 +1249,16 @@ internal Counter AddStaticCounter( throw new ArgumentException("label length out of bounds: " + labelLength); } - long correlationId = _driverProxy.AddStaticCounter(typeId, keyBuffer, keyOffset, keyLength, labelBuffer, - labelOffset, labelLength, registrationId); + long correlationId = _driverProxy.AddStaticCounter( + typeId, + keyBuffer, + keyOffset, + keyLength, + labelBuffer, + labelOffset, + labelLength, + registrationId + ); AwaitResponse(correlationId); @@ -1248,7 +1324,8 @@ internal long AsyncAddCounter( int keyLength, IDirectBuffer labelBuffer, int labelOffset, - int labelLength) + int labelLength + ) { _clientLock.Lock(); try @@ -1266,8 +1343,15 @@ internal long AsyncAddCounter( throw new System.ArgumentException("label length out of bounds: " + labelLength); } - long registrationId = _driverProxy.AddCounter(typeId, keyBuffer, keyOffset, keyLength, labelBuffer, - labelOffset, labelLength); + long registrationId = _driverProxy.AddCounter( + typeId, + keyBuffer, + keyOffset, + keyLength, + labelBuffer, + labelOffset, + labelLength + ); _asyncCommandIdSet.Add(registrationId); return registrationId; } @@ -1308,7 +1392,8 @@ internal long AsyncAddStaticCounter( IDirectBuffer labelBuffer, int labelOffset, int labelLength, - long registrationId) + long registrationId + ) { _clientLock.Lock(); try @@ -1326,8 +1411,16 @@ internal long AsyncAddStaticCounter( throw new System.ArgumentException("label length out of bounds: " + labelLength); } - long correlationId = _driverProxy.AddStaticCounter(typeId, keyBuffer, keyOffset, keyLength, labelBuffer, - labelOffset, labelLength, registrationId); + long correlationId = _driverProxy.AddStaticCounter( + typeId, + keyBuffer, + keyOffset, + keyLength, + labelBuffer, + labelOffset, + labelLength, + registrationId + ); _asyncCommandIdSet.Add(correlationId); return correlationId; } @@ -1383,7 +1476,7 @@ internal Counter GetCounter(long registrationId) if (_asyncCommandIdSet.Contains(registrationId)) { - Service(NO_CORRELATION_ID); + Service(NoCorrelationId); } return ResourceOrThrow(registrationId); @@ -1444,8 +1537,11 @@ internal bool RemoveAvailableCounterHandler(AvailableCounterHandler handler) EnsureNotReentrant(); - foreach (var keyValuePair in _availableCounterHandlers.KeyValuePairs.Where(kvp => kvp.Value == handler) - .ToList()) + foreach ( + var keyValuePair in _availableCounterHandlers + .KeyValuePairs.Where(kvp => kvp.Value == handler) + .ToList() + ) { _availableCounterHandlers.Remove(keyValuePair.Key); return true; @@ -1501,9 +1597,11 @@ internal bool RemoveUnavailableCounterHandler(UnavailableCounterHandler handler) EnsureNotReentrant(); - foreach (var keyValuePair in _unavailableCounterHandlers.KeyValuePairs - .Where(kvp => kvp.Value == handler) - .ToList()) + foreach ( + var keyValuePair in _unavailableCounterHandlers + .KeyValuePairs.Where(kvp => kvp.Value == handler) + .ToList() + ) { _unavailableCounterHandlers.Remove(keyValuePair.Key); return true; @@ -1560,10 +1658,9 @@ internal bool RemoveCloseHandler(Action handler) EnsureNotReentrant(); - - foreach (var keyValuePair in _closeHandlersByIdMap.KeyValuePairs - .Where(kvp => kvp.Value == handler) - .ToList()) + foreach ( + var keyValuePair in _closeHandlersByIdMap.KeyValuePairs.Where(kvp => kvp.Value == handler).ToList() + ) { _closeHandlersByIdMap.Remove(keyValuePair.Key); return true; @@ -1608,9 +1705,7 @@ internal void ReleaseLogBuffers(LogBuffers logBuffers, long registrationId, long _lingeringLogBuffers.Add(logBuffers); _logBuffersByIdMap.Remove(registrationId); - long lingerNs = NULL_VALUE == lingerDurationNs - ? _ctx.ResourceLingerDurationNs() - : lingerDurationNs; + long lingerNs = NULL_VALUE == lingerDurationNs ? _ctx.ResourceLingerDurationNs() : lingerDurationNs; logBuffers.LingerDeadlineNs(_nanoClock.NanoTime() + lingerNs); } } @@ -1657,7 +1752,8 @@ internal void OnStaticCounter(long correlationId, int counterId) CountersReader countersReader = _aeron.CountersReader; _resourceByRegIdMap.Put( correlationId, - new Counter(countersReader, countersReader.GetCounterRegistrationId(counterId), counterId)); + new Counter(countersReader, countersReader.GetCounterRegistrationId(counterId), counterId) + ); } internal void RejectImage(long correlationId, long position, string reason) @@ -1679,7 +1775,7 @@ internal void RejectImage(long correlationId, long position, string reason) internal void OnNextAvailableSessionId(int nextSessionId) { - lastResponseValue = nextSessionId; + _lastResponseValue = nextSessionId; } private void EnsureActive() @@ -1721,9 +1817,17 @@ private LogBuffers LogBuffers(long registrationId, string logFileName, String ch } catch (Exception ex) { - throw new AeronException("[clientId=" + _ctx.ClientId() + ", clientName=" + _ctx.ClientName() + - "] Failed to map log buffer with registrationId=" + registrationId + - ", channel=" + channel, ex); + throw new AeronException( + "[clientId=" + + _ctx.ClientId() + + ", clientName=" + + _ctx.ClientName() + + "] Failed to map log buffer with registrationId=" + + registrationId + + ", channel=" + + channel, + ex + ); } } @@ -1732,7 +1836,6 @@ private LogBuffers LogBuffers(long registrationId, string logFileName, String ch return logBuffers; } - private int Service(long correlationId) { int workCount = 0; @@ -1832,7 +1935,7 @@ private int CheckTimeouts(long nowNs) { int workCount = 0; - if ((_timeOfLastServiceNs + idleSleepDurationNs) - nowNs < 0) + if ((_timeOfLastServiceNs + _idleSleepDurationNs) - nowNs < 0) { CheckServiceInterval(nowNs); _timeOfLastServiceNs = nowNs; @@ -1850,9 +1953,13 @@ private void CheckServiceInterval(long nowNs) { TerminateConductor(); - throw new ConductorServiceTimeoutException("service interval exceeded: timeout=" + - _interServiceTimeoutNs + "ns, actual=" + - (nowNs - _timeOfLastServiceNs) + "ns"); + throw new ConductorServiceTimeoutException( + "service interval exceeded: timeout=" + + _interServiceTimeoutNs + + "ns, actual=" + + (nowNs - _timeOfLastServiceNs) + + "ns" + ); } } @@ -1870,19 +1977,28 @@ private int CheckLiveness(long nowNs) if (NULL_VALUE == lastKeepAliveMs) { throw new DriverTimeoutException( - "MediaDriver (" + _aeron.Ctx.AeronDirectoryName() + ") has been shutdown"); + "MediaDriver (" + _aeron.Ctx.AeronDirectoryName() + ") has been shutdown" + ); } - throw new DriverTimeoutException("MediaDriver (" + _aeron.Ctx.AeronDirectoryName() + - ") keepalive: age=" + (nowMs - lastKeepAliveMs) + "ms > timeout=" + - _driverTimeoutMs + - "ms"); + throw new DriverTimeoutException( + "MediaDriver (" + + _aeron.Ctx.AeronDirectoryName() + + ") keepalive: age=" + + (nowMs - lastKeepAliveMs) + + "ms > timeout=" + + _driverTimeoutMs + + "ms" + ); } if (null == _heartbeatTimestamp) { - int counterId = HeartbeatTimestamp.FindCounterIdByRegistrationId(_countersReader, - HeartbeatTimestamp.HEARTBEAT_TYPE_ID, _ctx.ClientId()); + int counterId = HeartbeatTimestamp.FindCounterIdByRegistrationId( + _countersReader, + HeartbeatTimestamp.HEARTBEAT_TYPE_ID, + _ctx.ClientId() + ); if (NULL_COUNTER_ID != counterId) { @@ -1894,23 +2010,31 @@ private int CheckLiveness(long nowNs) _countersReader.MetaDataBuffer, counterId, " name=" + _ctx.ClientName() - //+ " " + AeronCounters.formatVersionInfo(AeronVersion.VERSION, AeronVersion.GIT_SHA) + //+ " " + AeronCounters.formatVersionInfo(AeronVersion.VERSION, AeronVersion.GIT_SHA) ); _timeOfLastKeepAliveNs = nowNs; } catch (Exception ex) // a race caused by the driver timing out the client { TerminateConductor(); - throw new AeronException("unexpected close of heartbeat timestamp counter: " + counterId, - ex); + throw new AeronException( + "unexpected close of heartbeat timestamp counter: " + counterId, + ex + ); } } } else { int counterId = _heartbeatTimestamp.Id; - if (!HeartbeatTimestamp.IsActive(_countersReader, counterId, HeartbeatTimestamp.HEARTBEAT_TYPE_ID, - _ctx.ClientId())) + if ( + !HeartbeatTimestamp.IsActive( + _countersReader, + counterId, + HeartbeatTimestamp.HEARTBEAT_TYPE_ID, + _ctx.ClientId() + ) + ) { TerminateConductor(); throw new AeronException("unexpected close of heartbeat timestamp counter: " + counterId); @@ -2084,17 +2208,17 @@ private T ResourceOrThrow(long registrationId) private static bool IsClientApiCall(long correlationId) { - return correlationId != NO_CORRELATION_ID; + return correlationId != NoCorrelationId; } sealed class PendingSubscription { - internal readonly Subscription Subscription; + internal readonly Subscription _subscription; internal PendingSubscription(Subscription subscription) { - Subscription = subscription; + _subscription = subscription; } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/CncFileDescriptor.cs b/src/Adaptive.Aeron/CncFileDescriptor.cs index 78a0c480..ce1ecbf2 100644 --- a/src/Adaptive.Aeron/CncFileDescriptor.cs +++ b/src/Adaptive.Aeron/CncFileDescriptor.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,7 @@ namespace Adaptive.Aeron { /// /// Description of the command and control file used between driver and clients - /// + /// /// File Layout ///
     ///  +----------------------------+
@@ -44,7 +44,7 @@ namespace Adaptive.Aeron
     ///  |          Error Log         |
     ///  +----------------------------+
     /// 
- /// + /// /// Metadata Layout ///
     ///  0                   1                   2                   3
@@ -75,6 +75,11 @@ namespace Adaptive.Aeron
     /// +---------------------------------------------------------------+
     /// 
///
+ [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class CncFileDescriptor { /// @@ -131,7 +136,7 @@ public class CncFileDescriptor /// Offset at which the PID value for the driver can be found. /// public static readonly int PID_FIELD_OFFSET; - + /// /// Offset at which the file page size value for the driver can be found. /// @@ -153,8 +158,7 @@ static CncFileDescriptor() TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET = CNC_VERSION_FIELD_OFFSET + SIZE_OF_INT; TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET = TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET + SIZE_OF_INT; COUNTERS_METADATA_BUFFER_LENGTH_FIELD_OFFSET = TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET + SIZE_OF_INT; - COUNTERS_VALUES_BUFFER_LENGTH_FIELD_OFFSET = - COUNTERS_METADATA_BUFFER_LENGTH_FIELD_OFFSET + SIZE_OF_INT; + COUNTERS_VALUES_BUFFER_LENGTH_FIELD_OFFSET = COUNTERS_METADATA_BUFFER_LENGTH_FIELD_OFFSET + SIZE_OF_INT; ERROR_LOG_BUFFER_LENGTH_FIELD_OFFSET = COUNTERS_VALUES_BUFFER_LENGTH_FIELD_OFFSET + SIZE_OF_INT; CLIENT_LIVENESS_TIMEOUT_FIELD_OFFSET = ERROR_LOG_BUFFER_LENGTH_FIELD_OFFSET + SIZE_OF_INT; START_TIMESTAMP_FIELD_OFFSET = CLIENT_LIVENESS_TIMEOUT_FIELD_OFFSET + SIZE_OF_LONG; @@ -265,11 +269,13 @@ public static int PidOffset(int baseOffset) { return baseOffset + PID_FIELD_OFFSET; } - + /// - /// Create the buffer which wraps the area in the CnC file for the metadata about the CnC file itself. + /// Create the buffer which wraps the area in the CnC file for the metadata about the CnC file itself. + ///
/// for the CnC file. - /// the buffer which wraps the area in the CnC file for the metadata about the CnC file itself. + /// the buffer which wraps the area in the CnC file for the metadata about the CnC file itself. + /// public static UnsafeBuffer CreateMetaDataBuffer(MappedByteBuffer buffer) { return new UnsafeBuffer(buffer.Pointer, 0, META_DATA_LENGTH); @@ -280,24 +286,34 @@ public static UnsafeBuffer CreateMetaDataBuffer(MappedByteBuffer buffer) ///
/// for the CnC file. /// within the CnC file. - /// a buffer which wraps the section in the CnC file for the command buffer from clients to the driver. + /// a buffer which wraps the section in the CnC file for the command buffer from clients to the + /// driver. public static UnsafeBuffer CreateToDriverBuffer(MappedByteBuffer buffer, IDirectBuffer metaDataBuffer) { - return new UnsafeBuffer(buffer.Pointer, META_DATA_LENGTH, - metaDataBuffer.GetInt(TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET)); + return new UnsafeBuffer( + buffer.Pointer, + META_DATA_LENGTH, + metaDataBuffer.GetInt(TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET) + ); } /// - /// Create the buffer which wraps the section in the CnC file for the broadcast buffer from the driver to clients. + /// Create the buffer which wraps the section in the CnC file for the broadcast buffer from the driver to + /// clients. /// /// for the CnC file. /// within the CnC file. - /// a buffer which wraps the section in the CnC file for the broadcast buffer from the driver to clients. + /// a buffer which wraps the section in the CnC file for the broadcast buffer from the driver to + /// clients. public static UnsafeBuffer CreateToClientsBuffer(MappedByteBuffer buffer, IDirectBuffer metaDataBuffer) { var offset = META_DATA_LENGTH + metaDataBuffer.GetInt(TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET); - return new UnsafeBuffer(buffer.Pointer, offset, metaDataBuffer.GetInt(TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET)); + return new UnsafeBuffer( + buffer.Pointer, + offset, + metaDataBuffer.GetInt(TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET) + ); } /// @@ -308,12 +324,16 @@ public static UnsafeBuffer CreateToClientsBuffer(MappedByteBuffer buffer, IDirec /// a buffer which wraps the section in the CnC file for the counter's metadata. public static UnsafeBuffer CreateCountersMetaDataBuffer(MappedByteBuffer buffer, IDirectBuffer metaDataBuffer) { - var offset = META_DATA_LENGTH + - metaDataBuffer.GetInt(TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET) + - metaDataBuffer.GetInt(TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET); - - return new UnsafeBuffer(buffer.Pointer, offset, - metaDataBuffer.GetInt(COUNTERS_METADATA_BUFFER_LENGTH_FIELD_OFFSET)); + var offset = + META_DATA_LENGTH + + metaDataBuffer.GetInt(TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET) + + metaDataBuffer.GetInt(TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET); + + return new UnsafeBuffer( + buffer.Pointer, + offset, + metaDataBuffer.GetInt(COUNTERS_METADATA_BUFFER_LENGTH_FIELD_OFFSET) + ); } /// @@ -324,12 +344,17 @@ public static UnsafeBuffer CreateCountersMetaDataBuffer(MappedByteBuffer buffer, /// a buffer which wraps the section in the CnC file for the counter values. public static UnsafeBuffer CreateCountersValuesBuffer(MappedByteBuffer buffer, IDirectBuffer metaDataBuffer) { - var offset = META_DATA_LENGTH + - metaDataBuffer.GetInt(TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET) + - metaDataBuffer.GetInt(TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET) + - metaDataBuffer.GetInt(COUNTERS_METADATA_BUFFER_LENGTH_FIELD_OFFSET); - - return new UnsafeBuffer(buffer.Pointer, offset, metaDataBuffer.GetInt(COUNTERS_VALUES_BUFFER_LENGTH_FIELD_OFFSET)); + var offset = + META_DATA_LENGTH + + metaDataBuffer.GetInt(TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET) + + metaDataBuffer.GetInt(TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET) + + metaDataBuffer.GetInt(COUNTERS_METADATA_BUFFER_LENGTH_FIELD_OFFSET); + + return new UnsafeBuffer( + buffer.Pointer, + offset, + metaDataBuffer.GetInt(COUNTERS_VALUES_BUFFER_LENGTH_FIELD_OFFSET) + ); } /// @@ -340,13 +365,18 @@ public static UnsafeBuffer CreateCountersValuesBuffer(MappedByteBuffer buffer, I /// a buffer which wraps the section in the CnC file for the error log. public static UnsafeBuffer CreateErrorLogBuffer(MappedByteBuffer buffer, IDirectBuffer metaDataBuffer) { - var offset = META_DATA_LENGTH + - metaDataBuffer.GetInt(TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET) + - metaDataBuffer.GetInt(TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET) + - metaDataBuffer.GetInt(COUNTERS_METADATA_BUFFER_LENGTH_FIELD_OFFSET) + - metaDataBuffer.GetInt(COUNTERS_VALUES_BUFFER_LENGTH_FIELD_OFFSET); - - return new UnsafeBuffer(buffer.Pointer, offset, metaDataBuffer.GetInt(ERROR_LOG_BUFFER_LENGTH_FIELD_OFFSET)); + var offset = + META_DATA_LENGTH + + metaDataBuffer.GetInt(TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET) + + metaDataBuffer.GetInt(TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET) + + metaDataBuffer.GetInt(COUNTERS_METADATA_BUFFER_LENGTH_FIELD_OFFSET) + + metaDataBuffer.GetInt(COUNTERS_VALUES_BUFFER_LENGTH_FIELD_OFFSET); + + return new UnsafeBuffer( + buffer.Pointer, + offset, + metaDataBuffer.GetInt(ERROR_LOG_BUFFER_LENGTH_FIELD_OFFSET) + ); } /// @@ -388,7 +418,7 @@ public static int FilePageSize(IDirectBuffer metaDataBuffer) { return metaDataBuffer.GetInt(FILE_PAGE_SIZE_FIELD_OFFSET); } - + /// /// Check the version of the CnC file is compatible with application. /// @@ -398,9 +428,11 @@ public static void CheckVersion(int cncVersion) { if (SemanticVersion.Major(CNC_VERSION) != SemanticVersion.Major(cncVersion)) { - throw new AeronException("CnC version not compatible:" + " app=" + - SemanticVersion.ToString(CNC_VERSION) + " file=" + - SemanticVersion.ToString(cncVersion)); + throw new AeronException( + "CnC version not compatible:" + + " app=" + SemanticVersion.ToString(CNC_VERSION) + + " file=" + SemanticVersion.ToString(cncVersion) + ); } } @@ -413,16 +445,16 @@ public static void CheckVersion(int cncVersion) public static bool IsCncFileLengthSufficient(IDirectBuffer metaDataBuffer, long cncFileLength) { int metadataRequiredLength = - META_DATA_LENGTH + - metaDataBuffer.GetInt(TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET) + - metaDataBuffer.GetInt(TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET) + - metaDataBuffer.GetInt(COUNTERS_METADATA_BUFFER_LENGTH_FIELD_OFFSET) + - metaDataBuffer.GetInt(COUNTERS_VALUES_BUFFER_LENGTH_FIELD_OFFSET) + - metaDataBuffer.GetInt(ERROR_LOG_BUFFER_LENGTH_FIELD_OFFSET); + META_DATA_LENGTH + + metaDataBuffer.GetInt(TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET) + + metaDataBuffer.GetInt(TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET) + + metaDataBuffer.GetInt(COUNTERS_METADATA_BUFFER_LENGTH_FIELD_OFFSET) + + metaDataBuffer.GetInt(COUNTERS_VALUES_BUFFER_LENGTH_FIELD_OFFSET) + + metaDataBuffer.GetInt(ERROR_LOG_BUFFER_LENGTH_FIELD_OFFSET); return cncFileLength >= metadataRequiredLength; } - + /// /// Determines if this path name matches the cnc file name pattern. /// @@ -433,4 +465,4 @@ public static bool IsCncFile(FileInfo path) return path.Name.Equals(CNC_FILE); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/ClientTimeoutFlyweight.cs b/src/Adaptive.Aeron/Command/ClientTimeoutFlyweight.cs index 0eae1bec..257a7992 100644 --- a/src/Adaptive.Aeron/Command/ClientTimeoutFlyweight.cs +++ b/src/Adaptive.Aeron/Command/ClientTimeoutFlyweight.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Agrona; namespace Adaptive.Aeron.Command @@ -20,8 +36,8 @@ public class ClientTimeoutFlyweight /// Length of the header /// public static readonly int LENGTH = BitUtil.SIZE_OF_LONG; - private const int CLIENT_ID_FIELD_OFFSET = 0; - + private const int ClientIdFieldOffset = 0; + private IMutableDirectBuffer _buffer; private int _offset; @@ -45,7 +61,7 @@ public ClientTimeoutFlyweight Wrap(IMutableDirectBuffer buffer, int offset) /// client id field. public long ClientId() { - return _buffer.GetLong(_offset + CLIENT_ID_FIELD_OFFSET); + return _buffer.GetLong(_offset + ClientIdFieldOffset); } /// @@ -55,9 +71,9 @@ public long ClientId() /// this for a fluent API. public ClientTimeoutFlyweight ClientId(long clientId) { - _buffer.PutLong(_offset + CLIENT_ID_FIELD_OFFSET, clientId); + _buffer.PutLong(_offset + ClientIdFieldOffset, clientId); return this; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/ControlProtocolEvents.cs b/src/Adaptive.Aeron/Command/ControlProtocolEvents.cs index 14159c47..892f0c36 100644 --- a/src/Adaptive.Aeron/Command/ControlProtocolEvents.cs +++ b/src/Adaptive.Aeron/Command/ControlProtocolEvents.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,37 +21,45 @@ namespace Adaptive.Aeron.Command /// /// List of events used in the control protocol between client and the media driver. /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class ControlProtocolEvents { /// /// Major version of the control protocol between client and the media driver. - /// + /// /// Since 1.49.0 /// public const int CONTROL_PROTOCOL_MAJOR_VERSION = 1; /// /// Minor version of the control protocol between client and the media driver. - /// + /// /// Since 1.49.0 /// public const int CONTROL_PROTOCOL_MINOR_VERSION = 0; /// /// Patch version of the control protocol between client and the media driver. - /// + /// /// Since 1.49.0 /// public const int CONTROL_PROTOCOL_PATCH_VERSION = 0; /// /// Semantic version of the control protocol between clients and media driver. - /// + /// /// Since 1.49.0 /// public static readonly int ControlProtocolSemanticVersion = SemanticVersion.Compose( - CONTROL_PROTOCOL_MAJOR_VERSION, CONTROL_PROTOCOL_MINOR_VERSION, CONTROL_PROTOCOL_PATCH_VERSION); - + CONTROL_PROTOCOL_MAJOR_VERSION, + CONTROL_PROTOCOL_MINOR_VERSION, + CONTROL_PROTOCOL_PATCH_VERSION + ); + // Clients to Media Driver /// @@ -93,7 +101,7 @@ public class ControlProtocolEvents /// Remove Destination from an existing Publication. /// public const int REMOVE_DESTINATION = 0x08; - + /// /// Add a Counter to the counters-manager. /// @@ -108,7 +116,7 @@ public class ControlProtocolEvents /// Close indication from Client. /// public const int CLIENT_CLOSE = 0x0B; - + /// /// Add Destination for existing Subscription. /// @@ -123,10 +131,10 @@ public class ControlProtocolEvents /// Request the driver to terminate. /// public const int TERMINATE_DRIVER = 0x0E; - + /// - /// Add or return a static Counter, i.e. the Counter that cannot be deleted and whose lifecycle is decoupled from - /// the Aeron instance that created it. + /// Add or return a static Counter, i.e. the Counter that cannot be deleted and whose lifecycle is decoupled + /// from the Aeron instance that created it. /// /// Since 1.45.0 public const int ADD_STATIC_COUNTER = 0x0F; @@ -142,14 +150,14 @@ public class ControlProtocolEvents /// /// Since 1.47.0 public const int REMOVE_DESTINATION_BY_ID = 0x11; - + /// /// Get next available session id from the media driver. - /// + /// /// /// Since 1.49.0 public const int GET_NEXT_AVAILABLE_SESSION_ID = 0x12; - + // Media Driver to Clients /// @@ -161,7 +169,7 @@ public class ControlProtocolEvents /// Subscribed Image buffers are available notification. /// public const int ON_AVAILABLE_IMAGE = 0x0F02; - + /// /// New Publication buffers are ready notification. /// @@ -181,7 +189,7 @@ public class ControlProtocolEvents /// New Exclusive Publication buffers are ready notification. /// public const int ON_EXCLUSIVE_PUBLICATION_READY = 0x0F06; - + /// /// New Subscription is ready notification. /// @@ -196,12 +204,12 @@ public class ControlProtocolEvents /// Inform clients of removal of counter. /// public const int ON_UNAVAILABLE_COUNTER = 0x0F09; - + /// /// Inform clients of client timeout. /// public const int ON_CLIENT_TIMEOUT = 0x0F0A; - + /// /// A response to command. /// @@ -213,11 +221,11 @@ public class ControlProtocolEvents /// /// Since 1.47.0 public const int ON_PUBLICATION_ERROR = 0x0F0C; - + /// /// A response to the command. /// /// Since 1.49.0 public const int ON_NEXT_AVAILABLE_SESSION_ID = 0x0F0D; } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/CorrelatedMessageFlyweight.cs b/src/Adaptive.Aeron/Command/CorrelatedMessageFlyweight.cs index d1b932e4..4c8e5399 100644 --- a/src/Adaptive.Aeron/Command/CorrelatedMessageFlyweight.cs +++ b/src/Adaptive.Aeron/Command/CorrelatedMessageFlyweight.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ namespace Adaptive.Aeron.Command { /// /// Base flyweight that can be extended to track a client request. - /// + /// /// 0 1 2 3 /// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 /// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -38,11 +38,11 @@ public class CorrelatedMessageFlyweight /// Length of the header /// public static readonly int LENGTH = 2 * BitUtil.SIZE_OF_LONG; - private const int CLIENT_ID_FIELD_OFFSET = 0; - internal static readonly int CORRELATION_ID_FIELD_OFFSET = CLIENT_ID_FIELD_OFFSET + BitUtil.SIZE_OF_LONG; + private const int ClientIdFieldOffset = 0; + internal static readonly int CorrelationIdFieldOffset = ClientIdFieldOffset + BitUtil.SIZE_OF_LONG; - internal IMutableDirectBuffer buffer; - internal int offset; + internal IMutableDirectBuffer _buffer; + internal int _offset; /// /// Wrap the buffer at a given offset for updates. @@ -52,8 +52,8 @@ public class CorrelatedMessageFlyweight /// this for a fluent API. public CorrelatedMessageFlyweight Wrap(IMutableDirectBuffer buffer, int offset) { - this.buffer = buffer; - this.offset = offset; + _buffer = buffer; + _offset = offset; return this; } @@ -64,7 +64,7 @@ public CorrelatedMessageFlyweight Wrap(IMutableDirectBuffer buffer, int offset) /// client id field. public long ClientId() { - return buffer.GetLong(offset + CLIENT_ID_FIELD_OFFSET); + return _buffer.GetLong(_offset + ClientIdFieldOffset); } /// @@ -74,7 +74,7 @@ public long ClientId() /// this for a fluent API. public CorrelatedMessageFlyweight ClientId(long clientId) { - buffer.PutLong(offset + CLIENT_ID_FIELD_OFFSET, clientId); + _buffer.PutLong(_offset + ClientIdFieldOffset, clientId); return this; } @@ -85,7 +85,7 @@ public CorrelatedMessageFlyweight ClientId(long clientId) /// correlation id field. public long CorrelationId() { - return buffer.GetLong(offset + CORRELATION_ID_FIELD_OFFSET); + return _buffer.GetLong(_offset + CorrelationIdFieldOffset); } /// @@ -95,11 +95,11 @@ public long CorrelationId() /// for fluent API. public CorrelatedMessageFlyweight CorrelationId(long correlationId) { - buffer.PutLong(offset + CORRELATION_ID_FIELD_OFFSET, correlationId); + _buffer.PutLong(_offset + CorrelationIdFieldOffset, correlationId); return this; } - + /// /// Validate buffer length is long enough for message. /// @@ -109,8 +109,11 @@ public void ValidateLength(int msgTypeId, int length) { if (length < LENGTH) { - throw new ControlProtocolException(ErrorCode.MALFORMED_COMMAND, "command=" + msgTypeId + " too short: length=" + length); + throw new ControlProtocolException( + ErrorCode.MALFORMED_COMMAND, + "command=" + msgTypeId + " too short: length=" + length + ); } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/CounterMessageFlyweight.cs b/src/Adaptive.Aeron/Command/CounterMessageFlyweight.cs index 684308ca..2421736c 100644 --- a/src/Adaptive.Aeron/Command/CounterMessageFlyweight.cs +++ b/src/Adaptive.Aeron/Command/CounterMessageFlyweight.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,6 @@ * limitations under the License. */ -using Adaptive.Aeron.Exceptions; using Adaptive.Agrona; namespace Adaptive.Aeron.Command @@ -23,7 +22,7 @@ namespace Adaptive.Aeron.Command /// Message to denote a new counter. /// /// Note: Layout should be SBE 2.0 compliant so that the label length is aligned. - /// + /// /// /// ///
@@ -52,10 +51,10 @@ namespace Adaptive.Aeron.Command
     /// 
     public class CounterMessageFlyweight : CorrelatedMessageFlyweight
     {
-        private static readonly int COUNTER_TYPE_ID_FIELD_OFFSET = CORRELATION_ID_FIELD_OFFSET + BitUtil.SIZE_OF_LONG;
-        private static readonly int KEY_LENGTH_OFFSET = COUNTER_TYPE_ID_FIELD_OFFSET + BitUtil.SIZE_OF_INT;
-        internal static readonly int KEY_BUFFER_OFFSET = KEY_LENGTH_OFFSET + BitUtil.SIZE_OF_INT;
-        private static readonly int MINIMUM_LENGTH = KEY_BUFFER_OFFSET + BitUtil.SIZE_OF_INT;
+        private static readonly int CounterTypeIdFieldOffset = CorrelationIdFieldOffset + BitUtil.SIZE_OF_LONG;
+        private static readonly int KeyLengthOffset = CounterTypeIdFieldOffset + BitUtil.SIZE_OF_INT;
+        internal static readonly int KeyBufferFieldOffset = KeyLengthOffset + BitUtil.SIZE_OF_INT;
+        private static readonly int MinimumLength = KeyBufferFieldOffset + BitUtil.SIZE_OF_INT;
 
         /// 
         /// Wrap the buffer at a given offset for updates.
@@ -76,7 +75,7 @@ public class CounterMessageFlyweight : CorrelatedMessageFlyweight
         ///  type id field. 
         public int TypeId()
         {
-            return buffer.GetInt(offset + COUNTER_TYPE_ID_FIELD_OFFSET);
+            return _buffer.GetInt(_offset + CounterTypeIdFieldOffset);
         }
 
         /// 
@@ -86,7 +85,7 @@ public int TypeId()
         ///  this for a fluent API. 
         public CounterMessageFlyweight TypeId(int typeId)
         {
-            buffer.PutInt(offset + COUNTER_TYPE_ID_FIELD_OFFSET, typeId);
+            _buffer.PutInt(_offset + CounterTypeIdFieldOffset, typeId);
 
             return this;
         }
@@ -97,7 +96,7 @@ public CounterMessageFlyweight TypeId(int typeId)
         ///  relative offset of the key buffer. 
         public int KeyBufferOffset()
         {
-            return KEY_BUFFER_OFFSET;
+            return KeyBufferFieldOffset;
         }
 
         /// 
@@ -106,7 +105,7 @@ public int KeyBufferOffset()
         ///  length of key buffer in bytes. 
         public int KeyBufferLength()
         {
-            return buffer.GetInt(offset + KEY_LENGTH_OFFSET);
+            return _buffer.GetInt(_offset + KeyLengthOffset);
         }
 
         /// 
@@ -118,10 +117,10 @@ public int KeyBufferLength()
         ///  this for a fluent API. 
         public CounterMessageFlyweight KeyBuffer(IDirectBuffer keyBuffer, int keyOffset, int keyLength)
         {
-            buffer.PutInt(offset + KEY_LENGTH_OFFSET, keyLength);
+            _buffer.PutInt(_offset + KeyLengthOffset, keyLength);
             if (null != keyBuffer && keyLength > 0)
             {
-                buffer.PutBytes(offset + KEY_BUFFER_OFFSET, keyBuffer, keyOffset, keyLength);
+                _buffer.PutBytes(_offset + KeyBufferFieldOffset, keyBuffer, keyOffset, keyLength);
             }
 
             return this;
@@ -142,7 +141,7 @@ public int LabelBufferOffset()
         ///  length of label buffer in bytes 
         public int LabelBufferLength()
         {
-            return buffer.GetInt(offset + LabelLengthOffset());
+            return _buffer.GetInt(_offset + LabelLengthOffset());
         }
 
         /// 
@@ -155,18 +154,21 @@ public int LabelBufferLength()
         public CounterMessageFlyweight LabelBuffer(IDirectBuffer labelBuffer, int labelOffset, int labelLength)
         {
             int labelLengthOffset = LabelLengthOffset();
-            buffer.PutInt(offset + labelLengthOffset, labelLength);
+            _buffer.PutInt(_offset + labelLengthOffset, labelLength);
 
             if (null != labelBuffer && labelLength > 0)
             {
-                buffer.PutBytes(offset + labelLengthOffset + BitUtil.SIZE_OF_INT, labelBuffer, labelOffset,
-                    labelLength);
+                _buffer.PutBytes(
+                    _offset + labelLengthOffset + BitUtil.SIZE_OF_INT,
+                    labelBuffer,
+                    labelOffset,
+                    labelLength
+                );
             }
 
             return this;
         }
 
-
         /// 
         /// Fill the label.
         /// 
@@ -174,7 +176,7 @@ public CounterMessageFlyweight LabelBuffer(IDirectBuffer labelBuffer, int labelO
         ///  this for a fluent API. 
         public CounterMessageFlyweight Label(string label)
         {
-            buffer.PutStringAscii(offset + LabelLengthOffset(), label);
+            _buffer.PutStringAscii(_offset + LabelLengthOffset(), label);
             return this;
         }
 
@@ -182,7 +184,7 @@ public CounterMessageFlyweight Label(string label)
         /// Get the length of the current message.
         /// 
         /// NB: must be called after the data is written in order to be accurate.
-        /// 
+        ///
         /// 
         /// 
         ///  the length of the current message 
@@ -191,7 +193,7 @@ public int Length()
             int labelOffset = LabelLengthOffset();
             return labelOffset + BitUtil.SIZE_OF_INT + LabelBufferLength();
         }
-        
+
         /// 
         /// Compute the length of the command message given key and label length.
         /// 
@@ -200,7 +202,7 @@ public int Length()
         ///  the length of the command message given key and label length. 
         public static int ComputeLength(int keyLength, int labelLength)
         {
-            return MINIMUM_LENGTH + BitUtil.Align(keyLength, BitUtil.SIZE_OF_INT) + BitUtil.SIZE_OF_INT + labelLength;
+            return MinimumLength + BitUtil.Align(keyLength, BitUtil.SIZE_OF_INT) + BitUtil.SIZE_OF_INT + labelLength;
         }
 
         /// 
@@ -208,22 +210,23 @@ public static int ComputeLength(int keyLength, int labelLength)
         /// 
         public override string ToString()
         {
-            return "CounterMessageFlyweight{" +
-                   "clientId=" + ClientId() +
-                   ", correlationId=" + CorrelationId() +
-                   ", typeId=" + TypeId() +
-                   ", keyBufferOffset=" + KeyBufferOffset() +
-                   ", keyBufferLength=" + KeyBufferLength() +
-                   ", labelLengthOffset=" + LabelLengthOffset() +
-                   ", labelBufferOffset=" + LabelBufferOffset() +
-                   ", labelBufferLength=" + LabelBufferLength() +
-                   ", length=" + Length() +
-                   "}";
+            return
+                "CounterMessageFlyweight{" +
+                "clientId=" + ClientId() +
+                ", correlationId=" + CorrelationId() +
+                ", typeId=" + TypeId() +
+                ", keyBufferOffset=" + KeyBufferOffset() +
+                ", keyBufferLength=" + KeyBufferLength() +
+                ", labelLengthOffset=" + LabelLengthOffset() +
+                ", labelBufferOffset=" + LabelBufferOffset() +
+                ", labelBufferLength=" + LabelBufferLength() +
+                ", length=" + Length() +
+                "}";
         }
 
         private int LabelLengthOffset()
         {
-            return KEY_BUFFER_OFFSET + BitUtil.Align(KeyBufferLength(), BitUtil.SIZE_OF_INT);
+            return KeyBufferFieldOffset + BitUtil.Align(KeyBufferLength(), BitUtil.SIZE_OF_INT);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Adaptive.Aeron/Command/CounterUpdateFlyweight.cs b/src/Adaptive.Aeron/Command/CounterUpdateFlyweight.cs
index fe5aa2ee..25251e11 100644
--- a/src/Adaptive.Aeron/Command/CounterUpdateFlyweight.cs
+++ b/src/Adaptive.Aeron/Command/CounterUpdateFlyweight.cs
@@ -1,4 +1,20 @@
-using Adaptive.Agrona;
+/*
+ * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using Adaptive.Agrona;
 
 namespace Adaptive.Aeron.Command
 {
@@ -23,12 +39,11 @@ public class CounterUpdateFlyweight
         /// Length of the header.
         /// 
         public static readonly int LENGTH = BitUtil.SIZE_OF_LONG + BitUtil.SIZE_OF_INT;
-        private const int CORRELATION_ID_OFFSET = 0;
-        private static readonly int COUNTER_ID_OFFSET = CORRELATION_ID_OFFSET + BitUtil.SIZE_OF_LONG;
-
+        private const int CorrelationIdOffset = 0;
+        private static readonly int CounterIdOffset = CorrelationIdOffset + BitUtil.SIZE_OF_LONG;
 
-        private IMutableDirectBuffer buffer;
-        private int offset;
+        private IMutableDirectBuffer _buffer;
+        private int _offset;
 
         /// 
         /// Wrap the buffer at a given offset for updates.
@@ -38,8 +53,8 @@ public class CounterUpdateFlyweight
         ///  this for fluent API. 
         public CounterUpdateFlyweight Wrap(IMutableDirectBuffer buffer, int offset)
         {
-            this.buffer = buffer;
-            this.offset = offset;
+            _buffer = buffer;
+            _offset = offset;
 
             return this;
         }
@@ -50,7 +65,7 @@ public CounterUpdateFlyweight Wrap(IMutableDirectBuffer buffer, int offset)
         ///  correlation id field. 
         public long CorrelationId()
         {
-            return buffer.GetLong(offset + CORRELATION_ID_OFFSET);
+            return _buffer.GetLong(_offset + CorrelationIdOffset);
         }
 
         /// 
@@ -60,7 +75,7 @@ public long CorrelationId()
         ///  this for a fluent API. 
         public CounterUpdateFlyweight CorrelationId(long correlationId)
         {
-            buffer.PutLong(offset + CORRELATION_ID_OFFSET, correlationId);
+            _buffer.PutLong(_offset + CorrelationIdOffset, correlationId);
 
             return this;
         }
@@ -71,7 +86,7 @@ public CounterUpdateFlyweight CorrelationId(long correlationId)
         ///  counter id. 
         public int CounterId()
         {
-            return buffer.GetInt(offset + COUNTER_ID_OFFSET);
+            return _buffer.GetInt(_offset + CounterIdOffset);
         }
 
         /// 
@@ -81,9 +96,9 @@ public int CounterId()
         ///  this for a fluent API. 
         public CounterUpdateFlyweight CounterId(int counterId)
         {
-            buffer.PutInt(offset + COUNTER_ID_OFFSET, counterId);
+            _buffer.PutInt(_offset + CounterIdOffset, counterId);
 
             return this;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Adaptive.Aeron/Command/DestinationByIdMessageFlyweight.cs b/src/Adaptive.Aeron/Command/DestinationByIdMessageFlyweight.cs
index 4a452886..de51f16a 100644
--- a/src/Adaptive.Aeron/Command/DestinationByIdMessageFlyweight.cs
+++ b/src/Adaptive.Aeron/Command/DestinationByIdMessageFlyweight.cs
@@ -1,107 +1,126 @@
-using Adaptive.Aeron.Exceptions;
+/*
+ * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using Adaptive.Aeron.Exceptions;
 using Adaptive.Agrona;
 
 namespace Adaptive.Aeron.Command
 {
-	/// 
-	/// Control message for removing a destination for a Publication in multi-destination-cast or a Subscription
-	/// in multi-destination Subscription.
-	/// 
-	///   0                   1                   2                   3
-	///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-	///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-	///  |                          Client ID                            |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	///  |                    Command Correlation ID                     |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	///  |                    Resource Correlation ID                    |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	///  |                   Destination Correlation ID                  |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	/// 
- ///
- public class DestinationByIdMessageFlyweight : CorrelatedMessageFlyweight - { - private static readonly int RESOURCE_REGISTRATION_ID_OFFSET = CORRELATION_ID_FIELD_OFFSET + BitUtil.SIZE_OF_LONG; - private static readonly int DESTINATION_REGISTRATION_ID_OFFSET = RESOURCE_REGISTRATION_ID_OFFSET + BitUtil.SIZE_OF_LONG; + /// + /// Control message for removing a destination for a Publication in multi-destination-cast or a Subscription in + /// multi-destination Subscription. + ///
+    ///   0                   1                   2                   3
+    ///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+    ///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    ///  |                          Client ID                            |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                    Command Correlation ID                     |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                    Resource Correlation ID                    |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                   Destination Correlation ID                  |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    /// 
+ ///
+ public class DestinationByIdMessageFlyweight : CorrelatedMessageFlyweight + { + private static readonly int ResourceRegistrationIdOffset = CorrelationIdFieldOffset + BitUtil.SIZE_OF_LONG; + private static readonly int DestinationRegistrationIdOffset = + ResourceRegistrationIdOffset + BitUtil.SIZE_OF_LONG; - /// - /// Length of the encoded message in bytes. - /// - public static readonly int MESSAGE_LENGTH = LENGTH + (2 * BitUtil.SIZE_OF_LONG); + /// + /// Length of the encoded message in bytes. + /// + public static readonly int MESSAGE_LENGTH = LENGTH + (2 * BitUtil.SIZE_OF_LONG); - /// - /// Wrap the buffer at a given offset for updates. - /// - /// to wrap. - /// at which the message begins. - /// this for a fluent API. - public new DestinationByIdMessageFlyweight Wrap(IMutableDirectBuffer buffer, int offset) - { - base.Wrap(buffer, offset); + /// + /// Wrap the buffer at a given offset for updates. + /// + /// to wrap. + /// at which the message begins. + /// this for a fluent API. + public new DestinationByIdMessageFlyweight Wrap(IMutableDirectBuffer buffer, int offset) + { + base.Wrap(buffer, offset); - return this; - } + return this; + } - /// - /// Get the registration id used for the resource that the destination has been registered to. Typically, a - /// subscription or publication. - /// - /// resource registration id field. - public long ResourceRegistrationId() - { - return buffer.GetLong(offset + RESOURCE_REGISTRATION_ID_OFFSET); - } + /// + /// Get the registration id used for the resource that the destination has been registered to. Typically, a + /// subscription or publication. + /// + /// resource registration id field. + public long ResourceRegistrationId() + { + return _buffer.GetLong(_offset + ResourceRegistrationIdOffset); + } - /// - /// Set the registration id used for the resource that the destination has been registered to. Typically, a - /// subscription or publication. - /// - /// field value. - /// this for a fluent API. - public DestinationByIdMessageFlyweight ResourceRegistrationId(long registrationId) - { - buffer.PutLong(offset + RESOURCE_REGISTRATION_ID_OFFSET, registrationId); + /// + /// Set the registration id used for the resource that the destination has been registered to. Typically, a + /// subscription or publication. + /// + /// field value. + /// this for a fluent API. + public DestinationByIdMessageFlyweight ResourceRegistrationId(long registrationId) + { + _buffer.PutLong(_offset + ResourceRegistrationIdOffset, registrationId); - return this; - } + return this; + } - /// - /// Returns the registration id for the destination. - /// - /// destination registration id. - public long DestinationRegistrationId() - { - return buffer.GetLong(offset + DESTINATION_REGISTRATION_ID_OFFSET); - } + /// + /// Returns the registration id for the destination. + /// + /// destination registration id. + public long DestinationRegistrationId() + { + return _buffer.GetLong(_offset + DestinationRegistrationIdOffset); + } - /// - /// Sets the registration id for the destination. - /// - /// to reference the destination. - /// this for a fluent API. - public DestinationByIdMessageFlyweight DestinationRegistrationId(long destinationRegistrationId) - { - buffer.PutLong(offset + DESTINATION_REGISTRATION_ID_OFFSET, destinationRegistrationId); - return this; - } + /// + /// Sets the registration id for the destination. + /// + /// to reference the destination. + /// this for a fluent API. + public DestinationByIdMessageFlyweight DestinationRegistrationId(long destinationRegistrationId) + { + _buffer.PutLong(_offset + DestinationRegistrationIdOffset, destinationRegistrationId); + return this; + } - /// - /// Validate buffer length is long enough for message. - /// - /// type of message. - /// of message in bytes to validate. - public new void ValidateLength(int msgTypeId, int length) - { - if (length < MESSAGE_LENGTH) - { - throw new ControlProtocolException(ErrorCode.MALFORMED_COMMAND, - "command=" + msgTypeId + " too short: length=" + length); - } - } - } -} \ No newline at end of file + /// + /// Validate _buffer length is long enough for message. + /// + /// type of message. + /// of message in bytes to validate. + public new void ValidateLength(int msgTypeId, int length) + { + if (length < MESSAGE_LENGTH) + { + throw new ControlProtocolException( + ErrorCode.MALFORMED_COMMAND, + "command=" + msgTypeId + " too short: length=" + length + ); + } + } + } +} diff --git a/src/Adaptive.Aeron/Command/DestinationMessageFlyweight.cs b/src/Adaptive.Aeron/Command/DestinationMessageFlyweight.cs index 35b634e9..079301e3 100644 --- a/src/Adaptive.Aeron/Command/DestinationMessageFlyweight.cs +++ b/src/Adaptive.Aeron/Command/DestinationMessageFlyweight.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,15 +15,14 @@ */ using System.Text; -using Adaptive.Aeron.Exceptions; using Adaptive.Agrona; namespace Adaptive.Aeron.Command { /// - /// Control message for adding or removing a destination for a Publication in multi-destination-cast or a Subscription - /// in multi-destination Subscription. - /// + /// Control message for adding or removing a destination for a Publication in multi-destination-cast or a + /// Subscription in multi-destination Subscription. + /// /// 0 1 2 3 /// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 /// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -41,15 +40,16 @@ namespace Adaptive.Aeron.Command /// | Channel(ASCII) ... /// .. | /// +---------------------------------------------------------------+ - /// + /// /// public class DestinationMessageFlyweight : CorrelatedMessageFlyweight { - private static readonly int REGISTRATION_CORRELATION_ID_OFFSET = CORRELATION_ID_FIELD_OFFSET + BitUtil.SIZE_OF_LONG; - private static readonly int CHANNEL_OFFSET = REGISTRATION_CORRELATION_ID_OFFSET + BitUtil.SIZE_OF_LONG; - private static readonly int MINIMUM_LENGTH = CHANNEL_OFFSET + BitUtil.SIZE_OF_INT; + private static readonly int RegistrationCorrelationIdOffset = + CorrelationIdFieldOffset + BitUtil.SIZE_OF_LONG; + private static readonly int ChannelOffset = RegistrationCorrelationIdOffset + BitUtil.SIZE_OF_LONG; + private static readonly int MinimumLength = ChannelOffset + BitUtil.SIZE_OF_INT; - private int lengthOfChannel; + private int _lengthOfChannel; /// /// Wrap the buffer at a given offset for updates. @@ -63,14 +63,14 @@ public class DestinationMessageFlyweight : CorrelatedMessageFlyweight return this; } - + /// /// Return correlation id used in registration field. /// /// correlation id field. public long RegistrationCorrelationId() { - return buffer.GetLong(offset + REGISTRATION_CORRELATION_ID_OFFSET); + return _buffer.GetLong(_offset + RegistrationCorrelationIdOffset); } /// @@ -80,7 +80,7 @@ public long RegistrationCorrelationId() /// this for a fluent API. public DestinationMessageFlyweight RegistrationCorrelationId(long correlationId) { - buffer.PutLong(offset + REGISTRATION_CORRELATION_ID_OFFSET, correlationId); + _buffer.PutLong(_offset + RegistrationCorrelationIdOffset, correlationId); return this; } @@ -91,16 +91,16 @@ public DestinationMessageFlyweight RegistrationCorrelationId(long correlationId) /// channel field. public string Channel() { - return buffer.GetStringAscii(offset + CHANNEL_OFFSET); + return _buffer.GetStringAscii(_offset + ChannelOffset); } - + /// - /// Append the channel value to a . + /// Append the channel value to a . /// /// to append channel to. public void AppendChannel(StringBuilder stringBuilder) { - buffer.GetStringAscii(offset + CHANNEL_OFFSET, stringBuilder); + _buffer.GetStringAscii(_offset + ChannelOffset, stringBuilder); } /// @@ -110,7 +110,7 @@ public void AppendChannel(StringBuilder stringBuilder) /// this for a fluent API. public DestinationMessageFlyweight Channel(string channel) { - lengthOfChannel = buffer.PutStringAscii(offset + CHANNEL_OFFSET, channel); + _lengthOfChannel = _buffer.PutStringAscii(_offset + ChannelOffset, channel); return this; } @@ -121,9 +121,9 @@ public DestinationMessageFlyweight Channel(string channel) /// length of the frame in bytes. public int Length() { - return CHANNEL_OFFSET + lengthOfChannel; + return ChannelOffset + _lengthOfChannel; } - + /// /// Compute the length of the command message for a given channel length. /// @@ -131,7 +131,7 @@ public int Length() /// the length of the command message for a given channel length. public static int ComputeLength(int channelLength) { - return MINIMUM_LENGTH + channelLength; + return MinimumLength + channelLength; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/ErrorResponseFlyweight.cs b/src/Adaptive.Aeron/Command/ErrorResponseFlyweight.cs index 4cd8337f..96bb57fe 100644 --- a/src/Adaptive.Aeron/Command/ErrorResponseFlyweight.cs +++ b/src/Adaptive.Aeron/Command/ErrorResponseFlyweight.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,6 @@ * limitations under the License. */ -using System; using System.Text; using Adaptive.Agrona; @@ -22,7 +21,7 @@ namespace Adaptive.Aeron.Command { /// /// Control message flyweight for any errors sent from driver to clients - /// + /// /// /// 0 1 2 3 /// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 @@ -41,9 +40,9 @@ namespace Adaptive.Aeron.Command /// public class ErrorResponseFlyweight { - private const int OFFENDING_COMMAND_CORRELATION_ID_OFFSET = 0; - private static readonly int ERROR_CODE_OFFSET = OFFENDING_COMMAND_CORRELATION_ID_OFFSET + BitUtil.SIZE_OF_LONG; - private static readonly int ERROR_MESSAGE_OFFSET = ERROR_CODE_OFFSET + BitUtil.SIZE_OF_INT; + private const int OffendingCommandCorrelationIdOffset = 0; + private static readonly int ErrorCodeOffset = OffendingCommandCorrelationIdOffset + BitUtil.SIZE_OF_LONG; + private static readonly int ErrorMessageOffset = ErrorCodeOffset + BitUtil.SIZE_OF_INT; private IMutableDirectBuffer _buffer; private int _offset; @@ -68,7 +67,7 @@ public ErrorResponseFlyweight Wrap(IMutableDirectBuffer buffer, int offset) /// correlation ID of the offending command public long OffendingCommandCorrelationId() { - return _buffer.GetLong(_offset + OFFENDING_COMMAND_CORRELATION_ID_OFFSET); + return _buffer.GetLong(_offset + OffendingCommandCorrelationIdOffset); } /// @@ -78,7 +77,7 @@ public long OffendingCommandCorrelationId() /// this for a fluent API. public ErrorResponseFlyweight OffendingCommandCorrelationId(long correlationId) { - _buffer.PutLong(_offset + OFFENDING_COMMAND_CORRELATION_ID_OFFSET, correlationId); + _buffer.PutLong(_offset + OffendingCommandCorrelationIdOffset, correlationId); return this; } @@ -88,18 +87,16 @@ public ErrorResponseFlyweight OffendingCommandCorrelationId(long correlationId) /// error code for the command. public ErrorCode ErrorCode() { - - - return (ErrorCode)_buffer.GetInt(_offset + ERROR_CODE_OFFSET); + return (ErrorCode)_buffer.GetInt(_offset + ErrorCodeOffset); } - + /// /// Error code value for the command. /// /// error code value for the command. public int ErrorCodeValue() { - return _buffer.GetInt(_offset + ERROR_CODE_OFFSET); + return _buffer.GetInt(_offset + ErrorCodeOffset); } /// @@ -109,7 +106,7 @@ public int ErrorCodeValue() /// this for a fluent API. public ErrorResponseFlyweight ErrorCode(ErrorCode code) { - _buffer.PutInt(_offset + ERROR_CODE_OFFSET, (int)code); + _buffer.PutInt(_offset + ErrorCodeOffset, (int)code); return this; } @@ -119,7 +116,7 @@ public ErrorResponseFlyweight ErrorCode(ErrorCode code) /// error message public string ErrorMessage() { - return _buffer.GetStringAscii(_offset + ERROR_MESSAGE_OFFSET); + return _buffer.GetStringAscii(_offset + ErrorMessageOffset); } /// @@ -129,9 +126,9 @@ public string ErrorMessage() /// number bytes copied. public int AppendMessage(StringBuilder stringBuilder) { - return _buffer.GetStringAscii(_offset + ERROR_MESSAGE_OFFSET, stringBuilder); + return _buffer.GetStringAscii(_offset + ErrorMessageOffset, stringBuilder); } - + /// /// Set the error message /// @@ -139,7 +136,7 @@ public int AppendMessage(StringBuilder stringBuilder) /// this for a fluent API. public ErrorResponseFlyweight ErrorMessage(string message) { - _buffer.PutStringAscii(_offset + ERROR_MESSAGE_OFFSET, message); + _buffer.PutStringAscii(_offset + ErrorMessageOffset, message); return this; } @@ -149,7 +146,7 @@ public ErrorResponseFlyweight ErrorMessage(string message) /// length of the error response in bytes. public int Length() { - return ERROR_MESSAGE_OFFSET + BitUtil.SIZE_OF_INT + _buffer.GetInt(_offset + ERROR_MESSAGE_OFFSET); + return ErrorMessageOffset + BitUtil.SIZE_OF_INT + _buffer.GetInt(_offset + ErrorMessageOffset); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/GetNextAvailableSessionIdMessage.cs b/src/Adaptive.Aeron/Command/GetNextAvailableSessionIdMessage.cs index 4b89a6d1..c9ace673 100644 --- a/src/Adaptive.Aeron/Command/GetNextAvailableSessionIdMessage.cs +++ b/src/Adaptive.Aeron/Command/GetNextAvailableSessionIdMessage.cs @@ -1,90 +1,108 @@ -using Adaptive.Aeron.Exceptions; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron.Exceptions; using Adaptive.Agrona; using static Adaptive.Agrona.BitUtil; namespace Adaptive.Aeron.Command { - /// - /// Control message for getting next available session id from the media driver - /// (). - ///
-	///   0                   1                   2                   3
-	///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-	///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-	///  |                          Client ID                            |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	///  |                    Command Correlation ID                     |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	///  |                         Stream Id                             |
-	///  +---------------------------------------------------------------+
-	/// 
- ///
- public sealed class GetNextAvailableSessionIdMessageFlyweight : CorrelatedMessageFlyweight - { - private static readonly int StreamIdOffset = CorrelatedMessageFlyweight.LENGTH; + /// + /// Control message for getting next available session id from the media driver + /// (). + ///
+    ///   0                   1                   2                   3
+    ///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+    ///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    ///  |                          Client ID                            |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                    Command Correlation ID                     |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                         Stream Id                             |
+    ///  +---------------------------------------------------------------+
+    /// 
+ ///
+ public sealed class GetNextAvailableSessionIdMessageFlyweight : CorrelatedMessageFlyweight + { + private static readonly int StreamIdOffset = CorrelatedMessageFlyweight.LENGTH; - /// - /// Length of the header. - /// - public new static readonly int LENGTH = StreamIdOffset + SIZE_OF_INT; + /// + /// Length of the header. + /// + public static new readonly int LENGTH = StreamIdOffset + SIZE_OF_INT; - /// - /// Wrap the buffer at a given offset for updates. - /// - /// to wrap. - /// at which the message begins. - /// this for a fluent API. - public new GetNextAvailableSessionIdMessageFlyweight Wrap(IMutableDirectBuffer buffer, int offset) - { - base.Wrap(buffer, offset); + /// + /// Wrap the buffer at a given offset for updates. + /// + /// to wrap. + /// at which the message begins. + /// this for a fluent API. + public new GetNextAvailableSessionIdMessageFlyweight Wrap(IMutableDirectBuffer buffer, int offset) + { + base.Wrap(buffer, offset); - return this; - } + return this; + } - /// - /// Get the stream id. - /// - /// the stream id. - public int StreamId() - { - return buffer.GetInt(offset + StreamIdOffset); - } + /// + /// Get the stream id. + /// + /// the stream id. + public int StreamId() + { + return _buffer.GetInt(_offset + StreamIdOffset); + } - /// - /// Set the stream id. - /// - /// the channel id. - /// this for a fluent API. - public GetNextAvailableSessionIdMessageFlyweight StreamId(int streamId) - { - buffer.PutInt(offset + StreamIdOffset, streamId); + /// + /// Set the stream id. + /// + /// the channel id. + /// this for a fluent API. + public GetNextAvailableSessionIdMessageFlyweight StreamId(int streamId) + { + _buffer.PutInt(_offset + StreamIdOffset, streamId); - return this; - } + return this; + } - /// - /// Length of the message in bytes. Only valid after the channel is set. - /// - /// length of the message in bytes. - public int Length() - { - return LENGTH; - } + /// + /// Length of the message in bytes. Only valid after the channel is set. + /// + /// length of the message in bytes. + public int Length() + { + return LENGTH; + } - /// - /// Validate buffer length is long enough for message. - /// - /// type of message. - /// of message in bytes to validate. - public new void ValidateLength(int msgTypeId, int length) - { - if (length < LENGTH) - { - throw new ControlProtocolException( - ErrorCode.MALFORMED_COMMAND, "command=" + msgTypeId + " too short: length=" + length); - } - } - } -} \ No newline at end of file + /// + /// Validate _buffer length is long enough for message. + /// + /// type of message. + /// of message in bytes to validate. + public new void ValidateLength(int msgTypeId, int length) + { + if (length < LENGTH) + { + throw new ControlProtocolException( + ErrorCode.MALFORMED_COMMAND, + "command=" + msgTypeId + " too short: length=" + length + ); + } + } + } +} diff --git a/src/Adaptive.Aeron/Command/ImageBuffersReadyFlyweight.cs b/src/Adaptive.Aeron/Command/ImageBuffersReadyFlyweight.cs index 40dea071..54e79dfb 100644 --- a/src/Adaptive.Aeron/Command/ImageBuffersReadyFlyweight.cs +++ b/src/Adaptive.Aeron/Command/ImageBuffersReadyFlyweight.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,11 +21,11 @@ namespace Adaptive.Aeron.Command { /// /// Message to denote that new buffers for a publication image are ready for a subscription. - /// + /// /// Note: Layout should be SBE 2.0 compliant so that the source identity length is aligned. /// /// - /// + /// /// 0 1 2 3 /// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 /// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -51,16 +51,17 @@ namespace Adaptive.Aeron.Command /// | Source identity(ASCII) .. /// .. | /// +---------------------------------------------------------------+ - /// + /// public class ImageBuffersReadyFlyweight { - private static readonly int CORRELATION_ID_OFFSET = 0; - private static readonly int SESSION_ID_OFFSET = CORRELATION_ID_OFFSET + BitUtil.SIZE_OF_LONG; - private static readonly int STREAM_ID_FIELD_OFFSET = SESSION_ID_OFFSET + BitUtil.SIZE_OF_INT; - private static readonly int SUBSCRIPTION_REGISTRATION_ID_OFFSET = STREAM_ID_FIELD_OFFSET + BitUtil.SIZE_OF_INT; - private static readonly int SUBSCRIBER_POSITION_ID_OFFSET = SUBSCRIPTION_REGISTRATION_ID_OFFSET + BitUtil.SIZE_OF_LONG; - private static readonly int LOG_FILE_NAME_OFFSET = SUBSCRIBER_POSITION_ID_OFFSET + BitUtil.SIZE_OF_INT; - + private static readonly int CorrelationIdOffset = 0; + private static readonly int SessionIdOffset = CorrelationIdOffset + BitUtil.SIZE_OF_LONG; + private static readonly int StreamIdFieldOffset = SessionIdOffset + BitUtil.SIZE_OF_INT; + private static readonly int SubscriptionRegistrationIdOffset = StreamIdFieldOffset + BitUtil.SIZE_OF_INT; + private static readonly int SubscriberPositionIdOffset = + SubscriptionRegistrationIdOffset + BitUtil.SIZE_OF_LONG; + private static readonly int LogFileNameOffset = SubscriberPositionIdOffset + BitUtil.SIZE_OF_INT; + private IMutableDirectBuffer _buffer; private int _offset; @@ -84,7 +85,7 @@ public ImageBuffersReadyFlyweight Wrap(IMutableDirectBuffer buffer, int offset) /// correlation id field. public long CorrelationId() { - return _buffer.GetLong(_offset + CORRELATION_ID_OFFSET); + return _buffer.GetLong(_offset + CorrelationIdOffset); } /// @@ -94,7 +95,7 @@ public long CorrelationId() /// this for a fluent API. public ImageBuffersReadyFlyweight CorrelationId(long correlationId) { - _buffer.PutLong(_offset + CORRELATION_ID_OFFSET, correlationId); + _buffer.PutLong(_offset + CorrelationIdOffset, correlationId); return this; } @@ -105,7 +106,7 @@ public ImageBuffersReadyFlyweight CorrelationId(long correlationId) /// session id field. public int SessionId() { - return _buffer.GetInt(_offset + SESSION_ID_OFFSET); + return _buffer.GetInt(_offset + SessionIdOffset); } /// @@ -114,7 +115,7 @@ public int SessionId() /// this for a fluent API. public ImageBuffersReadyFlyweight SessionId(int sessionId) { - _buffer.PutInt(_offset + SESSION_ID_OFFSET, sessionId); + _buffer.PutInt(_offset + SessionIdOffset, sessionId); return this; } @@ -125,7 +126,7 @@ public ImageBuffersReadyFlyweight SessionId(int sessionId) /// stream id field public int StreamId() { - return _buffer.GetInt(_offset + STREAM_ID_FIELD_OFFSET); + return _buffer.GetInt(_offset + StreamIdFieldOffset); } /// @@ -135,11 +136,11 @@ public int StreamId() /// this for a fluent API. public ImageBuffersReadyFlyweight StreamId(int streamId) { - _buffer.PutInt(_offset + STREAM_ID_FIELD_OFFSET, streamId); + _buffer.PutInt(_offset + StreamIdFieldOffset, streamId); return this; } - + /// /// Set the position counter id for the subscriber. /// @@ -147,7 +148,7 @@ public ImageBuffersReadyFlyweight StreamId(int streamId) /// this for a fluent API. public ImageBuffersReadyFlyweight SubscriberPositionId(int id) { - _buffer.PutInt(_offset + SUBSCRIBER_POSITION_ID_OFFSET, id); + _buffer.PutInt(_offset + SubscriberPositionIdOffset, id); return this; } @@ -158,7 +159,7 @@ public ImageBuffersReadyFlyweight SubscriberPositionId(int id) /// position counter id for the subscriber. public int SubscriberPositionId() { - return _buffer.GetInt(_offset + SUBSCRIBER_POSITION_ID_OFFSET); + return _buffer.GetInt(_offset + SubscriberPositionIdOffset); } /// @@ -168,7 +169,7 @@ public int SubscriberPositionId() /// this for a fluent API. public ImageBuffersReadyFlyweight SubscriptionRegistrationId(long id) { - _buffer.PutLong(_offset + SUBSCRIPTION_REGISTRATION_ID_OFFSET, id); + _buffer.PutLong(_offset + SubscriptionRegistrationIdOffset, id); return this; } @@ -179,7 +180,7 @@ public ImageBuffersReadyFlyweight SubscriptionRegistrationId(long id) /// registration id for the Subscription. public long SubscriptionRegistrationId() { - return _buffer.GetLong(_offset + SUBSCRIPTION_REGISTRATION_ID_OFFSET); + return _buffer.GetLong(_offset + SubscriptionRegistrationIdOffset); } /// @@ -188,16 +189,16 @@ public long SubscriptionRegistrationId() /// log filename. public string LogFileName() { - return _buffer.GetStringAscii(_offset + LOG_FILE_NAME_OFFSET); + return _buffer.GetStringAscii(_offset + LogFileNameOffset); } - + /// - /// Append the log file name to a . + /// Append the log file name to a . /// /// to append log file name to. public void AppendLogFileName(StringBuilder stringBuilder) { - _buffer.GetStringAscii(_offset + LOG_FILE_NAME_OFFSET, stringBuilder); + _buffer.GetStringAscii(_offset + LogFileNameOffset, stringBuilder); } /// @@ -207,7 +208,7 @@ public void AppendLogFileName(StringBuilder stringBuilder) /// this for a fluent API. public ImageBuffersReadyFlyweight LogFileName(string logFileName) { - _buffer.PutStringAscii(_offset + LOG_FILE_NAME_OFFSET, logFileName); + _buffer.PutStringAscii(_offset + LogFileNameOffset, logFileName); return this; } @@ -221,7 +222,7 @@ public string SourceIdentity() } /// - /// Append the source identity to an . + /// Append the source identity to an . /// /// to append source identity to. public void AppendSourceIdentity(StringBuilder stringBuilder) @@ -230,8 +231,7 @@ public void AppendSourceIdentity(StringBuilder stringBuilder) } /// - /// Set the source identity string in ASCII. - /// Note: Can be called only after log file name was set! + /// Set the source identity string in ASCII. Note: Can be called only after log file name was set! /// /// for the source identity. /// this for a fluent API. @@ -244,7 +244,7 @@ public ImageBuffersReadyFlyweight SourceIdentity(string value) /// /// Get the length of the current message. - /// + /// /// NB: must be called after the data is written in order to be accurate. /// /// the length of the current message. @@ -253,12 +253,12 @@ public int Length() int sourceIdentityOffset = SourceIdentityOffset(); return sourceIdentityOffset + _buffer.GetInt(_offset + sourceIdentityOffset) + BitUtil.SIZE_OF_INT; } - + private int SourceIdentityOffset() { - int alignedLength = BitUtil.Align(_buffer.GetInt(_offset + LOG_FILE_NAME_OFFSET), BitUtil.SIZE_OF_INT); - - return LOG_FILE_NAME_OFFSET + BitUtil.SIZE_OF_INT + alignedLength; + int alignedLength = BitUtil.Align(_buffer.GetInt(_offset + LogFileNameOffset), BitUtil.SIZE_OF_INT); + + return LogFileNameOffset + BitUtil.SIZE_OF_INT + alignedLength; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/ImageMessageFlyweight.cs b/src/Adaptive.Aeron/Command/ImageMessageFlyweight.cs index e8c9ab6e..2e37b000 100644 --- a/src/Adaptive.Aeron/Command/ImageMessageFlyweight.cs +++ b/src/Adaptive.Aeron/Command/ImageMessageFlyweight.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,14 +42,14 @@ namespace Adaptive.Aeron.Command /// public class ImageMessageFlyweight { - private const int CORRELATION_ID_OFFSET = 0; - private const int SUBSCRIPTION_REGISTRATION_ID_OFFSET = CORRELATION_ID_OFFSET + BitUtil.SIZE_OF_LONG; - private const int STREAM_ID_FIELD_OFFSET = SUBSCRIPTION_REGISTRATION_ID_OFFSET + BitUtil.SIZE_OF_LONG; - private const int CHANNEL_OFFSET = STREAM_ID_FIELD_OFFSET + BitUtil.SIZE_OF_INT; + private const int CorrelationIdOffset = 0; + private const int SubscriptionRegistrationIdOffset = CorrelationIdOffset + BitUtil.SIZE_OF_LONG; + private const int StreamIdFieldOffset = SubscriptionRegistrationIdOffset + BitUtil.SIZE_OF_LONG; + private const int ChannelOffset = StreamIdFieldOffset + BitUtil.SIZE_OF_INT; - private IMutableDirectBuffer buffer; - private int offset; - private int lengthOfChannel; + private IMutableDirectBuffer _buffer; + private int _offset; + private int _lengthOfChannel; /// /// Wrap the buffer at a given offset for updates. @@ -59,8 +59,8 @@ public class ImageMessageFlyweight /// this for fluent API. public ImageMessageFlyweight Wrap(IMutableDirectBuffer buffer, int offset) { - this.buffer = buffer; - this.offset = offset; + _buffer = buffer; + _offset = offset; return this; } @@ -70,7 +70,7 @@ public ImageMessageFlyweight Wrap(IMutableDirectBuffer buffer, int offset) /// correlation id field. public long CorrelationId() { - return buffer.GetLong(offset + CORRELATION_ID_OFFSET); + return _buffer.GetLong(_offset + CorrelationIdOffset); } /// @@ -79,7 +79,7 @@ public long CorrelationId() /// this for a fluent API. public ImageMessageFlyweight CorrelationId(long correlationId) { - buffer.PutLong(offset + CORRELATION_ID_OFFSET, correlationId); + _buffer.PutLong(_offset + CorrelationIdOffset, correlationId); return this; } @@ -90,7 +90,7 @@ public ImageMessageFlyweight CorrelationId(long correlationId) /// registration ID for the subscription. public long SubscriptionRegistrationId() { - return buffer.GetLong(offset + SUBSCRIPTION_REGISTRATION_ID_OFFSET); + return _buffer.GetLong(_offset + SubscriptionRegistrationIdOffset); } /// @@ -100,7 +100,7 @@ public long SubscriptionRegistrationId() /// this for a fluent API. public ImageMessageFlyweight SubscriptionRegistrationId(long registrationId) { - buffer.PutLong(offset + SUBSCRIPTION_REGISTRATION_ID_OFFSET, registrationId); + _buffer.PutLong(_offset + SubscriptionRegistrationIdOffset, registrationId); return this; } @@ -111,7 +111,7 @@ public ImageMessageFlyweight SubscriptionRegistrationId(long registrationId) /// stream id field. public int StreamId() { - return buffer.GetInt(offset + STREAM_ID_FIELD_OFFSET); + return _buffer.GetInt(_offset + StreamIdFieldOffset); } /// @@ -121,7 +121,7 @@ public int StreamId() /// this for a fluent API. public ImageMessageFlyweight StreamId(int streamId) { - buffer.PutInt(offset + STREAM_ID_FIELD_OFFSET, streamId); + _buffer.PutInt(_offset + StreamIdFieldOffset, streamId); return this; } @@ -132,22 +132,22 @@ public ImageMessageFlyweight StreamId(int streamId) /// channel field. public string Channel() { - int length = buffer.GetInt(offset + CHANNEL_OFFSET); - lengthOfChannel = BitUtil.SIZE_OF_INT + length; + int length = _buffer.GetInt(_offset + ChannelOffset); + _lengthOfChannel = BitUtil.SIZE_OF_INT + length; - return buffer.GetStringAscii(offset + CHANNEL_OFFSET, length); + return _buffer.GetStringAscii(_offset + ChannelOffset, length); } /// - /// Append the channel value to a . + /// Append the channel value to a . /// /// to append channel to. public void AppendChannel(StringBuilder stringBuilder) { - int length = buffer.GetInt(offset + CHANNEL_OFFSET); - lengthOfChannel = BitUtil.SIZE_OF_INT + length; + int length = _buffer.GetInt(_offset + ChannelOffset); + _lengthOfChannel = BitUtil.SIZE_OF_INT + length; - buffer.GetStringAscii(offset + CHANNEL_OFFSET, stringBuilder); + _buffer.GetStringAscii(_offset + ChannelOffset, stringBuilder); } /// @@ -157,20 +157,20 @@ public void AppendChannel(StringBuilder stringBuilder) /// this for a fluent API. public ImageMessageFlyweight Channel(string channel) { - lengthOfChannel = buffer.PutStringAscii(offset + CHANNEL_OFFSET, channel); + _lengthOfChannel = _buffer.PutStringAscii(_offset + ChannelOffset, channel); return this; } /// /// Get the length of the current message. - /// + /// /// NB: must be called after the data is written in order to be accurate. /// /// the length of the current message. public int Length() { - return CHANNEL_OFFSET + lengthOfChannel; + return ChannelOffset + _lengthOfChannel; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/NextAvailableSessionIdFlyweight.cs b/src/Adaptive.Aeron/Command/NextAvailableSessionIdFlyweight.cs index 9ab9b214..25e18a4b 100644 --- a/src/Adaptive.Aeron/Command/NextAvailableSessionIdFlyweight.cs +++ b/src/Adaptive.Aeron/Command/NextAvailableSessionIdFlyweight.cs @@ -1,102 +1,119 @@ -using Adaptive.Agrona; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona; using static Adaptive.Agrona.BitUtil; namespace Adaptive.Aeron.Command { - /// - /// Message to denote a response to get next session id command - /// (). - /// - /// - ///
-	///   0                   1                   2                   3
-	///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-	///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-	///  |                         Correlation ID                        |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	///  |                         Next Session ID                        |
-	///  +---------------------------------------------------------------+
-	/// 
- /// Since 1.49.0 - public class NextAvailableSessionIdFlyweight - { - private const int CORRELATION_ID_OFFSET = 0; - private static readonly int SessionIdOffset = CORRELATION_ID_OFFSET + SIZE_OF_LONG; + /// + /// Message to denote a response to get next session id command + /// (). + /// + /// + ///
+    ///   0                   1                   2                   3
+    ///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+    ///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    ///  |                         Correlation ID                        |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                         Next Session ID                        |
+    ///  +---------------------------------------------------------------+
+    /// 
+ /// Since 1.49.0 + public class NextAvailableSessionIdFlyweight + { + private const int CorrelationIdOffset = 0; + private static readonly int SessionIdOffset = CorrelationIdOffset + SIZE_OF_LONG; - /// - /// Length of the header. - /// - public static readonly int LENGTH = SessionIdOffset + SIZE_OF_INT; + /// + /// Length of the header. + /// + public static readonly int LENGTH = SessionIdOffset + SIZE_OF_INT; - private IMutableDirectBuffer Buffer; - private int Offset; + private IMutableDirectBuffer _buffer; + private int _offset; - /// - /// Wrap the buffer at a given offset for updates. - /// - /// to wrap - /// at which the message begins. - /// this for a fluent API. - public NextAvailableSessionIdFlyweight Wrap(IMutableDirectBuffer buffer, int offset) - { - this.Buffer = buffer; - this.Offset = offset; + /// + /// Wrap the buffer at a given offset for updates. + /// + /// to wrap + /// at which the message begins. + /// this for a fluent API. + public NextAvailableSessionIdFlyweight Wrap(IMutableDirectBuffer buffer, int offset) + { + _buffer = buffer; + _offset = offset; - return this; - } + return this; + } - /// - /// Get the correlation id field. - /// - /// correlation id field. - public long CorrelationId() - { - return Buffer.GetLong(Offset + CORRELATION_ID_OFFSET); - } + /// + /// Get the correlation id field. + /// + /// correlation id field. + public long CorrelationId() + { + return _buffer.GetLong(_offset + CorrelationIdOffset); + } - /// - /// Set the correlation id field. - /// - /// field value. - /// this for a fluent API. - public NextAvailableSessionIdFlyweight CorrelationId(long correlationId) - { - Buffer.PutLong(Offset + CORRELATION_ID_OFFSET, correlationId); + /// + /// Set the correlation id field. + /// + /// field value. + /// this for a fluent API. + public NextAvailableSessionIdFlyweight CorrelationId(long correlationId) + { + _buffer.PutLong(_offset + CorrelationIdOffset, correlationId); - return this; - } + return this; + } - /// - /// The session id. - /// - /// session id. - public int NextSessionId() - { - return Buffer.GetInt(Offset + SessionIdOffset); - } + /// + /// The session id. + /// + /// session id. + public int NextSessionId() + { + return _buffer.GetInt(_offset + SessionIdOffset); + } - /// - /// Set session id field. - /// - /// field value. - /// this for a fluent API. - public NextAvailableSessionIdFlyweight NextSessionId(int sessionId) - { - Buffer.PutInt(Offset + SessionIdOffset, sessionId); + /// + /// Set session id field. + /// + /// field value. + /// this for a fluent API. + public NextAvailableSessionIdFlyweight NextSessionId(int sessionId) + { + _buffer.PutInt(_offset + SessionIdOffset, sessionId); - return this; - } + return this; + } /// /// {@inheritDoc} /// public override string ToString() { - return "NextSessionIdFlyweight{" + - "correlationId=" + CorrelationId() + - ", sessionId=" + NextSessionId() + - "}"; + return + "NextSessionIdFlyweight{" + + "correlationId=" + CorrelationId() + + ", sessionId=" + NextSessionId() + + "}"; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/OperationSucceededFlyweight.cs b/src/Adaptive.Aeron/Command/OperationSucceededFlyweight.cs index c5294eed..8498a192 100644 --- a/src/Adaptive.Aeron/Command/OperationSucceededFlyweight.cs +++ b/src/Adaptive.Aeron/Command/OperationSucceededFlyweight.cs @@ -1,4 +1,20 @@ -using Adaptive.Agrona; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona; namespace Adaptive.Aeron.Command { @@ -21,10 +37,10 @@ public class OperationSucceededFlyweight /// Length of the header. ///
public static readonly int LENGTH = BitUtil.SIZE_OF_LONG; - private const int CORRELATION_ID_FIELD_OFFSET = 0; + private const int CorrelationIdFieldOffset = 0; - private IMutableDirectBuffer buffer; - private int offset; + private IMutableDirectBuffer _buffer; + private int _offset; /// /// Wrap the buffer at a given offset for updates. @@ -34,8 +50,8 @@ public class OperationSucceededFlyweight /// this for a fluent API. public OperationSucceededFlyweight Wrap(IMutableDirectBuffer buffer, int offset) { - this.buffer = buffer; - this.offset = offset; + _buffer = buffer; + _offset = offset; return this; } @@ -46,7 +62,7 @@ public OperationSucceededFlyweight Wrap(IMutableDirectBuffer buffer, int offset) /// correlation id field. public long CorrelationId() { - return buffer.GetLong(offset + CORRELATION_ID_FIELD_OFFSET); + return _buffer.GetLong(_offset + CorrelationIdFieldOffset); } /// @@ -56,9 +72,9 @@ public long CorrelationId() /// this for a fluent API. public OperationSucceededFlyweight CorrelationId(long correlationId) { - buffer.PutLong(offset + CORRELATION_ID_FIELD_OFFSET, correlationId); + _buffer.PutLong(_offset + CorrelationIdFieldOffset, correlationId); return this; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/PublicationBuffersReadyFlyweight.cs b/src/Adaptive.Aeron/Command/PublicationBuffersReadyFlyweight.cs index c381ddeb..c7b84e4d 100644 --- a/src/Adaptive.Aeron/Command/PublicationBuffersReadyFlyweight.cs +++ b/src/Adaptive.Aeron/Command/PublicationBuffersReadyFlyweight.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,7 @@ namespace Adaptive.Aeron.Command /// Message to denote that new buffers have been created for a publication. /// /// - /// + /// /// 0 1 2 3 /// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 /// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -48,13 +48,14 @@ namespace Adaptive.Aeron.Command /// +---------------------------------------------------------------+ public class PublicationBuffersReadyFlyweight { - private const int CORRELATION_ID_OFFSET = 0; - private static readonly int REGISTRATION_ID_OFFSET = CORRELATION_ID_OFFSET + BitUtil.SIZE_OF_LONG; - private static readonly int SESSION_ID_OFFSET = REGISTRATION_ID_OFFSET + BitUtil.SIZE_OF_LONG; - private static readonly int STREAM_ID_FIELD_OFFSET = SESSION_ID_OFFSET + BitUtil.SIZE_OF_INT; - private static readonly int PUBLICATION_LIMIT_COUNTER_ID_OFFSET = STREAM_ID_FIELD_OFFSET + BitUtil.SIZE_OF_INT; - private static readonly int CHANNEL_STATUS_INDICATOR_ID_OFFSET = PUBLICATION_LIMIT_COUNTER_ID_OFFSET + BitUtil.SIZE_OF_INT; - private static readonly int LOGFILE_FIELD_OFFSET = CHANNEL_STATUS_INDICATOR_ID_OFFSET + BitUtil.SIZE_OF_INT; + private const int CorrelationIdOffset = 0; + private static readonly int RegistrationIdOffset = CorrelationIdOffset + BitUtil.SIZE_OF_LONG; + private static readonly int SessionIdOffset = RegistrationIdOffset + BitUtil.SIZE_OF_LONG; + private static readonly int StreamIdFieldOffset = SessionIdOffset + BitUtil.SIZE_OF_INT; + private static readonly int PublicationLimitCounterIdOffset = StreamIdFieldOffset + BitUtil.SIZE_OF_INT; + private static readonly int ChannelStatusIndicatorIdOffset = + PublicationLimitCounterIdOffset + BitUtil.SIZE_OF_INT; + private static readonly int LogfileFieldOffset = ChannelStatusIndicatorIdOffset + BitUtil.SIZE_OF_INT; private IMutableDirectBuffer _buffer; private int _offset; @@ -79,7 +80,7 @@ public PublicationBuffersReadyFlyweight Wrap(IMutableDirectBuffer buffer, int of /// correlation id field. public long CorrelationId() { - return _buffer.GetLong(_offset + CORRELATION_ID_OFFSET); + return _buffer.GetLong(_offset + CorrelationIdOffset); } /// @@ -89,7 +90,7 @@ public long CorrelationId() /// this for a fluent API. public PublicationBuffersReadyFlyweight CorrelationId(long correlationId) { - _buffer.PutLong(_offset + CORRELATION_ID_OFFSET, correlationId); + _buffer.PutLong(_offset + CorrelationIdOffset, correlationId); return this; } @@ -100,7 +101,7 @@ public PublicationBuffersReadyFlyweight CorrelationId(long correlationId) /// correlation id field. public long RegistrationId() { - return _buffer.GetLong(_offset + REGISTRATION_ID_OFFSET); + return _buffer.GetLong(_offset + RegistrationIdOffset); } /// @@ -110,7 +111,7 @@ public long RegistrationId() /// this for a fluent API. public PublicationBuffersReadyFlyweight RegistrationId(long registrationId) { - _buffer.PutLong(_offset + REGISTRATION_ID_OFFSET, registrationId); + _buffer.PutLong(_offset + RegistrationIdOffset, registrationId); return this; } @@ -121,7 +122,7 @@ public PublicationBuffersReadyFlyweight RegistrationId(long registrationId) /// session id field. public int SessionId() { - return _buffer.GetInt(_offset + SESSION_ID_OFFSET); + return _buffer.GetInt(_offset + SessionIdOffset); } /// @@ -131,7 +132,7 @@ public int SessionId() /// this for a fluent API. public PublicationBuffersReadyFlyweight SessionId(int sessionId) { - _buffer.PutInt(_offset + SESSION_ID_OFFSET, sessionId); + _buffer.PutInt(_offset + SessionIdOffset, sessionId); return this; } @@ -142,7 +143,7 @@ public PublicationBuffersReadyFlyweight SessionId(int sessionId) /// stream id field. public int StreamId() { - return _buffer.GetInt(_offset + STREAM_ID_FIELD_OFFSET); + return _buffer.GetInt(_offset + StreamIdFieldOffset); } /// @@ -152,7 +153,7 @@ public int StreamId() /// this for a fluent API. public PublicationBuffersReadyFlyweight StreamId(int streamId) { - _buffer.PutInt(_offset + STREAM_ID_FIELD_OFFSET, streamId); + _buffer.PutInt(_offset + StreamIdFieldOffset, streamId); return this; } @@ -163,7 +164,7 @@ public PublicationBuffersReadyFlyweight StreamId(int streamId) /// publication limit counter id. public int PublicationLimitCounterId() { - return _buffer.GetInt(_offset + PUBLICATION_LIMIT_COUNTER_ID_OFFSET); + return _buffer.GetInt(_offset + PublicationLimitCounterIdOffset); } /// @@ -173,18 +174,18 @@ public int PublicationLimitCounterId() /// this for a fluent API. public PublicationBuffersReadyFlyweight PublicationLimitCounterId(int positionCounterId) { - _buffer.PutInt(_offset + PUBLICATION_LIMIT_COUNTER_ID_OFFSET, positionCounterId); + _buffer.PutInt(_offset + PublicationLimitCounterIdOffset, positionCounterId); return this; } - + /// /// The channel status counter id. /// /// channel status counter id. public int ChannelStatusCounterId() { - return _buffer.GetInt(_offset + CHANNEL_STATUS_INDICATOR_ID_OFFSET); + return _buffer.GetInt(_offset + ChannelStatusIndicatorIdOffset); } /// @@ -194,7 +195,7 @@ public int ChannelStatusCounterId() /// this for a fluent API. public PublicationBuffersReadyFlyweight ChannelStatusCounterId(int counterId) { - _buffer.PutInt(_offset + CHANNEL_STATUS_INDICATOR_ID_OFFSET, counterId); + _buffer.PutInt(_offset + ChannelStatusIndicatorIdOffset, counterId); return this; } @@ -205,16 +206,16 @@ public PublicationBuffersReadyFlyweight ChannelStatusCounterId(int counterId) /// the log file name in ASCII. public string LogFileName() { - return _buffer.GetStringAscii(_offset + LOGFILE_FIELD_OFFSET); + return _buffer.GetStringAscii(_offset + LogfileFieldOffset); } - + /// - /// Append the log file name to a . + /// Append the log file name to a . /// /// to append log file name to. public void AppendLogFileName(StringBuilder stringBuilder) { - _buffer.GetStringAscii(_offset + LOGFILE_FIELD_OFFSET, stringBuilder); + _buffer.GetStringAscii(_offset + LogfileFieldOffset, stringBuilder); } /// @@ -224,20 +225,19 @@ public void AppendLogFileName(StringBuilder stringBuilder) /// the log file name in ASCII. public PublicationBuffersReadyFlyweight LogFileName(string logFileName) { - _buffer.PutStringAscii(_offset + LOGFILE_FIELD_OFFSET, logFileName); + _buffer.PutStringAscii(_offset + LogfileFieldOffset, logFileName); return this; } /// /// Get the length of the current message - /// + /// /// NB: must be called after the data is written in order to be accurate. /// /// the length of the current message public int Length() { - return _buffer.GetInt(_offset + LOGFILE_FIELD_OFFSET) + LOGFILE_FIELD_OFFSET + BitUtil.SIZE_OF_INT; + return _buffer.GetInt(_offset + LogfileFieldOffset) + LogfileFieldOffset + BitUtil.SIZE_OF_INT; } - } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/PublicationErrorFrameFlyweight.cs b/src/Adaptive.Aeron/Command/PublicationErrorFrameFlyweight.cs index 9052289f..b3a21168 100644 --- a/src/Adaptive.Aeron/Command/PublicationErrorFrameFlyweight.cs +++ b/src/Adaptive.Aeron/Command/PublicationErrorFrameFlyweight.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Net; using Adaptive.Agrona; @@ -45,10 +61,10 @@ namespace Adaptive.Aeron.Command /// public class PublicationErrorFrameFlyweight { - private const int REGISTRATION_ID_OFFSET = 0; - private const int IPV6_ADDRESS_LENGTH = 16; + private const int RegistrationIdOffset = 0; + private const int Ipv6AddressLength = 16; private static readonly int Ipv4AddressLength = BitUtil.SIZE_OF_INT; - private static readonly int DestinationRegistrationIdOffset = REGISTRATION_ID_OFFSET + BitUtil.SIZE_OF_LONG; + private static readonly int DestinationRegistrationIdOffset = RegistrationIdOffset + BitUtil.SIZE_OF_LONG; private static readonly int SessionIdOffset = DestinationRegistrationIdOffset + BitUtil.SIZE_OF_LONG; private static readonly int StreamIdOffset = SessionIdOffset + BitUtil.SIZE_OF_INT; private static readonly int ReceiverIdOffset = StreamIdOffset + BitUtil.SIZE_OF_INT; @@ -56,13 +72,13 @@ public class PublicationErrorFrameFlyweight private static readonly int AddressTypeOffset = GroupTagOffset + BitUtil.SIZE_OF_LONG; private static readonly int AddressPortOffset = AddressTypeOffset + BitUtil.SIZE_OF_SHORT; private static readonly int AddressOffset = AddressPortOffset + BitUtil.SIZE_OF_SHORT; - private static readonly int ErrorCodeOffset = AddressOffset + IPV6_ADDRESS_LENGTH; + private static readonly int ErrorCodeOffset = AddressOffset + Ipv6AddressLength; private static readonly int ErrorMessageOffset = ErrorCodeOffset + BitUtil.SIZE_OF_INT; - private const short ADDRESS_TYPE_IPV4 = 1; - private const short ADDRESS_TYPE_IPV6 = 2; + private const short AddressTypeIpv4 = 1; + private const short AddressTypeIpv6 = 2; - private IMutableDirectBuffer Buffer; - private int Offset; + private IMutableDirectBuffer _buffer; + private int _offset; /// /// Wrap the buffer at a given offset for updates. @@ -72,8 +88,8 @@ public class PublicationErrorFrameFlyweight /// this for a fluent API. public PublicationErrorFrameFlyweight Wrap(IMutableDirectBuffer buffer, int offset) { - this.Buffer = buffer; - this.Offset = offset; + _buffer = buffer; + _offset = offset; return this; } @@ -84,7 +100,7 @@ public PublicationErrorFrameFlyweight Wrap(IMutableDirectBuffer buffer, int offs /// registration ID of the publication. public long RegistrationId() { - return Buffer.GetLong(Offset + REGISTRATION_ID_OFFSET); + return _buffer.GetLong(_offset + RegistrationIdOffset); } /// @@ -94,29 +110,30 @@ public long RegistrationId() /// this for a fluent API. public PublicationErrorFrameFlyweight RegistrationId(long registrationId) { - Buffer.PutLong(Offset + REGISTRATION_ID_OFFSET, registrationId); + _buffer.PutLong(_offset + RegistrationIdOffset, registrationId); return this; } /// - /// Return registration id of the destination that received the error frame. This will only be set if the publication - /// is using manual MDC. + /// Return registration id of the destination that received the error frame. This will only be set if the + /// publication is using manual MDC. /// /// registration ID of the publication or . public long DestinationRegistrationId() { - return Buffer.GetLong(Offset + DestinationRegistrationIdOffset); + return _buffer.GetLong(_offset + DestinationRegistrationIdOffset); } /// - /// Set the registration ID of the destination that received the error frame. Use + /// Set the registration ID of the destination that received the error frame. Use + /// /// if not set. /// /// of the destination. /// this for a fluent API. public PublicationErrorFrameFlyweight DestinationRegistrationId(long registrationId) { - Buffer.PutLong(Offset + DestinationRegistrationIdOffset, registrationId); + _buffer.PutLong(_offset + DestinationRegistrationIdOffset, registrationId); return this; } @@ -126,7 +143,7 @@ public PublicationErrorFrameFlyweight DestinationRegistrationId(long registratio /// stream id field. public int StreamId() { - return Buffer.GetInt(Offset + StreamIdOffset); + return _buffer.GetInt(_offset + StreamIdOffset); } /// @@ -136,7 +153,7 @@ public int StreamId() /// this for a fluent API. public PublicationErrorFrameFlyweight StreamId(int streamId) { - Buffer.PutInt(Offset + StreamIdOffset, streamId); + _buffer.PutInt(_offset + StreamIdOffset, streamId); return this; } @@ -147,7 +164,7 @@ public PublicationErrorFrameFlyweight StreamId(int streamId) /// session id field. public int SessionId() { - return Buffer.GetInt(Offset + SessionIdOffset); + return _buffer.GetInt(_offset + SessionIdOffset); } /// @@ -157,7 +174,7 @@ public int SessionId() /// this for a fluent API. public PublicationErrorFrameFlyweight SessionId(int sessionId) { - Buffer.PutInt(Offset + SessionIdOffset, sessionId); + _buffer.PutInt(_offset + SessionIdOffset, sessionId); return this; } @@ -168,7 +185,7 @@ public PublicationErrorFrameFlyweight SessionId(int sessionId) /// get the receiver id field. public long ReceiverId() { - return Buffer.GetLong(Offset + ReceiverIdOffset); + return _buffer.GetLong(_offset + ReceiverIdOffset); } /// @@ -178,7 +195,7 @@ public long ReceiverId() /// this for a fluent API. public PublicationErrorFrameFlyweight ReceiverId(long receiverId) { - Buffer.PutLong(Offset + ReceiverIdOffset, receiverId); + _buffer.PutLong(_offset + ReceiverIdOffset, receiverId); return this; } @@ -189,7 +206,7 @@ public PublicationErrorFrameFlyweight ReceiverId(long receiverId) /// the group tag field. public long GroupTag() { - return Buffer.GetLong(Offset + GroupTagOffset); + return _buffer.GetLong(_offset + GroupTagOffset); } /// @@ -199,7 +216,7 @@ public long GroupTag() /// this for a fluent API. public PublicationErrorFrameFlyweight GroupTag(long groupTag) { - Buffer.PutLong(Offset + GroupTagOffset, groupTag); + _buffer.PutLong(_offset + GroupTagOffset, groupTag); return this; } @@ -210,24 +227,24 @@ public PublicationErrorFrameFlyweight GroupTag(long groupTag) /// source address of the error frame. public IPEndPoint SourceAddress() { - short addressType = Buffer.GetShort(Offset + AddressTypeOffset); - int port = Buffer.GetShort(Offset + AddressPortOffset) & 0xFFFF; + short addressType = _buffer.GetShort(_offset + AddressTypeOffset); + int port = _buffer.GetShort(_offset + AddressPortOffset) & 0xFFFF; byte[] address; - if (ADDRESS_TYPE_IPV4 == addressType) + if (AddressTypeIpv4 == addressType) { address = new byte[Ipv4AddressLength]; } - else if (ADDRESS_TYPE_IPV6 == addressType) + else if (AddressTypeIpv6 == addressType) { - address = new byte[IPV6_ADDRESS_LENGTH]; + address = new byte[Ipv6AddressLength]; } else { throw new ArgumentException("Unknown address type:" + addressType); } - Buffer.GetBytes(Offset + AddressOffset, address); + _buffer.GetBytes(_offset + AddressOffset, address); try { return new IPEndPoint(new IPAddress(address), port); @@ -244,7 +261,7 @@ public IPEndPoint SourceAddress() /// error code for the command. public ErrorCode ErrorCode() { - return (ErrorCode)Buffer.GetInt(Offset + ErrorCodeOffset); + return (ErrorCode)_buffer.GetInt(_offset + ErrorCodeOffset); } /// @@ -253,7 +270,7 @@ public ErrorCode ErrorCode() /// error code value for the command. public int ErrorCodeValue() { - return Buffer.GetInt(Offset + ErrorCodeOffset); + return _buffer.GetInt(_offset + ErrorCodeOffset); } /// @@ -263,7 +280,7 @@ public int ErrorCodeValue() /// this for a fluent API. public PublicationErrorFrameFlyweight ErrorCode(ErrorCode code) { - Buffer.PutInt(Offset + ErrorCodeOffset, (int)code); + _buffer.PutInt(_offset + ErrorCodeOffset, (int)code); return this; } @@ -273,7 +290,7 @@ public PublicationErrorFrameFlyweight ErrorCode(ErrorCode code) /// error message. public string ErrorMessage() { - return Buffer.GetStringAscii(Offset + ErrorMessageOffset); + return _buffer.GetStringAscii(_offset + ErrorMessageOffset); } /// @@ -283,7 +300,7 @@ public string ErrorMessage() /// this for a fluent API. public PublicationErrorFrameFlyweight ErrorMessage(string message) { - Buffer.PutStringAscii(Offset + ErrorMessageOffset, message); + _buffer.PutStringAscii(_offset + ErrorMessageOffset, message); return this; } @@ -293,7 +310,7 @@ public PublicationErrorFrameFlyweight ErrorMessage(string message) /// length of the error response in bytes. public int Length() { - return ErrorMessageOffset + BitUtil.SIZE_OF_INT + Buffer.GetInt(Offset + ErrorMessageOffset); + return ErrorMessageOffset + BitUtil.SIZE_OF_INT + _buffer.GetInt(_offset + ErrorMessageOffset); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/PublicationMessageFlyweight.cs b/src/Adaptive.Aeron/Command/PublicationMessageFlyweight.cs index b76f9268..84e0f205 100644 --- a/src/Adaptive.Aeron/Command/PublicationMessageFlyweight.cs +++ b/src/Adaptive.Aeron/Command/PublicationMessageFlyweight.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,14 +15,13 @@ */ using System.Text; -using Adaptive.Aeron.Exceptions; using Adaptive.Agrona; namespace Adaptive.Aeron.Command { /// /// Control message for adding or removing a publication - /// + ///
     ///   0                   1                   2                   3
     ///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     ///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -39,15 +38,15 @@ namespace Adaptive.Aeron.Command
     ///  |                       Channel (ASCII)                        ...
     /// ...                                                              |
     ///  +---------------------------------------------------------------+
-    /// 
+    /// 
///
public class PublicationMessageFlyweight : CorrelatedMessageFlyweight { - private static readonly int STREAM_ID_FIELD_OFFSET = CORRELATION_ID_FIELD_OFFSET + BitUtil.SIZE_OF_LONG; - private static readonly int CHANNEL_OFFSET = STREAM_ID_FIELD_OFFSET + BitUtil.SIZE_OF_INT; + private static readonly int StreamIdFieldOffset = CorrelationIdFieldOffset + BitUtil.SIZE_OF_LONG; + private static readonly int ChannelOffset = StreamIdFieldOffset + BitUtil.SIZE_OF_INT; + + private static readonly int MinimumLength = ChannelOffset + BitUtil.SIZE_OF_INT; - private static readonly int MINIMUM_LENGTH = CHANNEL_OFFSET + BitUtil.SIZE_OF_INT; - private int _lengthOfChannel; /// @@ -62,14 +61,14 @@ public class PublicationMessageFlyweight : CorrelatedMessageFlyweight return this; } - + /// /// Get the stream id field. /// /// stream id field. public int StreamId() { - return buffer.GetInt(offset + STREAM_ID_FIELD_OFFSET); + return _buffer.GetInt(_offset + StreamIdFieldOffset); } /// @@ -79,7 +78,7 @@ public int StreamId() /// this for a fluent API. public PublicationMessageFlyweight StreamId(int streamId) { - buffer.PutInt(offset + STREAM_ID_FIELD_OFFSET, streamId); + _buffer.PutInt(_offset + StreamIdFieldOffset, streamId); return this; } @@ -90,18 +89,18 @@ public PublicationMessageFlyweight StreamId(int streamId) /// channel field. public string Channel() { - return buffer.GetStringAscii(offset + CHANNEL_OFFSET); + return _buffer.GetStringAscii(_offset + ChannelOffset); } /// - /// Append the channel value to a . + /// Append the channel value to a . /// /// to append channel to. public void AppendChannel(StringBuilder stringBuilder) { - buffer.GetStringAscii(offset + CHANNEL_OFFSET, stringBuilder); + _buffer.GetStringAscii(_offset + ChannelOffset, stringBuilder); } - + /// /// Set the channel field in ASCII. /// @@ -109,22 +108,22 @@ public void AppendChannel(StringBuilder stringBuilder) /// this for a fluent API. public PublicationMessageFlyweight Channel(string channel) { - _lengthOfChannel = buffer.PutStringAscii(offset + CHANNEL_OFFSET, channel); + _lengthOfChannel = _buffer.PutStringAscii(_offset + ChannelOffset, channel); return this; } /// /// Get the length of the current message. - /// + /// /// NB: must be called after the data is written in order to be accurate. /// /// the length of the current message. public int Length() { - return CHANNEL_OFFSET + _lengthOfChannel; + return ChannelOffset + _lengthOfChannel; } - + /// /// Compute the length of the command message for a given channel length. /// @@ -132,7 +131,7 @@ public int Length() /// the length of the command message for a given channel length. public static int ComputeLength(int channelLength) { - return MINIMUM_LENGTH + channelLength; + return MinimumLength + channelLength; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/RejectImageFlyweight.cs b/src/Adaptive.Aeron/Command/RejectImageFlyweight.cs index 5ebccf12..f384a271 100644 --- a/src/Adaptive.Aeron/Command/RejectImageFlyweight.cs +++ b/src/Adaptive.Aeron/Command/RejectImageFlyweight.cs @@ -1,169 +1,189 @@ -using Adaptive.Aeron.Exceptions; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron.Exceptions; using Adaptive.Agrona; namespace Adaptive.Aeron.Command { /// -/// Control message to reject an image for a subscription. -/// -///
-///   0                   1                   2                   3
-///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-///  |                          Client ID                            |
-///  |                                                               |
-///  +---------------------------------------------------------------+
-///  |                       Correlation ID                          |
-///  |                                                               |
-///  +---------------------------------------------------------------+
-///  |                    Image Correlation ID                       |
-///  |                                                               |
-///  +---------------------------------------------------------------+
-///  |                           Position                            |
-///  |                                                               |
-///  +---------------------------------------------------------------+
-///  |                        Reason Length                          |
-///  +---------------------------------------------------------------+
-///  |                        Reason (ASCII)                       ...
-///  ...                                                             |
-///  +---------------------------------------------------------------+
-/// 
-///
-public class RejectImageFlyweight : CorrelatedMessageFlyweight -{ - private static readonly int ImageCorrelationIdFieldOffset = CORRELATION_ID_FIELD_OFFSET + BitUtil.SIZE_OF_LONG; - private static readonly int PositionFieldOffset = ImageCorrelationIdFieldOffset + BitUtil.SIZE_OF_LONG; - private static readonly int ReasonFieldOffset = PositionFieldOffset + BitUtil.SIZE_OF_LONG; - private static readonly int MinimumSize = ReasonFieldOffset + BitUtil.SIZE_OF_INT; - - /// - /// Wrap the buffer at a given offset for updates. - /// - /// to wrap. - /// at which the message begins. - /// this for a fluent API. - public new RejectImageFlyweight Wrap(IMutableDirectBuffer buffer, int offset) - { - base.Wrap(buffer, offset); - return this; - } - - /// - /// Get image correlation id field. - /// - /// image correlation id field. - public long ImageCorrelationId() - { - return buffer.GetLong(offset + ImageCorrelationIdFieldOffset); - } - - /// - /// Put image correlation id field. - /// - /// new image correlation id value. - /// this for a fluent API. - public RejectImageFlyweight ImageCorrelationId(long position) - { - buffer.PutLong(offset + ImageCorrelationIdFieldOffset, position); - return this; - } - - /// - /// Get position field. - /// - /// position field. - public long Position() - { - return buffer.GetLong(offset + PositionFieldOffset); - } - - /// - /// Put position field. - /// - /// new position value. - /// this for a fluent API. - public RejectImageFlyweight Position(long position) - { - buffer.PutLong(offset + PositionFieldOffset, position); - return this; - } - - /// - /// Put reason field as ASCII. Include the reason length in the message. - /// - /// for invalidating the image. - /// this for a fluent API. - public RejectImageFlyweight Reason(string reason) - { - buffer.PutStringAscii(offset + ReasonFieldOffset, reason); - return this; - } - - - /// - /// Get reason field as ASCII. - /// - /// reason for invalidating the image. - public string Reason() - { - return buffer.GetStringAscii(offset + ReasonFieldOffset); - } - - /// - /// Length of the reason text. - /// - /// length of the reason text. - public int ReasonBufferLength() - { - // This does make the assumption that the string is stored with the leading 4 bytes representing the length. - return buffer.GetInt(offset + ReasonFieldOffset); - } - - /// - /// {@inheritDoc} - /// - public new RejectImageFlyweight ClientId(long clientId) - { - base.ClientId(clientId); - return this; - } - - /// - /// {@inheritDoc} - /// - public new RejectImageFlyweight CorrelationId(long correlationId) - { - base.CorrelationId(correlationId); - return this; - } - - /// - /// Compute the length of the message based on the reason supplied. - /// - /// message to be return to originator. - /// length of the message. - public static int ComputeLength(string reason) - { - return MinimumSize + reason.Length; - } - - /// - /// Validate buffer length is long enough for message. - /// - /// type of message. - /// of message in bytes to validate. - public new void ValidateLength(int msgTypeId, int length) - { - if (length < MinimumSize) - { - throw new ControlProtocolException(ErrorCode.MALFORMED_COMMAND, "command=" + msgTypeId + " too short: length=" + length); - } - - if (length < MinimumSize + ReasonBufferLength()) - { - throw new ControlProtocolException(ErrorCode.MALFORMED_COMMAND, "command=" + msgTypeId + " too short: length=" + length); - } - } + /// Control message to reject an image for a subscription. + /// + ///
+    ///   0                   1                   2                   3
+    ///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+    ///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    ///  |                          Client ID                            |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                       Correlation ID                          |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                    Image Correlation ID                       |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                           Position                            |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                        Reason Length                          |
+    ///  +---------------------------------------------------------------+
+    ///  |                        Reason (ASCII)                       ...
+    ///  ...                                                             |
+    ///  +---------------------------------------------------------------+
+    /// 
+ ///
+ public class RejectImageFlyweight : CorrelatedMessageFlyweight + { + private static readonly int ImageCorrelationIdFieldOffset = CorrelationIdFieldOffset + BitUtil.SIZE_OF_LONG; + private static readonly int PositionFieldOffset = ImageCorrelationIdFieldOffset + BitUtil.SIZE_OF_LONG; + private static readonly int ReasonFieldOffset = PositionFieldOffset + BitUtil.SIZE_OF_LONG; + private static readonly int MinimumSize = ReasonFieldOffset + BitUtil.SIZE_OF_INT; + + /// + /// Wrap the buffer at a given offset for updates. + /// + /// to wrap. + /// at which the message begins. + /// this for a fluent API. + public new RejectImageFlyweight Wrap(IMutableDirectBuffer buffer, int offset) + { + base.Wrap(buffer, offset); + return this; + } + + /// + /// Get image correlation id field. + /// + /// image correlation id field. + public long ImageCorrelationId() + { + return _buffer.GetLong(_offset + ImageCorrelationIdFieldOffset); + } + + /// + /// Put image correlation id field. + /// + /// new image correlation id value. + /// this for a fluent API. + public RejectImageFlyweight ImageCorrelationId(long position) + { + _buffer.PutLong(_offset + ImageCorrelationIdFieldOffset, position); + return this; + } + + /// + /// Get position field. + /// + /// position field. + public long Position() + { + return _buffer.GetLong(_offset + PositionFieldOffset); + } + + /// + /// Put position field. + /// + /// new position value. + /// this for a fluent API. + public RejectImageFlyweight Position(long position) + { + _buffer.PutLong(_offset + PositionFieldOffset, position); + return this; + } + + /// + /// Put reason field as ASCII. Include the reason length in the message. + /// + /// for invalidating the image. + /// this for a fluent API. + public RejectImageFlyweight Reason(string reason) + { + _buffer.PutStringAscii(_offset + ReasonFieldOffset, reason); + return this; + } + + /// + /// Get reason field as ASCII. + /// + /// reason for invalidating the image. + public string Reason() + { + return _buffer.GetStringAscii(_offset + ReasonFieldOffset); + } + + /// + /// Length of the reason text. + /// + /// length of the reason text. + public int ReasonBufferLength() + { + // This does make the assumption that the string is stored with the leading 4 bytes representing the length. + return _buffer.GetInt(_offset + ReasonFieldOffset); + } + + /// + /// {@inheritDoc} + /// + public new RejectImageFlyweight ClientId(long clientId) + { + base.ClientId(clientId); + return this; + } + + /// + /// {@inheritDoc} + /// + public new RejectImageFlyweight CorrelationId(long correlationId) + { + base.CorrelationId(correlationId); + return this; + } + + /// + /// Compute the length of the message based on the reason supplied. + /// + /// message to be return to originator. + /// length of the message. + public static int ComputeLength(string reason) + { + return MinimumSize + reason.Length; + } + + /// + /// Validate _buffer length is long enough for message. + /// + /// type of message. + /// of message in bytes to validate. + public new void ValidateLength(int msgTypeId, int length) + { + if (length < MinimumSize) + { + throw new ControlProtocolException( + ErrorCode.MALFORMED_COMMAND, + "command=" + msgTypeId + " too short: length=" + length + ); + } + + if (length < MinimumSize + ReasonBufferLength()) + { + throw new ControlProtocolException( + ErrorCode.MALFORMED_COMMAND, + "command=" + msgTypeId + " too short: length=" + length + ); + } + } + } } - -} \ No newline at end of file diff --git a/src/Adaptive.Aeron/Command/RemoveCounterFlyweight.cs b/src/Adaptive.Aeron/Command/RemoveCounterFlyweight.cs index 69f3fc26..1fbfc379 100644 --- a/src/Adaptive.Aeron/Command/RemoveCounterFlyweight.cs +++ b/src/Adaptive.Aeron/Command/RemoveCounterFlyweight.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Aeron.Command +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Aeron.Command { /// /// Control message for removing a Counter. @@ -20,4 +36,4 @@ public class RemoveCounterFlyweight : RemoveMessageFlyweight { } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/RemoveMessageFlyweight.cs b/src/Adaptive.Aeron/Command/RemoveMessageFlyweight.cs index c30dce74..9d93ffc3 100644 --- a/src/Adaptive.Aeron/Command/RemoveMessageFlyweight.cs +++ b/src/Adaptive.Aeron/Command/RemoveMessageFlyweight.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,8 +23,8 @@ namespace Adaptive.Aeron.Command { public abstract class RemoveMessageFlyweight : CorrelatedMessageFlyweight { - internal static readonly int REGISTRATION_ID_FIELD_OFFSET = CORRELATION_ID_FIELD_OFFSET + SIZE_OF_LONG; - private static readonly int MINIMUM_LENGTH = REGISTRATION_ID_FIELD_OFFSET + SIZE_OF_LONG; + internal static readonly int RegistrationIdFieldOffset = CorrelationIdFieldOffset + SIZE_OF_LONG; + private static readonly int MinimumLength = RegistrationIdFieldOffset + SIZE_OF_LONG; /// /// Wrap the buffer at a given offset for updates. @@ -45,7 +45,7 @@ public abstract class RemoveMessageFlyweight : CorrelatedMessageFlyweight /// registration id field. public long RegistrationId() { - return buffer.GetLong(offset + REGISTRATION_ID_FIELD_OFFSET); + return _buffer.GetLong(_offset + RegistrationIdFieldOffset); } /// @@ -55,7 +55,7 @@ public long RegistrationId() /// this for a fluent API. public RemoveMessageFlyweight RegistrationId(long registrationId) { - buffer.PutLong(offset + REGISTRATION_ID_FIELD_OFFSET, registrationId); + _buffer.PutLong(_offset + RegistrationIdFieldOffset, registrationId); return this; } @@ -70,16 +70,19 @@ public static int Length() } /// - /// Validate buffer length is long enough for message. + /// Validate _buffer length is long enough for message. /// /// type of message. /// of message in bytes to validate. public new void ValidateLength(int msgTypeId, int length) { - if (length < MINIMUM_LENGTH) + if (length < MinimumLength) { - throw new ControlProtocolException(MALFORMED_COMMAND, "command=" + msgTypeId + " too short: length=" + length); + throw new ControlProtocolException( + MALFORMED_COMMAND, + "command=" + msgTypeId + " too short: length=" + length + ); } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/RemovePublicationFlyweight.cs b/src/Adaptive.Aeron/Command/RemovePublicationFlyweight.cs index 9303697e..156504d9 100644 --- a/src/Adaptive.Aeron/Command/RemovePublicationFlyweight.cs +++ b/src/Adaptive.Aeron/Command/RemovePublicationFlyweight.cs @@ -1,106 +1,122 @@ -using Adaptive.Agrona; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona; using static Adaptive.Agrona.BitUtil; namespace Adaptive.Aeron.Command { - /// - /// Control message for removing a Publication. - ///
-	///   0                   1                   2                   3
-	///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-	///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-	///  |                          Client ID                            |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	///  |                    Command Correlation ID                     |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	///  |                       Registration ID                         |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	///  |                           Flags                               |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	/// 
- ///
- public class RemovePublicationFlyweight : RemoveMessageFlyweight - { - private static readonly int FlagsFieldOffset = REGISTRATION_ID_FIELD_OFFSET + SIZE_OF_LONG; + /// + /// Control message for removing a Publication. + ///
+    ///   0                   1                   2                   3
+    ///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+    ///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    ///  |                          Client ID                            |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                    Command Correlation ID                     |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                       Registration ID                         |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                           Flags                               |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    /// 
+ ///
+ public class RemovePublicationFlyweight : RemoveMessageFlyweight + { + private static readonly int FlagsFieldOffset = RegistrationIdFieldOffset + SIZE_OF_LONG; - private const long FLAG_REVOKE = 0x1; + private const long FlagRevoke = 0x1; - /// - /// Wrap the buffer at a given offset for updates. - /// - /// to wrap. - /// at which the message begins. - /// this for a fluent API. - public new RemovePublicationFlyweight Wrap(IMutableDirectBuffer buffer, int offset) - { - base.Wrap(buffer, offset); + /// + /// Wrap the buffer at a given offset for updates. + /// + /// to wrap. + /// at which the message begins. + /// this for a fluent API. + public new RemovePublicationFlyweight Wrap(IMutableDirectBuffer buffer, int offset) + { + base.Wrap(buffer, offset); - return this; - } + return this; + } - /// - /// Length of the message in bytes. - /// - /// length of the message in bytes. - public new static int Length() - { - return RemoveMessageFlyweight.Length() + SIZE_OF_LONG; - } + /// + /// Length of the message in bytes. + /// + /// length of the message in bytes. + public static new int Length() + { + return RemoveMessageFlyweight.Length() + SIZE_OF_LONG; + } - /// - /// Whether or not the message contains the flags field. - /// - /// the length of the message. - /// true if the flags field can be read. - public bool FlagsFieldIsValid(int messageLength) - { - return messageLength >= FlagsFieldOffset + SIZE_OF_LONG; - } + /// + /// Whether or not the message contains the flags field. + /// + /// the length of the message. + /// true if the flags field can be read. + public bool FlagsFieldIsValid(int messageLength) + { + return messageLength >= FlagsFieldOffset + SIZE_OF_LONG; + } - /// - /// Get the value of the revoke field. - /// - /// revoked. - public bool Revoke() - { - return (buffer.GetLong(offset + FlagsFieldOffset) & FLAG_REVOKE) > 0; - } + /// + /// Get the value of the revoke field. + /// + /// revoked. + public bool Revoke() + { + return (_buffer.GetLong(_offset + FlagsFieldOffset) & FlagRevoke) > 0; + } - /// - /// Whether or not the message contains the set revoke flag. - /// - /// the length of the message. - /// true if the flags field is present AND the revoked flag is set. - public bool Revoke(int messageLength) - { - return FlagsFieldIsValid(messageLength) && Revoke(); - } + /// + /// Whether or not the message contains the set revoke flag. + /// + /// the length of the message. + /// true if the flags field is present AND the revoked flag is set. + public bool Revoke(int messageLength) + { + return FlagsFieldIsValid(messageLength) && Revoke(); + } - /// - /// Set the value of the revoke field. - /// - /// field value. - /// this for a fluent API. - public RemovePublicationFlyweight Revoke(bool revoke) - { - long flags = buffer.GetLong(offset + FlagsFieldOffset); + /// + /// Set the value of the revoke field. + /// + /// field value. + /// this for a fluent API. + public RemovePublicationFlyweight Revoke(bool revoke) + { + long flags = _buffer.GetLong(_offset + FlagsFieldOffset); - if (revoke) - { - flags |= FLAG_REVOKE; - } - else - { - flags &= ~FLAG_REVOKE; - } + if (revoke) + { + flags |= FlagRevoke; + } + else + { + flags &= ~FlagRevoke; + } - buffer.PutLong(offset + FlagsFieldOffset, flags); + _buffer.PutLong(_offset + FlagsFieldOffset, flags); - return this; - } - } -} \ No newline at end of file + return this; + } + } +} diff --git a/src/Adaptive.Aeron/Command/RemoveSubscriptionFlyweight.cs b/src/Adaptive.Aeron/Command/RemoveSubscriptionFlyweight.cs index 78130563..a7e7e931 100644 --- a/src/Adaptive.Aeron/Command/RemoveSubscriptionFlyweight.cs +++ b/src/Adaptive.Aeron/Command/RemoveSubscriptionFlyweight.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Aeron.Command +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Aeron.Command { /// /// Control message for removing a Subscription. @@ -20,4 +36,4 @@ public class RemoveSubscriptionFlyweight : RemoveMessageFlyweight { } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/StaticCounterFlyweight.cs b/src/Adaptive.Aeron/Command/StaticCounterFlyweight.cs index b2d8b667..9ca26ad0 100644 --- a/src/Adaptive.Aeron/Command/StaticCounterFlyweight.cs +++ b/src/Adaptive.Aeron/Command/StaticCounterFlyweight.cs @@ -1,99 +1,112 @@ -using Adaptive.Agrona; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona; namespace Adaptive.Aeron.Command { - /// - /// Message to denote a response to a create static counter request. - /// - /// - ///
-	///   0                   1                   2                   3
-	///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-	///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-	///  |                         Correlation ID                        |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	///  |                           Counter ID                          |
-	///  +---------------------------------------------------------------+
-	/// 
/> - public class StaticCounterFlyweight - { - /// - /// Length of the header. - /// - public static readonly int LENGTH = BitUtil.SIZE_OF_LONG + BitUtil.SIZE_OF_INT; + /// + /// Message to denote a response to a create static counter request. + /// + /// + ///
+    ///   0                   1                   2                   3
+    ///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+    ///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    ///  |                         Correlation ID                        |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                           Counter ID                          |
+    ///  +---------------------------------------------------------------+
+    /// 
/> + public class StaticCounterFlyweight + { + /// + /// Length of the header. + /// + public static readonly int LENGTH = BitUtil.SIZE_OF_LONG + BitUtil.SIZE_OF_INT; - private const int CORRELATION_ID_OFFSET = 0; - private static readonly int CounterIdOffset = CORRELATION_ID_OFFSET + BitUtil.SIZE_OF_LONG; + private const int CorrelationIdOffset = 0; + private static readonly int CounterIdOffset = CorrelationIdOffset + BitUtil.SIZE_OF_LONG; - private IMutableDirectBuffer Buffer; - private int Offset; + private IMutableDirectBuffer _buffer; + private int _offset; - /// - /// Wrap the buffer at a given offset for updates. - /// - /// to wrap - /// at which the message begins. - /// this for a fluent API. - public StaticCounterFlyweight Wrap(IMutableDirectBuffer buffer, int offset) - { - this.Buffer = buffer; - this.Offset = offset; + /// + /// Wrap the buffer at a given offset for updates. + /// + /// to wrap + /// at which the message begins. + /// this for a fluent API. + public StaticCounterFlyweight Wrap(IMutableDirectBuffer buffer, int offset) + { + _buffer = buffer; + _offset = offset; - return this; - } + return this; + } - /// - /// Get the correlation id field. - /// - /// correlation id field. - public long CorrelationId() - { - return Buffer.GetLong(Offset + CORRELATION_ID_OFFSET); - } + /// + /// Get the correlation id field. + /// + /// correlation id field. + public long CorrelationId() + { + return _buffer.GetLong(_offset + CorrelationIdOffset); + } - /// - /// Set the correlation id field. - /// - /// field value. - /// this for a fluent API. - public StaticCounterFlyweight CorrelationId(long correlationId) - { - Buffer.PutLong(Offset + CORRELATION_ID_OFFSET, correlationId); + /// + /// Set the correlation id field. + /// + /// field value. + /// this for a fluent API. + public StaticCounterFlyweight CorrelationId(long correlationId) + { + _buffer.PutLong(_offset + CorrelationIdOffset, correlationId); - return this; - } + return this; + } - /// - /// The counter id. - /// - /// counter id. - public int CounterId() - { - return Buffer.GetInt(Offset + CounterIdOffset); - } + /// + /// The counter id. + /// + /// counter id. + public int CounterId() + { + return _buffer.GetInt(_offset + CounterIdOffset); + } - /// - /// Set counter id field. - /// - /// field value. - /// this for a fluent API. - public StaticCounterFlyweight CounterId(int counterId) - { - Buffer.PutInt(Offset + CounterIdOffset, counterId); + /// + /// Set counter id field. + /// + /// field value. + /// this for a fluent API. + public StaticCounterFlyweight CounterId(int counterId) + { + _buffer.PutInt(_offset + CounterIdOffset, counterId); - return this; - } + return this; + } - /// - /// {@inheritDoc} - /// - public override string ToString() - { - return "StaticCounterFlyweight{" + - "correlationId=" + CorrelationId() + - ", counterId=" + CounterId() + - "}"; - } - } -} \ No newline at end of file + /// + /// {@inheritDoc} + /// + public override string ToString() + { + return "StaticCounterFlyweight{" + "correlationId=" + CorrelationId() + ", counterId=" + CounterId() + "}"; + } + } +} diff --git a/src/Adaptive.Aeron/Command/StaticCounterMessageFlyweight.cs b/src/Adaptive.Aeron/Command/StaticCounterMessageFlyweight.cs index a27c3ab0..13d8ea38 100644 --- a/src/Adaptive.Aeron/Command/StaticCounterMessageFlyweight.cs +++ b/src/Adaptive.Aeron/Command/StaticCounterMessageFlyweight.cs @@ -1,257 +1,296 @@ -using Adaptive.Aeron.Exceptions; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron.Exceptions; using Adaptive.Agrona; namespace Adaptive.Aeron.Command { - /// - /// Message to get or create a new static counter. - /// - /// Note: Layout should be SBE 2.0 compliant so that the label length is aligned. - /// - /// - /// - /// - ///
-	///   0                   1                   2                   3
-	///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-	///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-	///  |                          Client ID                            |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	///  |                        Correlation ID                         |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	///  |                        Registration ID                        |
-	///  |                                                               |
-	///  +---------------------------------------------------------------+
-	///  |                        Counter Type ID                        |
-	///  +---------------------------------------------------------------+
-	///  |                           Key Length                          |
-	///  +---------------------------------------------------------------+
-	///  |                           Key Buffer                         ...
-	/// ...                                                              |
-	///  +---------------------------------------------------------------+
-	///  |                          Label Length                         |
-	///  +---------------------------------------------------------------+
-	///  |                          Label (ASCII)                       ...
-	/// ...                                                              |
-	///  +---------------------------------------------------------------+
-	/// 
/> - public class StaticCounterMessageFlyweight : CorrelatedMessageFlyweight - { - private static readonly int RegistrationIdFieldOffset = CORRELATION_ID_FIELD_OFFSET + BitUtil.SIZE_OF_LONG; - private static readonly int CounterTypeIdFieldOffset = RegistrationIdFieldOffset + BitUtil.SIZE_OF_LONG; - private static readonly int KeyLengthOffset = CounterTypeIdFieldOffset + BitUtil.SIZE_OF_INT; - internal static readonly int KEY_BUFFER_OFFSET = KeyLengthOffset + BitUtil.SIZE_OF_INT; - private static readonly int MinimumLength = KEY_BUFFER_OFFSET + BitUtil.SIZE_OF_INT; + /// + /// Message to get or create a new static counter. + /// + /// Note: Layout should be SBE 2.0 compliant so that the label length is aligned. + /// + /// + /// + /// + ///
+    ///   0                   1                   2                   3
+    ///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+    ///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    ///  |                          Client ID                            |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                        Correlation ID                         |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                        Registration ID                        |
+    ///  |                                                               |
+    ///  +---------------------------------------------------------------+
+    ///  |                        Counter Type ID                        |
+    ///  +---------------------------------------------------------------+
+    ///  |                           Key Length                          |
+    ///  +---------------------------------------------------------------+
+    ///  |                           Key Buffer                         ...
+    /// ...                                                              |
+    ///  +---------------------------------------------------------------+
+    ///  |                          Label Length                         |
+    ///  +---------------------------------------------------------------+
+    ///  |                          Label (ASCII)                       ...
+    /// ...                                                              |
+    ///  +---------------------------------------------------------------+
+    /// 
+ public class StaticCounterMessageFlyweight : CorrelatedMessageFlyweight + { + private static readonly int RegistrationIdFieldOffset = CorrelationIdFieldOffset + BitUtil.SIZE_OF_LONG; + private static readonly int CounterTypeIdFieldOffset = RegistrationIdFieldOffset + BitUtil.SIZE_OF_LONG; + private static readonly int KeyLengthOffset = CounterTypeIdFieldOffset + BitUtil.SIZE_OF_INT; + internal static readonly int KeyBufferFieldOffset = KeyLengthOffset + BitUtil.SIZE_OF_INT; + private static readonly int MinimumLength = KeyBufferFieldOffset + BitUtil.SIZE_OF_INT; - /// - /// Wrap the buffer at a given offset for updates. - /// - /// to wrap. - /// at which the message begins. - /// this for a fluent API. - public new StaticCounterMessageFlyweight Wrap(IMutableDirectBuffer buffer, int offset) - { - base.Wrap(buffer, offset); + /// + /// Wrap the buffer at a given offset for updates. + /// + /// to wrap. + /// at which the message begins. + /// this for a fluent API. + public new StaticCounterMessageFlyweight Wrap(IMutableDirectBuffer buffer, int offset) + { + base.Wrap(buffer, offset); - return this; - } + return this; + } - /// - /// Get registration id field. - /// - /// registration id field. - public long RegistrationId() - { - return buffer.GetLong(offset + RegistrationIdFieldOffset); - } + /// + /// Get registration id field. + /// + /// registration id field. + public long RegistrationId() + { + return _buffer.GetLong(_offset + RegistrationIdFieldOffset); + } - /// - /// Set counter registration id field. - /// - /// field value. - /// this for a fluent API. - public StaticCounterMessageFlyweight RegistrationId(long registrationId) - { - buffer.PutLong(offset + RegistrationIdFieldOffset, registrationId); - return this; - } + /// + /// Set counter registration id field. + /// + /// field value. + /// this for a fluent API. + public StaticCounterMessageFlyweight RegistrationId(long registrationId) + { + _buffer.PutLong(_offset + RegistrationIdFieldOffset, registrationId); + return this; + } - /// - /// Get type id field. - /// - /// type id field. - public int TypeId() - { - return buffer.GetInt(offset + CounterTypeIdFieldOffset); - } + /// + /// Get type id field. + /// + /// type id field. + public int TypeId() + { + return _buffer.GetInt(_offset + CounterTypeIdFieldOffset); + } - /// - /// Set counter type id field. - /// - /// field value. - /// this for a fluent API. - public StaticCounterMessageFlyweight TypeId(int typeId) - { - buffer.PutInt(offset + CounterTypeIdFieldOffset, typeId); - return this; - } + /// + /// Set counter type id field. + /// + /// field value. + /// this for a fluent API. + public StaticCounterMessageFlyweight TypeId(int typeId) + { + _buffer.PutInt(_offset + CounterTypeIdFieldOffset, typeId); + return this; + } - /// - /// Relative offset of the key buffer. - /// - /// relative offset of the key buffer. - public int KeyBufferOffset() - { - return KEY_BUFFER_OFFSET; - } + /// + /// Relative _offset of the key _buffer. + /// + /// relative _offset of the key _buffer. + public int KeyBufferOffset() + { + return KeyBufferFieldOffset; + } - /// - /// Length of the key buffer in bytes. - /// - /// length of key buffer in bytes. - public int KeyBufferLength() - { - return buffer.GetInt(offset + KeyLengthOffset); - } + /// + /// Length of the key _buffer in bytes. + /// + /// length of key _buffer in bytes. + public int KeyBufferLength() + { + return _buffer.GetInt(_offset + KeyLengthOffset); + } - /// - /// Fill the key buffer. - /// - /// containing the optional key for the counter. - /// within the keyBuffer at which the key begins. - /// of the key in the keyBuffer. - /// this for a fluent API. - public StaticCounterMessageFlyweight KeyBuffer(IDirectBuffer keyBuffer, int keyOffset, int keyLength) - { - buffer.PutInt(offset + KeyLengthOffset, keyLength); - if (null != keyBuffer && keyLength > 0) - { - buffer.PutBytes(offset + KEY_BUFFER_OFFSET, keyBuffer, keyOffset, keyLength); - } + /// + /// Fill the key _buffer. + /// + /// containing the optional key for the counter. + /// within the keyBuffer at which the key begins. + /// of the key in the keyBuffer. + /// this for a fluent API. + public StaticCounterMessageFlyweight KeyBuffer(IDirectBuffer keyBuffer, int keyOffset, int keyLength) + { + _buffer.PutInt(_offset + KeyLengthOffset, keyLength); + if (null != keyBuffer && keyLength > 0) + { + _buffer.PutBytes(_offset + KeyBufferFieldOffset, keyBuffer, keyOffset, keyLength); + } - return this; - } + return this; + } - /// - /// Relative offset of label buffer. - /// - /// relative offset of label buffer. - public int LabelBufferOffset() - { - return LabelLengthOffset() + BitUtil.SIZE_OF_INT; - } + /// + /// Relative _offset of label _buffer. + /// + /// relative _offset of label _buffer. + public int LabelBufferOffset() + { + return LabelLengthOffset() + BitUtil.SIZE_OF_INT; + } - /// - /// Length of label buffer in bytes. - /// - /// length of label buffer in bytes. - public int LabelBufferLength() - { - return buffer.GetInt(offset + LabelLengthOffset()); - } + /// + /// Length of label _buffer in bytes. + /// + /// length of label _buffer in bytes. + public int LabelBufferLength() + { + return _buffer.GetInt(_offset + LabelLengthOffset()); + } - /// - /// Fill the label buffer. - /// - /// containing the mandatory label for the counter. - /// within the labelBuffer at which the label begins. - /// of the label in the labelBuffer. - /// this for a fluent API. - public StaticCounterMessageFlyweight LabelBuffer(IDirectBuffer labelBuffer, int labelOffset, int labelLength) - { - int labelLengthOffset = LabelLengthOffset(); - buffer.PutInt(offset + labelLengthOffset, labelLength); - if (null != labelBuffer && labelLength > 0) - { - buffer.PutBytes(offset + labelLengthOffset + BitUtil.SIZE_OF_INT, labelBuffer, labelOffset, labelLength); - } + /// + /// Fill the label _buffer. + /// + /// containing the mandatory label for the counter. + /// within the labelBuffer at which the label begins. + /// of the label in the labelBuffer. + /// this for a fluent API. + public StaticCounterMessageFlyweight LabelBuffer(IDirectBuffer labelBuffer, int labelOffset, int labelLength) + { + int labelLengthOffset = LabelLengthOffset(); + _buffer.PutInt(_offset + labelLengthOffset, labelLength); + if (null != labelBuffer && labelLength > 0) + { + _buffer.PutBytes( + _offset + labelLengthOffset + BitUtil.SIZE_OF_INT, + labelBuffer, + labelOffset, + labelLength + ); + } - return this; - } + return this; + } - /// - /// Fill the label. - /// - /// for the counter. - /// this for a fluent API. - public StaticCounterMessageFlyweight Label(string label) - { - buffer.PutStringAscii(offset + LabelLengthOffset(), label); + /// + /// Fill the label. + /// + /// for the counter. + /// this for a fluent API. + public StaticCounterMessageFlyweight Label(string label) + { + _buffer.PutStringAscii(_offset + LabelLengthOffset(), label); - return this; - } + return this; + } - /// - /// Get the length of the current message. - /// - /// NB: must be called after the data is written in order to be accurate. - /// - /// - /// - /// the length of the current message - public int Length() - { - int labelOffset = LabelLengthOffset(); - return labelOffset + BitUtil.SIZE_OF_INT + LabelBufferLength(); - } + /// + /// Get the length of the current message. + /// + /// NB: must be called after the data is written in order to be accurate. + /// + /// + /// + /// the length of the current message + public int Length() + { + int labelOffset = LabelLengthOffset(); + return labelOffset + BitUtil.SIZE_OF_INT + LabelBufferLength(); + } - /// - /// Validate buffer length is long enough for message. - /// - /// type of message. - /// of message in bytes to validate. - public new void ValidateLength(int msgTypeId, int length) - { - if (length < MinimumLength) - { - throw new ControlProtocolException(ErrorCode.MALFORMED_COMMAND, - "command=" + msgTypeId + " too short: length=" + length); - } + /// + /// Validate _buffer length is long enough for message. + /// + /// type of message. + /// of message in bytes to validate. + public new void ValidateLength(int msgTypeId, int length) + { + if (length < MinimumLength) + { + throw new ControlProtocolException( + ErrorCode.MALFORMED_COMMAND, + "command=" + msgTypeId + " too short: length=" + length + ); + } - int labelOffset = LabelLengthOffset(); - if ((length - labelOffset) < BitUtil.SIZE_OF_INT) - { - throw new ControlProtocolException(ErrorCode.MALFORMED_COMMAND, - "command=" + msgTypeId + " too short for key: length=" + length); - } + int labelOffset = LabelLengthOffset(); + if ((length - labelOffset) < BitUtil.SIZE_OF_INT) + { + throw new ControlProtocolException( + ErrorCode.MALFORMED_COMMAND, + "command=" + msgTypeId + " too short for key: length=" + length + ); + } - int encodedLength = Length(); - if (length < encodedLength) - { - throw new ControlProtocolException(ErrorCode.MALFORMED_COMMAND, - "command=" + msgTypeId + " too short for label: length=" + length + " encodedLength=" + - encodedLength); - } - } + int encodedLength = Length(); + if (length < encodedLength) + { + throw new ControlProtocolException( + ErrorCode.MALFORMED_COMMAND, + "command=" + + msgTypeId + + " too short for label: length=" + + length + + " encodedLength=" + + encodedLength + ); + } + } - /// - /// Compute the length of the command message given key and label length. - /// - /// to be appended. - /// to be appended. - /// the length of the command message given key and label length. - public static int ComputeLength(int keyLength, int labelLength) - { - return MinimumLength + BitUtil.Align(keyLength, BitUtil.SIZE_OF_INT) + BitUtil.SIZE_OF_INT + labelLength; - } + /// + /// Compute the length of the command message given key and label length. + /// + /// to be appended. + /// to be appended. + /// the length of the command message given key and label length. + public static int ComputeLength(int keyLength, int labelLength) + { + return MinimumLength + BitUtil.Align(keyLength, BitUtil.SIZE_OF_INT) + BitUtil.SIZE_OF_INT + labelLength; + } /// /// {@inheritDoc} /// public override string ToString() { - return "StaticCounterMessageFlyweight{" + "clientId=" + ClientId() + ", correlationId=" + CorrelationId() + - ", registrationId=" + RegistrationId() + ", typeId=" + TypeId() + ", keyBufferOffset=" + - KeyBufferOffset() + ", keyBufferLength=" + KeyBufferLength() + ", labelLengthOffset=" + - LabelLengthOffset() + ", labelBufferOffset=" + LabelBufferOffset() + ", labelBufferLength=" + - LabelBufferLength() + ", length=" + Length() + "}"; + return + "StaticCounterMessageFlyweight{" + + "clientId=" + ClientId() + + ", correlationId=" + CorrelationId() + + ", registrationId=" + RegistrationId() + + ", typeId=" + TypeId() + + ", keyBufferOffset=" + KeyBufferOffset() + + ", keyBufferLength=" + KeyBufferLength() + + ", labelLengthOffset=" + LabelLengthOffset() + + ", labelBufferOffset=" + LabelBufferOffset() + + ", labelBufferLength=" + LabelBufferLength() + + ", length=" + Length() + + "}"; } - private int LabelLengthOffset() - { - return KEY_BUFFER_OFFSET + BitUtil.Align(KeyBufferLength(), BitUtil.SIZE_OF_INT); - } - } -} \ No newline at end of file + private int LabelLengthOffset() + { + return KeyBufferFieldOffset + BitUtil.Align(KeyBufferLength(), BitUtil.SIZE_OF_INT); + } + } +} diff --git a/src/Adaptive.Aeron/Command/SubscriptionMessageFlyweight.cs b/src/Adaptive.Aeron/Command/SubscriptionMessageFlyweight.cs index 92a16b2c..5f738355 100644 --- a/src/Adaptive.Aeron/Command/SubscriptionMessageFlyweight.cs +++ b/src/Adaptive.Aeron/Command/SubscriptionMessageFlyweight.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,14 +15,13 @@ */ using System.Text; -using Adaptive.Aeron.Exceptions; using Adaptive.Agrona; namespace Adaptive.Aeron.Command { /// /// Control message for adding or removing a subscription. - /// + ///
     ///   0                   1                   2                   3
     ///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     ///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -42,16 +41,16 @@ namespace Adaptive.Aeron.Command
     ///  |                       Channel (ASCII)                        ...
     /// ...                                                              |
     ///  +---------------------------------------------------------------+
-    /// 
+    /// 
///
public class SubscriptionMessageFlyweight : CorrelatedMessageFlyweight { - private static readonly int REGISTRATION_CORRELATION_ID_OFFSET = CORRELATION_ID_FIELD_OFFSET + - BitUtil.SIZE_OF_LONG; + private static readonly int RegistrationCorrelationIdOffset = + CorrelationIdFieldOffset + BitUtil.SIZE_OF_LONG; - private static readonly int STREAM_ID_OFFSET = REGISTRATION_CORRELATION_ID_OFFSET + BitUtil.SIZE_OF_LONG; - private static readonly int CHANNEL_OFFSET = STREAM_ID_OFFSET + BitUtil.SIZE_OF_INT; - private static readonly int MINIMUM_LENGTH = CHANNEL_OFFSET + BitUtil.SIZE_OF_INT; + private static readonly int StreamIdOffset = RegistrationCorrelationIdOffset + BitUtil.SIZE_OF_LONG; + private static readonly int ChannelOffset = StreamIdOffset + BitUtil.SIZE_OF_INT; + private static readonly int MinimumLength = ChannelOffset + BitUtil.SIZE_OF_INT; private int _lengthOfChannel; @@ -67,14 +66,14 @@ public class SubscriptionMessageFlyweight : CorrelatedMessageFlyweight return this; } - + /// /// return correlation id used in registration field. /// /// correlation id field. public long RegistrationCorrelationId() { - return buffer.GetLong(offset + REGISTRATION_CORRELATION_ID_OFFSET); + return _buffer.GetLong(_offset + RegistrationCorrelationIdOffset); } /// @@ -84,7 +83,7 @@ public long RegistrationCorrelationId() /// this for a fluent API. public SubscriptionMessageFlyweight RegistrationCorrelationId(long correlationId) { - buffer.PutLong(offset + REGISTRATION_CORRELATION_ID_OFFSET, correlationId); + _buffer.PutLong(_offset + RegistrationCorrelationIdOffset, correlationId); return this; } @@ -95,7 +94,7 @@ public SubscriptionMessageFlyweight RegistrationCorrelationId(long correlationId /// the stream id. public int StreamId() { - return buffer.GetInt(offset + STREAM_ID_OFFSET); + return _buffer.GetInt(_offset + StreamIdOffset); } /// @@ -105,7 +104,7 @@ public int StreamId() /// this for a fluent API. public SubscriptionMessageFlyweight StreamId(int streamId) { - buffer.PutInt(offset + STREAM_ID_OFFSET, streamId); + _buffer.PutInt(_offset + StreamIdOffset, streamId); return this; } @@ -116,18 +115,18 @@ public SubscriptionMessageFlyweight StreamId(int streamId) /// channel field. public string Channel() { - return buffer.GetStringAscii(offset + CHANNEL_OFFSET); + return _buffer.GetStringAscii(_offset + ChannelOffset); } /// - /// Append the channel value to a . + /// Append the channel value to a . /// /// to append channel to. public void AppendChannel(StringBuilder stringBuilder) { - buffer.GetStringAscii(offset + CHANNEL_OFFSET, stringBuilder); + _buffer.GetStringAscii(_offset + ChannelOffset, stringBuilder); } - + /// /// Set channel field in ASCII. /// @@ -135,7 +134,7 @@ public void AppendChannel(StringBuilder stringBuilder) /// this for a fluent API. public SubscriptionMessageFlyweight Channel(string channel) { - _lengthOfChannel = buffer.PutStringAscii(offset + CHANNEL_OFFSET, channel); + _lengthOfChannel = _buffer.PutStringAscii(_offset + ChannelOffset, channel); return this; } @@ -146,9 +145,9 @@ public SubscriptionMessageFlyweight Channel(string channel) /// length of the message in bytes. public int Length() { - return CHANNEL_OFFSET + _lengthOfChannel; + return ChannelOffset + _lengthOfChannel; } - + /// /// Compute the length of the command message for a given channel length. /// @@ -156,7 +155,7 @@ public int Length() /// the length of the command message for a given channel length. public static int ComputeLength(int channelLength) { - return MINIMUM_LENGTH + channelLength; + return MinimumLength + channelLength; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/SubscriptionReadyFlyweight.cs b/src/Adaptive.Aeron/Command/SubscriptionReadyFlyweight.cs index 00388895..2bd1ced8 100644 --- a/src/Adaptive.Aeron/Command/SubscriptionReadyFlyweight.cs +++ b/src/Adaptive.Aeron/Command/SubscriptionReadyFlyweight.cs @@ -1,4 +1,20 @@ -using Adaptive.Agrona; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona; namespace Adaptive.Aeron.Command { @@ -23,11 +39,11 @@ public class SubscriptionReadyFlyweight /// Length of the header. /// public static readonly int LENGTH = BitUtil.SIZE_OF_LONG + BitUtil.SIZE_OF_INT; - private const int CORRELATION_ID_OFFSET = 0; - private static readonly int CHANNEL_STATUS_INDICATOR_ID_OFFSET = CORRELATION_ID_OFFSET + BitUtil.SIZE_OF_LONG; + private const int CorrelationIdOffset = 0; + private static readonly int ChannelStatusIndicatorIdOffset = CorrelationIdOffset + BitUtil.SIZE_OF_LONG; - private IMutableDirectBuffer buffer; - private int offset; + private IMutableDirectBuffer _buffer; + private int _offset; /// /// Wrap the buffer at a given offset for updates. @@ -37,8 +53,8 @@ public class SubscriptionReadyFlyweight /// this for a fluent API. public SubscriptionReadyFlyweight Wrap(IMutableDirectBuffer buffer, int offset) { - this.buffer = buffer; - this.offset = offset; + _buffer = buffer; + _offset = offset; return this; } @@ -49,7 +65,7 @@ public SubscriptionReadyFlyweight Wrap(IMutableDirectBuffer buffer, int offset) /// correlation id field. public long CorrelationId() { - return buffer.GetLong(offset + CORRELATION_ID_OFFSET); + return _buffer.GetLong(_offset + CorrelationIdOffset); } /// @@ -59,7 +75,7 @@ public long CorrelationId() /// this for a fluent API. public SubscriptionReadyFlyweight CorrelationId(long correlationId) { - buffer.PutLong(offset + CORRELATION_ID_OFFSET, correlationId); + _buffer.PutLong(_offset + CorrelationIdOffset, correlationId); return this; } @@ -70,7 +86,7 @@ public SubscriptionReadyFlyweight CorrelationId(long correlationId) /// channel status counter id public int ChannelStatusCounterId() { - return buffer.GetInt(offset + CHANNEL_STATUS_INDICATOR_ID_OFFSET); + return _buffer.GetInt(_offset + ChannelStatusIndicatorIdOffset); } /// @@ -80,9 +96,9 @@ public int ChannelStatusCounterId() /// this for a fluent API. public SubscriptionReadyFlyweight ChannelStatusCounterId(int counterId) { - buffer.PutInt(offset + CHANNEL_STATUS_INDICATOR_ID_OFFSET, counterId); + _buffer.PutInt(_offset + ChannelStatusIndicatorIdOffset, counterId); return this; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Command/TerminateDriverFlyweight.cs b/src/Adaptive.Aeron/Command/TerminateDriverFlyweight.cs index 021704d7..01d93360 100644 --- a/src/Adaptive.Aeron/Command/TerminateDriverFlyweight.cs +++ b/src/Adaptive.Aeron/Command/TerminateDriverFlyweight.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron.Exceptions; using Adaptive.Agrona; @@ -26,9 +42,9 @@ namespace Adaptive.Aeron.Command /// public class TerminateDriverFlyweight : CorrelatedMessageFlyweight { - private static readonly int TOKEN_LENGTH_OFFSET = CORRELATION_ID_FIELD_OFFSET + BitUtil.SIZE_OF_LONG; - internal static readonly int TOKEN_BUFFER_OFFSET = TOKEN_LENGTH_OFFSET + BitUtil.SIZE_OF_INT; - private static readonly int MINIMUM_LENGTH = TOKEN_LENGTH_OFFSET + BitUtil.SIZE_OF_INT; + private static readonly int TokenLengthOffset = CorrelationIdFieldOffset + BitUtil.SIZE_OF_LONG; + internal static readonly int TokenBufferFieldOffset = TokenLengthOffset + BitUtil.SIZE_OF_INT; + private static readonly int MinimumLength = TokenLengthOffset + BitUtil.SIZE_OF_INT; /// /// Wrap the buffer at a given offset for updates. @@ -41,27 +57,27 @@ public class TerminateDriverFlyweight : CorrelatedMessageFlyweight base.Wrap(buffer, offset); return this; } - + /// - /// Relative offset of the token buffer. + /// Relative _offset of the token _buffer. /// - /// relative offset of the token buffer. + /// relative _offset of the token _buffer. public int TokenBufferOffset() { - return TOKEN_BUFFER_OFFSET; + return TokenBufferFieldOffset; } /// - /// Length of the token buffer in bytes. + /// Length of the token _buffer in bytes. /// - /// length of token buffer in bytes. + /// length of token _buffer in bytes. public int TokenBufferLength() { - return buffer.GetInt(offset + TOKEN_LENGTH_OFFSET); + return _buffer.GetInt(_offset + TokenLengthOffset); } /// - /// Fill the token buffer. + /// Fill the token _buffer. /// /// containing the optional token for the request. /// within the tokenBuffer at which the token begins. @@ -69,10 +85,10 @@ public int TokenBufferLength() /// this for a fluent API. public TerminateDriverFlyweight TokenBuffer(IDirectBuffer tokenBuffer, int tokenOffset, int tokenLength) { - buffer.PutInt(offset + TOKEN_LENGTH_OFFSET, tokenLength); + _buffer.PutInt(_offset + TokenLengthOffset, tokenLength); if (null != tokenBuffer && tokenLength > 0) { - buffer.PutBytes(offset + TokenBufferOffset(), tokenBuffer, tokenOffset, tokenLength); + _buffer.PutBytes(_offset + TokenBufferOffset(), tokenBuffer, tokenOffset, tokenLength); } return this; @@ -82,7 +98,7 @@ public TerminateDriverFlyweight TokenBuffer(IDirectBuffer tokenBuffer, int token /// Get the length of the current message. /// /// NB: must be called after the data is written in order to be correct. - /// + /// /// /// /// the length of the current message @@ -106,4 +122,4 @@ public static int ComputeLength(int tokenLength) return LENGTH + BitUtil.SIZE_OF_INT + tokenLength; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/ConcurrentPublication.cs b/src/Adaptive.Aeron/ConcurrentPublication.cs index cc2850ea..dd594d6f 100644 --- a/src/Adaptive.Aeron/ConcurrentPublication.cs +++ b/src/Adaptive.Aeron/ConcurrentPublication.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Agrona.Concurrent; @@ -10,632 +26,715 @@ namespace Adaptive.Aeron { - /// - /// Aeron publisher API for sending messages to subscribers of a given channel and streamId pair. s - /// are created via the method, and messages are sent via one of the - /// methods, or a and - /// method combination. - /// - /// The APIs for tryClaim and offer are non-blocking and thread safe. - /// - /// - /// Note: Instances are threadsafe and can be shared between publishing threads. - /// - /// - /// - /// - /// - public sealed class ConcurrentPublication : Publication - { - // For testing purposes only - internal ConcurrentPublication() - { - - } - - internal ConcurrentPublication( - ClientConductor clientConductor, - string channel, - int streamId, - int sessionId, - IReadablePosition positionLimit, - int channelStatusId, - LogBuffers logBuffers, - long originalRegistrationId, - long registrationId) - : base( - clientConductor, - channel, - streamId, - sessionId, - positionLimit, - channelStatusId, - logBuffers, - originalRegistrationId, - registrationId - ) - { - } - - /// - public override long AvailableWindow - { - get - { - if (_isClosed) - { - return CLOSED; - } - - return _positionLimit.GetVolatile() - Position; - } - } - - /// - public override long Offer(IDirectBuffer buffer, int offset, int length, - ReservedValueSupplier reservedValueSupplier = null) - { - long newPosition = CLOSED; - if (!_isClosed) - { - long limit = _positionLimit.GetVolatile(); - int termCount = ActiveTermCount(_logMetaDataBuffer); - int index = IndexByTermCount(termCount); - UnsafeBuffer termBuffer = _termBuffers[index]; - int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (index * SIZE_OF_LONG); - long rawTail = _logMetaDataBuffer.GetLongVolatile(tailCounterOffset); - int termOffset = TermOffset(rawTail, termBuffer.Capacity); - int termId = TermId(rawTail); - - if (termCount != (termId - InitialTermId)) - { - return ADMIN_ACTION; - } - - long position = ComputePosition(termId, termOffset, PositionBitsToShift, InitialTermId); - - if (position < limit) - { - if (length <= MaxPayloadLength) - { - CheckPositiveLength(length); - newPosition = AppendUnfragmentedMessage( - termBuffer, tailCounterOffset, buffer, offset, length, reservedValueSupplier); - } - else - { - CheckMaxMessageLength(length); - newPosition = AppendFragmentedMessage( - termBuffer, tailCounterOffset, buffer, offset, length, reservedValueSupplier); - } - } - else - { - newPosition = BackPressureStatus(position, length); - } - } - - return newPosition; - } - - - /// - public override long Offer(IDirectBuffer bufferOne, int offsetOne, int lengthOne, IDirectBuffer bufferTwo, - int offsetTwo, int lengthTwo, ReservedValueSupplier reservedValueSupplier = null) - { - long newPosition = CLOSED; - if (!_isClosed) - { - long limit = _positionLimit.GetVolatile(); - int termCount = ActiveTermCount(_logMetaDataBuffer); - int index = IndexByTermCount(termCount); - UnsafeBuffer termBuffer = _termBuffers[index]; - int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (index * SIZE_OF_LONG); - long rawTail = _logMetaDataBuffer.GetLongVolatile(tailCounterOffset); - int termOffset = TermOffset(rawTail, termBuffer.Capacity); - int termId = TermId(rawTail); - - if (termCount != (termId - InitialTermId)) - { - return ADMIN_ACTION; - } - - long position = ComputePosition(termId, termOffset, PositionBitsToShift, InitialTermId); - - int length = ValidateAndComputeLength(lengthOne, lengthTwo); - if (position < limit) - { - if (length <= MaxPayloadLength) - { - newPosition = AppendUnfragmentedMessage( - termBuffer, - tailCounterOffset, - bufferOne, - offsetOne, - lengthOne, - bufferTwo, - offsetTwo, - lengthTwo, - reservedValueSupplier); - } - else - { - CheckMaxMessageLength(length); - newPosition = AppendFragmentedMessage( - termBuffer, - tailCounterOffset, - bufferOne, - offsetOne, - lengthOne, - bufferTwo, - offsetTwo, - lengthTwo, - reservedValueSupplier); - } - } - else - { - newPosition = BackPressureStatus(position, length); - } - } - - return newPosition; - } - - /// - public override long Offer(DirectBufferVector[] vectors, ReservedValueSupplier reservedValueSupplier = null) - { - int length = DirectBufferVector.ValidateAndComputeLength(vectors); - long newPosition = CLOSED; - - if (!_isClosed) - { - long limit = _positionLimit.GetVolatile(); - int termCount = ActiveTermCount(_logMetaDataBuffer); - int index = IndexByTermCount(termCount); - UnsafeBuffer termBuffer = _termBuffers[index]; - int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (index * SIZE_OF_LONG); - long rawTail = _logMetaDataBuffer.GetLongVolatile(tailCounterOffset); - int termOffset = TermOffset(rawTail, termBuffer.Capacity); - int termId = TermId(rawTail); - - if (termCount != (termId - InitialTermId)) - { - return ADMIN_ACTION; - } - - long position = ComputePosition(termId, termOffset, PositionBitsToShift, InitialTermId); - - if (position < limit) - { - if (length <= MaxPayloadLength) - { - newPosition = AppendUnfragmentedMessage( - termBuffer, tailCounterOffset, vectors, length, reservedValueSupplier); - } - else - { - CheckMaxMessageLength(length); - newPosition = AppendFragmentedMessage( - termBuffer, tailCounterOffset, vectors, length, reservedValueSupplier); - } - } - else - { - newPosition = BackPressureStatus(position, length); - } - } - - return newPosition; - } - - - /// - public override long TryClaim(int length, BufferClaim bufferClaim) - { - CheckPayloadLength(length); - long newPosition = CLOSED; - - if (!_isClosed) - { - long limit = _positionLimit.GetVolatile(); - int termCount = ActiveTermCount(_logMetaDataBuffer); - int index = IndexByTermCount(termCount); - UnsafeBuffer termBuffer = _termBuffers[index]; - int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (index * SIZE_OF_LONG); - long rawTail = _logMetaDataBuffer.GetLongVolatile(tailCounterOffset); - int termOffset = TermOffset(rawTail, termBuffer.Capacity); - int termId = TermId(rawTail); - - if (termCount != (termId - InitialTermId)) - { - return ADMIN_ACTION; - } - - long position = ComputePosition(termId, termOffset, PositionBitsToShift, InitialTermId); - - if (position < limit) - { - newPosition = Claim(termBuffer, tailCounterOffset, length, bufferClaim); - } - else - { - newPosition = BackPressureStatus(position, length); - } - } - - return newPosition; - } - - private long AppendUnfragmentedMessage(UnsafeBuffer termBuffer, int tailCounterOffset, IDirectBuffer buffer, - int offset, int length, ReservedValueSupplier reservedValueSupplier) - { - int frameLength = length + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - int termLength = termBuffer.Capacity; - - long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, alignedLength); - int termId = TermId(rawTail); - int termOffset = TermOffset(rawTail, termLength); - - int resultingOffset = termOffset + alignedLength; - long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); - if (resultingOffset > termLength) - { - return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); - } - else - { - _headerWriter.Write(termBuffer, termOffset, frameLength, termId); - termBuffer.PutBytes(termOffset + HEADER_LENGTH, buffer, offset, length); - - if (null != reservedValueSupplier) - { - long reservedValue = reservedValueSupplier(termBuffer, termOffset, frameLength); - termBuffer.PutLong(termOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); - } - - FrameLengthOrdered(termBuffer, termOffset, frameLength); - } - - return position; - } - - private long AppendFragmentedMessage(UnsafeBuffer termBuffer, int tailCounterOffset, IDirectBuffer buffer, - int offset, int length, ReservedValueSupplier reservedValueSupplier) - { - int framedLength = ComputeFragmentedFrameLength(length, MaxPayloadLength); - int termLength = termBuffer.Capacity; - - long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, framedLength); - int termId = TermId(rawTail); - int termOffset = TermOffset(rawTail, termLength); - - int resultingOffset = termOffset + framedLength; - long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); - if (resultingOffset > termLength) - { - return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); - } - else - { - int frameOffset = termOffset; - byte flags = BEGIN_FRAG_FLAG; - int remaining = length; - - do - { - int bytesToWrite = Math.Min(remaining, MaxPayloadLength); - int frameLength = bytesToWrite + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - - _headerWriter.Write(termBuffer, frameOffset, frameLength, termId); - termBuffer.PutBytes(frameOffset + HEADER_LENGTH, buffer, offset + (length - remaining), - bytesToWrite); - - if (remaining <= MaxPayloadLength) - { - flags |= END_FRAG_FLAG; - } - - FrameFlags(termBuffer, frameOffset, flags); - - if (null != reservedValueSupplier) - { - long reservedValue = reservedValueSupplier(termBuffer, frameOffset, frameLength); - termBuffer.PutLong(frameOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); - } - - FrameLengthOrdered(termBuffer, frameOffset, frameLength); - - flags = 0; - frameOffset += alignedLength; - remaining -= bytesToWrite; - } while (remaining > 0); - } - - return position; - } - - private long AppendUnfragmentedMessage(UnsafeBuffer termBuffer, int tailCounterOffset, IDirectBuffer bufferOne, - int offsetOne, int lengthOne, IDirectBuffer bufferTwo, int offsetTwo, int lengthTwo, - ReservedValueSupplier reservedValueSupplier) - { - int frameLength = lengthOne + lengthTwo + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - int termLength = termBuffer.Capacity; - - long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, alignedLength); - int termId = TermId(rawTail); - int termOffset = TermOffset(rawTail, termLength); - - int resultingOffset = termOffset + alignedLength; - long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); - if (resultingOffset > termLength) - { - return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); - } - else - { - _headerWriter.Write(termBuffer, termOffset, frameLength, termId); - termBuffer.PutBytes(termOffset + HEADER_LENGTH, bufferOne, offsetOne, lengthOne); - termBuffer.PutBytes(termOffset + HEADER_LENGTH + lengthOne, bufferTwo, offsetTwo, lengthTwo); - - if (null != reservedValueSupplier) - { - long reservedValue = reservedValueSupplier(termBuffer, termOffset, frameLength); - termBuffer.PutLong(termOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); - } - - FrameLengthOrdered(termBuffer, termOffset, frameLength); - } - - return position; - } - - private long AppendFragmentedMessage(UnsafeBuffer termBuffer, int tailCounterOffset, IDirectBuffer bufferOne, - int offsetOne, int lengthOne, IDirectBuffer bufferTwo, int offsetTwo, int lengthTwo, - ReservedValueSupplier reservedValueSupplier) - { - int length = lengthOne + lengthTwo; - int framedLength = ComputeFragmentedFrameLength(length, MaxPayloadLength); - int termLength = termBuffer.Capacity; - - long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, framedLength); - int termId = TermId(rawTail); - int termOffset = TermOffset(rawTail, termLength); - - int resultingOffset = termOffset + framedLength; - long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); - if (resultingOffset > termLength) - { - return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); - } - else - { - int frameOffset = termOffset; - byte flags = BEGIN_FRAG_FLAG; - int remaining = length; - int positionOne = 0; - int positionTwo = 0; - - do - { - int bytesToWrite = Math.Min(remaining, MaxPayloadLength); - int frameLength = bytesToWrite + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - - _headerWriter.Write(termBuffer, frameOffset, frameLength, termId); - - int bytesWritten = 0; - int payloadOffset = frameOffset + HEADER_LENGTH; - do - { - int remainingOne = lengthOne - positionOne; - if (remainingOne > 0) - { - int numBytes = Math.Min(bytesToWrite - bytesWritten, remainingOne); - termBuffer.PutBytes(payloadOffset, bufferOne, offsetOne + positionOne, numBytes); - - bytesWritten += numBytes; - payloadOffset += numBytes; - positionOne += numBytes; - } - else - { - int numBytes = Math.Min(bytesToWrite - bytesWritten, lengthTwo - positionTwo); - termBuffer.PutBytes(payloadOffset, bufferTwo, offsetTwo + positionTwo, numBytes); - - bytesWritten += numBytes; - payloadOffset += numBytes; - positionTwo += numBytes; - } - } while (bytesWritten < bytesToWrite); - - if (remaining <= MaxPayloadLength) - { - flags |= END_FRAG_FLAG; - } - - FrameFlags(termBuffer, frameOffset, flags); - - if (null != reservedValueSupplier) - { - long reservedValue = reservedValueSupplier(termBuffer, frameOffset, frameLength); - termBuffer.PutLong(frameOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); - } - - FrameLengthOrdered(termBuffer, frameOffset, frameLength); - - flags = 0; - frameOffset += alignedLength; - remaining -= bytesToWrite; - } while (remaining > 0); - } - - return position; - } - - private long AppendUnfragmentedMessage(UnsafeBuffer termBuffer, int tailCounterOffset, - DirectBufferVector[] vectors, int length, ReservedValueSupplier reservedValueSupplier) - { - int frameLength = length + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - int termLength = termBuffer.Capacity; - - long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, alignedLength); - int termId = TermId(rawTail); - int termOffset = TermOffset(rawTail, termLength); - - int resultingOffset = termOffset + alignedLength; - long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); - if (resultingOffset > termLength) - { - return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); - } - else - { - _headerWriter.Write(termBuffer, termOffset, frameLength, termId); - - int offset = termOffset + HEADER_LENGTH; - foreach (DirectBufferVector vector in vectors) - { - termBuffer.PutBytes(offset, vector.Buffer(), vector.Offset(), vector.Length()); - offset += vector.Length(); - } - - if (null != reservedValueSupplier) - { - long reservedValue = reservedValueSupplier(termBuffer, termOffset, frameLength); - termBuffer.PutLong(termOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); - } - - FrameLengthOrdered(termBuffer, termOffset, frameLength); - } - - return position; - } - - private long AppendFragmentedMessage(UnsafeBuffer termBuffer, int tailCounterOffset, - DirectBufferVector[] vectors, int length, ReservedValueSupplier reservedValueSupplier) - { - int framedLength = ComputeFragmentedFrameLength(length, MaxPayloadLength); - int termLength = termBuffer.Capacity; - - long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, framedLength); - int termId = TermId(rawTail); - int termOffset = TermOffset(rawTail, termLength); - - int resultingOffset = termOffset + framedLength; - long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); - if (resultingOffset > termLength) - { - return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); - } - else - { - int frameOffset = termOffset; - byte flags = BEGIN_FRAG_FLAG; - int remaining = length; - int vectorIndex = 0; - int vectorOffset = 0; - - do - { - int bytesToWrite = Math.Min(remaining, MaxPayloadLength); - int frameLength = bytesToWrite + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - - _headerWriter.Write(termBuffer, frameOffset, frameLength, termId); - - int bytesWritten = 0; - int payloadOffset = frameOffset + HEADER_LENGTH; - do - { - DirectBufferVector vector = vectors[vectorIndex]; - int vectorRemaining = vector.Length() - vectorOffset; - int numBytes = Math.Min(bytesToWrite - bytesWritten, vectorRemaining); - - termBuffer.PutBytes(payloadOffset, vector.Buffer(), vector.Offset() + vectorOffset, numBytes); - - bytesWritten += numBytes; - payloadOffset += numBytes; - vectorOffset += numBytes; - - if (vectorRemaining <= numBytes) - { - vectorIndex++; - vectorOffset = 0; - } - } while (bytesWritten < bytesToWrite); - - if (remaining <= MaxPayloadLength) - { - flags |= END_FRAG_FLAG; - } - - FrameFlags(termBuffer, frameOffset, flags); - - if (null != reservedValueSupplier) - { - long reservedValue = reservedValueSupplier(termBuffer, frameOffset, frameLength); - termBuffer.PutLong(frameOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); - } - - FrameLengthOrdered(termBuffer, frameOffset, frameLength); - - flags = 0; - frameOffset += alignedLength; - remaining -= bytesToWrite; - } while (remaining > 0); - } - - return position; - } - - private long Claim(UnsafeBuffer termBuffer, int tailCounterOffset, int length, BufferClaim bufferClaim) - { - int frameLength = length + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - int termLength = termBuffer.Capacity; - - long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, alignedLength); - int termId = TermId(rawTail); - int termOffset = TermOffset(rawTail, termLength); - - int resultingOffset = termOffset + alignedLength; - long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); - if (resultingOffset > termLength) - { - return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); - } - else - { - _headerWriter.Write(termBuffer, termOffset, frameLength, termId); - bufferClaim.Wrap(termBuffer, termOffset, frameLength); - } - - return position; - } - - private long HandleEndOfLog(UnsafeBuffer termBuffer, int termLength, int termId, int termOffset, long position) - { - if (termOffset < termLength) - { - int paddingLength = termLength - termOffset; - _headerWriter.Write(termBuffer, termOffset, paddingLength, termId); - FrameType(termBuffer, termOffset, PADDING_FRAME_TYPE); - FrameLengthOrdered(termBuffer, termOffset, paddingLength); - } - - if (position >= MaxPossiblePosition) - { - return MAX_POSITION_EXCEEDED; - } - - RotateLog(_logMetaDataBuffer, termId - InitialTermId, termId); - - return ADMIN_ACTION; - } - } -} \ No newline at end of file + /// + /// Aeron publisher API for sending messages to subscribers of a given channel and streamId pair. + /// s + /// are created via the method, and messages are sent via one of + /// the + /// methods, or a and + /// + /// method combination. + /// + /// The APIs for tryClaim and offer are non-blocking and thread safe. + /// + /// + /// Note: Instances are threadsafe and can be shared between publishing threads. + /// + /// + /// + /// + /// + public sealed class ConcurrentPublication : Publication + { + // For testing purposes only + internal ConcurrentPublication() + { + } + + internal ConcurrentPublication( + ClientConductor clientConductor, + string channel, + int streamId, + int sessionId, + IReadablePosition positionLimit, + int channelStatusId, + LogBuffers logBuffers, + long originalRegistrationId, + long registrationId + ) + : base( + clientConductor, + channel, + streamId, + sessionId, + positionLimit, + channelStatusId, + logBuffers, + originalRegistrationId, + registrationId + ) + { + } + + /// + public override long AvailableWindow + { + get + { + if (_isClosed) + { + return CLOSED; + } + + return _positionLimit.GetVolatile() - Position; + } + } + + /// + public override long Offer( + IDirectBuffer buffer, + int offset, + int length, + ReservedValueSupplier reservedValueSupplier = null + ) + { + long newPosition = CLOSED; + if (!_isClosed) + { + long limit = _positionLimit.GetVolatile(); + int termCount = ActiveTermCount(_logMetaDataBuffer); + int index = IndexByTermCount(termCount); + UnsafeBuffer termBuffer = _termBuffers[index]; + int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (index * SIZE_OF_LONG); + long rawTail = _logMetaDataBuffer.GetLongVolatile(tailCounterOffset); + int termOffset = TermOffset(rawTail, termBuffer.Capacity); + int termId = TermId(rawTail); + + if (termCount != (termId - InitialTermId)) + { + return ADMIN_ACTION; + } + + long position = ComputePosition(termId, termOffset, PositionBitsToShift, InitialTermId); + + if (position < limit) + { + if (length <= MaxPayloadLength) + { + CheckPositiveLength(length); + newPosition = AppendUnfragmentedMessage( + termBuffer, + tailCounterOffset, + buffer, + offset, + length, + reservedValueSupplier + ); + } + else + { + CheckMaxMessageLength(length); + newPosition = AppendFragmentedMessage( + termBuffer, + tailCounterOffset, + buffer, + offset, + length, + reservedValueSupplier + ); + } + } + else + { + newPosition = BackPressureStatus(position, length); + } + } + + return newPosition; + } + + /// + public override long Offer( + IDirectBuffer bufferOne, + int offsetOne, + int lengthOne, + IDirectBuffer bufferTwo, + int offsetTwo, + int lengthTwo, + ReservedValueSupplier reservedValueSupplier = null + ) + { + long newPosition = CLOSED; + if (!_isClosed) + { + long limit = _positionLimit.GetVolatile(); + int termCount = ActiveTermCount(_logMetaDataBuffer); + int index = IndexByTermCount(termCount); + UnsafeBuffer termBuffer = _termBuffers[index]; + int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (index * SIZE_OF_LONG); + long rawTail = _logMetaDataBuffer.GetLongVolatile(tailCounterOffset); + int termOffset = TermOffset(rawTail, termBuffer.Capacity); + int termId = TermId(rawTail); + + if (termCount != (termId - InitialTermId)) + { + return ADMIN_ACTION; + } + + long position = ComputePosition(termId, termOffset, PositionBitsToShift, InitialTermId); + + int length = ValidateAndComputeLength(lengthOne, lengthTwo); + if (position < limit) + { + if (length <= MaxPayloadLength) + { + newPosition = AppendUnfragmentedMessage( + termBuffer, + tailCounterOffset, + bufferOne, + offsetOne, + lengthOne, + bufferTwo, + offsetTwo, + lengthTwo, + reservedValueSupplier + ); + } + else + { + CheckMaxMessageLength(length); + newPosition = AppendFragmentedMessage( + termBuffer, + tailCounterOffset, + bufferOne, + offsetOne, + lengthOne, + bufferTwo, + offsetTwo, + lengthTwo, + reservedValueSupplier + ); + } + } + else + { + newPosition = BackPressureStatus(position, length); + } + } + + return newPosition; + } + + /// + public override long Offer(DirectBufferVector[] vectors, ReservedValueSupplier reservedValueSupplier = null) + { + int length = DirectBufferVector.ValidateAndComputeLength(vectors); + long newPosition = CLOSED; + + if (!_isClosed) + { + long limit = _positionLimit.GetVolatile(); + int termCount = ActiveTermCount(_logMetaDataBuffer); + int index = IndexByTermCount(termCount); + UnsafeBuffer termBuffer = _termBuffers[index]; + int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (index * SIZE_OF_LONG); + long rawTail = _logMetaDataBuffer.GetLongVolatile(tailCounterOffset); + int termOffset = TermOffset(rawTail, termBuffer.Capacity); + int termId = TermId(rawTail); + + if (termCount != (termId - InitialTermId)) + { + return ADMIN_ACTION; + } + + long position = ComputePosition(termId, termOffset, PositionBitsToShift, InitialTermId); + + if (position < limit) + { + if (length <= MaxPayloadLength) + { + newPosition = AppendUnfragmentedMessage( + termBuffer, + tailCounterOffset, + vectors, + length, + reservedValueSupplier + ); + } + else + { + CheckMaxMessageLength(length); + newPosition = AppendFragmentedMessage( + termBuffer, + tailCounterOffset, + vectors, + length, + reservedValueSupplier + ); + } + } + else + { + newPosition = BackPressureStatus(position, length); + } + } + + return newPosition; + } + + /// + public override long TryClaim(int length, BufferClaim bufferClaim) + { + CheckPayloadLength(length); + long newPosition = CLOSED; + + if (!_isClosed) + { + long limit = _positionLimit.GetVolatile(); + int termCount = ActiveTermCount(_logMetaDataBuffer); + int index = IndexByTermCount(termCount); + UnsafeBuffer termBuffer = _termBuffers[index]; + int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (index * SIZE_OF_LONG); + long rawTail = _logMetaDataBuffer.GetLongVolatile(tailCounterOffset); + int termOffset = TermOffset(rawTail, termBuffer.Capacity); + int termId = TermId(rawTail); + + if (termCount != (termId - InitialTermId)) + { + return ADMIN_ACTION; + } + + long position = ComputePosition(termId, termOffset, PositionBitsToShift, InitialTermId); + + if (position < limit) + { + newPosition = Claim(termBuffer, tailCounterOffset, length, bufferClaim); + } + else + { + newPosition = BackPressureStatus(position, length); + } + } + + return newPosition; + } + + private long AppendUnfragmentedMessage( + UnsafeBuffer termBuffer, + int tailCounterOffset, + IDirectBuffer buffer, + int offset, + int length, + ReservedValueSupplier reservedValueSupplier + ) + { + int frameLength = length + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + int termLength = termBuffer.Capacity; + + long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, alignedLength); + int termId = TermId(rawTail); + int termOffset = TermOffset(rawTail, termLength); + + int resultingOffset = termOffset + alignedLength; + long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); + if (resultingOffset > termLength) + { + return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); + } + else + { + _headerWriter.Write(termBuffer, termOffset, frameLength, termId); + termBuffer.PutBytes(termOffset + HEADER_LENGTH, buffer, offset, length); + + if (null != reservedValueSupplier) + { + long reservedValue = reservedValueSupplier(termBuffer, termOffset, frameLength); + termBuffer.PutLong(termOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); + } + + FrameLengthOrdered(termBuffer, termOffset, frameLength); + } + + return position; + } + + private long AppendFragmentedMessage( + UnsafeBuffer termBuffer, + int tailCounterOffset, + IDirectBuffer buffer, + int offset, + int length, + ReservedValueSupplier reservedValueSupplier + ) + { + int framedLength = ComputeFragmentedFrameLength(length, MaxPayloadLength); + int termLength = termBuffer.Capacity; + + long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, framedLength); + int termId = TermId(rawTail); + int termOffset = TermOffset(rawTail, termLength); + + int resultingOffset = termOffset + framedLength; + long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); + if (resultingOffset > termLength) + { + return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); + } + else + { + int frameOffset = termOffset; + byte flags = BEGIN_FRAG_FLAG; + int remaining = length; + + do + { + int bytesToWrite = Math.Min(remaining, MaxPayloadLength); + int frameLength = bytesToWrite + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + + _headerWriter.Write(termBuffer, frameOffset, frameLength, termId); + termBuffer.PutBytes( + frameOffset + HEADER_LENGTH, + buffer, + offset + (length - remaining), + bytesToWrite + ); + + if (remaining <= MaxPayloadLength) + { + flags |= END_FRAG_FLAG; + } + + FrameFlags(termBuffer, frameOffset, flags); + + if (null != reservedValueSupplier) + { + long reservedValue = reservedValueSupplier(termBuffer, frameOffset, frameLength); + termBuffer.PutLong(frameOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); + } + + FrameLengthOrdered(termBuffer, frameOffset, frameLength); + + flags = 0; + frameOffset += alignedLength; + remaining -= bytesToWrite; + } + while (remaining > 0); + } + + return position; + } + + private long AppendUnfragmentedMessage( + UnsafeBuffer termBuffer, + int tailCounterOffset, + IDirectBuffer bufferOne, + int offsetOne, + int lengthOne, + IDirectBuffer bufferTwo, + int offsetTwo, + int lengthTwo, + ReservedValueSupplier reservedValueSupplier + ) + { + int frameLength = lengthOne + lengthTwo + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + int termLength = termBuffer.Capacity; + + long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, alignedLength); + int termId = TermId(rawTail); + int termOffset = TermOffset(rawTail, termLength); + + int resultingOffset = termOffset + alignedLength; + long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); + if (resultingOffset > termLength) + { + return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); + } + else + { + _headerWriter.Write(termBuffer, termOffset, frameLength, termId); + termBuffer.PutBytes(termOffset + HEADER_LENGTH, bufferOne, offsetOne, lengthOne); + termBuffer.PutBytes(termOffset + HEADER_LENGTH + lengthOne, bufferTwo, offsetTwo, lengthTwo); + + if (null != reservedValueSupplier) + { + long reservedValue = reservedValueSupplier(termBuffer, termOffset, frameLength); + termBuffer.PutLong(termOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); + } + + FrameLengthOrdered(termBuffer, termOffset, frameLength); + } + + return position; + } + + private long AppendFragmentedMessage( + UnsafeBuffer termBuffer, + int tailCounterOffset, + IDirectBuffer bufferOne, + int offsetOne, + int lengthOne, + IDirectBuffer bufferTwo, + int offsetTwo, + int lengthTwo, + ReservedValueSupplier reservedValueSupplier + ) + { + int length = lengthOne + lengthTwo; + int framedLength = ComputeFragmentedFrameLength(length, MaxPayloadLength); + int termLength = termBuffer.Capacity; + + long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, framedLength); + int termId = TermId(rawTail); + int termOffset = TermOffset(rawTail, termLength); + + int resultingOffset = termOffset + framedLength; + long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); + if (resultingOffset > termLength) + { + return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); + } + else + { + int frameOffset = termOffset; + byte flags = BEGIN_FRAG_FLAG; + int remaining = length; + int positionOne = 0; + int positionTwo = 0; + + do + { + int bytesToWrite = Math.Min(remaining, MaxPayloadLength); + int frameLength = bytesToWrite + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + + _headerWriter.Write(termBuffer, frameOffset, frameLength, termId); + + int bytesWritten = 0; + int payloadOffset = frameOffset + HEADER_LENGTH; + do + { + int remainingOne = lengthOne - positionOne; + if (remainingOne > 0) + { + int numBytes = Math.Min(bytesToWrite - bytesWritten, remainingOne); + termBuffer.PutBytes(payloadOffset, bufferOne, offsetOne + positionOne, numBytes); + + bytesWritten += numBytes; + payloadOffset += numBytes; + positionOne += numBytes; + } + else + { + int numBytes = Math.Min(bytesToWrite - bytesWritten, lengthTwo - positionTwo); + termBuffer.PutBytes(payloadOffset, bufferTwo, offsetTwo + positionTwo, numBytes); + + bytesWritten += numBytes; + payloadOffset += numBytes; + positionTwo += numBytes; + } + } + while (bytesWritten < bytesToWrite); + + if (remaining <= MaxPayloadLength) + { + flags |= END_FRAG_FLAG; + } + + FrameFlags(termBuffer, frameOffset, flags); + + if (null != reservedValueSupplier) + { + long reservedValue = reservedValueSupplier(termBuffer, frameOffset, frameLength); + termBuffer.PutLong(frameOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); + } + + FrameLengthOrdered(termBuffer, frameOffset, frameLength); + + flags = 0; + frameOffset += alignedLength; + remaining -= bytesToWrite; + } + while (remaining > 0); + } + + return position; + } + + private long AppendUnfragmentedMessage( + UnsafeBuffer termBuffer, + int tailCounterOffset, + DirectBufferVector[] vectors, + int length, + ReservedValueSupplier reservedValueSupplier + ) + { + int frameLength = length + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + int termLength = termBuffer.Capacity; + + long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, alignedLength); + int termId = TermId(rawTail); + int termOffset = TermOffset(rawTail, termLength); + + int resultingOffset = termOffset + alignedLength; + long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); + if (resultingOffset > termLength) + { + return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); + } + else + { + _headerWriter.Write(termBuffer, termOffset, frameLength, termId); + + int offset = termOffset + HEADER_LENGTH; + foreach (DirectBufferVector vector in vectors) + { + termBuffer.PutBytes(offset, vector.Buffer(), vector.Offset(), vector.Length()); + offset += vector.Length(); + } + + if (null != reservedValueSupplier) + { + long reservedValue = reservedValueSupplier(termBuffer, termOffset, frameLength); + termBuffer.PutLong(termOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); + } + + FrameLengthOrdered(termBuffer, termOffset, frameLength); + } + + return position; + } + + private long AppendFragmentedMessage( + UnsafeBuffer termBuffer, + int tailCounterOffset, + DirectBufferVector[] vectors, + int length, + ReservedValueSupplier reservedValueSupplier + ) + { + int framedLength = ComputeFragmentedFrameLength(length, MaxPayloadLength); + int termLength = termBuffer.Capacity; + + long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, framedLength); + int termId = TermId(rawTail); + int termOffset = TermOffset(rawTail, termLength); + + int resultingOffset = termOffset + framedLength; + long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); + if (resultingOffset > termLength) + { + return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); + } + else + { + int frameOffset = termOffset; + byte flags = BEGIN_FRAG_FLAG; + int remaining = length; + int vectorIndex = 0; + int vectorOffset = 0; + + do + { + int bytesToWrite = Math.Min(remaining, MaxPayloadLength); + int frameLength = bytesToWrite + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + + _headerWriter.Write(termBuffer, frameOffset, frameLength, termId); + + int bytesWritten = 0; + int payloadOffset = frameOffset + HEADER_LENGTH; + do + { + DirectBufferVector vector = vectors[vectorIndex]; + int vectorRemaining = vector.Length() - vectorOffset; + int numBytes = Math.Min(bytesToWrite - bytesWritten, vectorRemaining); + + termBuffer.PutBytes(payloadOffset, vector.Buffer(), vector.Offset() + vectorOffset, numBytes); + + bytesWritten += numBytes; + payloadOffset += numBytes; + vectorOffset += numBytes; + + if (vectorRemaining <= numBytes) + { + vectorIndex++; + vectorOffset = 0; + } + } + while (bytesWritten < bytesToWrite); + + if (remaining <= MaxPayloadLength) + { + flags |= END_FRAG_FLAG; + } + + FrameFlags(termBuffer, frameOffset, flags); + + if (null != reservedValueSupplier) + { + long reservedValue = reservedValueSupplier(termBuffer, frameOffset, frameLength); + termBuffer.PutLong(frameOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); + } + + FrameLengthOrdered(termBuffer, frameOffset, frameLength); + + flags = 0; + frameOffset += alignedLength; + remaining -= bytesToWrite; + } + while (remaining > 0); + } + + return position; + } + + private long Claim(UnsafeBuffer termBuffer, int tailCounterOffset, int length, BufferClaim bufferClaim) + { + int frameLength = length + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + int termLength = termBuffer.Capacity; + + long rawTail = _logMetaDataBuffer.GetAndAddLong(tailCounterOffset, alignedLength); + int termId = TermId(rawTail); + int termOffset = TermOffset(rawTail, termLength); + + int resultingOffset = termOffset + alignedLength; + long position = ComputePosition(termId, resultingOffset, PositionBitsToShift, InitialTermId); + if (resultingOffset > termLength) + { + return HandleEndOfLog(termBuffer, termLength, termId, termOffset, position); + } + else + { + _headerWriter.Write(termBuffer, termOffset, frameLength, termId); + bufferClaim.Wrap(termBuffer, termOffset, frameLength); + } + + return position; + } + + private long HandleEndOfLog(UnsafeBuffer termBuffer, int termLength, int termId, int termOffset, long position) + { + if (termOffset < termLength) + { + int paddingLength = termLength - termOffset; + _headerWriter.Write(termBuffer, termOffset, paddingLength, termId); + FrameType(termBuffer, termOffset, PADDING_FRAME_TYPE); + FrameLengthOrdered(termBuffer, termOffset, paddingLength); + } + + if (position >= MaxPossiblePosition) + { + return MAX_POSITION_EXCEEDED; + } + + RotateLog(_logMetaDataBuffer, termId - InitialTermId, termId); + + return ADMIN_ACTION; + } + } +} diff --git a/src/Adaptive.Aeron/Config.cs b/src/Adaptive.Aeron/Config.cs index f9ab397b..928b1517 100644 --- a/src/Adaptive.Aeron/Config.cs +++ b/src/Adaptive.Aeron/Config.cs @@ -1,5 +1,5 @@ -/* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,25 +29,30 @@ static Config() foreach (var a in args) { - if (!a.StartsWith("-D")) continue; + if (!a.StartsWith("-D")) + { + continue; + } + var directive = a.Replace("-D", "").Split('='); if (directive.Length == 2) + { Params.Add(directive[0], directive[1]); + } } } public static string GetProperty(string propertyName, string defaultValue = null) { - string value; - return Params.TryGetValue(propertyName, out value) ? value : defaultValue; + return Params.TryGetValue(propertyName, out string value) ? value : defaultValue; } public static int GetInteger(string propertyName, int defaultValue) { - string strValue; - int value; - return Params.TryGetValue(propertyName, out strValue) && int.TryParse(strValue, out value) ? value : defaultValue; + return Params.TryGetValue(propertyName, out string strValue) && int.TryParse(strValue, out int value) + ? value + : defaultValue; } public static bool GetBoolean(string propertyName) @@ -58,9 +63,9 @@ public static bool GetBoolean(string propertyName) public static long GetLong(string propertyName, long defaultValue) { - string strValue; - long value; - return Params.TryGetValue(propertyName, out strValue) && long.TryParse(strValue, out value) ? value : defaultValue; + return Params.TryGetValue(propertyName, out string strValue) && long.TryParse(strValue, out long value) + ? value + : defaultValue; } public static long GetDurationInNanos(string propertyName, long defaultValue) @@ -73,4 +78,4 @@ public static int GetSizeAsInt(string propertyName, int defaultValue) return GetInteger(propertyName, defaultValue); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/ControlledFragmentAssembler.cs b/src/Adaptive.Aeron/ControlledFragmentAssembler.cs index a8218cd9..237fa56c 100644 --- a/src/Adaptive.Aeron/ControlledFragmentAssembler.cs +++ b/src/Adaptive.Aeron/ControlledFragmentAssembler.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,23 +15,23 @@ */ using Adaptive.Aeron.LogBuffer; -using Adaptive.Aeron.Protocol; using Adaptive.Agrona; using Adaptive.Agrona.Collections; namespace Adaptive.Aeron { /// - /// A that sits in a chain-of-responsibility pattern that reassembles fragmented - /// messages so that the next handler in the chain only sees whole messages. - /// - /// Unfragmented messages are delegated without copy. Fragmented messages are copied to a temporary - /// buffer for reassembly before delegation. - /// + /// A that sits in a chain-of-responsibility pattern that reassembles + /// fragmented messages so that the next handler in the chain only sees whole messages. + /// + /// Unfragmented messages are delegated without copy. Fragmented messages are copied to a temporary buffer for + /// reassembly before delegation. + /// /// The passed to the delegate on assembling a message will be that of the last fragment. - /// + /// /// Session based buffers will be allocated and grown as necessary based on the length of messages to be assembled. - /// When sessions go inactive see , it is possible to free the buffer by calling + /// When sessions go inactive see , it is possible to free the buffer by + /// calling /// . /// /// @@ -64,13 +64,15 @@ public IControlledFragmentHandler Delegate() } /// - /// The implementation of that reassembles and forwards whole messages. + /// The implementation of that reassembles and forwards whole + /// messages. /// /// containing the data. /// at which the data begins. /// of the data in bytes. /// representing the metadata for the data. - /// to be taken after processing fragment. + /// to be taken after processing fragment. + /// public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { byte flags = header.Flags; @@ -83,7 +85,8 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs else if ((flags & FrameDescriptor.BEGIN_FRAG_FLAG) == FrameDescriptor.BEGIN_FRAG_FLAG) { BufferBuilder builder = GetBufferBuilder(header.SessionId); - builder.Reset() + builder + .Reset() .CaptureHeader(header) .Append(buffer, offset, length) .NextTermOffset(header.NextTermOffset); @@ -101,7 +104,12 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs if ((flags & FrameDescriptor.END_FRAG_FLAG) == FrameDescriptor.END_FRAG_FLAG) { - action = _delegate.OnFragment(builder.Buffer(), 0, builder.Limit(), builder.CompleteHeader(header)); + action = _delegate.OnFragment( + builder.Buffer(), + 0, + builder.Limit(), + builder.CompleteHeader(header) + ); if (ControlledFragmentHandlerAction.ABORT == action) { @@ -128,8 +136,8 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs } /// - /// Free an existing session buffer to reduce memory pressure when an image goes inactive or no more - /// large messages are expected. + /// Free an existing session buffer to reduce memory pressure when an image goes inactive or no more large + /// messages are expected. /// /// to have its buffer freed /// true if a buffer has been freed otherwise false. @@ -164,4 +172,4 @@ private BufferBuilder GetBufferBuilder(int sessionId) return bufferBuilder; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Counter.cs b/src/Adaptive.Aeron/Counter.cs index 4a323365..c4954ef0 100644 --- a/src/Adaptive.Aeron/Counter.cs +++ b/src/Adaptive.Aeron/Counter.cs @@ -1,4 +1,20 @@ -using Adaptive.Aeron.Exceptions; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron.Exceptions; using Adaptive.Agrona.Concurrent; using Adaptive.Agrona.Concurrent.Status; @@ -12,8 +28,8 @@ public sealed class Counter : AtomicCounter private readonly ClientConductor _clientConductor; private AtomicBoolean _isClosed = new AtomicBoolean(false); - internal Counter(long registrationId, ClientConductor clientConductor, IAtomicBuffer buffer, int counterId) : - base(buffer, counterId) + internal Counter(long registrationId, ClientConductor clientConductor, IAtomicBuffer buffer, int counterId) + : base(buffer, counterId) { RegistrationId = registrationId; _clientConductor = clientConductor; @@ -23,7 +39,8 @@ internal Counter(long registrationId, ClientConductor clientConductor, IAtomicBu /// Construct a read-write view of an existing counter. /// /// for getting access to the buffers. - /// assigned by the driver for the counter or if not known. + /// assigned by the driver for the counter or + /// if not known. /// for the counter to be viewed. /// if the id has for the counter has not been allocated. public Counter(CountersReader countersReader, long registrationId, int counterId) @@ -45,7 +62,8 @@ public Counter(CountersReader countersReader, long registrationId, int counterId public long RegistrationId { get; } /// - /// Close the counter, releasing the resource managed by the media driver if this was the creator of the Counter. + /// Close the counter, releasing the resource managed by the media driver if this was the creator of the + /// Counter. /// /// This method is idempotent. /// @@ -71,10 +89,10 @@ internal void InternalClose() base.Dispose(); _isClosed.Set(true); } - + internal ClientConductor ClientConductor() { return _clientConductor; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/DirectBufferVector.cs b/src/Adaptive.Aeron/DirectBufferVector.cs index d08a70d3..f0a8b1fd 100644 --- a/src/Adaptive.Aeron/DirectBufferVector.cs +++ b/src/Adaptive.Aeron/DirectBufferVector.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using Adaptive.Agrona; namespace Adaptive.Aeron @@ -8,9 +24,9 @@ namespace Adaptive.Aeron /// public sealed class DirectBufferVector { - private IDirectBuffer buffer; - private int offset; - private int length; + private IDirectBuffer _buffer; + private int _offset; + private int _length; /// /// Default constructor so the fluent API can be used. @@ -27,9 +43,9 @@ public DirectBufferVector() /// of the vector. public DirectBufferVector(IDirectBuffer buffer, int offset, int length) { - this.buffer = buffer; - this.offset = offset; - this.length = length; + _buffer = buffer; + _offset = offset; + _length = length; } /// @@ -41,9 +57,9 @@ public DirectBufferVector(IDirectBuffer buffer, int offset, int length) /// this for a fluent API. public DirectBufferVector Reset(IDirectBuffer buffer, int offset, int length) { - this.buffer = buffer; - this.offset = offset; - this.length = length; + _buffer = buffer; + _offset = offset; + _length = length; return this; } @@ -54,7 +70,7 @@ public DirectBufferVector Reset(IDirectBuffer buffer, int offset, int length) /// buffer which the vector applies to. public IDirectBuffer Buffer() { - return buffer; + return _buffer; } /// @@ -64,7 +80,7 @@ public IDirectBuffer Buffer() /// this for a fluent API. public DirectBufferVector Buffer(IDirectBuffer buffer) { - this.buffer = buffer; + _buffer = buffer; return this; } @@ -74,7 +90,7 @@ public DirectBufferVector Buffer(IDirectBuffer buffer) /// offset in the buffer at which the vector starts. public int Offset() { - return offset; + return _offset; } /// @@ -84,7 +100,7 @@ public int Offset() /// this for a fluent API. public DirectBufferVector Offset(int offset) { - this.offset = offset; + _offset = offset; return this; } @@ -94,7 +110,7 @@ public DirectBufferVector Offset(int offset) /// length of the vector in the buffer starting at the offset. public int Length() { - return length; + return _length; } /// @@ -104,7 +120,7 @@ public int Length() /// this for a fluent API. public DirectBufferVector Length(int length) { - this.length = length; + _length = length; return this; } @@ -117,15 +133,15 @@ public DirectBufferVector Length(int length) /// this for a fluent API. public DirectBufferVector Validate() { - int capacity = buffer.Capacity; - if (offset < 0 || offset >= capacity) + int capacity = _buffer.Capacity; + if (_offset < 0 || _offset >= capacity) { - throw new ArgumentException("offset=" + offset + " capacity=" + capacity); + throw new ArgumentException("offset=" + _offset + " capacity=" + capacity); } - if (length < 0 || length > (capacity - offset)) + if (_length < 0 || _length > (capacity - _offset)) { - throw new ArgumentException("offset=" + offset + " capacity=" + capacity + " length=" + length); + throw new ArgumentException("offset=" + _offset + " capacity=" + capacity + " length=" + _length); } return this; @@ -133,11 +149,7 @@ public DirectBufferVector Validate() public override string ToString() { - return "DirectBufferVector{" + - "buffer=" + buffer + - ", offset=" + offset + - ", length=" + length + - '}'; + return "DirectBufferVector{" + "buffer=" + _buffer + ", offset=" + _offset + ", length=" + _length + '}'; } /// @@ -151,7 +163,7 @@ public static int ValidateAndComputeLength(DirectBufferVector[] vectors) foreach (DirectBufferVector vector in vectors) { vector.Validate(); - messageLength += vector.length; + messageLength += vector._length; if (messageLength < 0) { @@ -162,4 +174,4 @@ public static int ValidateAndComputeLength(DirectBufferVector[] vectors) return messageLength; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/DriverEventsAdapter.cs b/src/Adaptive.Aeron/DriverEventsAdapter.cs index d6d36f0a..b324a4d4 100644 --- a/src/Adaptive.Aeron/DriverEventsAdapter.cs +++ b/src/Adaptive.Aeron/DriverEventsAdapter.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,8 @@ namespace Adaptive.Aeron { /// - /// Analogue of the on the client side for dispatching driver events to the client conductor. + /// Analogue of the on the client side for dispatching driver events to the client + /// conductor. /// internal class DriverEventsAdapter { @@ -52,9 +53,10 @@ internal class DriverEventsAdapter internal DriverEventsAdapter( long clientId, - CopyBroadcastReceiver receiver, + CopyBroadcastReceiver receiver, ClientConductor conductor, - HashSet asyncCommandIdSet) + HashSet asyncCommandIdSet + ) { _clientId = clientId; _receiver = receiver; @@ -85,6 +87,17 @@ public int Receive(long activeCorrelationId) internal long ClientId => _clientId; + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S138:Functions should not have too many lines", + // Upstream: io.aeron.DriverEventsAdapter#onMessage is @SuppressWarnings("MethodLength"). + Justification = "Upstream Java parity; method is itself @SuppressWarnings(\"MethodLength\")." + )] + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Maintainability", + "CA1502:Avoid excessive complexity", + Justification = "Switch dispatch mirrors upstream Java (see Upstream comment above)." + )] public void OnMessage(int msgTypeId, IMutableDirectBuffer buffer, int index, int length) { switch (msgTypeId) @@ -113,8 +126,12 @@ public void OnMessage(int msgTypeId, IMutableDirectBuffer buffer, int index, int if (_asyncCommandIdSet.Remove(correlationId) && notProcessed) { - _conductor.OnAsyncError(correlationId, errorCodeValue, errorCode, - _errorResponse.ErrorMessage()); + _conductor.OnAsyncError( + correlationId, + errorCodeValue, + errorCode, + _errorResponse.ErrorMessage() + ); } break; @@ -130,11 +147,11 @@ public void OnMessage(int msgTypeId, IMutableDirectBuffer buffer, int index, int _imageReady.SubscriptionRegistrationId(), _imageReady.SubscriberPositionId(), _imageReady.LogFileName(), - _imageReady.SourceIdentity()); + _imageReady.SourceIdentity() + ); break; } - case ON_PUBLICATION_READY: { _publicationReady.Wrap(buffer, index); @@ -150,7 +167,8 @@ public void OnMessage(int msgTypeId, IMutableDirectBuffer buffer, int index, int _publicationReady.SessionId(), _publicationReady.PublicationLimitCounterId(), _publicationReady.ChannelStatusCounterId(), - _publicationReady.LogFileName()); + _publicationReady.LogFileName() + ); } break; @@ -210,7 +228,8 @@ public void OnMessage(int msgTypeId, IMutableDirectBuffer buffer, int index, int _publicationReady.SessionId(), _publicationReady.PublicationLimitCounterId(), _publicationReady.ChannelStatusCounterId(), - _publicationReady.LogFileName()); + _publicationReady.LogFileName() + ); } break; @@ -297,8 +316,8 @@ public void OnMessage(int msgTypeId, IMutableDirectBuffer buffer, int index, int private static ErrorCode GetErrorCode(int errorCodeValue) { return Enum.IsDefined(typeof(ErrorCode), errorCodeValue) - ? (ErrorCode) errorCodeValue + ? (ErrorCode)errorCodeValue : ErrorCode.UNKNOWN_CODE_VALUE; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/DriverProxy.cs b/src/Adaptive.Aeron/DriverProxy.cs index f0b27289..dfd4d983 100644 --- a/src/Adaptive.Aeron/DriverProxy.cs +++ b/src/Adaptive.Aeron/DriverProxy.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,25 +24,30 @@ namespace Adaptive.Aeron { /// /// Separates the concern of communicating with the client conductor away from the rest of the client. - /// + /// /// For writing commands into the client conductor buffer. - /// - /// Note: this class is not thread safe and is expecting to be called within . + /// + /// Note: this class is not thread safe and is expecting to be called within + /// . /// public class DriverProxy { private readonly long _clientId; private readonly PublicationMessageFlyweight _publicationMessageFlyweight = new PublicationMessageFlyweight(); - private readonly SubscriptionMessageFlyweight _subscriptionMessageFlyweight = new SubscriptionMessageFlyweight(); + private readonly SubscriptionMessageFlyweight _subscriptionMessageFlyweight = + new SubscriptionMessageFlyweight(); private readonly RemoveCounterFlyweight _removeCounterFlyweight = new RemoveCounterFlyweight(); private readonly RemovePublicationFlyweight _removePublicationFlyweight = new RemovePublicationFlyweight(); private readonly RemoveSubscriptionFlyweight _removeSubscriptionFlyweight = new RemoveSubscriptionFlyweight(); private readonly DestinationMessageFlyweight _destinationMessageFlyweight = new DestinationMessageFlyweight(); - private readonly DestinationByIdMessageFlyweight _destinationByIdMessageFlyweight = new DestinationByIdMessageFlyweight(); + private readonly DestinationByIdMessageFlyweight _destinationByIdMessageFlyweight = + new DestinationByIdMessageFlyweight(); private readonly CounterMessageFlyweight _counterMessageFlyweight = new CounterMessageFlyweight(); - private readonly StaticCounterMessageFlyweight _staticCounterMessageFlyweight = new StaticCounterMessageFlyweight(); + private readonly StaticCounterMessageFlyweight _staticCounterMessageFlyweight = + new StaticCounterMessageFlyweight(); private readonly RejectImageFlyweight _rejectImageFlyweight = new RejectImageFlyweight(); - private readonly GetNextAvailableSessionIdMessageFlyweight _getNextAvailableSessionIdMessageFlyweight = new GetNextAvailableSessionIdMessageFlyweight(); + private readonly GetNextAvailableSessionIdMessageFlyweight _getNextAvailableSessionIdMessageFlyweight = + new GetNextAvailableSessionIdMessageFlyweight(); private readonly IRingBuffer _toDriverCommandBuffer; public DriverProxy(IRingBuffer toDriverCommandBuffer, long clientId) @@ -125,8 +130,7 @@ public long AddExclusivePublication(string channel, int streamId) public long RemovePublication(long registrationId, bool revoke) { long correlationId = _toDriverCommandBuffer.NextCorrelationId(); - int index = _toDriverCommandBuffer.TryClaim(REMOVE_PUBLICATION, - RemovePublicationFlyweight.Length()); + int index = _toDriverCommandBuffer.TryClaim(REMOVE_PUBLICATION, RemovePublicationFlyweight.Length()); if (index < 0) { throw new AeronException("failed to write remove publication command"); @@ -182,8 +186,7 @@ public long AddSubscription(string channel, int streamId) public long RemoveSubscription(long registrationId) { long correlationId = _toDriverCommandBuffer.NextCorrelationId(); - int index = _toDriverCommandBuffer.TryClaim(REMOVE_SUBSCRIPTION, - RemoveSubscriptionFlyweight.Length()); + int index = _toDriverCommandBuffer.TryClaim(REMOVE_SUBSCRIPTION, RemoveSubscriptionFlyweight.Length()); if (index < 0) { throw new AeronException("failed to write remove subscription command"); @@ -260,13 +263,16 @@ public long RemoveDestination(long registrationId, string endpointChannel) /// Remove a destination from the send channel of an existing MDC Publication. /// /// of the Publication. - /// used for the command. + /// used for the + /// command. /// the correlation id for the command. public long RemoveDestination(long publicationRegistrationId, long destinationRegistrationId) { long correlationId = _toDriverCommandBuffer.NextCorrelationId(); - int index = _toDriverCommandBuffer.TryClaim(REMOVE_DESTINATION_BY_ID, - DestinationByIdMessageFlyweight.MESSAGE_LENGTH); + int index = _toDriverCommandBuffer.TryClaim( + REMOVE_DESTINATION_BY_ID, + DestinationByIdMessageFlyweight.MESSAGE_LENGTH + ); if (index < 0) { throw new AeronException("failed to write remove destination command"); @@ -316,7 +322,8 @@ public long AddRcvDestination(long registrationId, string endpointChannel) /// Remove a destination from the receive channel endpoint of an existing MDS Subscription. /// /// of the Subscription. - /// used for the command. + /// used for the command. + /// /// the correlation id for the command. public long RemoveRcvDestination(long registrationId, string endpointChannel) { @@ -351,8 +358,15 @@ public long RemoveRcvDestination(long registrationId, string endpointChannel) /// offset at which the label begins. /// length in bytes for the label. /// the correlation id for the command. - public long AddCounter(int typeId, IDirectBuffer keyBuffer, int keyOffset, int keyLength, - IDirectBuffer labelBuffer, int labelOffset, int labelLength) + public long AddCounter( + int typeId, + IDirectBuffer keyBuffer, + int keyOffset, + int keyLength, + IDirectBuffer labelBuffer, + int labelOffset, + int labelLength + ) { long correlationId = _toDriverCommandBuffer.NextCorrelationId(); int length = CounterMessageFlyweight.ComputeLength(keyLength, labelLength); @@ -412,8 +426,7 @@ public long AddCounter(int typeId, string label) public long RemoveCounter(long registrationId) { long correlationId = _toDriverCommandBuffer.NextCorrelationId(); - int index = _toDriverCommandBuffer.TryClaim(REMOVE_COUNTER, - RemoveCounterFlyweight.Length()); + int index = _toDriverCommandBuffer.TryClaim(REMOVE_COUNTER, RemoveCounterFlyweight.Length()); if (index < 0) { throw new AeronException("failed to write remove counter command"); @@ -435,8 +448,7 @@ public long RemoveCounter(long registrationId) /// public void ClientClose() { - int index = _toDriverCommandBuffer.TryClaim(CLIENT_CLOSE, - CorrelatedMessageFlyweight.LENGTH); + int index = _toDriverCommandBuffer.TryClaim(CLIENT_CLOSE, CorrelatedMessageFlyweight.LENGTH); if (index > 0) { (new CorrelatedMessageFlyweight()) @@ -506,16 +518,21 @@ public long RejectImage(long imageCorrelationId, long position, string reason) return correlationId; } - public override string ToString() { - return "DriverProxy{" + - "clientId=" + _clientId + - '}'; + return "DriverProxy{" + "clientId=" + _clientId + '}'; } - internal long AddStaticCounter(int typeId, IDirectBuffer keyBuffer, int keyOffset, int keyLength, - IDirectBuffer labelBuffer, int labelOffset, int labelLength, long registrationId) + internal long AddStaticCounter( + int typeId, + IDirectBuffer keyBuffer, + int keyOffset, + int keyLength, + IDirectBuffer labelBuffer, + int labelOffset, + int labelLength, + long registrationId + ) { long correlationId = _toDriverCommandBuffer.NextCorrelationId(); int length = StaticCounterMessageFlyweight.ComputeLength(keyLength, labelLength); @@ -562,12 +579,14 @@ internal long AddStaticCounter(int typeId, string label, long registrationId) return correlationId; } - + internal long NextAvailableSessionId(int streamId) { long correlationId = _toDriverCommandBuffer.NextCorrelationId(); int index = _toDriverCommandBuffer.TryClaim( - GET_NEXT_AVAILABLE_SESSION_ID, GetNextAvailableSessionIdMessageFlyweight.LENGTH); + GET_NEXT_AVAILABLE_SESSION_ID, + GetNextAvailableSessionIdMessageFlyweight.LENGTH + ); if (index < 0) { throw new AeronException("failed to write next session id command"); @@ -584,4 +603,4 @@ internal long NextAvailableSessionId(int streamId) return correlationId; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/DutyCycleStallTracker.cs b/src/Adaptive.Aeron/DutyCycleStallTracker.cs index 7c3b1bbf..30ecc720 100644 --- a/src/Adaptive.Aeron/DutyCycleStallTracker.cs +++ b/src/Adaptive.Aeron/DutyCycleStallTracker.cs @@ -1,16 +1,32 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Agrona.Concurrent.Status; namespace Adaptive.Aeron { /// - /// Duty cycle tracker that detects when a cycle exceeds a threshold and tracks max cycle time reporting both through - /// counters. + /// Duty cycle tracker that detects when a cycle exceeds a threshold and tracks max cycle time reporting both + /// through counters. /// public class DutyCycleStallTracker : DutyCycleTracker { - private readonly AtomicCounter maxCycleTime; - private readonly AtomicCounter cycleTimeThresholdExceededCount; - private readonly long cycleTimeThresholdNs; + private readonly AtomicCounter _maxCycleTime; + private readonly AtomicCounter _cycleTimeThresholdExceededCount; + private readonly long _cycleTimeThresholdNs; /// /// Create a tracker to track max cycle time and excesses of a threshold. @@ -18,11 +34,15 @@ public class DutyCycleStallTracker : DutyCycleTracker /// counter for tracking. /// counter for tracking. /// to use for tracking excesses. - public DutyCycleStallTracker(AtomicCounter maxCycleTime, AtomicCounter cycleTimeThresholdExceededCount, long cycleTimeThresholdNs) + public DutyCycleStallTracker( + AtomicCounter maxCycleTime, + AtomicCounter cycleTimeThresholdExceededCount, + long cycleTimeThresholdNs + ) { - this.maxCycleTime = maxCycleTime; - this.cycleTimeThresholdExceededCount = cycleTimeThresholdExceededCount; - this.cycleTimeThresholdNs = cycleTimeThresholdNs; + _maxCycleTime = maxCycleTime; + _cycleTimeThresholdExceededCount = cycleTimeThresholdExceededCount; + _cycleTimeThresholdNs = cycleTimeThresholdNs; } /// @@ -31,7 +51,7 @@ public DutyCycleStallTracker(AtomicCounter maxCycleTime, AtomicCounter cycleTime /// max cycle time counter. public AtomicCounter MaxCycleTime() { - return maxCycleTime; + return _maxCycleTime; } /// @@ -40,7 +60,7 @@ public AtomicCounter MaxCycleTime() /// threshold exceeded counter. public AtomicCounter CycleTimeThresholdExceededCount() { - return cycleTimeThresholdExceededCount; + return _cycleTimeThresholdExceededCount; } /// @@ -49,7 +69,7 @@ public AtomicCounter CycleTimeThresholdExceededCount() /// threshold value. public long CycleTimeThresholdNs() { - return cycleTimeThresholdNs; + return _cycleTimeThresholdNs; } /// @@ -57,12 +77,12 @@ public long CycleTimeThresholdNs() /// public override void ReportMeasurement(long durationNs) { - maxCycleTime.ProposeMaxOrdered(durationNs); + _maxCycleTime.ProposeMaxOrdered(durationNs); - if (durationNs > cycleTimeThresholdNs) + if (durationNs > _cycleTimeThresholdNs) { - cycleTimeThresholdExceededCount.IncrementOrdered(); + _cycleTimeThresholdExceededCount.IncrementOrdered(); } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/DutyCycleTracker.cs b/src/Adaptive.Aeron/DutyCycleTracker.cs index 51658686..e2fbf705 100644 --- a/src/Adaptive.Aeron/DutyCycleTracker.cs +++ b/src/Adaptive.Aeron/DutyCycleTracker.cs @@ -1,39 +1,55 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + namespace Adaptive.Aeron { - /// - /// Tracker to handle tracking the duration of a duty cycle. - /// - public class DutyCycleTracker - { - private long timeOfLastUpdateNs; + /// + /// Tracker to handle tracking the duration of a duty cycle. + /// + public class DutyCycleTracker + { + private long _timeOfLastUpdateNs; - /// - /// Update the last known clock time. - /// - /// to update with. - public void Update(long nowNs) - { - timeOfLastUpdateNs = nowNs; - } + /// + /// Update the last known clock time. + /// + /// to update with. + public void Update(long nowNs) + { + _timeOfLastUpdateNs = nowNs; + } - /// - /// Pass measurement to tracker and report updating last known clock time with time. - /// - /// of the measurement. - public void MeasureAndUpdate(long nowNs) - { - long cycleTimeNs = nowNs - timeOfLastUpdateNs; + /// + /// Pass measurement to tracker and report updating last known clock time with time. + /// + /// of the measurement. + public void MeasureAndUpdate(long nowNs) + { + long cycleTimeNs = nowNs - _timeOfLastUpdateNs; - ReportMeasurement(cycleTimeNs); - timeOfLastUpdateNs = nowNs; - } + ReportMeasurement(cycleTimeNs); + _timeOfLastUpdateNs = nowNs; + } - /// - /// Callback called to report duration of cycle. - /// - /// of the duty cycle. - public virtual void ReportMeasurement(long durationNs) - { - } - } -} \ No newline at end of file + /// + /// Callback called to report duration of cycle. + /// + /// of the duty cycle. + public virtual void ReportMeasurement(long durationNs) + { + } + } +} diff --git a/src/Adaptive.Aeron/EndOfStreamHandler.cs b/src/Adaptive.Aeron/EndOfStreamHandler.cs index cccea62a..6904b169 100644 --- a/src/Adaptive.Aeron/EndOfStreamHandler.cs +++ b/src/Adaptive.Aeron/EndOfStreamHandler.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; namespace Adaptive.Aeron @@ -8,4 +24,4 @@ namespace Adaptive.Aeron /// that has reached End Of Stream. [Obsolete] public delegate void EndOfStreamHandler(Image image); -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/ErrorCode.cs b/src/Adaptive.Aeron/ErrorCode.cs index 88099c40..94e58a71 100644 --- a/src/Adaptive.Aeron/ErrorCode.cs +++ b/src/Adaptive.Aeron/ErrorCode.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,12 +22,12 @@ namespace Adaptive.Aeron public enum ErrorCode { /// - /// Old generic value, no longer used (0 value clashes with success). Retained for version compatibility. + /// Old generic value, no longer used (0 value clashes with success). Retained for version compatibility. /// UNUSED = 0, /// - /// A failure occurred creating a new channel or parsing the channel string. + /// A failure occurred creating a new channel or parsing the channel string. /// INVALID_CHANNEL = 1, @@ -85,12 +85,12 @@ public enum ErrorCode /// Aeron encountered insufficient storage space while adding a resource. /// STORAGE_SPACE = 12, - + /// /// An image was rejected. /// IMAGE_REJECTED = 13, - + /// /// A publication was revoked. /// @@ -99,6 +99,6 @@ public enum ErrorCode /// /// A code value returned was not known. /// - UNKNOWN_CODE_VALUE = -1 + UNKNOWN_CODE_VALUE = -1, } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Exceptions/AeronEvent.cs b/src/Adaptive.Aeron/Exceptions/AeronEvent.cs index 115d1bd7..b8a76b98 100644 --- a/src/Adaptive.Aeron/Exceptions/AeronEvent.cs +++ b/src/Adaptive.Aeron/Exceptions/AeronEvent.cs @@ -1,19 +1,37 @@ -using Adaptive.Agrona.Concurrent.Errors; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona.Concurrent.Errors; namespace Adaptive.Aeron.Exceptions { /// - /// A means to capture an event of significance that does not require a stack trace, so it can be lighter-weight - /// and take up less space in a . + /// A means to capture an event of significance that does not require a stack trace, so it can be lighter-weight and + /// take up less space in a . /// public class AeronEvent : AeronException { - public AeronEvent(string message) : base(message) + public AeronEvent(string message) + : base(message) { } - public AeronEvent(string message, Category category) : base(message, category) + public AeronEvent(string message, Category category) + : base(message, category) { } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Exceptions/AeronException.cs b/src/Adaptive.Aeron/Exceptions/AeronException.cs index 59d1741b..212055a4 100644 --- a/src/Adaptive.Aeron/Exceptions/AeronException.cs +++ b/src/Adaptive.Aeron/Exceptions/AeronException.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Collections.Generic; using System.Runtime.Serialization; @@ -40,29 +56,33 @@ protected AeronException(SerializationInfo info, StreamingContext context) : bas Category = Category.ERROR; } - public AeronException(string message) : base(message) + public AeronException(string message) + : base(message) { Category = Category.ERROR; } - public AeronException(string message, Category category) : base(message) + public AeronException(string message, Category category) + : base(message) { Category = category; } - public AeronException(string message, Exception innerException) : base(message, innerException) + public AeronException(string message, Exception innerException) + : base(message, innerException) { Category = Category.ERROR; } - public AeronException(string message, Exception innerException, Category category) : base(message, - innerException) + public AeronException(string message, Exception innerException, Category category) + : base(message, innerException) { Category = category; } /// - /// Determines if a is a if an . + /// Determines if a is a if an + /// . /// /// throwable to check if fatal. /// true if this is an AeronException with a category set to , @@ -91,4 +111,4 @@ public override string ToString() return $"{baseString}{Environment.NewLine}Suppressed Exceptions:{Environment.NewLine}{suppressedString}"; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Exceptions/AeronTimeoutException.cs b/src/Adaptive.Aeron/Exceptions/AeronTimeoutException.cs index ecb2e8e2..4d404416 100644 --- a/src/Adaptive.Aeron/Exceptions/AeronTimeoutException.cs +++ b/src/Adaptive.Aeron/Exceptions/AeronTimeoutException.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; namespace Adaptive.Aeron.Exceptions @@ -8,21 +24,24 @@ public AeronTimeoutException() { } - public AeronTimeoutException(string message) : base(message) + public AeronTimeoutException(string message) + : base(message) { } - public AeronTimeoutException(string message, Category category) : base(message, category) + public AeronTimeoutException(string message, Category category) + : base(message, category) { } - public AeronTimeoutException(string message, Exception innerException) : base(message, innerException) + public AeronTimeoutException(string message, Exception innerException) + : base(message, innerException) { } - public AeronTimeoutException(string message, Exception innerException, Category category) : base(message, - innerException, category) + public AeronTimeoutException(string message, Exception innerException, Category category) + : base(message, innerException, category) { } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Exceptions/Category.cs b/src/Adaptive.Aeron/Exceptions/Category.cs index 6719561c..e1cef00f 100644 --- a/src/Adaptive.Aeron/Exceptions/Category.cs +++ b/src/Adaptive.Aeron/Exceptions/Category.cs @@ -1,3 +1,18 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ using System; @@ -9,8 +24,8 @@ namespace Adaptive.Aeron.Exceptions public enum Category { /// - /// Exception indicates a fatal condition. Recommendation is to terminate process immediately to avoid - /// state corruption. + /// Exception indicates a fatal condition. Recommendation is to terminate process immediately to avoid state + /// corruption. /// FATAL, @@ -20,9 +35,9 @@ public enum Category ERROR, /// - /// Exception is a warning. Action has been, or will be, taken to handle the condition. - /// Additional corrective action by the application may be needed. + /// Exception is a warning. Action has been, or will be, taken to handle the condition. Additional corrective + /// action by the application may be needed. /// - WARN + WARN, } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Exceptions/ChannelEndpointException.cs b/src/Adaptive.Aeron/Exceptions/ChannelEndpointException.cs index da30edb6..f06109bb 100644 --- a/src/Adaptive.Aeron/Exceptions/ChannelEndpointException.cs +++ b/src/Adaptive.Aeron/Exceptions/ChannelEndpointException.cs @@ -1,16 +1,33 @@ -namespace Adaptive.Aeron.Exceptions +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Aeron.Exceptions { public class ChannelEndpointException : AeronException { - public ChannelEndpointException(int statusIndicatorId, string message) : base(message) + public ChannelEndpointException(int statusIndicatorId, string message) + : base(message) { StatusIndicatorId = statusIndicatorId; } - + /// /// Return the id for the counter associated with the channel endpoint. /// /// counter id associated with the channel endpoint public int StatusIndicatorId { get; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Exceptions/ClientTimeoutException.cs b/src/Adaptive.Aeron/Exceptions/ClientTimeoutException.cs index 0b78af41..48f066d4 100644 --- a/src/Adaptive.Aeron/Exceptions/ClientTimeoutException.cs +++ b/src/Adaptive.Aeron/Exceptions/ClientTimeoutException.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + namespace Adaptive.Aeron.Exceptions { /// @@ -5,8 +21,9 @@ namespace Adaptive.Aeron.Exceptions /// public class ClientTimeoutException : AeronTimeoutException { - public ClientTimeoutException(string message) : base(message, Category.FATAL) + public ClientTimeoutException(string message) + : base(message, Category.FATAL) { } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Exceptions/ConcurrentConcludeException.cs b/src/Adaptive.Aeron/Exceptions/ConcurrentConcludeException.cs index 7a71e1b5..5e330586 100644 --- a/src/Adaptive.Aeron/Exceptions/ConcurrentConcludeException.cs +++ b/src/Adaptive.Aeron/Exceptions/ConcurrentConcludeException.cs @@ -1,11 +1,26 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + namespace Adaptive.Aeron.Exceptions { /// - /// Conclude has been called concurrently on a Context. The caller that receives this should not close the - /// concluded context as it will be owned by another caller. + /// Conclude has been called concurrently on a Context. The caller that receives this should not close the concluded + /// context as it will be owned by another caller. /// public class ConcurrentConcludeException : AeronException { - } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Exceptions/ConductorServiceTimeoutException.cs b/src/Adaptive.Aeron/Exceptions/ConductorServiceTimeoutException.cs index 7e0061bc..1e3ddadf 100644 --- a/src/Adaptive.Aeron/Exceptions/ConductorServiceTimeoutException.cs +++ b/src/Adaptive.Aeron/Exceptions/ConductorServiceTimeoutException.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,8 +25,9 @@ namespace Adaptive.Aeron.Exceptions /// public class ConductorServiceTimeoutException : AeronTimeoutException { - public ConductorServiceTimeoutException(string message) : base(message, Category.FATAL) + public ConductorServiceTimeoutException(string message) + : base(message, Category.FATAL) { } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Exceptions/ConfigurationException.cs b/src/Adaptive.Aeron/Exceptions/ConfigurationException.cs index 340eb3dd..2eb9e3ba 100644 --- a/src/Adaptive.Aeron/Exceptions/ConfigurationException.cs +++ b/src/Adaptive.Aeron/Exceptions/ConfigurationException.cs @@ -1,9 +1,26 @@ -namespace Adaptive.Aeron.Exceptions +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Aeron.Exceptions { public class ConfigurationException : AeronException { - public ConfigurationException(string message) : base(message) + public ConfigurationException(string message) + : base(message) { } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Exceptions/ControlProtocolException.cs b/src/Adaptive.Aeron/Exceptions/ControlProtocolException.cs index 4811b49b..e47e9a5f 100644 --- a/src/Adaptive.Aeron/Exceptions/ControlProtocolException.cs +++ b/src/Adaptive.Aeron/Exceptions/ControlProtocolException.cs @@ -1,19 +1,36 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; namespace Adaptive.Aeron.Exceptions { public class ControlProtocolException : AeronException { - private readonly ErrorCode code; + private readonly ErrorCode _code; /// /// Construct an exception to indicate an invalid command has been sent to the media driver. /// /// for the type of error. /// providing more detail. - public ControlProtocolException(ErrorCode code, string msg) : base(msg) + public ControlProtocolException(ErrorCode code, string msg) + : base(msg) { - this.code = code; + _code = code; } /// @@ -21,29 +38,32 @@ public ControlProtocolException(ErrorCode code, string msg) : base(msg) /// /// for the type of error. /// of the error. - public ControlProtocolException(ErrorCode code, Exception rootCause) : base(rootCause) + public ControlProtocolException(ErrorCode code, Exception rootCause) + : base(rootCause) { - this.code = code; + _code = code; } - + /// /// Construct an exception to indicate an invalid command has been sent to the media driver. /// /// for the type of error. /// providing more detail. /// of the error. - public ControlProtocolException(ErrorCode code, string msg, Exception rootCause) : base(msg, rootCause) + public ControlProtocolException(ErrorCode code, string msg, Exception rootCause) + : base(msg, rootCause) { - this.code = code; + _code = code; } /// /// The indicating more specific issue experienced by the media driver. /// - /// indicating more specific issue experienced by the media driver. + /// indicating more specific issue experienced by the media + /// driver. public ErrorCode ErrorCode() { - return code; + return _code; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Exceptions/DriverTimeoutException.cs b/src/Adaptive.Aeron/Exceptions/DriverTimeoutException.cs index f49fdc11..a7d48c93 100644 --- a/src/Adaptive.Aeron/Exceptions/DriverTimeoutException.cs +++ b/src/Adaptive.Aeron/Exceptions/DriverTimeoutException.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,8 +21,9 @@ namespace Adaptive.Aeron.Exceptions /// public class DriverTimeoutException : AeronTimeoutException { - public DriverTimeoutException(string message) : base(message, Category.FATAL) + public DriverTimeoutException(string message) : + base(message, Category.FATAL) { } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Exceptions/RegistrationException.cs b/src/Adaptive.Aeron/Exceptions/RegistrationException.cs index b7673c36..36d7f7f1 100644 --- a/src/Adaptive.Aeron/Exceptions/RegistrationException.cs +++ b/src/Adaptive.Aeron/Exceptions/RegistrationException.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,21 +26,24 @@ public class RegistrationException : AeronException private readonly int _errorCodeValue; private readonly ErrorCode _code; - public RegistrationException(long correlationId, int errorCodeValue, ErrorCode code, string msg) : - base(msg, - Adaptive.Aeron.ErrorCode.RESOURCE_TEMPORARILY_UNAVAILABLE == code ? Category.WARN : Category.ERROR) + public RegistrationException(long correlationId, int errorCodeValue, ErrorCode code, string msg) + : base( + msg, + Adaptive.Aeron.ErrorCode.RESOURCE_TEMPORARILY_UNAVAILABLE == code ? Category.WARN : Category.ERROR + ) { _correlationId = correlationId; _errorCodeValue = errorCodeValue; _code = code; } - + /// /// Construct a from another to be nested, useful when exceptions are reported asynchronously and need to be /// rethrown from other places in the code. /// /// original RegistrationException to be stored as the exception cause. - public RegistrationException(RegistrationException cause) : base(StripCategoryName(cause.Message), cause, cause.Category) + public RegistrationException(RegistrationException cause) + : base(StripCategoryName(cause.Message), cause, cause.Category) { _correlationId = cause.CorrelationId(); _code = cause.ErrorCode(); @@ -92,8 +95,8 @@ private static string StripCategoryName(string msg) return msg; } - + public override string Message => "correlationId=" + _correlationId + ", errorCodeValue=" + _errorCodeValue + ", " + base.Message; } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Exceptions/StorageSpaceException.cs b/src/Adaptive.Aeron/Exceptions/StorageSpaceException.cs index ef8e2ded..bd2d35d6 100644 --- a/src/Adaptive.Aeron/Exceptions/StorageSpaceException.cs +++ b/src/Adaptive.Aeron/Exceptions/StorageSpaceException.cs @@ -1,4 +1,20 @@ -using System.IO; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System.IO; namespace Adaptive.Aeron.Exceptions { @@ -13,13 +29,14 @@ public class StorageSpaceException : AeronException /// Construct the exception for the with detailed message. /// /// detail for the exception. - public StorageSpaceException(string message) : base(message) + public StorageSpaceException(string message) + : base(message) { } /// - /// Check if given exception denotes an out of disc space error, i.e. which on Linux is represented by error code - /// {@code ENOSPC(28)} and on Windows by error code {@code ERROR_DISK_FULL(112)}. + /// Check if given exception denotes an out of disc space error, i.e. which on Linux is represented by error + /// code {@code ENOSPC(28)} and on Windows by error code {@code ERROR_DISK_FULL(112)} . /// /// to check. /// {@code true} if cause is with a specific error. @@ -36,9 +53,13 @@ public static bool IsStorageSpaceError(Exception error) if (cause is IOException) { string message = cause.Message; - if (null != message && - (message.Contains("No space left on device") || - message.Contains("There is not enough space on the disk"))) + if ( + null != message + && ( + message.Contains("No space left on device") + || message.Contains("There is not enough space on the disk") + ) + ) { return true; } @@ -55,4 +76,4 @@ public static bool IsStorageSpaceError(Exception error) return false; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/ExclusivePublication.cs b/src/Adaptive.Aeron/ExclusivePublication.cs index e0aae303..fd88da39 100644 --- a/src/Adaptive.Aeron/ExclusivePublication.cs +++ b/src/Adaptive.Aeron/ExclusivePublication.cs @@ -29,889 +29,953 @@ namespace Adaptive.Aeron { - /// - /// Aeron publisher API for sending messages to subscribers of a given channel and streamId pair. ExclusivePublications - /// each get their own session id so multiple can be concurrently active on the same media driver as independent streams. - /// - /// s are created via the method, - /// and messages are sent via one of the methods, or a - /// and method combination. - /// - /// - /// s have the potential to provide greater throughput than the default - /// which supports concurrent access. - /// - /// - /// The APIs for tryClaim and offer are non-blocking. - /// - /// - /// Note: Instances are NOT threadsafe for offer and tryClaim methods but are for the others. - /// - /// - /// - /// - public sealed class ExclusivePublication : Publication - { - private long _termBeginPosition; - private int _activePartitionIndex; - private int _termId; - private int _termOffset; - - // For testing purposes only - internal ExclusivePublication() - { - - } - - internal ExclusivePublication( - ClientConductor clientConductor, - string channel, - int streamId, - int sessionId, - IReadablePosition positionLimit, - int channelStatusId, - LogBuffers logBuffers, - long originalRegistrationId, - long registrationId) - : base( - clientConductor, - channel, - streamId, - sessionId, - positionLimit, - channelStatusId, - logBuffers, - originalRegistrationId, - registrationId - ) - { - var logMetaDataBuffer = logBuffers.MetaDataBuffer(); - var termCount = ActiveTermCount(logMetaDataBuffer); - var index = IndexByTermCount(termCount); - _activePartitionIndex = index; - - var rawTail = RawTail(base._logMetaDataBuffer, index); - _termId = LogBufferDescriptor.TermId(rawTail); - _termOffset = LogBufferDescriptor.TermOffset(rawTail); - _termBeginPosition = ComputeTermBeginPosition(_termId, PositionBitsToShift, InitialTermId); - } - - /// - /// Mark the publication to be revoked when is called. See - /// - public void RevokeOnClose() - { - revokeOnClose = true; - } - - /// - /// Immediately revoke and the publication. - /// - /// Revoking disposes of resources as soon as possible. On the publication side the log buffer won't linger, - /// while on the subscription side the image will go unavailable without requiring all data to be drained. - /// Hence, it should be used only when it's known that all subscribers have received all the data, - /// or if it doesn't matter if they have. - /// - public void Revoke() - { - if (!_isClosed) - { - revokeOnClose = true; - Dispose(); - } - } - - /// - public override long Position - { - get - { - if (_isClosed) - { - return CLOSED; - } - - return _termBeginPosition + _termOffset; - } - } - - /// - public override long AvailableWindow - { - get - { - if (_isClosed) - { - return CLOSED; - } - - return _positionLimit.GetVolatile() - (_termBeginPosition + _termOffset); - } - } - - /// - /// The current term-id of the publication. - /// - /// the current term-id of the publication. - public int TermId() - { - return _termId; - } - - /// - /// The current term-offset of the publication. - /// - /// the current term-offset of the publication. - public int TermOffset() - { - return _termOffset; - } - - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public override long Offer( - IDirectBuffer buffer, - int offset, - int length, - ReservedValueSupplier reservedValueSupplier = null) - { - var newPosition = CLOSED; - if (!_isClosed) - { - var limit = _positionLimit.GetVolatile(); - long position = _termBeginPosition + _termOffset; - - if (position < limit) - { - int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (_activePartitionIndex * SIZE_OF_LONG); - UnsafeBuffer termBuffer = _termBuffers[_activePartitionIndex]; - int result; - - if (length <= MaxPayloadLength) - { - CheckPositiveLength(length); - result = AppendUnfragmentedMessage( - tailCounterOffset, termBuffer, buffer, offset, length, reservedValueSupplier); - } - else - { - CheckMaxMessageLength(length); - result = AppendFragmentedMessage( - termBuffer, tailCounterOffset, buffer, offset, length, reservedValueSupplier); - } - - newPosition = NewPosition(result); - } - else - { - newPosition = BackPressureStatus(position, length); - } - } - - return newPosition; - } - - - /// - public override long Offer(IDirectBuffer bufferOne, int offsetOne, int lengthOne, IDirectBuffer bufferTwo, - int offsetTwo, int lengthTwo, ReservedValueSupplier reservedValueSupplier = null) - { - long newPosition = CLOSED; - if (!_isClosed) - { - long limit = _positionLimit.GetVolatile(); - long position = _termBeginPosition + _termOffset; - int length = ValidateAndComputeLength(lengthOne, lengthTwo); - - if (position < limit) - { - int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (_activePartitionIndex * SIZE_OF_LONG); - UnsafeBuffer termBuffer = _termBuffers[_activePartitionIndex]; - int result; - - if (length <= MaxPayloadLength) - { - CheckPositiveLength(length); - result = AppendUnfragmentedMessage( - termBuffer, - tailCounterOffset, - bufferOne, offsetOne, lengthOne, - bufferTwo, offsetTwo, lengthTwo, - reservedValueSupplier); - } - else - { - CheckMaxMessageLength(length); - result = AppendFragmentedMessage( - termBuffer, - tailCounterOffset, - bufferOne, offsetOne, lengthOne, - bufferTwo, offsetTwo, lengthTwo, - MaxPayloadLength, - reservedValueSupplier); - } - - newPosition = NewPosition(result); - } - else - { - newPosition = BackPressureStatus(position, length); - } - } - - return newPosition; - } - - - /// - public override long Offer(DirectBufferVector[] vectors, ReservedValueSupplier reservedValueSupplier = null) - { - int length = DirectBufferVector.ValidateAndComputeLength(vectors); - var newPosition = CLOSED; - if (!_isClosed) - { - var limit = _positionLimit.GetVolatile(); - long position = _termBeginPosition + _termOffset; - - if (position < limit) - { - int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (_activePartitionIndex * SIZE_OF_LONG); - UnsafeBuffer termBuffer = _termBuffers[_activePartitionIndex]; - int result; - - if (length <= MaxPayloadLength) - { - result = AppendUnfragmentedMessage( - termBuffer, tailCounterOffset, vectors, length, reservedValueSupplier); - } - else - { - CheckMaxMessageLength(length); - result = AppendFragmentedMessage( - termBuffer, tailCounterOffset, vectors, length, reservedValueSupplier); - } - - newPosition = NewPosition(result); - } - else - { - newPosition = BackPressureStatus(position, length); - } - } - - return newPosition; - } - - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public override long TryClaim(int length, BufferClaim bufferClaim) - { - CheckPayloadLength(length); - var newPosition = CLOSED; - - if (!_isClosed) - { - var limit = _positionLimit.GetVolatile(); - long position = _termBeginPosition + _termOffset; - - if (position < limit) - { - int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (_activePartitionIndex * SIZE_OF_LONG); - UnsafeBuffer termBuffer = _termBuffers[_activePartitionIndex]; - int result = Claim(termBuffer, tailCounterOffset, length, bufferClaim); - - newPosition = NewPosition(result); - } - else - { - newPosition = BackPressureStatus(position, length); - } - } - - return newPosition; - } - - /// - /// Append a padding record to log of a given length to make up the log to a position. - /// - /// of the range to claim, in bytes.. - /// The new stream position, otherwise a negative error value of , - /// , , , or . - /// if the length is greater than framed. - public long AppendPadding(int length) - { - if (length > _maxFramedLength) - { - ThrowHelper.ThrowArgumentException( - $"message exceeds maxFramedLength of {_maxFramedLength:D}, length={length:D}"); - } - - long newPosition = CLOSED; - if (!_isClosed) - { - long limit = _positionLimit.GetVolatile(); - long position = _termBeginPosition + _termOffset; - - if (position < limit) - { - CheckPositiveLength(length); - int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (_activePartitionIndex * SIZE_OF_LONG); - UnsafeBuffer termBuffer = _termBuffers[_activePartitionIndex]; - int result = AppendPadding(termBuffer, tailCounterOffset, length); - - newPosition = NewPosition(result); - } - else - { - newPosition = BackPressureStatus(position, length); - } - } - - return newPosition; - } - - /// - /// Offer a block of pre-formatted message fragments directly into the current term. - /// - /// containing the pre-formatted block of message fragments. - /// offset in the buffer at which the first fragment begins. - /// in bytes of the encoded block. - /// The new stream position, otherwise a negative error value of , - /// , , , - /// or . - /// if the length is greater than remaining size of the current term. - /// if the first frame within the block is not properly formatted, i.e. if the - /// streamId is not equal to the value returned by the - /// method or if the sessionId is not equal to the value returned by the - /// method or if the frame type is not equal to the - /// . - public long OfferBlock(IMutableDirectBuffer buffer, int offset, int length) - { - if (IsClosed) - { - return CLOSED; - } - - if (_termOffset >= TermBufferLength) - { - RotateTerm(); - } - - long limit = _positionLimit.GetVolatile(); - long position = _termBeginPosition + _termOffset; - - if (position < limit) - { - CheckBlockLength(length); - CheckFirstFrame(buffer, offset); - - int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (_activePartitionIndex * SIZE_OF_LONG); - UnsafeBuffer termBuffer = _termBuffers[_activePartitionIndex]; - int result = AppendBlock(termBuffer, tailCounterOffset, buffer, offset, length); - - return NewPosition(result); - } - else - { - return BackPressureStatus(position, length); - } - } - - private void CheckBlockLength(int length) - { - int remaining = TermBufferLength - _termOffset; - if (length > remaining) - { - throw new ArgumentException("invalid block length " + length + ", remaining space in term is " + - remaining); - } - } - - private void CheckFirstFrame(IMutableDirectBuffer buffer, int offset) - { - int frameType = HeaderFlyweight.HDR_TYPE_DATA; - int blockTermOffset = buffer.GetInt(offset + TERM_OFFSET_FIELD_OFFSET, - ByteOrder.LittleEndian); - int blockSessionId = - buffer.GetInt(offset + SESSION_ID_FIELD_OFFSET, ByteOrder.LittleEndian); - int blockStreamId = - buffer.GetInt(offset + STREAM_ID_FIELD_OFFSET, ByteOrder.LittleEndian); - int blockTermId = buffer.GetInt(offset + TERM_ID_FIELD_OFFSET, ByteOrder.LittleEndian); - int blockFrameType = buffer.GetShort(offset + HeaderFlyweight.TYPE_FIELD_OFFSET, ByteOrder.LittleEndian) & - 0xFFFF; - - if (blockTermOffset != _termOffset || blockSessionId != SessionId || blockStreamId != StreamId || - blockTermId != _termId || frameType != blockFrameType) - { - throw new ArgumentException("improperly formatted block:" + " termOffset=" + blockTermOffset + - " (expected=" + _termOffset + ")," + " sessionId=" + blockSessionId + - " (expected=" + SessionId + ")," + " streamId=" + blockStreamId + - " (expected=" + StreamId + ")," + " termId=" + blockTermId + - " (expected=" + _termId + ")," + " frameType=" + blockFrameType + - " (expected=" + frameType + ")"); - } - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private long NewPosition(int resultingOffset) - { - if (resultingOffset > 0) - { - _termOffset = resultingOffset; - - return _termBeginPosition + resultingOffset; - } - - if ((_termBeginPosition + TermBufferLength) >= MaxPossiblePosition) - { - return MAX_POSITION_EXCEEDED; - } - - RotateTerm(); - - return ADMIN_ACTION; - } - - private void RotateTerm() - { - int nextIndex = NextPartitionIndex(_activePartitionIndex); - int nextTermId = _termId + 1; - - _activePartitionIndex = nextIndex; - _termOffset = 0; - _termId = nextTermId; - _termBeginPosition += TermBufferLength; - - var termCount = nextTermId - InitialTermId; - - InitialiseTailWithTermId(_logMetaDataBuffer, nextIndex, nextTermId); - ActiveTermCountOrdered(_logMetaDataBuffer, termCount); - } - - private int HandleEndOfLog(UnsafeBuffer termBuffer, int termLength) - { - if (_termOffset < termLength) - { - int offset = _termOffset; - int paddingLength = termLength - offset; - _headerWriter.Write(termBuffer, offset, paddingLength, _termId); - FrameType(termBuffer, offset, PADDING_FRAME_TYPE); - FrameLengthOrdered(termBuffer, offset, paddingLength); - } - - return -1; - } - - private int AppendUnfragmentedMessage( - int tailCounterOffset, - UnsafeBuffer termBuffer, - IDirectBuffer srcBuffer, - int srcOffset, - int length, - ReservedValueSupplier reservedValueSupplier) - { - int frameLength = length + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - int termLength = termBuffer.Capacity; - - int resultingOffset = _termOffset + alignedLength; - _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); - - if (resultingOffset > termLength) - { - resultingOffset = HandleEndOfLog(termBuffer, termLength); - } - else - { - _headerWriter.Write(termBuffer, _termOffset, frameLength, _termId); - termBuffer.PutBytes(_termOffset + HEADER_LENGTH, srcBuffer, srcOffset, length); - - if (null != reservedValueSupplier) - { - long reservedValue = reservedValueSupplier(termBuffer, _termOffset, frameLength); - termBuffer.PutLong(_termOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); - } - - FrameLengthOrdered(termBuffer, _termOffset, frameLength); - } - - return resultingOffset; - } - - private int AppendFragmentedMessage( - UnsafeBuffer termBuffer, - int tailCounterOffset, - IDirectBuffer srcBuffer, - int srcOffset, - int length, - ReservedValueSupplier reservedValueSupplier) - { - int framedLength = ComputeFragmentedFrameLength(length, MaxPayloadLength); - int termLength = termBuffer.Capacity; - - int resultingOffset = _termOffset + framedLength; - _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); - - if (resultingOffset > termLength) - { - resultingOffset = HandleEndOfLog(termBuffer, termLength); - } - else - { - int frameOffset = _termOffset; - byte flags = BEGIN_FRAG_FLAG; - int remaining = length; - do - { - int bytesToWrite = Math.Min(remaining, MaxPayloadLength); - int frameLength = bytesToWrite + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - - _headerWriter.Write(termBuffer, frameOffset, frameLength, _termId); - termBuffer.PutBytes(frameOffset + HEADER_LENGTH, srcBuffer, srcOffset + (length - remaining), - bytesToWrite); - - if (remaining <= MaxPayloadLength) - { - flags |= END_FRAG_FLAG; - } - - FrameFlags(termBuffer, frameOffset, flags); - - if (null != reservedValueSupplier) - { - long reservedValue = reservedValueSupplier(termBuffer, frameOffset, frameLength); - termBuffer.PutLong(frameOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); - } - - FrameLengthOrdered(termBuffer, frameOffset, frameLength); - - flags = 0; - frameOffset += alignedLength; - remaining -= bytesToWrite; - } while (remaining > 0); - } - - return resultingOffset; - } - - private int AppendUnfragmentedMessage( - UnsafeBuffer termBuffer, - int tailCounterOffset, - IDirectBuffer bufferOne, - int offsetOne, - int lengthOne, - IDirectBuffer bufferTwo, - int offsetTwo, - int lengthTwo, - ReservedValueSupplier reservedValueSupplier) - { - int frameLength = lengthOne + lengthTwo + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - int termLength = termBuffer.Capacity; - - int resultingOffset = _termOffset + alignedLength; - _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); - - if (resultingOffset > termLength) - { - resultingOffset = HandleEndOfLog(termBuffer, termLength); - } - else - { - _headerWriter.Write(termBuffer, _termOffset, frameLength, _termId); - termBuffer.PutBytes(_termOffset + HEADER_LENGTH, bufferOne, offsetOne, lengthOne); - termBuffer.PutBytes(_termOffset + HEADER_LENGTH + lengthOne, bufferTwo, offsetTwo, lengthTwo); - - if (null != reservedValueSupplier) - { - long reservedValue = reservedValueSupplier(termBuffer, _termOffset, frameLength); - termBuffer.PutLong(_termOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); - } - - FrameLengthOrdered(termBuffer, _termOffset, frameLength); - } - - return resultingOffset; - } - - private int AppendFragmentedMessage( - UnsafeBuffer termBuffer, - int tailCounterOffset, - IDirectBuffer bufferOne, - int offsetOne, - int lengthOne, - IDirectBuffer bufferTwo, - int offsetTwo, - int lengthTwo, - int maxPayloadLength, - ReservedValueSupplier reservedValueSupplier) - { - int length = lengthOne + lengthTwo; - int framedLength = ComputeFragmentedFrameLength(length, maxPayloadLength); - int termLength = termBuffer.Capacity; - - int resultingOffset = _termOffset + framedLength; - _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); - - if (resultingOffset > termLength) - { - resultingOffset = HandleEndOfLog(termBuffer, termLength); - } - else - { - int frameOffset = _termOffset; - byte flags = BEGIN_FRAG_FLAG; - int remaining = length; - int positionOne = 0; - int positionTwo = 0; - - do - { - int bytesToWrite = Math.Min(remaining, maxPayloadLength); - int frameLength = bytesToWrite + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - - _headerWriter.Write(termBuffer, frameOffset, frameLength, _termId); - - int bytesWritten = 0; - int payloadOffset = frameOffset + HEADER_LENGTH; - do - { - int remainingOne = lengthOne - positionOne; - if (remainingOne > 0) - { - int numBytes = Math.Min(bytesToWrite - bytesWritten, remainingOne); - termBuffer.PutBytes(payloadOffset, bufferOne, offsetOne + positionOne, numBytes); - - bytesWritten += numBytes; - payloadOffset += numBytes; - positionOne += numBytes; - } - else - { - int numBytes = Math.Min(bytesToWrite - bytesWritten, lengthTwo - positionTwo); - termBuffer.PutBytes(payloadOffset, bufferTwo, offsetTwo + positionTwo, numBytes); - - bytesWritten += numBytes; - payloadOffset += numBytes; - positionTwo += numBytes; - } - } while (bytesWritten < bytesToWrite); - - if (remaining <= maxPayloadLength) - { - flags |= END_FRAG_FLAG; - } - - FrameFlags(termBuffer, frameOffset, flags); - - if (null != reservedValueSupplier) - { - long reservedValue = reservedValueSupplier(termBuffer, frameOffset, frameLength); - termBuffer.PutLong(frameOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); - } - - FrameLengthOrdered(termBuffer, frameOffset, frameLength); - - flags = 0; - frameOffset += alignedLength; - remaining -= bytesToWrite; - } while (remaining > 0); - } - - return resultingOffset; - } - - private int AppendUnfragmentedMessage( - UnsafeBuffer termBuffer, - int tailCounterOffset, - DirectBufferVector[] vectors, - int length, - ReservedValueSupplier reservedValueSupplier) - { - int frameLength = length + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - int termLength = termBuffer.Capacity; - - int resultingOffset = _termOffset + alignedLength; - _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); - - if (resultingOffset > termLength) - { - resultingOffset = HandleEndOfLog(termBuffer, termLength); - } - else - { - _headerWriter.Write(termBuffer, _termOffset, frameLength, _termId); - - int offset = _termOffset + HEADER_LENGTH; - foreach (DirectBufferVector vector in vectors) - { - termBuffer.PutBytes(offset, vector.Buffer(), vector.Offset(), vector.Length()); - offset += vector.Length(); - } - - if (null != reservedValueSupplier) - { - long reservedValue = reservedValueSupplier(termBuffer, _termOffset, frameLength); - termBuffer.PutLong(_termOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); - } - - FrameLengthOrdered(termBuffer, _termOffset, frameLength); - } - - return resultingOffset; - } - - private int AppendFragmentedMessage( - UnsafeBuffer termBuffer, - int tailCounterOffset, - DirectBufferVector[] vectors, - int length, - ReservedValueSupplier reservedValueSupplier) - { - int framedLength = ComputeFragmentedFrameLength(length, MaxPayloadLength); - int termLength = termBuffer.Capacity; - - int resultingOffset = _termOffset + framedLength; - _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); - - if (resultingOffset > termLength) - { - resultingOffset = HandleEndOfLog(termBuffer, termLength); - } - else - { - int frameOffset = _termOffset; - byte flags = BEGIN_FRAG_FLAG; - int remaining = length; - int vectorIndex = 0; - int vectorOffset = 0; - - do - { - int bytesToWrite = Math.Min(remaining, MaxPayloadLength); - int frameLength = bytesToWrite + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - - _headerWriter.Write(termBuffer, frameOffset, frameLength, _termId); - - int bytesWritten = 0; - int payloadOffset = frameOffset + HEADER_LENGTH; - do - { - DirectBufferVector vector = vectors[vectorIndex]; - int vectorRemaining = vector.Length() - vectorOffset; - int numBytes = Math.Min(bytesToWrite - bytesWritten, vectorRemaining); - - termBuffer.PutBytes(payloadOffset, vector.Buffer(), vector.Offset() + vectorOffset, numBytes); - - bytesWritten += numBytes; - payloadOffset += numBytes; - vectorOffset += numBytes; - - if (vectorRemaining <= numBytes) - { - vectorIndex++; - vectorOffset = 0; - } - } while (bytesWritten < bytesToWrite); - - if (remaining <= MaxPayloadLength) - { - flags |= END_FRAG_FLAG; - } - - FrameFlags(termBuffer, frameOffset, flags); - - if (null != reservedValueSupplier) - { - long reservedValue = reservedValueSupplier(termBuffer, frameOffset, frameLength); - termBuffer.PutLong(frameOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); - } - - FrameLengthOrdered(termBuffer, frameOffset, frameLength); - - flags = 0; - frameOffset += alignedLength; - remaining -= bytesToWrite; - } while (remaining > 0); - } - - return resultingOffset; - } - - private int Claim( - UnsafeBuffer termBuffer, - int tailCounterOffset, - int length, - BufferClaim bufferClaim) - { - int frameLength = length + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - int termLength = termBuffer.Capacity; - - int resultingOffset = _termOffset + alignedLength; - _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); - - if (resultingOffset > termLength) - { - resultingOffset = HandleEndOfLog(termBuffer, termLength); - } - else - { - _headerWriter.Write(termBuffer, _termOffset, frameLength, _termId); - bufferClaim.Wrap(termBuffer, _termOffset, frameLength); - } - - return resultingOffset; - } - - private int AppendPadding( - UnsafeBuffer termBuffer, - int tailCounterOffset, - int length) - { - int frameLength = length + HEADER_LENGTH; - int alignedLength = Align(frameLength, FRAME_ALIGNMENT); - int termLength = termBuffer.Capacity; - - int resultingOffset = _termOffset + alignedLength; - _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); - - if (resultingOffset > termLength) - { - resultingOffset = HandleEndOfLog(termBuffer, termLength); - } - else - { - _headerWriter.Write(termBuffer, _termOffset, frameLength, _termId); - FrameType(termBuffer, _termOffset, PADDING_FRAME_TYPE); - FrameLengthOrdered(termBuffer, _termOffset, frameLength); - } - - return resultingOffset; - } - - private int AppendBlock( - UnsafeBuffer termBuffer, - int tailCounterOffset, - IMutableDirectBuffer buffer, - int offset, - int length) - { - int resultingOffset = _termOffset + length; - - _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); - - termBuffer.PutBytes(_termOffset + HEADER_LENGTH, buffer, offset + HEADER_LENGTH, length - HEADER_LENGTH); - termBuffer.PutLong(_termOffset + 24, buffer.GetLong(offset + 24)); - termBuffer.PutLong(_termOffset + 16, buffer.GetLong(offset + 16)); - termBuffer.PutLong(_termOffset + 8, buffer.GetLong(offset + 8)); - termBuffer.PutLongRelease(_termOffset, buffer.GetLong(offset)); - - return resultingOffset; - } - } -} \ No newline at end of file + /// + /// Aeron publisher API for sending messages to subscribers of a given channel and streamId pair. + /// ExclusivePublications each get their own session id so multiple can be concurrently active on the same media + /// driver as independent streams. + /// + /// s are created via the + /// method, + /// and messages are sent via one of the methods, or a + /// and method combination. + /// + /// + /// s have the potential to provide greater throughput than the default + /// + /// which supports concurrent access. + /// + /// + /// The APIs for tryClaim and offer are non-blocking. + /// + /// + /// Note: Instances are NOT threadsafe for offer and tryClaim methods but are for the others. + /// + /// + /// + /// + public sealed class ExclusivePublication : Publication + { + private long _termBeginPosition; + private int _activePartitionIndex; + private int _termId; + private int _termOffset; + + // For testing purposes only + internal ExclusivePublication() + { + } + + internal ExclusivePublication( + ClientConductor clientConductor, + string channel, + int streamId, + int sessionId, + IReadablePosition positionLimit, + int channelStatusId, + LogBuffers logBuffers, + long originalRegistrationId, + long registrationId + ) + : base( + clientConductor, + channel, + streamId, + sessionId, + positionLimit, + channelStatusId, + logBuffers, + originalRegistrationId, + registrationId + ) + { + var logMetaDataBuffer = logBuffers.MetaDataBuffer(); + var termCount = ActiveTermCount(logMetaDataBuffer); + var index = IndexByTermCount(termCount); + _activePartitionIndex = index; + + var rawTail = RawTail(base._logMetaDataBuffer, index); + _termId = LogBufferDescriptor.TermId(rawTail); + _termOffset = LogBufferDescriptor.TermOffset(rawTail); + _termBeginPosition = ComputeTermBeginPosition(_termId, PositionBitsToShift, InitialTermId); + } + + /// + /// Mark the publication to be revoked when is called. See + /// + /// + public void RevokeOnClose() + { + _revokeOnClose = true; + } + + /// + /// Immediately revoke and the publication. + /// + /// Revoking disposes of resources as soon as possible. On the publication side the log buffer won't linger, + /// while on the subscription side the image will go unavailable without requiring all data to be drained. + /// Hence, it should be used only when it's known that all subscribers have received all the data, or if it + /// doesn't matter if they have. + /// + public void Revoke() + { + if (!_isClosed) + { + _revokeOnClose = true; + Dispose(); + } + } + + /// + public override long Position + { + get + { + if (_isClosed) + { + return CLOSED; + } + + return _termBeginPosition + _termOffset; + } + } + + /// + public override long AvailableWindow + { + get + { + if (_isClosed) + { + return CLOSED; + } + + return _positionLimit.GetVolatile() - (_termBeginPosition + _termOffset); + } + } + + /// + /// The current term-id of the publication. + /// + /// the current term-id of the publication. + public int TermId() + { + return _termId; + } + + /// + /// The current term-offset of the publication. + /// + /// the current term-offset of the publication. + public int TermOffset() + { + return _termOffset; + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public override long Offer( + IDirectBuffer buffer, + int offset, + int length, + ReservedValueSupplier reservedValueSupplier = null + ) + { + var newPosition = CLOSED; + if (!_isClosed) + { + var limit = _positionLimit.GetVolatile(); + long position = _termBeginPosition + _termOffset; + + if (position < limit) + { + int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (_activePartitionIndex * SIZE_OF_LONG); + UnsafeBuffer termBuffer = _termBuffers[_activePartitionIndex]; + int result; + + if (length <= MaxPayloadLength) + { + CheckPositiveLength(length); + result = AppendUnfragmentedMessage( + tailCounterOffset, + termBuffer, + buffer, + offset, + length, + reservedValueSupplier + ); + } + else + { + CheckMaxMessageLength(length); + result = AppendFragmentedMessage( + termBuffer, + tailCounterOffset, + buffer, + offset, + length, + reservedValueSupplier + ); + } + + newPosition = NewPosition(result); + } + else + { + newPosition = BackPressureStatus(position, length); + } + } + + return newPosition; + } + + /// + public override long Offer( + IDirectBuffer bufferOne, + int offsetOne, + int lengthOne, + IDirectBuffer bufferTwo, + int offsetTwo, + int lengthTwo, + ReservedValueSupplier reservedValueSupplier = null + ) + { + long newPosition = CLOSED; + if (!_isClosed) + { + long limit = _positionLimit.GetVolatile(); + long position = _termBeginPosition + _termOffset; + int length = ValidateAndComputeLength(lengthOne, lengthTwo); + + if (position < limit) + { + int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (_activePartitionIndex * SIZE_OF_LONG); + UnsafeBuffer termBuffer = _termBuffers[_activePartitionIndex]; + int result; + + if (length <= MaxPayloadLength) + { + CheckPositiveLength(length); + result = AppendUnfragmentedMessage( + termBuffer, + tailCounterOffset, + bufferOne, + offsetOne, + lengthOne, + bufferTwo, + offsetTwo, + lengthTwo, + reservedValueSupplier + ); + } + else + { + CheckMaxMessageLength(length); + result = AppendFragmentedMessage( + termBuffer, + tailCounterOffset, + bufferOne, + offsetOne, + lengthOne, + bufferTwo, + offsetTwo, + lengthTwo, + MaxPayloadLength, + reservedValueSupplier + ); + } + + newPosition = NewPosition(result); + } + else + { + newPosition = BackPressureStatus(position, length); + } + } + + return newPosition; + } + + /// + public override long Offer(DirectBufferVector[] vectors, ReservedValueSupplier reservedValueSupplier = null) + { + int length = DirectBufferVector.ValidateAndComputeLength(vectors); + var newPosition = CLOSED; + if (!_isClosed) + { + var limit = _positionLimit.GetVolatile(); + long position = _termBeginPosition + _termOffset; + + if (position < limit) + { + int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (_activePartitionIndex * SIZE_OF_LONG); + UnsafeBuffer termBuffer = _termBuffers[_activePartitionIndex]; + int result; + + if (length <= MaxPayloadLength) + { + result = AppendUnfragmentedMessage( + termBuffer, + tailCounterOffset, + vectors, + length, + reservedValueSupplier + ); + } + else + { + CheckMaxMessageLength(length); + result = AppendFragmentedMessage( + termBuffer, + tailCounterOffset, + vectors, + length, + reservedValueSupplier + ); + } + + newPosition = NewPosition(result); + } + else + { + newPosition = BackPressureStatus(position, length); + } + } + + return newPosition; + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public override long TryClaim(int length, BufferClaim bufferClaim) + { + CheckPayloadLength(length); + var newPosition = CLOSED; + + if (!_isClosed) + { + var limit = _positionLimit.GetVolatile(); + long position = _termBeginPosition + _termOffset; + + if (position < limit) + { + int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (_activePartitionIndex * SIZE_OF_LONG); + UnsafeBuffer termBuffer = _termBuffers[_activePartitionIndex]; + int result = Claim(termBuffer, tailCounterOffset, length, bufferClaim); + + newPosition = NewPosition(result); + } + else + { + newPosition = BackPressureStatus(position, length); + } + } + + return newPosition; + } + + /// + /// Append a padding record to log of a given length to make up the log to a position. + /// + /// of the range to claim, in bytes.. + /// The new stream position, otherwise a negative error value of + /// , + /// , , + /// , or . + /// if the length is greater than + /// framed. + public long AppendPadding(int length) + { + if (length > _maxFramedLength) + { + ThrowHelper.ThrowArgumentException( + $"message exceeds maxFramedLength of {_maxFramedLength:D}, length={length:D}" + ); + } + + long newPosition = CLOSED; + if (!_isClosed) + { + long limit = _positionLimit.GetVolatile(); + long position = _termBeginPosition + _termOffset; + + if (position < limit) + { + CheckPositiveLength(length); + int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (_activePartitionIndex * SIZE_OF_LONG); + UnsafeBuffer termBuffer = _termBuffers[_activePartitionIndex]; + int result = AppendPadding(termBuffer, tailCounterOffset, length); + + newPosition = NewPosition(result); + } + else + { + newPosition = BackPressureStatus(position, length); + } + } + + return newPosition; + } + + /// + /// Offer a block of pre-formatted message fragments directly into the current term. + /// + /// containing the pre-formatted block of message fragments. + /// offset in the buffer at which the first fragment begins. + /// in bytes of the encoded block. + /// The new stream position, otherwise a negative error value of + /// , + /// , , + /// , + /// or . + /// if the length is greater than remaining size of the current term. + /// + /// if the first frame within the block is not properly formatted, i.e. if + /// the + /// streamId is not equal to the value returned by the + /// method or if the sessionId is not equal to the value returned by the + /// method or if the frame type is not equal to the + /// . + public long OfferBlock(IMutableDirectBuffer buffer, int offset, int length) + { + if (IsClosed) + { + return CLOSED; + } + + if (_termOffset >= TermBufferLength) + { + RotateTerm(); + } + + long limit = _positionLimit.GetVolatile(); + long position = _termBeginPosition + _termOffset; + + if (position < limit) + { + CheckBlockLength(length); + CheckFirstFrame(buffer, offset); + + int tailCounterOffset = TERM_TAIL_COUNTERS_OFFSET + (_activePartitionIndex * SIZE_OF_LONG); + UnsafeBuffer termBuffer = _termBuffers[_activePartitionIndex]; + int result = AppendBlock(termBuffer, tailCounterOffset, buffer, offset, length); + + return NewPosition(result); + } + else + { + return BackPressureStatus(position, length); + } + } + + private void CheckBlockLength(int length) + { + int remaining = TermBufferLength - _termOffset; + if (length > remaining) + { + throw new ArgumentException( + "invalid block length " + length + ", remaining space in term is " + remaining + ); + } + } + + private void CheckFirstFrame(IMutableDirectBuffer buffer, int offset) + { + int frameType = HeaderFlyweight.HDR_TYPE_DATA; + int blockTermOffset = buffer.GetInt(offset + TERM_OFFSET_FIELD_OFFSET, ByteOrder.LittleEndian); + int blockSessionId = buffer.GetInt(offset + SESSION_ID_FIELD_OFFSET, ByteOrder.LittleEndian); + int blockStreamId = buffer.GetInt(offset + STREAM_ID_FIELD_OFFSET, ByteOrder.LittleEndian); + int blockTermId = buffer.GetInt(offset + TERM_ID_FIELD_OFFSET, ByteOrder.LittleEndian); + int blockFrameType = + buffer.GetShort(offset + HeaderFlyweight.TYPE_FIELD_OFFSET, ByteOrder.LittleEndian) & 0xFFFF; + + if ( + blockTermOffset != _termOffset + || blockSessionId != SessionId + || blockStreamId != StreamId + || blockTermId != _termId + || frameType != blockFrameType + ) + { + throw new ArgumentException( + "improperly formatted block:" + + " termOffset=" + blockTermOffset + " (expected=" + _termOffset + ")," + + " sessionId=" + blockSessionId + " (expected=" + SessionId + ")," + + " streamId=" + blockStreamId + " (expected=" + StreamId + ")," + + " termId=" + blockTermId + " (expected=" + _termId + ")," + + " frameType=" + blockFrameType + " (expected=" + frameType + ")" + ); + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private long NewPosition(int resultingOffset) + { + if (resultingOffset > 0) + { + _termOffset = resultingOffset; + + return _termBeginPosition + resultingOffset; + } + + if ((_termBeginPosition + TermBufferLength) >= MaxPossiblePosition) + { + return MAX_POSITION_EXCEEDED; + } + + RotateTerm(); + + return ADMIN_ACTION; + } + + private void RotateTerm() + { + int nextIndex = NextPartitionIndex(_activePartitionIndex); + int nextTermId = _termId + 1; + + _activePartitionIndex = nextIndex; + _termOffset = 0; + _termId = nextTermId; + _termBeginPosition += TermBufferLength; + + var termCount = nextTermId - InitialTermId; + + InitialiseTailWithTermId(_logMetaDataBuffer, nextIndex, nextTermId); + ActiveTermCountOrdered(_logMetaDataBuffer, termCount); + } + + private int HandleEndOfLog(UnsafeBuffer termBuffer, int termLength) + { + if (_termOffset < termLength) + { + int offset = _termOffset; + int paddingLength = termLength - offset; + _headerWriter.Write(termBuffer, offset, paddingLength, _termId); + FrameType(termBuffer, offset, PADDING_FRAME_TYPE); + FrameLengthOrdered(termBuffer, offset, paddingLength); + } + + return -1; + } + + private int AppendUnfragmentedMessage( + int tailCounterOffset, + UnsafeBuffer termBuffer, + IDirectBuffer srcBuffer, + int srcOffset, + int length, + ReservedValueSupplier reservedValueSupplier + ) + { + int frameLength = length + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + int termLength = termBuffer.Capacity; + + int resultingOffset = _termOffset + alignedLength; + _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); + + if (resultingOffset > termLength) + { + resultingOffset = HandleEndOfLog(termBuffer, termLength); + } + else + { + _headerWriter.Write(termBuffer, _termOffset, frameLength, _termId); + termBuffer.PutBytes(_termOffset + HEADER_LENGTH, srcBuffer, srcOffset, length); + + if (null != reservedValueSupplier) + { + long reservedValue = reservedValueSupplier(termBuffer, _termOffset, frameLength); + termBuffer.PutLong(_termOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); + } + + FrameLengthOrdered(termBuffer, _termOffset, frameLength); + } + + return resultingOffset; + } + + private int AppendFragmentedMessage( + UnsafeBuffer termBuffer, + int tailCounterOffset, + IDirectBuffer srcBuffer, + int srcOffset, + int length, + ReservedValueSupplier reservedValueSupplier + ) + { + int framedLength = ComputeFragmentedFrameLength(length, MaxPayloadLength); + int termLength = termBuffer.Capacity; + + int resultingOffset = _termOffset + framedLength; + _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); + + if (resultingOffset > termLength) + { + resultingOffset = HandleEndOfLog(termBuffer, termLength); + } + else + { + int frameOffset = _termOffset; + byte flags = BEGIN_FRAG_FLAG; + int remaining = length; + do + { + int bytesToWrite = Math.Min(remaining, MaxPayloadLength); + int frameLength = bytesToWrite + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + + _headerWriter.Write(termBuffer, frameOffset, frameLength, _termId); + termBuffer.PutBytes( + frameOffset + HEADER_LENGTH, + srcBuffer, + srcOffset + (length - remaining), + bytesToWrite + ); + + if (remaining <= MaxPayloadLength) + { + flags |= END_FRAG_FLAG; + } + + FrameFlags(termBuffer, frameOffset, flags); + + if (null != reservedValueSupplier) + { + long reservedValue = reservedValueSupplier(termBuffer, frameOffset, frameLength); + termBuffer.PutLong(frameOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); + } + + FrameLengthOrdered(termBuffer, frameOffset, frameLength); + + flags = 0; + frameOffset += alignedLength; + remaining -= bytesToWrite; + } + while (remaining > 0); + } + + return resultingOffset; + } + + private int AppendUnfragmentedMessage( + UnsafeBuffer termBuffer, + int tailCounterOffset, + IDirectBuffer bufferOne, + int offsetOne, + int lengthOne, + IDirectBuffer bufferTwo, + int offsetTwo, + int lengthTwo, + ReservedValueSupplier reservedValueSupplier + ) + { + int frameLength = lengthOne + lengthTwo + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + int termLength = termBuffer.Capacity; + + int resultingOffset = _termOffset + alignedLength; + _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); + + if (resultingOffset > termLength) + { + resultingOffset = HandleEndOfLog(termBuffer, termLength); + } + else + { + _headerWriter.Write(termBuffer, _termOffset, frameLength, _termId); + termBuffer.PutBytes(_termOffset + HEADER_LENGTH, bufferOne, offsetOne, lengthOne); + termBuffer.PutBytes(_termOffset + HEADER_LENGTH + lengthOne, bufferTwo, offsetTwo, lengthTwo); + + if (null != reservedValueSupplier) + { + long reservedValue = reservedValueSupplier(termBuffer, _termOffset, frameLength); + termBuffer.PutLong(_termOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); + } + + FrameLengthOrdered(termBuffer, _termOffset, frameLength); + } + + return resultingOffset; + } + + private int AppendFragmentedMessage( + UnsafeBuffer termBuffer, + int tailCounterOffset, + IDirectBuffer bufferOne, + int offsetOne, + int lengthOne, + IDirectBuffer bufferTwo, + int offsetTwo, + int lengthTwo, + int maxPayloadLength, + ReservedValueSupplier reservedValueSupplier + ) + { + int length = lengthOne + lengthTwo; + int framedLength = ComputeFragmentedFrameLength(length, maxPayloadLength); + int termLength = termBuffer.Capacity; + + int resultingOffset = _termOffset + framedLength; + _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); + + if (resultingOffset > termLength) + { + resultingOffset = HandleEndOfLog(termBuffer, termLength); + } + else + { + int frameOffset = _termOffset; + byte flags = BEGIN_FRAG_FLAG; + int remaining = length; + int positionOne = 0; + int positionTwo = 0; + + do + { + int bytesToWrite = Math.Min(remaining, maxPayloadLength); + int frameLength = bytesToWrite + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + + _headerWriter.Write(termBuffer, frameOffset, frameLength, _termId); + + int bytesWritten = 0; + int payloadOffset = frameOffset + HEADER_LENGTH; + do + { + int remainingOne = lengthOne - positionOne; + if (remainingOne > 0) + { + int numBytes = Math.Min(bytesToWrite - bytesWritten, remainingOne); + termBuffer.PutBytes(payloadOffset, bufferOne, offsetOne + positionOne, numBytes); + + bytesWritten += numBytes; + payloadOffset += numBytes; + positionOne += numBytes; + } + else + { + int numBytes = Math.Min(bytesToWrite - bytesWritten, lengthTwo - positionTwo); + termBuffer.PutBytes(payloadOffset, bufferTwo, offsetTwo + positionTwo, numBytes); + + bytesWritten += numBytes; + payloadOffset += numBytes; + positionTwo += numBytes; + } + } + while (bytesWritten < bytesToWrite); + + if (remaining <= maxPayloadLength) + { + flags |= END_FRAG_FLAG; + } + + FrameFlags(termBuffer, frameOffset, flags); + + if (null != reservedValueSupplier) + { + long reservedValue = reservedValueSupplier(termBuffer, frameOffset, frameLength); + termBuffer.PutLong(frameOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); + } + + FrameLengthOrdered(termBuffer, frameOffset, frameLength); + + flags = 0; + frameOffset += alignedLength; + remaining -= bytesToWrite; + } + while (remaining > 0); + } + + return resultingOffset; + } + + private int AppendUnfragmentedMessage( + UnsafeBuffer termBuffer, + int tailCounterOffset, + DirectBufferVector[] vectors, + int length, + ReservedValueSupplier reservedValueSupplier + ) + { + int frameLength = length + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + int termLength = termBuffer.Capacity; + + int resultingOffset = _termOffset + alignedLength; + _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); + + if (resultingOffset > termLength) + { + resultingOffset = HandleEndOfLog(termBuffer, termLength); + } + else + { + _headerWriter.Write(termBuffer, _termOffset, frameLength, _termId); + + int offset = _termOffset + HEADER_LENGTH; + foreach (DirectBufferVector vector in vectors) + { + termBuffer.PutBytes(offset, vector.Buffer(), vector.Offset(), vector.Length()); + offset += vector.Length(); + } + + if (null != reservedValueSupplier) + { + long reservedValue = reservedValueSupplier(termBuffer, _termOffset, frameLength); + termBuffer.PutLong(_termOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); + } + + FrameLengthOrdered(termBuffer, _termOffset, frameLength); + } + + return resultingOffset; + } + + private int AppendFragmentedMessage( + UnsafeBuffer termBuffer, + int tailCounterOffset, + DirectBufferVector[] vectors, + int length, + ReservedValueSupplier reservedValueSupplier + ) + { + int framedLength = ComputeFragmentedFrameLength(length, MaxPayloadLength); + int termLength = termBuffer.Capacity; + + int resultingOffset = _termOffset + framedLength; + _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); + + if (resultingOffset > termLength) + { + resultingOffset = HandleEndOfLog(termBuffer, termLength); + } + else + { + int frameOffset = _termOffset; + byte flags = BEGIN_FRAG_FLAG; + int remaining = length; + int vectorIndex = 0; + int vectorOffset = 0; + + do + { + int bytesToWrite = Math.Min(remaining, MaxPayloadLength); + int frameLength = bytesToWrite + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + + _headerWriter.Write(termBuffer, frameOffset, frameLength, _termId); + + int bytesWritten = 0; + int payloadOffset = frameOffset + HEADER_LENGTH; + do + { + DirectBufferVector vector = vectors[vectorIndex]; + int vectorRemaining = vector.Length() - vectorOffset; + int numBytes = Math.Min(bytesToWrite - bytesWritten, vectorRemaining); + + termBuffer.PutBytes(payloadOffset, vector.Buffer(), vector.Offset() + vectorOffset, numBytes); + + bytesWritten += numBytes; + payloadOffset += numBytes; + vectorOffset += numBytes; + + if (vectorRemaining <= numBytes) + { + vectorIndex++; + vectorOffset = 0; + } + } + while (bytesWritten < bytesToWrite); + + if (remaining <= MaxPayloadLength) + { + flags |= END_FRAG_FLAG; + } + + FrameFlags(termBuffer, frameOffset, flags); + + if (null != reservedValueSupplier) + { + long reservedValue = reservedValueSupplier(termBuffer, frameOffset, frameLength); + termBuffer.PutLong(frameOffset + RESERVED_VALUE_OFFSET, reservedValue, ByteOrder.LittleEndian); + } + + FrameLengthOrdered(termBuffer, frameOffset, frameLength); + + flags = 0; + frameOffset += alignedLength; + remaining -= bytesToWrite; + } + while (remaining > 0); + } + + return resultingOffset; + } + + private int Claim(UnsafeBuffer termBuffer, int tailCounterOffset, int length, BufferClaim bufferClaim) + { + int frameLength = length + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + int termLength = termBuffer.Capacity; + + int resultingOffset = _termOffset + alignedLength; + _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); + + if (resultingOffset > termLength) + { + resultingOffset = HandleEndOfLog(termBuffer, termLength); + } + else + { + _headerWriter.Write(termBuffer, _termOffset, frameLength, _termId); + bufferClaim.Wrap(termBuffer, _termOffset, frameLength); + } + + return resultingOffset; + } + + private int AppendPadding(UnsafeBuffer termBuffer, int tailCounterOffset, int length) + { + int frameLength = length + HEADER_LENGTH; + int alignedLength = Align(frameLength, FRAME_ALIGNMENT); + int termLength = termBuffer.Capacity; + + int resultingOffset = _termOffset + alignedLength; + _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); + + if (resultingOffset > termLength) + { + resultingOffset = HandleEndOfLog(termBuffer, termLength); + } + else + { + _headerWriter.Write(termBuffer, _termOffset, frameLength, _termId); + FrameType(termBuffer, _termOffset, PADDING_FRAME_TYPE); + FrameLengthOrdered(termBuffer, _termOffset, frameLength); + } + + return resultingOffset; + } + + private int AppendBlock( + UnsafeBuffer termBuffer, + int tailCounterOffset, + IMutableDirectBuffer buffer, + int offset, + int length + ) + { + int resultingOffset = _termOffset + length; + + _logMetaDataBuffer.PutLongRelease(tailCounterOffset, PackTail(_termId, resultingOffset)); + + termBuffer.PutBytes(_termOffset + HEADER_LENGTH, buffer, offset + HEADER_LENGTH, length - HEADER_LENGTH); + termBuffer.PutLong(_termOffset + 24, buffer.GetLong(offset + 24)); + termBuffer.PutLong(_termOffset + 16, buffer.GetLong(offset + 16)); + termBuffer.PutLong(_termOffset + 8, buffer.GetLong(offset + 8)); + termBuffer.PutLongRelease(_termOffset, buffer.GetLong(offset)); + + return resultingOffset; + } + } +} diff --git a/src/Adaptive.Aeron/FodyWeavers.xml b/src/Adaptive.Aeron/FodyWeavers.xml index 7adcd688..3dfa4ac2 100644 --- a/src/Adaptive.Aeron/FodyWeavers.xml +++ b/src/Adaptive.Aeron/FodyWeavers.xml @@ -1,5 +1,5 @@ - + - - - \ No newline at end of file + + + diff --git a/src/Adaptive.Aeron/FragmentAssembler.cs b/src/Adaptive.Aeron/FragmentAssembler.cs index 7a11307d..048ca011 100644 --- a/src/Adaptive.Aeron/FragmentAssembler.cs +++ b/src/Adaptive.Aeron/FragmentAssembler.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,29 +14,26 @@ * limitations under the License. */ -using System; -using System.Collections.Generic; using Adaptive.Aeron.LogBuffer; -using Adaptive.Aeron.Protocol; using Adaptive.Agrona; using Adaptive.Agrona.Collections; -using Adaptive.Agrona.Concurrent; namespace Adaptive.Aeron { /// - /// A that sits in a chain-of-responsibility pattern that reassembles fragmented messages - /// so that the next handler in the chain only sees whole messages. - /// - /// Unfragmented messages are delegated without copy. Fragmented messages are copied to a temporary - /// buffer for reassembly before delegation. - /// + /// A that sits in a chain-of-responsibility pattern that reassembles fragmented + /// messages so that the next handler in the chain only sees whole messages. + /// + /// Unfragmented messages are delegated without copy. Fragmented messages are copied to a temporary buffer for + /// reassembly before delegation. + /// /// The passed to the _delegate on assembling a message will be that of the last fragment. - /// + /// /// Session based buffers will be allocated and grown as necessary based on the length of messages to be assembled. - /// When sessions go inactive see , it is possible to free the buffer by calling + /// When sessions go inactive see , it is possible to free the buffer by + /// calling /// . - /// + /// /// /// /// @@ -87,7 +84,7 @@ public IFragmentHandler Delegate() public void OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { byte flags = header.Flags; - + if ((flags & FrameDescriptor.UNFRAGMENTED) == FrameDescriptor.UNFRAGMENTED) { _delegate.OnFragment(buffer, offset, length, header); @@ -103,7 +100,8 @@ private void HandleFragment(IDirectBuffer buffer, int offset, int length, Header if ((flags & FrameDescriptor.BEGIN_FRAG_FLAG) == FrameDescriptor.BEGIN_FRAG_FLAG) { BufferBuilder builder = GetBufferBuilder(header.SessionId); - builder.Reset() + builder + .Reset() .CaptureHeader(header) .Append(buffer, offset, length) .NextTermOffset(header.NextTermOffset); @@ -119,8 +117,7 @@ private void HandleFragment(IDirectBuffer buffer, int offset, int length, Header if ((flags & FrameDescriptor.END_FRAG_FLAG) == FrameDescriptor.END_FRAG_FLAG) { - _delegate.OnFragment( - builder.Buffer(), 0, builder.Limit(), builder.CompleteHeader(header)); + _delegate.OnFragment(builder.Buffer(), 0, builder.Limit(), builder.CompleteHeader(header)); builder.Reset(); } else @@ -137,8 +134,8 @@ private void HandleFragment(IDirectBuffer buffer, int offset, int length, Header } /// - /// Free an existing session buffer to reduce memory pressure when an image goes inactive or no more - /// large messages are expected. + /// Free an existing session buffer to reduce memory pressure when an image goes inactive or no more large + /// messages are expected. /// /// to have its buffer freed /// true if a buffer has been freed otherwise false. @@ -174,4 +171,4 @@ private BufferBuilder GetBufferBuilder(int sessionId) return bufferBuilder; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/ILogBuffersFactory.cs b/src/Adaptive.Aeron/ILogBuffersFactory.cs index 5868065a..31f159cf 100644 --- a/src/Adaptive.Aeron/ILogBuffersFactory.cs +++ b/src/Adaptive.Aeron/ILogBuffersFactory.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,10 +24,10 @@ namespace Adaptive.Aeron public interface ILogBuffersFactory { /// - /// Map a log file into memory and wrap each section with a . + /// Map a log file into memory and wrap each section with a . /// /// to be mapped into memory. /// a representation of the mapped log buffer. LogBuffers Map(string logFileName); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Image.cs b/src/Adaptive.Aeron/Image.cs index 4280f6e1..fcc74352 100644 --- a/src/Adaptive.Aeron/Image.cs +++ b/src/Adaptive.Aeron/Image.cs @@ -30,16 +30,18 @@ namespace Adaptive.Aeron { /// - /// Represents a replicated from a publisher which matches a . - /// Each identifies a source by . - /// - /// By default, fragmented messages are not reassembled before delivery. If an application must - /// receive whole messages, whether they were fragmented or not, then the Subscriber - /// should be created with a or a custom implementation. - /// - /// It is an application's responsibility to the for new messages. - /// - /// Note:Images are not threadsafe and should not be shared between subscribers. + /// Represents a replicated from a publisher which matches a + /// . + /// Each identifies a source by . + /// + /// By default, fragmented messages are not reassembled before delivery. If an application must receive whole + /// messages, whether they were fragmented or not, then the Subscriber should be created with a + /// or a custom implementation. + /// + /// It is an application's responsibility to + /// the for new messages. + /// + /// Note: Images are not threadsafe and should not be shared between subscribers. /// public class Image { @@ -65,7 +67,7 @@ internal Image() } /// - /// Construct a new image over a log to represent a stream of messages from a . + /// Construct a new image over a log to represent a stream of messages from a . /// /// to which this belongs. /// of the stream of messages. @@ -74,8 +76,15 @@ internal Image() /// to be called if an error occurs when polling for messages. /// of the source sending the stream of messages. /// of the request to the media driver. - public Image(Subscription subscription, int sessionId, IPosition subscriberPosition, LogBuffers logBuffers, - IErrorHandler errorHandler, string sourceIdentity, long correlationId) + public Image( + Subscription subscription, + int sessionId, + IPosition subscriberPosition, + LogBuffers logBuffers, + IErrorHandler errorHandler, + string sourceIdentity, + long correlationId + ) { Subscription = subscription; SessionId = sessionId; @@ -93,14 +102,18 @@ public Image(Subscription subscription, int sessionId, IPosition subscriberPosit PositionBitsToShift = LogBufferDescriptor.PositionBitsToShift(termLength); _initialTermId = LogBufferDescriptor.InitialTermId(logBuffers.MetaDataBuffer()); _mtu = LogBufferDescriptor.MtuLength(logBuffers.MetaDataBuffer()); - _header = new Header(LogBufferDescriptor.InitialTermId(logBuffers.MetaDataBuffer()), PositionBitsToShift, - this); + _header = new Header( + LogBufferDescriptor.InitialTermId(logBuffers.MetaDataBuffer()), + PositionBitsToShift, + this + ); } /// /// Number of bits to right shift a position to get a term count for how far the stream has progressed. /// - /// of bits to right shift a position to get a term count for how far the stream has progressed. + /// of bits to right shift a position to get a term count for how far the stream has progressed. + /// public int PositionBitsToShift { get; } /// @@ -110,8 +123,8 @@ public Image(Subscription subscription, int sessionId, IPosition subscriberPosit public int TermBufferLength => _termLengthMask + 1; /// - /// The sessionId for the steam of messages. Sessions are unique within a and unique across - /// all s from a + /// The sessionId for the steam of messages. Sessions are unique within a and unique + /// across all s from a /// /// the sessionId for the steam of messages. public int SessionId { get; } @@ -119,13 +132,15 @@ public Image(Subscription subscription, int sessionId, IPosition subscriberPosit /// /// The source identity of the sending publisher as an abstract concept appropriate for the media. /// - /// source identity of the sending publisher as an abstract concept appropriate for the media. + /// source identity of the sending publisher as an abstract concept appropriate for the media. + /// public string SourceIdentity { get; } /// /// The length in bytes of the MTU (Maximum Transmission Unit) the Sender used for the datagram. /// - /// length in bytes of the MTU (Maximum Transmission Unit) the Sender used for the datagram. + /// length in bytes of the MTU (Maximum Transmission Unit) the Sender used for the datagram. + /// public int MtuLength => _mtu; /// @@ -174,7 +189,6 @@ public long Position return _subscriberPosition.Get(); } - [MethodImpl(MethodImplOptions.AggressiveInlining)] set { @@ -205,11 +219,11 @@ public bool IsEndOfStream return _isEos; } - return _subscriberPosition.Get() >= - LogBufferDescriptor.EndOfStreamPosition(_logBuffers.MetaDataBuffer()); + return _subscriberPosition.Get() + >= LogBufferDescriptor.EndOfStreamPosition(_logBuffers.MetaDataBuffer()); } } - + /// /// The position the stream reached when EOS was received from the publisher. The position will be /// until the stream ends and EOS is set. @@ -230,9 +244,9 @@ public long EndOfStreamPosition /// /// Count of observed active transports within the image liveness timeout. - /// - /// If the image is closed, then this is 0. This may also be 0 if no actual datagrams have arrived. IPC - /// Images also will be 0. + /// + /// If the image is closed, then this is 0. This may also be 0 if no actual datagrams have arrived. IPC Images + /// also will be 0. /// /// count of active transports - 0 if Image is closed, no datagrams yet, or IPC. public int ActiveTransportCount() @@ -244,7 +258,7 @@ public int ActiveTransportCount() return LogBufferDescriptor.ActiveTransportCount(_logBuffers.MetaDataBuffer()); } - + /// /// Has the associated publication been revoked? /// @@ -257,12 +271,11 @@ public bool PublicationRevoked { return _isRevoked; } - + return LogBufferDescriptor.IsPublicationRevoked(_logBuffers.MetaDataBuffer()); } } - /// /// The for the raw log of the Image. /// @@ -272,11 +285,12 @@ public bool PublicationRevoked /// /// Poll for new messages in a stream. If new messages are found beyond the last consumed position then they /// will be delivered to the up to a limited number of fragments as specified. - /// + /// /// Use a to assemble messages which span multiple fragments. /// /// to which message fragments are delivered. - /// for the number of fragments to be consumed during one polling operation. + /// for the number of fragments to be consumed during one polling operation. + /// /// the number of fragments that have been consumed. /// /// @@ -289,11 +303,12 @@ public int Poll(FragmentHandler fragmentHandler, int fragmentLimit) /// /// Poll for new messages in a stream. If new messages are found beyond the last consumed position then they /// will be delivered to the up to a limited number of fragments as specified. - /// + /// /// Use a to assemble messages which span multiple fragments. /// /// to which message fragments are delivered. - /// for the number of fragments to be consumed during one polling operation. + /// for the number of fragments to be consumed during one polling operation. + /// /// the number of fragments that have been consumed. /// /// @@ -330,8 +345,12 @@ public int Poll(IFragmentHandler fragmentHandler, int fragmentLimit) { ++fragmentsRead; header.Offset = frameOffset; - fragmentHandler.OnFragment(termBuffer, frameOffset + HEADER_LENGTH, frameLength - HEADER_LENGTH, - header); + fragmentHandler.OnFragment( + termBuffer, + frameOffset + HEADER_LENGTH, + frameLength - HEADER_LENGTH, + header + ); } } } @@ -353,13 +372,15 @@ public int Poll(IFragmentHandler fragmentHandler, int fragmentLimit) /// /// Poll for new messages in a stream. If new messages are found beyond the last consumed position then they - /// will be delivered to the up to a limited number of fragments as specified. - /// - /// Use a . to assemble messages which span multiple fragments. - /// + /// will be delivered to the up to a limited number of fragments as + /// specified. + /// + /// Use a . to assemble messages which span multiple fragments. + /// /// /// to which message fragments are delivered. - /// for the number of fragments to be consumed during one polling operation. + /// for the number of fragments to be consumed during one polling operation. + /// /// the number of fragments that have been consumed. /// /// @@ -372,7 +393,7 @@ public int ControlledPoll(IControlledFragmentHandler handler, int fragmentLimit) var fragmentsRead = 0; var initialPosition = _subscriberPosition.Get(); - var initialOffset = (int) initialPosition & _termLengthMask; + var initialOffset = (int)initialPosition & _termLengthMask; var offset = initialOffset; var termBuffer = ActiveTermBuffer(initialPosition); int capacity = termBuffer.Capacity; @@ -405,7 +426,8 @@ public int ControlledPoll(IControlledFragmentHandler handler, int fragmentLimit) termBuffer, frameOffset + HEADER_LENGTH, length - HEADER_LENGTH, - header); + header + ); if (ABORT == action) { @@ -448,13 +470,15 @@ public int ControlledPoll(IControlledFragmentHandler handler, int fragmentLimit) /// /// Poll for new messages in a stream. If new messages are found beyond the last consumed position then they - /// will be delivered to the up to a limited number of fragments as specified. - /// - /// Use a . to assemble messages which span multiple fragments. - /// + /// will be delivered to the up to a limited number of fragments as + /// specified. + /// + /// Use a . to assemble messages which span multiple fragments. + /// /// /// to which message fragments are delivered. - /// for the number of fragments to be consumed during one polling operation. + /// for the number of fragments to be consumed during one polling operation. + /// /// the number of fragments that have been consumed. /// /// @@ -463,19 +487,20 @@ public int ControlledPoll(ControlledFragmentHandler handler, int fragmentLimit) var fragmentHandler = HandlerHelper.ToControlledFragmentHandler(handler); return ControlledPoll(fragmentHandler, fragmentLimit); } - + /// /// Poll for new messages in a stream. If new messages are found beyond the last consumed position then they - /// will be delivered to the up to a limited number of fragments as specified or - /// the maximum position specified. + /// will be delivered to the up to a limited number of fragments as specified + /// or the maximum position specified. /// /// Use a to assemble messages which span multiple fragments. - /// + /// /// /// /// to which message fragments are delivered. /// to consume messages up to. - /// for the number of fragments to be consumed during one polling operation. + /// for the number of fragments to be consumed during one polling operation. + /// /// the number of fragments that have been consumed. /// /// @@ -493,10 +518,10 @@ public int BoundedPoll(IFragmentHandler handler, long limitPosition, int fragmen } int fragmentsRead = 0; - int initialOffset = (int) initialPosition & _termLengthMask; + int initialOffset = (int)initialPosition & _termLengthMask; int offset = initialOffset; UnsafeBuffer termBuffer = ActiveTermBuffer(initialPosition); - int limitOffset = (int) Math.Min(termBuffer.Capacity, (limitPosition - initialPosition) + offset); + int limitOffset = (int)Math.Min(termBuffer.Capacity, (limitPosition - initialPosition) + offset); Header header = _header; header.Buffer = termBuffer; @@ -539,20 +564,20 @@ public int BoundedPoll(IFragmentHandler handler, long limitPosition, int fragmen return fragmentsRead; } - /// /// Poll for new messages in a stream. If new messages are found beyond the last consumed position then they - /// will be delivered to the up to a limited number of fragments as specified or - /// the maximum position specified. + /// will be delivered to the up to a limited number of fragments as specified + /// or the maximum position specified. /// /// Use a to assemble messages which span multiple fragments. - /// + /// /// /// /// to which message fragments are delivered. /// to consume messages up to. - /// for the number of fragments to be consumed during one polling operation. + /// for the number of fragments to be consumed during one polling operation. + /// /// the number of fragments that have been consumed. /// /// @@ -562,24 +587,23 @@ public int BoundedPoll(FragmentHandler handler, long limitPosition, int fragment return BoundedPoll(fragmentHandler, limitPosition, fragmentLimit); } - /// /// Poll for new messages in a stream. If new messages are found beyond the last consumed position then they - /// will be delivered to the up to a limited number of fragments as specified or - /// the maximum position specified. + /// will be delivered to the up to a limited number of fragments as + /// specified or the maximum position specified. /// /// Use a to assemble messages which span multiple fragments. - /// + /// /// /// /// to which message fragments are delivered. /// to consume messages up to. - /// for the number of fragments to be consumed during one polling operation. + /// for the number of fragments to be consumed during one polling operation. + /// /// the number of fragments that have been consumed. /// /// - public int BoundedControlledPoll(IControlledFragmentHandler handler, long limitPosition, - int fragmentLimit) + public int BoundedControlledPoll(IControlledFragmentHandler handler, long limitPosition, int fragmentLimit) { if (_isClosed) { @@ -592,12 +616,12 @@ public int BoundedControlledPoll(IControlledFragmentHandler handler, long limitP { return 0; } - + var fragmentsRead = 0; - var initialOffset = (int) initialPosition & _termLengthMask; + var initialOffset = (int)initialPosition & _termLengthMask; var offset = initialOffset; var termBuffer = ActiveTermBuffer(initialPosition); - var limitOffset = (int) Math.Min(termBuffer.Capacity, (limitPosition - initialPosition + initialOffset)); + var limitOffset = (int)Math.Min(termBuffer.Capacity, (limitPosition - initialPosition + initialOffset)); var header = _header; header.Buffer = termBuffer; @@ -623,9 +647,12 @@ public int BoundedControlledPoll(IControlledFragmentHandler handler, long limitP ++fragmentsRead; header.Offset = frameOffset; - var action = handler.OnFragment(termBuffer, + var action = handler.OnFragment( + termBuffer, frameOffset + HEADER_LENGTH, - length - HEADER_LENGTH, header); + length - HEADER_LENGTH, + header + ); if (ABORT == action) { @@ -633,12 +660,12 @@ public int BoundedControlledPoll(IControlledFragmentHandler handler, long limitP offset -= alignedLength; break; } - + if (BREAK == action) { break; } - + if (COMMIT == action) { initialPosition += (offset - initialOffset); @@ -669,33 +696,33 @@ public int BoundedControlledPoll(IControlledFragmentHandler handler, long limitP /// /// Poll for new messages in a stream. If new messages are found beyond the last consumed position then they - /// will be delivered to the up to a limited number of fragments as specified or - /// the maximum position specified. + /// will be delivered to the up to a limited number of fragments as + /// specified or the maximum position specified. /// /// Use a to assemble messages which span multiple fragments. - /// + /// /// /// /// to which message fragments are delivered. /// to consume messages up to. - /// for the number of fragments to be consumed during one polling operation. + /// for the number of fragments to be consumed during one polling operation. + /// /// the number of fragments that have been consumed. /// /// - public int BoundedControlledPoll(ControlledFragmentHandler handler, long limitPosition, - int fragmentLimit) + public int BoundedControlledPoll(ControlledFragmentHandler handler, long limitPosition, int fragmentLimit) { var fragmentHandler = HandlerHelper.ToControlledFragmentHandler(handler); return BoundedControlledPoll(fragmentHandler, limitPosition, fragmentLimit); } /// - /// Peek for new messages in a stream by scanning forward from an initial position. If new messages are found then - /// they will be delivered to the up to a limited position. - /// - /// Use a to assemble messages which span multiple fragments. Scans must also - /// start at the beginning of a message so that the assembler is reset. - /// + /// Peek for new messages in a stream by scanning forward from an initial position. If new messages are found + /// then they will be delivered to the up to a limited position. + /// + /// Use a to assemble messages which span multiple fragments. + /// Scans must also start at the beginning of a message so that the assembler is reset. + /// /// /// from which to peek forward. /// to which message fragments are delivered. @@ -716,12 +743,11 @@ public long ControlledPeek(long initialPosition, IControlledFragmentHandler hand return initialPosition; } - int initialOffset = (int) initialPosition & _termLengthMask; + int initialOffset = (int)initialPosition & _termLengthMask; int offset = initialOffset; long position = initialPosition; UnsafeBuffer termBuffer = ActiveTermBuffer(initialPosition); - var header = _header; - int limitOffset = (int) Math.Min(termBuffer.Capacity, (limitPosition - initialPosition) + offset); + int limitOffset = (int)Math.Min(termBuffer.Capacity, (limitPosition - initialPosition) + offset); _header.Buffer = termBuffer; long resultingPosition = initialPosition; @@ -749,12 +775,12 @@ public long ControlledPeek(long initialPosition, IControlledFragmentHandler hand _header.Offset = frameOffset; - var action = handler.OnFragment( termBuffer, frameOffset + HEADER_LENGTH, length - HEADER_LENGTH, - _header); + _header + ); if (ABORT == action) { @@ -811,7 +837,7 @@ public int BlockPoll(BlockHandler handler, int blockLengthLimit) } var position = _subscriberPosition.Get(); - var offset = (int) position & _termLengthMask; + var offset = (int)position & _termLengthMask; var capacity = _termLengthMask + 1; var highLimitOffset = (long)offset + blockLengthLimit; var limitOffset = (long)capacity < highLimitOffset ? capacity : (int)highLimitOffset; @@ -856,7 +882,7 @@ public int BlockPoll(BlockHandler handler, int blockLengthLimit) /// /// /// Padding frames may be for a greater range than the limit offset but only the header needs to be valid so - /// relevant length of the frame is . + /// relevant length of the frame is . /// /// /// to which block is delivered. @@ -912,7 +938,7 @@ public void Reject(string reason) { Subscription.RejectImage(CorrelationId, Position, reason); } - + private UnsafeBuffer ActiveTermBuffer(long position) { return _termBuffers[LogBufferDescriptor.IndexByPosition(position, PositionBitsToShift)]; @@ -926,7 +952,8 @@ private void ValidatePosition(long position) if (position < currentPosition || position > limitPosition) { ThrowHelper.ThrowArgumentException( - $"{position} position out of range {currentPosition}-{limitPosition}"); + $"{position} position out of range {currentPosition}-{limitPosition}" + ); } if (0 != (position & (FRAME_ALIGNMENT - 1))) @@ -948,20 +975,21 @@ internal void Close() public override string ToString() { - return "Image{" + - $"correlationId={CorrelationId}, " + - $"sessionId={SessionId}, " + - $"isClosed={_isClosed}, " + - $"isEos={IsEndOfStream}, " + - $"initialTermId={InitialTermId}, " + - $"termLength={TermBufferLength}, " + - $"joinPosition={JoinPosition}, " + - $"position={Position}, " + - $"endOfStreamPosition={EndOfStreamPosition}, " + - $"activeTransportCount={ActiveTransportCount()}, " + - $"sourceIdentity='{SourceIdentity}', " + - $"subscription={Subscription}" + - '}'; + return + "Image{" + + $"correlationId={CorrelationId}, " + + $"sessionId={SessionId}, " + + $"isClosed={_isClosed}, " + + $"isEos={IsEndOfStream}, " + + $"initialTermId={InitialTermId}, " + + $"termLength={TermBufferLength}, " + + $"joinPosition={JoinPosition}, " + + $"position={Position}, " + + $"endOfStreamPosition={EndOfStreamPosition}, " + + $"activeTransportCount={ActiveTransportCount()}, " + + $"sourceIdentity='{SourceIdentity}', " + + $"subscription={Subscription}" + + '}'; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/ImageControlledFragmentHandler.cs b/src/Adaptive.Aeron/ImageControlledFragmentHandler.cs index 47eea31f..67ac4a67 100644 --- a/src/Adaptive.Aeron/ImageControlledFragmentHandler.cs +++ b/src/Adaptive.Aeron/ImageControlledFragmentHandler.cs @@ -1,18 +1,34 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron.LogBuffer; -using Adaptive.Aeron.Protocol; using Adaptive.Agrona; namespace Adaptive.Aeron { /// - /// A that sits in a chain-of-responsibility pattern that reassembles fragmented - /// messages so that the next handler in the chain only sees whole messages. This is for a single session on an - /// and not for multiple session s in a . - /// - /// Unfragmented messages are delegated without copy. Fragmented messages are copied to a temporary - /// buffer for reassembly before delegation. - /// + /// A that sits in a chain-of-responsibility pattern that reassembles + /// fragmented messages so that the next handler in the chain only sees whole messages. This is for a single session + /// on an + /// and not for multiple session s in a + /// . + /// + /// Unfragmented messages are delegated without copy. Fragmented messages are copied to a temporary buffer for + /// reassembly before delegation. + /// /// The passed to the delegate on assembling a message will be that of the last fragment. /// /// @@ -52,7 +68,8 @@ public BufferBuilder Builder() } /// - /// The implementation of that reassembles and forwards whole messages. + /// The implementation of that reassembles and forwards whole + /// messages. /// /// containing the data. /// at which the data begins. @@ -70,7 +87,8 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs } else if ((flags & FrameDescriptor.BEGIN_FRAG_FLAG) == FrameDescriptor.BEGIN_FRAG_FLAG) { - _builder.Reset() + _builder + .Reset() .CaptureHeader(header) .Append(buffer, offset, length) .NextTermOffset(header.NextTermOffset); @@ -83,7 +101,12 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs if ((flags & FrameDescriptor.END_FRAG_FLAG) == FrameDescriptor.END_FRAG_FLAG) { - action = _delegate.OnFragment(_builder.Buffer(), 0, _builder.Limit(), _builder.CompleteHeader(header)); + action = _delegate.OnFragment( + _builder.Buffer(), + 0, + _builder.Limit(), + _builder.CompleteHeader(header) + ); if (ControlledFragmentHandlerAction.ABORT == action) { @@ -107,4 +130,4 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs return action; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/ImageFragmentAssembler.cs b/src/Adaptive.Aeron/ImageFragmentAssembler.cs index b909fadc..2fee526c 100644 --- a/src/Adaptive.Aeron/ImageFragmentAssembler.cs +++ b/src/Adaptive.Aeron/ImageFragmentAssembler.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,21 +15,20 @@ */ using Adaptive.Aeron.LogBuffer; -using Adaptive.Aeron.Protocol; using Adaptive.Agrona; namespace Adaptive.Aeron { /// - /// A that sits in a chain-of-responsibility pattern that reassembles fragmented messages - /// so that the next handler in the chain only sees whole messages. This is for a single session on an {@link Image} - /// and not for multiple session s in a . - /// - /// Unfragmented messages are delegated without copy. Fragmented messages are copied to a temporary - /// buffer for reassembly before delegation. - /// + /// A that sits in a chain-of-responsibility pattern that reassembles fragmented + /// messages so that the next handler in the chain only sees whole messages. This is for a single session on an + /// {@link Image} and not for multiple session s in a . + /// + /// Unfragmented messages are delegated without copy. Fragmented messages are copied to a temporary buffer for + /// reassembly before delegation. + /// /// The passed to the _delegate on assembling a message will be that of the last fragment. - /// + /// /// public class ImageFragmentAssembler : IFragmentHandler { @@ -101,7 +100,8 @@ private void HandleFragment(IDirectBuffer buffer, int offset, int length, Header { if ((flags & FrameDescriptor.BEGIN_FRAG_FLAG) == FrameDescriptor.BEGIN_FRAG_FLAG) { - _builder.Reset() + _builder + .Reset() .CaptureHeader(header) .Append(buffer, offset, length) .NextTermOffset(header.NextTermOffset); @@ -124,7 +124,6 @@ private void HandleFragment(IDirectBuffer buffer, int offset, int length, Header { _builder.Reset(); } - } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/BlockHandler.cs b/src/Adaptive.Aeron/LogBuffer/BlockHandler.cs index 0f536976..b42fc2cc 100644 --- a/src/Adaptive.Aeron/LogBuffer/BlockHandler.cs +++ b/src/Adaptive.Aeron/LogBuffer/BlockHandler.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,4 +28,4 @@ namespace Adaptive.Aeron.LogBuffer /// of the stream containing this block of message fragments. /// of the stream containing this block of message fragments. public delegate void BlockHandler(IDirectBuffer buffer, int offset, int length, int sessionId, int termId); -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/BufferClaim.cs b/src/Adaptive.Aeron/LogBuffer/BufferClaim.cs index 4ba46b8a..03cb641b 100644 --- a/src/Adaptive.Aeron/LogBuffer/BufferClaim.cs +++ b/src/Adaptive.Aeron/LogBuffer/BufferClaim.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,13 +22,15 @@ namespace Adaptive.Aeron.LogBuffer { /// - /// Represents a claimed range in a buffer to be used for recording a message without copy semantics for later commit. - /// - /// The claimed space is in between and + . + /// Represents a claimed range in a buffer to be used for recording a message without copy semantics for later + /// commit. + /// + /// The claimed space is in between and + + /// . /// When the buffer is filled with message data, use to make it available to subscribers. - /// - /// If the claimed space is no longer required it can be aborted by calling . - /// + /// + /// If the claimed space is no longer required it can be aborted by calling . + /// /// /// public class BufferClaim @@ -58,7 +60,6 @@ public void Wrap(IAtomicBuffer buffer, int offset, int length) /// offset in the buffer at which the range begins. public int Offset => DataHeaderFlyweight.HEADER_LENGTH; - /// /// The length of the claimed range in the buffer. /// @@ -105,14 +106,13 @@ public BufferClaim Flags(byte flags) /// public BufferClaim HeaderType(int type) { - _buffer.PutShort(HeaderFlyweight.TYPE_FIELD_OFFSET, (short) type, ByteOrder.LittleEndian); + _buffer.PutShort(HeaderFlyweight.TYPE_FIELD_OFFSET, (short)type, ByteOrder.LittleEndian); return this; } - /// /// Get the value stored in the reserve space at the end of a data frame header. - /// + /// /// Note: The value is in format. /// /// the value stored in the reserve space at the end of a data frame header. @@ -124,7 +124,7 @@ public long ReservedValue() /// /// Write the provided value into the reserved space at the end of the data frame header. - /// + /// /// Note: The value will be written in format. /// /// to be stored in the reserve space at the end of a data frame header. @@ -135,10 +135,11 @@ public BufferClaim ReservedValue(long value) _buffer.PutLong(DataHeaderFlyweight.RESERVED_VALUE_OFFSET, value); return this; } - + /// - /// Put bytes into the claimed buffer space for a message. To write multiple parts then use - /// and . + /// Put bytes into the claimed buffer space for a message. To write multiple parts then use + /// + /// and . /// /// to copy into the claimed space. /// in the source buffer from which to copy. @@ -167,8 +168,12 @@ public void Abort() { var frameLength = _buffer.Capacity; - _buffer.PutShort(HeaderFlyweight.TYPE_FIELD_OFFSET, (short) HeaderFlyweight.HDR_TYPE_PAD, ByteOrder.LittleEndian); + _buffer.PutShort( + HeaderFlyweight.TYPE_FIELD_OFFSET, + (short)HeaderFlyweight.HDR_TYPE_PAD, + ByteOrder.LittleEndian + ); _buffer.PutIntRelease(HeaderFlyweight.FRAME_LENGTH_FIELD_OFFSET, frameLength); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/ControlledFragmentHandler.cs b/src/Adaptive.Aeron/LogBuffer/ControlledFragmentHandler.cs index e4195cf9..97402392 100644 --- a/src/Adaptive.Aeron/LogBuffer/ControlledFragmentHandler.cs +++ b/src/Adaptive.Aeron/LogBuffer/ControlledFragmentHandler.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,16 +19,21 @@ namespace Adaptive.Aeron.LogBuffer { /// - /// Handler for reading data that is coming from a log buffer. The frame will either contain a whole message - /// or a fragment of a message to be reassembled. Messages are fragmented if greater than the frame for MTU in length. + /// Handler for reading data that is coming from a log buffer. The frame will either contain a whole message or a + /// fragment of a message to be reassembled. Messages are fragmented if greater than the frame for MTU in length. /// - /// Within this callback reentrant calls to the client are not permitted and - /// will result in undefined behaviour. + /// Within this callback reentrant calls to the client are not permitted and will result in + /// undefined behaviour. /// /// containing the data. /// at which the data begins. /// of the data in bytes. /// representing the metadata for the data. /// The action to be taken with regard to the stream position after the callback. - public delegate ControlledFragmentHandlerAction ControlledFragmentHandler(IDirectBuffer buffer, int offset, int length, Header header); -} \ No newline at end of file + public delegate ControlledFragmentHandlerAction ControlledFragmentHandler( + IDirectBuffer buffer, + int offset, + int length, + Header header + ); +} diff --git a/src/Adaptive.Aeron/LogBuffer/ControlledFragmentHandlerAction.cs b/src/Adaptive.Aeron/LogBuffer/ControlledFragmentHandlerAction.cs index d30028ee..684ff3b0 100644 --- a/src/Adaptive.Aeron/LogBuffer/ControlledFragmentHandlerAction.cs +++ b/src/Adaptive.Aeron/LogBuffer/ControlledFragmentHandlerAction.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ namespace Adaptive.Aeron.LogBuffer { /// - /// Action to be taken on return from . + /// Action to be taken on return from . /// public enum ControlledFragmentHandlerAction { @@ -27,14 +27,14 @@ public enum ControlledFragmentHandlerAction ABORT, /// - /// Break from the current polling operation and commit the position as of the end of the current fragment - /// being handled. + /// Break from the current polling operation and commit the position as of the end of the current fragment being + /// handled. /// BREAK, /// - /// Continue processing but commit the position as of the end of the current fragment so that - /// flow control is applied to this point. + /// Continue processing but commit the position as of the end of the current fragment so that flow control is + /// applied to this point. /// COMMIT, @@ -44,4 +44,4 @@ public enum ControlledFragmentHandlerAction /// CONTINUE, } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/FragmentHandler.cs b/src/Adaptive.Aeron/LogBuffer/FragmentHandler.cs index 8e22368d..94540a8e 100644 --- a/src/Adaptive.Aeron/LogBuffer/FragmentHandler.cs +++ b/src/Adaptive.Aeron/LogBuffer/FragmentHandler.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,15 +19,15 @@ namespace Adaptive.Aeron.LogBuffer { /// - /// Handler for reading data that is coming from a log buffer. The frame will either contain a whole message - /// or a fragment of a message to be reassembled. Messages are fragmented if greater than the frame for MTU in length. + /// Handler for reading data that is coming from a log buffer. The frame will either contain a whole message or a + /// fragment of a message to be reassembled. Messages are fragmented if greater than the frame for MTU in length. /// - /// Within this callback reentrant calls to the client are not permitted and - /// will result in undefined behaviour. + /// Within this callback reentrant calls to the client are not permitted and will result in + /// undefined behaviour. /// /// containing the data. /// at which the data begins. /// of the data in bytes. /// representing the metadata for the data. public delegate void FragmentHandler(IDirectBuffer buffer, int offset, int length, Header header); -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/FrameDescriptor.cs b/src/Adaptive.Aeron/LogBuffer/FrameDescriptor.cs index 73bce380..24ec0bcc 100644 --- a/src/Adaptive.Aeron/LogBuffer/FrameDescriptor.cs +++ b/src/Adaptive.Aeron/LogBuffer/FrameDescriptor.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,10 +24,10 @@ namespace Adaptive.Aeron.LogBuffer { /// /// Description of the structure for message framing in a log buffer. - /// + /// /// All messages are logged in frames that have a minimum header layout as follows plus a reserve then /// the encoded message follows: - /// + ///
     ///   0                   1                   2                   3
     ///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     ///  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -43,15 +43,20 @@ namespace Adaptive.Aeron.LogBuffer
     ///  |                        Encoded Message                       ...
     /// ...                                                              |
     ///  +---------------------------------------------------------------+
-    /// 
+    /// 
/// The (B)egin and (E)nd flags are used for message fragmentation. R is for reserved bit. /// Both (B)egin and (E)nd flags are set for a message that does not span frames. ///
+ [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class FrameDescriptor { /// - /// Set a pragmatic maximum message length regardless of term length to encourage better design. - /// Messages larger than half the cache size should be broken up into chunks and streamed. + /// Set a pragmatic maximum message length regardless of term length to encourage better design. Messages larger + /// than half the cache size should be broken up into chunks and streamed. /// public const int MAX_MESSAGE_LENGTH = 16 * 1024 * 1024; @@ -104,7 +109,7 @@ public class FrameDescriptor /// Offset within a frame at which the session id field begins. ///
public const int SESSION_ID_OFFSET = DataHeaderFlyweight.SESSION_ID_FIELD_OFFSET; - + /// /// Padding frame type to indicate the message should be ignored. /// @@ -196,7 +201,7 @@ public static int SessionIdOffset(int termOffset) { return termOffset + SESSION_ID_OFFSET; } - + /// /// Read the type of the frame from header. /// @@ -257,7 +262,7 @@ public static int FrameLength(IAtomicBuffer buffer, int termOffset) { return buffer.GetInt(termOffset); } - + /// /// Get the term id of a frame from the header. /// @@ -320,7 +325,7 @@ public static void FrameLengthOrdered(IAtomicBuffer buffer, int termOffset, int [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void FrameType(IAtomicBuffer buffer, int termOffset, int type) { - buffer.PutShort(TypeOffset(termOffset), (short) type); + buffer.PutShort(TypeOffset(termOffset), (short)type); } /// @@ -357,7 +362,7 @@ public static void FrameTermId(UnsafeBuffer buffer, int termOffset, int termId) { buffer.PutInt(TermIdOffset(termOffset), termId); } - + /// /// Write the session id field for a frame. /// @@ -369,4 +374,4 @@ public static void FrameSessionId(UnsafeBuffer buffer, int termOffset, int sessi buffer.PutInt(SessionIdOffset(termOffset), sessionId, ByteOrder.LittleEndian); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/HandlerHelper.cs b/src/Adaptive.Aeron/LogBuffer/HandlerHelper.cs index 677e6ff6..7fff4c6b 100644 --- a/src/Adaptive.Aeron/LogBuffer/HandlerHelper.cs +++ b/src/Adaptive.Aeron/LogBuffer/HandlerHelper.cs @@ -1,5 +1,20 @@ -using Adaptive.Agrona; -using Adaptive.Agrona.Concurrent; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona; namespace Adaptive.Aeron.LogBuffer { @@ -19,7 +34,7 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head _delegate(buffer, offset, length, header); } } - + private class ControlledFragmentHandlerWrapper : IControlledFragmentHandler { private readonly ControlledFragmentHandler _delegate; @@ -29,12 +44,17 @@ public ControlledFragmentHandlerWrapper(ControlledFragmentHandler @delegate) _delegate = @delegate; } - public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, Header header) + public ControlledFragmentHandlerAction OnFragment( + IDirectBuffer buffer, + int offset, + int length, + Header header + ) { return _delegate(buffer, offset, length, header); } } - + private class BlockHandlerWrapper : IBlockHandler { private readonly BlockHandler _delegate; @@ -54,7 +74,7 @@ public static IFragmentHandler ToFragmentHandler(FragmentHandler @delegate) { return new FragmentHandlerWrapper(@delegate); } - + public static IControlledFragmentHandler ToControlledFragmentHandler(ControlledFragmentHandler @delegate) { return new ControlledFragmentHandlerWrapper(@delegate); @@ -65,4 +85,4 @@ public static IBlockHandler ToBlockHandler(BlockHandler @delegate) return new BlockHandlerWrapper(@delegate); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/Header.cs b/src/Adaptive.Aeron/LogBuffer/Header.cs index 48735c98..b3fec1ed 100644 --- a/src/Adaptive.Aeron/LogBuffer/Header.cs +++ b/src/Adaptive.Aeron/LogBuffer/Header.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,7 +35,8 @@ public class Header /// this stream started at. /// for calculating positions. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public Header(int initialTermId, int positionBitsToShift) : this(initialTermId, positionBitsToShift, null) + public Header(int initialTermId, int positionBitsToShift) + : this(initialTermId, positionBitsToShift, null) { } @@ -56,7 +57,8 @@ public Header(int initialTermId, int positionBitsToShift, Object context) /// /// Context for storing state related to the context of the callback where the header is used. /// - /// context for storing state related to the context of the callback where the header is used. + /// context for storing state related to the context of the callback where the header is + /// used. public object Context { get; set; } /// @@ -67,8 +69,7 @@ public long Position { get { - return LogBufferDescriptor.ComputePosition(TermId, NextTermOffset, PositionBitsToShift, - InitialTermId); + return LogBufferDescriptor.ComputePosition(TermId, NextTermOffset, PositionBitsToShift, InitialTermId); } } @@ -139,7 +140,8 @@ public IDirectBuffer Buffer /// The offset in the term at which the frame begins. /// /// the offset in the term at which the frame begins. - public int TermOffset => Buffer.GetInt(Offset + DataHeaderFlyweight.TERM_OFFSET_FIELD_OFFSET, ByteOrder.LittleEndian); + public int TermOffset => + Buffer.GetInt(Offset + DataHeaderFlyweight.TERM_OFFSET_FIELD_OFFSET, ByteOrder.LittleEndian); /// /// Calculates the offset of the frame immediately after this one. @@ -148,14 +150,16 @@ public IDirectBuffer Buffer public int NextTermOffset => BitUtil.Align(TermOffset + TermOccupancyLength, FrameDescriptor.FRAME_ALIGNMENT); /// - /// The type of the frame which should always be . + /// The type of the frame which should always be . /// - /// type of the frame which should always be . + /// type of the frame which should always be . + /// public int Type => Buffer.GetShort(Offset + HeaderFlyweight.TYPE_FIELD_OFFSET) & 0xFFFF; /// - /// The flags for this frame. Valid flags are - /// and . A convenience flag + /// The flags for this frame. Valid flags are and + /// . A convenience flag + /// /// can be used for both flags. /// /// the flags for this frame. @@ -165,7 +169,7 @@ public IDirectBuffer Buffer /// Get the value stored in the reserve space at the end of a data frame header. /// /// Note: The value is in format. - /// + /// /// /// /// the value stored in the reserve space at the end of a data frame header. @@ -174,11 +178,12 @@ public IDirectBuffer Buffer /// /// Total amount of space occupied by this message when it is within the term buffer. When fragmented this will - /// include the length of the header for each fragment. Used when doing reassembly of fragmented packets. If - /// the packet is not fragmented this will be . + /// include the length of the header for each fragment. Used when doing reassembly of fragmented packets. If the + /// packet is not fragmented this will be . /// /// total fragmented length of the message. - /// total fragmented length of this message or Aeron.NULL_VALUE if not fragmented. + /// total fragmented length of this message or Aeron.NULL_VALUE if not fragmented. + /// public int FragmentedFrameLength { get => _fragmentedFrameLength; @@ -188,4 +193,4 @@ public int FragmentedFrameLength private int TermOccupancyLength => Aeron.NULL_VALUE == _fragmentedFrameLength ? FrameLength : _fragmentedFrameLength; } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/HeaderWriter.cs b/src/Adaptive.Aeron/LogBuffer/HeaderWriter.cs index 113786fd..e3fcd61c 100644 --- a/src/Adaptive.Aeron/LogBuffer/HeaderWriter.cs +++ b/src/Adaptive.Aeron/LogBuffer/HeaderWriter.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,8 +25,8 @@ namespace Adaptive.Aeron.LogBuffer /// /// Utility for applying a header to a message in a term buffer. /// - /// This class is designed to be thread safe to be used across multiple producers and makes the header - /// visible in the correct order for consumers. + /// This class is designed to be thread safe to be used across multiple producers and makes the header visible in + /// the correct order for consumers. /// public class HeaderWriter { @@ -65,7 +65,8 @@ public static HeaderWriter NewInstance(UnsafeBuffer defaultHeader) } /// - /// Write a header to the term buffer in format using the minimum instructions. + /// Write a header to the term buffer in format using the minimum + /// instructions. /// /// to be written to. /// at which the header should be written. @@ -86,13 +87,13 @@ public virtual void Write(UnsafeBuffer termBuffer, int offset, int length, int t } /// - /// Header writer for big-endian native byte order. On a big-endian host, byte-reverses the - /// length, term offset, and term id values so the resulting wire bytes remain little-endian - /// (the Aeron protocol's wire format is always little-endian). + /// Header writer for big-endian native byte order. On a big-endian host, byte-reverses the length, term offset, and + /// term id values so the resulting wire bytes remain little-endian (the Aeron protocol's wire format is always + /// little-endian). /// - /// Selected by when - /// is false. .NET currently runs only on little-endian platforms, but BE platforms have - /// existed historically (e.g. PowerPC, MIPS) and may again. + /// Selected by when is false. .NET + /// currently runs only on little-endian platforms, but BE platforms have existed historically (e.g. PowerPC, MIPS) + /// and may again. /// internal sealed class NativeBigEndianHeaderWriter : HeaderWriter { @@ -100,7 +101,8 @@ public NativeBigEndianHeaderWriter(UnsafeBuffer defaultHeader) : base( defaultHeader.GetInt(HeaderFlyweight.VERSION_FIELD_OFFSET) & 0xFFFFFFFFL, defaultHeader.GetInt(DataHeaderFlyweight.SESSION_ID_FIELD_OFFSET) & 0xFFFFFFFFL, - (long)defaultHeader.GetInt(DataHeaderFlyweight.STREAM_ID_FIELD_OFFSET) << 32) + (long)defaultHeader.GetInt(DataHeaderFlyweight.STREAM_ID_FIELD_OFFSET) << 32 + ) { } @@ -109,24 +111,29 @@ public override void Write(UnsafeBuffer termBuffer, int offset, int length, int { termBuffer.PutLongOrdered( offset + HeaderFlyweight.FRAME_LENGTH_FIELD_OFFSET, - ((long)ReverseBytes(-length) << 32) | _versionFlagsType); + ((long)ReverseBytes(-length) << 32) | _versionFlagsType + ); termBuffer.PutLongOrdered( offset + DataHeaderFlyweight.TERM_OFFSET_FIELD_OFFSET, - ((long)ReverseBytes(offset) << 32) | _sessionId); + ((long)ReverseBytes(offset) << 32) | _sessionId + ); termBuffer.PutLong( offset + DataHeaderFlyweight.STREAM_ID_FIELD_OFFSET, - _streamId | (ReverseBytes(termId) & 0xFFFFFFFFL)); + _streamId | (ReverseBytes(termId) & 0xFFFFFFFFL) + ); } [MethodImpl(MethodImplOptions.AggressiveInlining)] private static int ReverseBytes(int value) { - return (int)(((uint)value & 0x000000FFU) << 24 + return (int)( + ((uint)value & 0x000000FFU) << 24 | ((uint)value & 0x0000FF00U) << 8 | ((uint)value & 0x00FF0000U) >> 8 - | ((uint)value & 0xFF000000U) >> 24); + | ((uint)value & 0xFF000000U) >> 24 + ); } } } diff --git a/src/Adaptive.Aeron/LogBuffer/IBlockHandler.cs b/src/Adaptive.Aeron/LogBuffer/IBlockHandler.cs index fab3be32..976b2918 100644 --- a/src/Adaptive.Aeron/LogBuffer/IBlockHandler.cs +++ b/src/Adaptive.Aeron/LogBuffer/IBlockHandler.cs @@ -1,4 +1,20 @@ -using Adaptive.Agrona; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona; namespace Adaptive.Aeron.LogBuffer { @@ -15,4 +31,4 @@ public interface IBlockHandler /// of the stream containing this block of message fragments. void OnBlock(IDirectBuffer buffer, int offset, int length, int sessionId, int termId); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/IControlledFragmentHandler.cs b/src/Adaptive.Aeron/LogBuffer/IControlledFragmentHandler.cs index 221cec4f..1c411cb6 100644 --- a/src/Adaptive.Aeron/LogBuffer/IControlledFragmentHandler.cs +++ b/src/Adaptive.Aeron/LogBuffer/IControlledFragmentHandler.cs @@ -1,16 +1,33 @@ -using Adaptive.Agrona; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona; namespace Adaptive.Aeron.LogBuffer { public interface IControlledFragmentHandler { /// - /// Handler for reading data that is coming from a log buffer. The frame will either contain a whole message - /// or a fragment of a message to be reassembled. Messages are fragmented if greater than the frame for MTU in length. + /// Handler for reading data that is coming from a log buffer. The frame will either contain a whole message or + /// a fragment of a message to be reassembled. Messages are fragmented if greater than the frame for MTU in + /// length. + /// + /// Within this callback reentrant calls to the client are not permitted and will result in + /// undefined behaviour. /// - /// Within this callback reentrant calls to the client are not permitted and - /// will result in undefined behaviour. - /// /// /// containing the data. /// at which the data begins. @@ -19,4 +36,4 @@ public interface IControlledFragmentHandler /// The action to be taken with regard to the stream position after the callback. ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, Header header); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/IFragmentHandler.cs b/src/Adaptive.Aeron/LogBuffer/IFragmentHandler.cs index aa70b012..f4173bac 100644 --- a/src/Adaptive.Aeron/LogBuffer/IFragmentHandler.cs +++ b/src/Adaptive.Aeron/LogBuffer/IFragmentHandler.cs @@ -1,15 +1,32 @@ -using Adaptive.Agrona; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona; namespace Adaptive.Aeron.LogBuffer { public interface IFragmentHandler { /// - /// Handler for reading data that is coming from a log buffer. The frame will either contain a whole message - /// or a fragment of a message to be reassembled. Messages are fragmented if greater than the frame for MTU in length. + /// Handler for reading data that is coming from a log buffer. The frame will either contain a whole message or + /// a fragment of a message to be reassembled. Messages are fragmented if greater than the frame for MTU in + /// length. /// - /// Within this callback reentrant calls to the client are not permitted and - /// will result in undefined behaviour. + /// Within this callback reentrant calls to the client are not permitted and will result in + /// undefined behaviour. /// /// containing the data. /// at which the data begins. @@ -17,4 +34,4 @@ public interface IFragmentHandler /// representing the meta data for the data. void OnFragment(IDirectBuffer buffer, int offset, int length, Header header); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/LogBufferDescriptor.cs b/src/Adaptive.Aeron/LogBuffer/LogBufferDescriptor.cs index 924c43b7..08615ac6 100644 --- a/src/Adaptive.Aeron/LogBuffer/LogBufferDescriptor.cs +++ b/src/Adaptive.Aeron/LogBuffer/LogBufferDescriptor.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,8 +26,8 @@ namespace Adaptive.Aeron.LogBuffer { /// - /// Layout description for log buffers which contains partitions of terms with associated term metadata, - /// plus ending with overall log metadata. + /// Layout description for log buffers which contains partitions of terms with associated term metadata, plus ending + /// with overall log metadata. ///
     ///         +----------------------------+
     ///         |           Term 0           |
@@ -40,37 +40,42 @@ namespace Adaptive.Aeron.LogBuffer
     ///         +----------------------------+
     ///     
///
+ [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class LogBufferDescriptor { - private const int PADDING_SIZE = 64; + private const int PaddingSize = 64; /// - /// The number of partitions the log is divided into terms and a metadata buffer. + /// The number of partitions the log is divided into terms and a metadata buffer. /// public const int PARTITION_COUNT = 3; /// - /// Minimum buffer length for a log term. + /// Minimum buffer length for a log term. /// public const int TERM_MIN_LENGTH = 64 * 1024; /// - /// Maximum buffer length for a log term. + /// Maximum buffer length for a log term. /// public const int TERM_MAX_LENGTH = 1024 * 1024 * 1024; /// - /// Minimum page size. + /// Minimum page size. /// public const int PAGE_MIN_SIZE = 4 * 1024; /// - /// Maximum page size. + /// Maximum page size. /// public const int PAGE_MAX_SIZE = 1024 * 1024 * 1024; /// - /// Section index for which buffer contains the log metadata. + /// Section index for which buffer contains the log metadata. /// public static readonly int LOG_META_DATA_SECTION_INDEX = PARTITION_COUNT; @@ -79,69 +84,69 @@ public class LogBufferDescriptor // ******************************* /// - /// Offset within the metadata where the tail values are stored. + /// Offset within the metadata where the tail values are stored. /// public static readonly int TERM_TAIL_COUNTERS_OFFSET; /// - /// Offset within the log metadata where the active partition index is stored. + /// Offset within the log metadata where the active partition index is stored. /// public static readonly int LOG_ACTIVE_TERM_COUNT_OFFSET; /// - /// Offset within the log metadata where the position of the End of Stream is stored. + /// Offset within the log metadata where the position of the End of Stream is stored. /// public static readonly int LOG_END_OF_STREAM_POSITION_OFFSET; /// - /// Offset within the log metadata where whether the log is connected or not is stored. + /// Offset within the log metadata where whether the log is connected or not is stored. /// public static readonly int LOG_IS_CONNECTED_OFFSET; /// - /// Offset within the log metadata where the count of active transports is stored. + /// Offset within the log metadata where the count of active transports is stored. /// public static readonly int LOG_ACTIVE_TRANSPORT_COUNT; /// - /// Offset within the log metadata where the active term id is stored. + /// Offset within the log metadata where the active term id is stored. /// public static readonly int LOG_INITIAL_TERM_ID_OFFSET; /// - /// Offset within the log metadata which the length field for the frame header is stored. + /// Offset within the log metadata which the length field for the frame header is stored. /// public static readonly int LOG_DEFAULT_FRAME_HEADER_LENGTH_OFFSET; /// - /// Offset within the log metadata which the MTU length is stored. + /// Offset within the log metadata which the MTU length is stored. /// public static readonly int LOG_MTU_LENGTH_OFFSET; /// - /// Offset within the log metadata which the correlation id is stored. + /// Offset within the log metadata which the correlation id is stored. /// public static readonly int LOG_CORRELATION_ID_OFFSET; /// - /// Offset within the log metadata which the term length is stored. + /// Offset within the log metadata which the term length is stored. /// public static readonly int LOG_TERM_LENGTH_OFFSET; /// - /// Offset within the log metadata which the page size is stored. + /// Offset within the log metadata which the page size is stored. /// public static readonly int LOG_PAGE_SIZE_OFFSET; /// - /// Offset at which the default frame headers begin. + /// Offset at which the default frame headers begin. /// public static readonly int LOG_DEFAULT_FRAME_HEADER_OFFSET; /// - /// Maximum length of a frame header + /// Maximum length of a frame header /// - public static readonly int LOG_DEFAULT_FRAME_HEADER_MAX_LENGTH = PADDING_SIZE * 2; + public static readonly int LOG_DEFAULT_FRAME_HEADER_MAX_LENGTH = PaddingSize * 2; /** * Offset within the log metadata where the sparse property is stored. @@ -365,7 +370,7 @@ public class LogBufferDescriptor /// | Untethered Linger Timeout (ns) | /// | | /// +---------------------------------------------------------------+ - /// + /// ///
///
public static readonly int LOG_META_DATA_LENGTH; @@ -375,11 +380,11 @@ static LogBufferDescriptor() TERM_TAIL_COUNTERS_OFFSET = 0; LOG_ACTIVE_TERM_COUNT_OFFSET = TERM_TAIL_COUNTERS_OFFSET + (SIZE_OF_LONG * PARTITION_COUNT); - LOG_END_OF_STREAM_POSITION_OFFSET = PADDING_SIZE * 2; + LOG_END_OF_STREAM_POSITION_OFFSET = PaddingSize * 2; LOG_IS_CONNECTED_OFFSET = LOG_END_OF_STREAM_POSITION_OFFSET + SIZE_OF_LONG; LOG_ACTIVE_TRANSPORT_COUNT = LOG_IS_CONNECTED_OFFSET + SIZE_OF_INT; - LOG_CORRELATION_ID_OFFSET = PADDING_SIZE * 4; + LOG_CORRELATION_ID_OFFSET = PaddingSize * 4; LOG_INITIAL_TERM_ID_OFFSET = LOG_CORRELATION_ID_OFFSET + SIZE_OF_LONG; LOG_DEFAULT_FRAME_HEADER_LENGTH_OFFSET = LOG_INITIAL_TERM_ID_OFFSET + SIZE_OF_INT; LOG_MTU_LENGTH_OFFSET = LOG_DEFAULT_FRAME_HEADER_LENGTH_OFFSET + SIZE_OF_INT; @@ -396,13 +401,12 @@ static LogBufferDescriptor() LOG_OS_MAX_SOCKET_RCVBUF_LENGTH_OFFSET = LOG_OS_DEFAULT_SOCKET_RCVBUF_LENGTH_OFFSET + SIZE_OF_INT; LOG_MAX_RESEND_OFFSET = LOG_OS_MAX_SOCKET_RCVBUF_LENGTH_OFFSET + SIZE_OF_INT; - LOG_DEFAULT_FRAME_HEADER_OFFSET = PADDING_SIZE * 5; + LOG_DEFAULT_FRAME_HEADER_OFFSET = PaddingSize * 5; LOG_ENTITY_TAG_OFFSET = LOG_DEFAULT_FRAME_HEADER_OFFSET + LOG_DEFAULT_FRAME_HEADER_MAX_LENGTH; LOG_RESPONSE_CORRELATION_ID_OFFSET = LOG_ENTITY_TAG_OFFSET + SIZE_OF_LONG; LOG_LINGER_TIMEOUT_NS_OFFSET = LOG_RESPONSE_CORRELATION_ID_OFFSET + SIZE_OF_LONG; LOG_UNTETHERED_WINDOW_LIMIT_TIMEOUT_NS_OFFSET = LOG_LINGER_TIMEOUT_NS_OFFSET + SIZE_OF_LONG; - LOG_UNTETHERED_RESTING_TIMEOUT_NS_OFFSET = - LOG_UNTETHERED_WINDOW_LIMIT_TIMEOUT_NS_OFFSET + SIZE_OF_LONG; + LOG_UNTETHERED_RESTING_TIMEOUT_NS_OFFSET = LOG_UNTETHERED_WINDOW_LIMIT_TIMEOUT_NS_OFFSET + SIZE_OF_LONG; LOG_GROUP_OFFSET = LOG_UNTETHERED_RESTING_TIMEOUT_NS_OFFSET + SIZE_OF_LONG; LOG_IS_RESPONSE_OFFSET = LOG_GROUP_OFFSET + SIZE_OF_BYTE; LOG_REJOIN_OFFSET = LOG_IS_RESPONSE_OFFSET + SIZE_OF_BYTE; @@ -418,7 +422,7 @@ static LogBufferDescriptor() } /// - /// Check that term length is valid and alignment is valid. + /// Check that term length is valid and alignment is valid. /// /// to be checked. /// if the length is not as expected. @@ -426,38 +430,54 @@ static LogBufferDescriptor() public static void CheckTermLength(int termLength) { if (termLength < TERM_MIN_LENGTH) + { ThrowHelper.ThrowInvalidOperationException( - $"Term length less than min length of {TERM_MIN_LENGTH:D}, length={termLength:D}"); + $"Term length less than min length of {TERM_MIN_LENGTH:D}, length={termLength:D}" + ); + } if (termLength > TERM_MAX_LENGTH) + { ThrowHelper.ThrowInvalidOperationException( - $"Term length more than max length of {TERM_MAX_LENGTH:D}: length={termLength:D}"); + $"Term length more than max length of {TERM_MAX_LENGTH:D}: length={termLength:D}" + ); + } if (!IsPowerOfTwo(termLength)) + { ThrowHelper.ThrowInvalidOperationException("Term length not a power of 2: length=" + termLength); + } } /// - /// Check that page size is valid and alignment is valid. + /// Check that page size is valid and alignment is valid. /// /// to be checked. /// if the size is not as expected. public static void CheckPageSize(int pageSize) { if (pageSize < PAGE_MIN_SIZE) + { ThrowHelper.ThrowInvalidOperationException( - $"Page size less than min size of {PAGE_MIN_SIZE}: page size={pageSize}"); + $"Page size less than min size of {PAGE_MIN_SIZE}: page size={pageSize}" + ); + } if (pageSize > PAGE_MAX_SIZE) + { ThrowHelper.ThrowInvalidOperationException( - $"Page size more than max size of {PAGE_MAX_SIZE}: page size={pageSize}"); + $"Page size more than max size of {PAGE_MAX_SIZE}: page size={pageSize}" + ); + } if (!IsPowerOfTwo(pageSize)) + { ThrowHelper.ThrowInvalidOperationException($"Page size not a power of 2: page size={pageSize}"); + } } /// - /// Get the value of the initial Term id used for this log. + /// Get the value of the initial Term id used for this log. /// /// containing the metadata. /// the value of the initial Term id used for this log. @@ -468,8 +488,8 @@ public static int InitialTermId(UnsafeBuffer metaDataBuffer) } /// - /// Set the initial term at which this log begins. Initial should be randomised so that stream does not get - /// reused accidentally. + /// Set the initial term at which this log begins. Initial should be randomised so that stream does not get + /// reused accidentally. /// /// containing the metadata. /// value to be set. @@ -480,7 +500,7 @@ public static void InitialTermId(UnsafeBuffer metaDataBuffer, int initialTermId) } /// - /// Get the value of the MTU length used for this log. + /// Get the value of the MTU length used for this log. /// /// containing the metadata. /// the value of the MTU length used for this log. @@ -491,7 +511,7 @@ public static int MtuLength(UnsafeBuffer metaDataBuffer) } /// - /// Set the MTU length used for this log. + /// Set the MTU length used for this log. /// /// containing the metadata. /// value to be set. @@ -502,7 +522,7 @@ public static void MtuLength(UnsafeBuffer metaDataBuffer, int mtuLength) } /// - /// Get the value of the Term Length used for this log. + /// Get the value of the Term Length used for this log. /// /// containing the metadata. /// the value of the term length used for this log. @@ -512,7 +532,7 @@ public static int TermLength(UnsafeBuffer metaDataBuffer) } /// - /// Set the term length used for this log. + /// Set the term length used for this log. /// /// containing the metadata. /// value to be set. @@ -522,7 +542,7 @@ public static void TermLength(UnsafeBuffer metaDataBuffer, int termLength) } /// - /// Get the value of the page size used for this log. + /// Get the value of the page size used for this log. /// /// containing the metadata. /// the value of the page size used for this log. @@ -532,7 +552,7 @@ public static int PageSize(UnsafeBuffer metaDataBuffer) } /// - /// Set the page size used for this log. + /// Set the page size used for this log. /// /// containing the metadata. /// value to be set. @@ -542,7 +562,7 @@ public static void PageSize(UnsafeBuffer metaDataBuffer, int pageSize) } /// - /// Get the value of the correlation ID for this log relating to the command which created it. + /// Get the value of the correlation ID for this log relating to the command which created it. /// /// containing the metadata. /// the value of the correlation ID used for this log. @@ -553,7 +573,7 @@ public static long CorrelationId(UnsafeBuffer metaDataBuffer) } /// - /// Set the correlation ID used for this log relating to the command which created it. + /// Set the correlation ID used for this log relating to the command which created it. /// /// containing the metadata. /// value to be set. @@ -564,7 +584,7 @@ public static void CorrelationId(UnsafeBuffer metaDataBuffer, long id) } /// - /// Get whether the log is considered connected or not by the driver. + /// Get whether the log is considered connected or not by the driver. /// /// containing the metadata. /// whether the log is considered connected or not by the driver. @@ -574,7 +594,7 @@ public static bool IsConnected(UnsafeBuffer metaDataBuffer) } /// - /// Set whether the log is considered connected or not by the driver. + /// Set whether the log is considered connected or not by the driver. /// /// containing the metadata. /// or not. @@ -584,7 +604,7 @@ public static void IsConnected(UnsafeBuffer metaDataBuffer, bool isConnected) } /// - /// Get the count of active transports for the Image. + /// Get the count of active transports for the Image. /// /// containing the meta data. /// count of active transports. @@ -594,7 +614,7 @@ public static int ActiveTransportCount(UnsafeBuffer metadataBuffer) } /// - /// Set the number of active transports for the Image. + /// Set the number of active transports for the Image. /// /// containing the meta data. /// value to be set. @@ -604,7 +624,7 @@ public static void ActiveTransportCount(UnsafeBuffer metadataBuffer, int numberO } /// - /// Get the value of the end of stream position. + /// Get the value of the end of stream position. /// /// containing the metadata. /// the value of end of stream position @@ -614,7 +634,7 @@ public static long EndOfStreamPosition(UnsafeBuffer metaDataBuffer) } /// - /// Set the value of the end of stream position. + /// Set the value of the end of stream position. /// /// containing the metadata. /// value of the end of stream position. @@ -624,8 +644,8 @@ public static void EndOfStreamPosition(UnsafeBuffer metaDataBuffer, long positio } /// - /// Get the value of the active term count used by the producer of this log. Consumers may have a different - /// active term count if they are running behind. The read is done with volatile semantics. + /// Get the value of the active term count used by the producer of this log. Consumers may have a different + /// active term count if they are running behind. The read is done with volatile semantics. /// /// containing the metadata. /// the value of the active term count used by the producer of this log. @@ -635,7 +655,7 @@ public static int ActiveTermCount(UnsafeBuffer metaDataBuffer) } /// - /// Set the value of the current active term count for the producer using memory release semantics. + /// Set the value of the current active term count for the producer using memory release semantics. /// /// containing the metadata. /// value of the active term count used by the producer of this log. @@ -645,7 +665,7 @@ public static void ActiveTermCountOrdered(UnsafeBuffer metaDataBuffer, int termC } /// - /// Compare and set the value of the current active term count. + /// Compare and set the value of the current active term count. /// /// containing the metadata. /// value of the active term count expected in the log. @@ -657,7 +677,7 @@ public static bool CasActiveTermCount(UnsafeBuffer metaDataBuffer, int expectedT } /// - /// Set the value of the current active partition index for the producer. + /// Set the value of the current active partition index for the producer. /// /// containing the metadata. /// value of the active term count used by the producer of this log. @@ -667,7 +687,7 @@ public static void ActiveTermCount(UnsafeBuffer metaDataBuffer, int termCount) } /// - /// Rotate to the next partition in sequence for the term id. + /// Rotate to the next partition in sequence for the term id. /// /// partition index. /// the next partition index. @@ -678,7 +698,7 @@ public static int NextPartitionIndex(int currentIndex) } /// - /// Determine the partition index to be used given the initial term and active term ids. + /// Determine the partition index to be used given the initial term and active term ids. /// /// at which the log buffer usage began. /// that is in current usage. @@ -690,7 +710,7 @@ public static int IndexByTerm(int initialTermId, int activeTermId) } /// - /// Determine the partition index based on number of terms that have passed. + /// Determine the partition index based on number of terms that have passed. /// /// for the number of terms that have passed. /// the partition index for the term count. @@ -701,7 +721,7 @@ public static int IndexByTermCount(long termCount) } /// - /// Determine the partition index given a stream position. + /// Determine the partition index given a stream position. /// /// in the stream in bytes. /// number of times to left shift to multiply by term length. @@ -713,11 +733,12 @@ public static int IndexByPosition(long position, int positionBitsToShift) } /// - /// Compute the current position in absolute number of bytes. + /// Compute the current position in absolute number of bytes. /// /// active term id. /// in the term. - /// number of times to left shift the term count to multiply by term length. + /// number of times to left shift the term count to multiply by term length. + /// /// the initial term id that this stream started on. /// the absolute position in bytes. [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -729,10 +750,11 @@ public static long ComputePosition(int activeTermId, int termOffset, int positio } /// - /// Compute the current position in absolute number of bytes for the beginning of a term. + /// Compute the current position in absolute number of bytes for the beginning of a term. /// /// active term id. - /// number of times to left shift the term count to multiply by term length. + /// number of times to left shift the term count to multiply by term length. + /// /// the initial term id that this stream started on. /// the absolute position in bytes. [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -744,10 +766,11 @@ public static long ComputeTermBeginPosition(int activeTermId, int positionBitsTo } /// - /// Compute the term id from a position. + /// Compute the term id from a position. /// /// to calculate from - /// number of times to left shift the position to multiply by term length. + /// number of times to left shift the position to multiply by term length. + /// /// the initial term id that this stream started on. /// the term id according to the position. [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -757,8 +780,8 @@ public static int ComputeTermIdFromPosition(long position, int positionBitsToShi } /// - /// Compute the total length of a log file given the term length. - /// Assumes is 1 GB and that filePageSize is 1 GB or less and a power of 2. + /// Compute the total length of a log file given the term length. Assumes is 1 GB + /// and that filePageSize is 1 GB or less and a power of 2. /// /// on which to base the calculation. /// to use for log. @@ -768,14 +791,13 @@ public static long ComputeLogLength(int termLength, int filePageSize) return Align((PARTITION_COUNT * (long)termLength) + LOG_META_DATA_LENGTH, filePageSize); } - /// - /// Store the default frame header to the log metadata buffer. + /// Store the default frame header to the log metadata buffer. /// /// into which the default headers should be stored. /// to be stored. /// - /// if the defaultHeader is larger than + /// if the defaultHeader is larger than /// . /// [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -784,29 +806,28 @@ public static void StoreDefaultFrameHeader(UnsafeBuffer metaDataBuffer, IDirectB if (defaultHeader.Capacity != HEADER_LENGTH) { ThrowHelper.ThrowArgumentException( - $"Default header length not equal to HEADER_LENGTH: length={defaultHeader.Capacity:D}"); + $"Default header length not equal to HEADER_LENGTH: length={defaultHeader.Capacity:D}" + ); return; } metaDataBuffer.PutInt(LOG_DEFAULT_FRAME_HEADER_LENGTH_OFFSET, HEADER_LENGTH); - metaDataBuffer.PutBytes(LOG_DEFAULT_FRAME_HEADER_OFFSET, defaultHeader, 0, - HEADER_LENGTH); + metaDataBuffer.PutBytes(LOG_DEFAULT_FRAME_HEADER_OFFSET, defaultHeader, 0, HEADER_LENGTH); } /// - /// Get a wrapper around the default frame header from the log metadata. + /// Get a wrapper around the default frame header from the log metadata. /// /// containing the raw bytes for the default frame header. /// a buffer wrapping the raw bytes. [MethodImpl(MethodImplOptions.AggressiveInlining)] public static UnsafeBuffer DefaultFrameHeader(UnsafeBuffer metaDataBuffer) { - return new UnsafeBuffer(metaDataBuffer, LOG_DEFAULT_FRAME_HEADER_OFFSET, - HEADER_LENGTH); + return new UnsafeBuffer(metaDataBuffer, LOG_DEFAULT_FRAME_HEADER_OFFSET, HEADER_LENGTH); } /// - /// Apply the default header for a message in a term. + /// Apply the default header for a message in a term. /// /// containing the default headers. /// to which the default header should be applied. @@ -814,13 +835,11 @@ public static UnsafeBuffer DefaultFrameHeader(UnsafeBuffer metaDataBuffer) [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void ApplyDefaultHeader(UnsafeBuffer metaDataBuffer, UnsafeBuffer termBuffer, int termOffset) { - termBuffer.PutBytes(termOffset, metaDataBuffer, LOG_DEFAULT_FRAME_HEADER_OFFSET, - HEADER_LENGTH); + termBuffer.PutBytes(termOffset, metaDataBuffer, LOG_DEFAULT_FRAME_HEADER_OFFSET, HEADER_LENGTH); } /// - /// Rotate the log and update the tail counter for the new term. - /// This method is safe for concurrent use. + /// Rotate the log and update the tail counter for the new term. This method is safe for concurrent use. /// /// for the metadata. /// from which to rotate. @@ -837,14 +856,17 @@ public static bool RotateLog(UnsafeBuffer metaDataBuffer, int currentTermCount, do { rawTail = RawTailVolatile(metaDataBuffer, nextIndex); - if (expectedTermId != TermId(rawTail)) break; + if (expectedTermId != TermId(rawTail)) + { + break; + } } while (!CasRawTail(metaDataBuffer, nextIndex, rawTail, PackTail(nextTermId, 0))); return CasActiveTermCount(metaDataBuffer, currentTermCount, nextTermCount); } /// - /// Set the initial value for the termId in the upper bits of the tail counter. + /// Set the initial value for the termId in the upper bits of the tail counter. /// /// contain the tail counter. /// to be intialized. @@ -856,7 +878,7 @@ public static void InitialiseTailWithTermId(UnsafeBuffer logMetaData, int partit } /// - /// Get the termId from a packed raw tail value. + /// Get the termId from a packed raw tail value. /// /// containing the termId. /// the termId from a packed raw tail value. @@ -867,7 +889,7 @@ public static int TermId(long rawTail) } /// - /// Read the termOffset from a packed raw tail value. + /// Read the termOffset from a packed raw tail value. /// /// containing the termOffset. /// that the offset cannot exceed. @@ -881,7 +903,7 @@ public static int TermOffset(long rawTail, long termLength) } /// - /// The termOffset as a result of the append operation. + /// The termOffset as a result of the append operation. /// /// into which the termOffset value has been packed. /// the termOffset after the append operation. @@ -892,7 +914,7 @@ public static int TermOffset(long result) } /// - /// Pack a termId and termOffset into a raw tail value. + /// Pack a termId and termOffset into a raw tail value. /// /// to be packed. /// to be packed. @@ -906,7 +928,7 @@ public static long PackTail(int termId, int termOffset) } /// - /// Set the raw value of the tail for the given partition. + /// Set the raw value of the tail for the given partition. /// /// containing the tail counters. /// for the tail counter. @@ -917,7 +939,7 @@ public static void RawTail(UnsafeBuffer metaDataBuffer, int partitionIndex, long } /// - /// Get the raw value of the tail for the given partition. + /// Get the raw value of the tail for the given partition. /// /// containing the tail counters. /// for the tail counter. @@ -927,21 +949,19 @@ public static long RawTail(UnsafeBuffer metaDataBuffer, int partitionIndex) return metaDataBuffer.GetLong(TERM_TAIL_COUNTERS_OFFSET + SIZE_OF_LONG * partitionIndex); } - /// - /// Set the raw value of the tail for the given partition. + /// Set the raw value of the tail for the given partition. /// /// containing the tail counters. /// for the tail counter. /// to be stored. public static void RawTailVolatile(UnsafeBuffer metaDataBuffer, int partitionIndex, long rawTail) { - metaDataBuffer.PutLongVolatile(TERM_TAIL_COUNTERS_OFFSET + SIZE_OF_LONG * partitionIndex, - rawTail); + metaDataBuffer.PutLongVolatile(TERM_TAIL_COUNTERS_OFFSET + SIZE_OF_LONG * partitionIndex, rawTail); } /// - /// Get the raw value of the tail for the given partition. + /// Get the raw value of the tail for the given partition. /// /// containing the tail counters. /// for the tail counter. @@ -953,7 +973,7 @@ public static long RawTailVolatile(UnsafeBuffer metaDataBuffer, int partitionInd } /// - /// Get the raw value of the tail for the current active partition. + /// Get the raw value of the tail for the current active partition. /// /// metaDataBuffer containing the tail counters. /// the raw value of the tail for the current active partition. @@ -965,22 +985,26 @@ public static long RawTailVolatile(UnsafeBuffer metaDataBuffer) } /// - /// Compare and set the raw value of the tail for the given partition. + /// Compare and set the raw value of the tail for the given partition. /// /// containing the tail counters. /// for the tail counter. /// expected current value. /// to be applied. /// true if the update was successful otherwise false. - public static bool CasRawTail(UnsafeBuffer metaDataBuffer, int partitionIndex, long expectedRawTail, - long updateRawTail) + public static bool CasRawTail( + UnsafeBuffer metaDataBuffer, + int partitionIndex, + long expectedRawTail, + long updateRawTail + ) { var index = TERM_TAIL_COUNTERS_OFFSET + SIZE_OF_LONG * partitionIndex; return metaDataBuffer.CompareAndSetLong(index, expectedRawTail, updateRawTail); } /// - /// Get the number of bits to shift when dividing or multiplying by the term buffer length. + /// Get the number of bits to shift when dividing or multiplying by the term buffer length. /// /// to compute the number of bits to shift for. /// the number of bits to shift to divide or multiply by the term buffer length. @@ -1052,7 +1076,6 @@ public static int ComputeFragmentedFrameLength(int length, int maxPayloadSize) return (numMaxPayloads * (maxPayloadSize + HEADER_LENGTH)) + lastFrameLength; } - /// /// Compute frame length for a message that has been reassembled from chunks of {@code maxPayloadSize}. /// @@ -1167,7 +1190,6 @@ public static void IsResponse(UnsafeBuffer metadataBuffer, bool value) metadataBuffer.PutByte(LOG_IS_RESPONSE_OFFSET, (byte)(value ? 1 : 0)); } - /// /// Get whether the log is rejoining from the metadata. /// @@ -1259,7 +1281,8 @@ public static int OsMaxSocketRcvbufLength(UnsafeBuffer metadataBuffer) } /// - /// Set the maximum allowed length in bytes for the socket receive buffer as per OS configuration in the metadata. + /// Set the maximum allowed length in bytes for the socket receive buffer as per OS configuration in the + /// metadata. /// /// containing the meta data. /// the maximum allowed length in bytes for the socket receive buffer. @@ -1469,7 +1492,7 @@ public static void LingerTimeoutNs(UnsafeBuffer metadataBuffer, long value) } /// - /// Get the entity tag from the metadata. + /// Get the entity tag from the metadata. /// /// containing the meta data. /// the entity tag in nanoseconds. @@ -1489,7 +1512,7 @@ public static void EntityTag(UnsafeBuffer metadataBuffer, long value) } /// - /// Get the response correlation id from the metadata. + /// Get the response correlation id from the metadata. /// /// containing the meta data. /// the entity tag in nanoseconds. @@ -1548,4 +1571,4 @@ public static void SpiesSimulateConnection(UnsafeBuffer metadataBuffer, bool val metadataBuffer.PutByte(LOG_SPIES_SIMULATE_CONNECTION_OFFSET, (byte)(value ? 1 : 0)); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/RawBlockHandler.cs b/src/Adaptive.Aeron/LogBuffer/RawBlockHandler.cs index b67dd175..4a7823cd 100644 --- a/src/Adaptive.Aeron/LogBuffer/RawBlockHandler.cs +++ b/src/Adaptive.Aeron/LogBuffer/RawBlockHandler.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -25,8 +25,10 @@ namespace Adaptive.Aeron.LogBuffer /// read-only stream over the log file containing the block. /// at which the block begins, including any frame headers. /// mapped over the block of fragments. - /// in at which the block begins, including any frame headers. - /// of the block in bytes, including any frame headers, aligned up to . + /// in at which the block begins, including any frame + /// headers. + /// of the block in bytes, including any frame headers, aligned up to + /// . /// of the stream of fragments. /// of the stream of fragments. public delegate void RawBlockHandler( @@ -36,5 +38,6 @@ public delegate void RawBlockHandler( int termOffset, int length, int sessionId, - int termId); + int termId + ); } diff --git a/src/Adaptive.Aeron/LogBuffer/TermBlockScanner.cs b/src/Adaptive.Aeron/LogBuffer/TermBlockScanner.cs index 3355c013..bee1091f 100644 --- a/src/Adaptive.Aeron/LogBuffer/TermBlockScanner.cs +++ b/src/Adaptive.Aeron/LogBuffer/TermBlockScanner.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,8 +21,14 @@ namespace Adaptive.Aeron.LogBuffer { /// - /// Scan a term buffer for a block of message fragments including padding. The block must include complete fragments. + /// Scan a term buffer for a block of message fragments including padding. The block must include complete + /// fragments. /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class TermBlockScanner { /// @@ -70,9 +76,7 @@ public static int Scan(IAtomicBuffer termBuffer, int termOffset, int limitOffset offset += alignedFrameLength; } - return offset; } } - -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/TermReader.cs b/src/Adaptive.Aeron/LogBuffer/TermReader.cs index 735acd4a..a5c8e426 100644 --- a/src/Adaptive.Aeron/LogBuffer/TermReader.cs +++ b/src/Adaptive.Aeron/LogBuffer/TermReader.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,11 +26,16 @@ namespace Adaptive.Aeron.LogBuffer /// /// Utility functions for reading a term within a log buffer. /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class TermReader { /// - /// Reads data from a term in a log buffer and updates a passed so progress is not lost in the - /// event of an exception. + /// Reads data from a term in a log buffer and updates a passed so progress is not + /// lost in the event of an exception. /// /// to be read for fragments. /// within the buffer that the read should begin. @@ -50,7 +55,8 @@ public static int Read( Header header, IErrorHandler errorHandler, long currentPosition, - IPosition subscriberPosition) + IPosition subscriberPosition + ) { int fragmentsRead = 0; int offset = termOffset; @@ -74,11 +80,15 @@ public static int Read( { ++fragmentsRead; header.Offset = frameOffset; - handler.OnFragment(termBuffer, frameOffset + DataHeaderFlyweight.HEADER_LENGTH, frameLength - DataHeaderFlyweight.HEADER_LENGTH, header); + handler.OnFragment( + termBuffer, + frameOffset + DataHeaderFlyweight.HEADER_LENGTH, + frameLength - DataHeaderFlyweight.HEADER_LENGTH, + header + ); } - } + } } - catch (Exception ex) { errorHandler.OnError(ex); @@ -97,7 +107,7 @@ public static int Read( /// /// Reads data from a term in a log buffer. - /// + /// /// /// to be read for fragments. /// offset within the buffer that the read should begin. @@ -113,7 +123,8 @@ public static long Read( IFragmentHandler handler, int fragmentsLimit, Header header, - ErrorHandler errorHandler) + ErrorHandler errorHandler + ) { int fragmentsRead = 0; int offset = termOffset; @@ -137,7 +148,12 @@ public static long Read( { ++fragmentsRead; header.Offset = frameOffset; - handler.OnFragment(termBuffer, frameOffset + DataHeaderFlyweight.HEADER_LENGTH, frameLength - DataHeaderFlyweight.HEADER_LENGTH, header); + handler.OnFragment( + termBuffer, + frameOffset + DataHeaderFlyweight.HEADER_LENGTH, + frameLength - DataHeaderFlyweight.HEADER_LENGTH, + header + ); } } } @@ -158,7 +174,7 @@ public static long Read( [MethodImpl(MethodImplOptions.AggressiveInlining)] public static long Pack(int offset, int fragmentsRead) { - return ((long) offset << 32) | (uint) fragmentsRead; + return ((long)offset << 32) | (uint)fragmentsRead; } /// @@ -169,7 +185,7 @@ public static long Pack(int offset, int fragmentsRead) [MethodImpl(MethodImplOptions.AggressiveInlining)] public static int FragmentsRead(long readOutcome) { - return (int) readOutcome; + return (int)readOutcome; } /// @@ -180,7 +196,7 @@ public static int FragmentsRead(long readOutcome) [MethodImpl(MethodImplOptions.AggressiveInlining)] public static int Offset(long readOutcome) { - return (int) ((long) ((ulong) readOutcome >> 32)); + return (int)((long)((ulong)readOutcome >> 32)); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffer/TermRebuilder.cs b/src/Adaptive.Aeron/LogBuffer/TermRebuilder.cs index a99848db..55acb6e6 100644 --- a/src/Adaptive.Aeron/LogBuffer/TermRebuilder.cs +++ b/src/Adaptive.Aeron/LogBuffer/TermRebuilder.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,11 +23,17 @@ namespace Adaptive.Aeron.LogBuffer /// Rebuild a term buffer from received frames which can be out-of-order. The resulting data structure will only /// monotonically increase in state. /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class TermRebuilder { /// - /// Insert a packet of frames into the log at the appropriate termOffset as indicated by the term termOffset header. - /// + /// Insert a packet of frames into the log at the appropriate termOffset as indicated by the term termOffset + /// header. + /// /// If the packet has already been inserted then this is a noop. /// /// into which the packet should be inserted. @@ -38,8 +44,12 @@ public static void Insert(IAtomicBuffer termBuffer, int termOffset, UnsafeBuffer { if (0 == termBuffer.GetInt(termOffset)) { - termBuffer.PutBytes(termOffset + DataHeaderFlyweight.HEADER_LENGTH, packet, - DataHeaderFlyweight.HEADER_LENGTH, length - DataHeaderFlyweight.HEADER_LENGTH); + termBuffer.PutBytes( + termOffset + DataHeaderFlyweight.HEADER_LENGTH, + packet, + DataHeaderFlyweight.HEADER_LENGTH, + length - DataHeaderFlyweight.HEADER_LENGTH + ); termBuffer.PutLong(termOffset + 24, packet.GetLong(24)); termBuffer.PutLong(termOffset + 16, packet.GetLong(16)); @@ -49,4 +59,4 @@ public static void Insert(IAtomicBuffer termBuffer, int termOffset, UnsafeBuffer } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/LogBuffers.cs b/src/Adaptive.Aeron/LogBuffers.cs index e3950a8c..a4a6d699 100644 --- a/src/Adaptive.Aeron/LogBuffers.cs +++ b/src/Adaptive.Aeron/LogBuffers.cs @@ -27,12 +27,13 @@ namespace Adaptive.Aeron { /// - /// Takes a log file name and maps the file into memory and wraps it with s as appropriate. + /// Takes a log file name and maps the file into memory and wraps it with s as + /// appropriate. /// /// public class LogBuffers : IDisposable { - private long lingerDeadlineNs = long.MaxValue; + private long _lingerDeadlineNs = long.MaxValue; private int _refCount; private readonly int _termLength; @@ -46,16 +47,15 @@ public class LogBuffers : IDisposable // Necessary for testing internal LogBuffers() { - } - + /// /// Construct the log buffers for a given log file. /// /// public LogBuffers(string logFileName) { - int termLength = 0; + int termLength; UnsafeBuffer logMetaDataBuffer = null; MappedByteBuffer[] mappedByteBuffers = null; FileStream fileStream = null; @@ -70,25 +70,31 @@ public LogBuffers(string logFileName) logFileName, FileMode.Open, FileAccess.Read, - FileShare.ReadWrite | FileShare.Delete); - + FileShare.ReadWrite | FileShare.Delete + ); + if (logLength < LogBufferDescriptor.LOG_META_DATA_LENGTH) { throw new InvalidOperationException( - "Log file length less than min length of " + LogBufferDescriptor.LOG_META_DATA_LENGTH + ": length=" + logLength); + "Log file length less than min length of " + + LogBufferDescriptor.LOG_META_DATA_LENGTH + + ": length=" + + logLength + ); } // if log length exceeds MAX_INT we need multiple mapped buffers, (see FileChannel.map doc). if (logLength < int.MaxValue) { - var mappedBuffer = - IoUtil.MapExistingFile(logFileName, - MapMode.ReadWrite); // TODO Java has sparse hint & Little Endian - mappedByteBuffers = new[] {mappedBuffer}; + // TODO Java has sparse hint & Little Endian + var mappedBuffer = IoUtil.MapExistingFile(logFileName, MapMode.ReadWrite); + mappedByteBuffers = new[] { mappedBuffer }; - logMetaDataBuffer = new UnsafeBuffer(mappedBuffer.Pointer, - (int) (logLength - LogBufferDescriptor.LOG_META_DATA_LENGTH), - LogBufferDescriptor.LOG_META_DATA_LENGTH); + logMetaDataBuffer = new UnsafeBuffer( + mappedBuffer.Pointer, + (int)(logLength - LogBufferDescriptor.LOG_META_DATA_LENGTH), + LogBufferDescriptor.LOG_META_DATA_LENGTH + ); termLength = LogBufferDescriptor.TermLength(logMetaDataBuffer); int pageSize = LogBufferDescriptor.PageSize(logMetaDataBuffer); @@ -106,20 +112,23 @@ public LogBuffers(string logFileName) mappedByteBuffers = new MappedByteBuffer[LogBufferDescriptor.PARTITION_COUNT + 1]; int assumedTermLength = LogBufferDescriptor.TERM_MAX_LENGTH; - long metaDataSectionOffset = assumedTermLength * (long) LogBufferDescriptor.PARTITION_COUNT; + long metaDataSectionOffset = assumedTermLength * (long)LogBufferDescriptor.PARTITION_COUNT; long metaDataMappingLength = logLength - metaDataSectionOffset; var memoryMappedFile = IoUtil.OpenMemoryMappedFile(logFileName); - var metaDataMappedBuffer = - new MappedByteBuffer(memoryMappedFile, metaDataSectionOffset, - metaDataMappingLength); // Little Endian + var metaDataMappedBuffer = new MappedByteBuffer( + memoryMappedFile, + metaDataSectionOffset, + metaDataMappingLength + ); // Little Endian mappedByteBuffers[LogBufferDescriptor.LOG_META_DATA_SECTION_INDEX] = metaDataMappedBuffer; logMetaDataBuffer = new UnsafeBuffer( metaDataMappedBuffer.Pointer, - (int) metaDataMappingLength - LogBufferDescriptor.LOG_META_DATA_LENGTH, - LogBufferDescriptor.LOG_META_DATA_LENGTH); + (int)metaDataMappingLength - LogBufferDescriptor.LOG_META_DATA_LENGTH, + LogBufferDescriptor.LOG_META_DATA_LENGTH + ); int metaDataTermLength = LogBufferDescriptor.TermLength(logMetaDataBuffer); int pageSize = LogBufferDescriptor.PageSize(logMetaDataBuffer); @@ -128,17 +137,19 @@ public LogBuffers(string logFileName) if (metaDataTermLength != assumedTermLength) { throw new InvalidOperationException( - $"assumed term length {assumedTermLength} does not match metadta: termLength = {metaDataTermLength}"); + $"assumed term length {assumedTermLength} does not match metadta: " + + $"termLength = {metaDataTermLength}" + ); } termLength = assumedTermLength; for (var i = 0; i < LogBufferDescriptor.PARTITION_COUNT; i++) { - long position = assumedTermLength * (long) i; + long position = assumedTermLength * (long)i; - mappedByteBuffers[i] = - new MappedByteBuffer(memoryMappedFile, position, assumedTermLength); // Little Endian + // Little Endian + mappedByteBuffers[i] = new MappedByteBuffer(memoryMappedFile, position, assumedTermLength); _termBuffers[i] = new UnsafeBuffer(mappedByteBuffers[i].Pointer, 0, assumedTermLength); } } @@ -156,9 +167,9 @@ public LogBuffers(string logFileName) } /// - /// Read-only stream over the log file. Shares the underlying file with the memory mapping; - /// callers must not write to it. Useful for raw-block consumers that want positioned reads - /// or zero-copy hand-off to a socket via Socket.SendFile. + /// Read-only stream over the log file. Shares the underlying file with the memory mapping; callers must not + /// write to it. Useful for raw-block consumers that want positioned reads or zero-copy hand-off to a socket via + /// Socket.SendFile . /// public FileStream FileStream => _fileStream; @@ -187,7 +198,7 @@ public void PreTouch() foreach (MappedByteBuffer buffer in _mappedByteBuffers) { - atomicBuffer.Wrap(buffer.Pointer, 0, (int) buffer.Capacity); + atomicBuffer.Wrap(buffer.Pointer, 0, (int)buffer.Capacity); for (int i = 0, length = atomicBuffer.Capacity; i < length; i += pageSize) { @@ -202,7 +213,7 @@ public void Dispose() } /// - /// The length of the term buffer in each log partition. + /// The length of the term buffer in each log partition. /// /// length of the term buffer in each log partition. public int TermLength() @@ -234,7 +245,7 @@ public int DecRef() /// the deadline for how long to linger around once unreferenced. public void LingerDeadlineNs(long timeNs) { - lingerDeadlineNs = timeNs; + _lingerDeadlineNs = timeNs; } /// @@ -243,11 +254,14 @@ public void LingerDeadlineNs(long timeNs) /// the deadline for how long to linger around once unreferenced. public long LingerDeadlineNs() { - return lingerDeadlineNs; + return _lingerDeadlineNs; } private static void Dispose( - UnsafeBuffer logMetaDataBuffer, MappedByteBuffer[] mappedByteBuffers, FileStream fileStream) + UnsafeBuffer logMetaDataBuffer, + MappedByteBuffer[] mappedByteBuffers, + FileStream fileStream + ) { if (null != logMetaDataBuffer) { @@ -270,4 +284,4 @@ private static void Dispose( } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/MappedLogBuffersFactory.cs b/src/Adaptive.Aeron/MappedLogBuffersFactory.cs index f0dada65..1c79ed29 100644 --- a/src/Adaptive.Aeron/MappedLogBuffersFactory.cs +++ b/src/Adaptive.Aeron/MappedLogBuffersFactory.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,8 +14,6 @@ * limitations under the License. */ -using Adaptive.Agrona; - namespace Adaptive.Aeron { /// @@ -28,5 +26,4 @@ public LogBuffers Map(string logFileName) return new LogBuffers(logFileName); } } - -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Protocol/DataHeaderFlyweight.cs b/src/Adaptive.Aeron/Protocol/DataHeaderFlyweight.cs index 60a3204b..08159ffe 100644 --- a/src/Adaptive.Aeron/Protocol/DataHeaderFlyweight.cs +++ b/src/Adaptive.Aeron/Protocol/DataHeaderFlyweight.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,8 +15,6 @@ */ using System; -using System.Text; -using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Agrona.Concurrent; @@ -24,8 +22,9 @@ namespace Adaptive.Aeron.Protocol { /// /// Flyweight for Data Frame header of a message fragment. - /// - /// Data Frame + /// + /// Data Frame /// wiki page. /// public class DataHeaderFlyweight : HeaderFlyweight @@ -69,7 +68,7 @@ public class DataHeaderFlyweight : HeaderFlyweight /// Begin, End, EOS, and Revoked Flags. /// public static readonly short BEGIN_END_EOS_AND_REVOKED_FLAGS = BEGIN_FLAG | END_FLAG | EOS_FLAG | REVOKED_FLAG; - + /// /// Default value to be placed in the reserved value field. /// @@ -79,27 +78,27 @@ public class DataHeaderFlyweight : HeaderFlyweight /// Offset in the frame at which the term-offset field begins. /// public const int TERM_OFFSET_FIELD_OFFSET = 8; - + /// /// Offset in the frame at which the session-id field begins. /// public const int SESSION_ID_FIELD_OFFSET = 12; - + /// /// Offset in the frame at which the stream-id field begins. /// public const int STREAM_ID_FIELD_OFFSET = 16; - + /// /// Offset in the frame at which the term-id field begins. /// public const int TERM_ID_FIELD_OFFSET = 20; - + /// /// Offset in the frame at which the reserved value field begins. /// public const int RESERVED_VALUE_OFFSET = 24; - + /// /// Offset in the frame at which the data payload begins. /// @@ -116,7 +115,8 @@ public DataHeaderFlyweight() /// Construct the flyweight over a frame. /// /// containing the frame. - public DataHeaderFlyweight(UnsafeBuffer buffer) : base(buffer) + public DataHeaderFlyweight(UnsafeBuffer buffer) + : base(buffer) { } @@ -130,7 +130,7 @@ public static int FragmentLength(UnsafeBuffer termBuffer, int frameOffset) { return termBuffer.GetInt(frameOffset + FRAME_LENGTH_FIELD_OFFSET, ByteOrder.LittleEndian); } - + /// /// Is the frame at data frame at the beginning of packet a heartbeat message? /// @@ -202,6 +202,7 @@ public int StreamId() { return GetInt(STREAM_ID_FIELD_OFFSET); } + /// /// Get the stream-id field from the header. /// @@ -297,7 +298,7 @@ public long ReservedValue() { return GetLong(RESERVED_VALUE_OFFSET); } - + /// /// Get the reserved value field from the header. /// @@ -342,7 +343,7 @@ public static UnsafeBuffer CreateDefaultHeader(int sessionId, int streamId, int var buffer = new UnsafeBuffer(BufferUtil.AllocateDirectAligned(HEADER_LENGTH, BitUtil.CACHE_LINE_LENGTH)); buffer.PutByte(VERSION_FIELD_OFFSET, CURRENT_VERSION); - buffer.PutByte(FLAGS_FIELD_OFFSET, (byte) BEGIN_AND_END_FLAGS); + buffer.PutByte(FLAGS_FIELD_OFFSET, (byte)BEGIN_AND_END_FLAGS); buffer.PutShort(TYPE_FIELD_OFFSET, HDR_TYPE_DATA); buffer.PutInt(SESSION_ID_FIELD_OFFSET, sessionId); buffer.PutInt(STREAM_ID_FIELD_OFFSET, streamId); @@ -354,17 +355,18 @@ public static UnsafeBuffer CreateDefaultHeader(int sessionId, int streamId, int public override string ToString() { - return "DATA Header{" + - "frame-length=" + FrameLength() + - " version=" + Version() + - " flags=" + new String(HeaderFlyweight.FlagsToChars(Flags())) + - " type=" + HeaderType() + - " term-offset=" + TermOffset() + - " session-id=" + SessionId() + - " stream-id=" + StreamId() + - " term-id=" + TermId() + - " reserved-value=" + ReservedValue() + - "}"; + return + "DATA Header{" + + "frame-length=" + FrameLength() + + " version=" + Version() + + " flags=" + new String(HeaderFlyweight.FlagsToChars(Flags())) + + " type=" + HeaderType() + + " term-offset=" + TermOffset() + + " session-id=" + SessionId() + + " stream-id=" + StreamId() + + " term-id=" + TermId() + + " reserved-value=" + ReservedValue() + + "}"; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Protocol/HeaderFlyweight.cs b/src/Adaptive.Aeron/Protocol/HeaderFlyweight.cs index a0c97c1b..587e7f63 100644 --- a/src/Adaptive.Aeron/Protocol/HeaderFlyweight.cs +++ b/src/Adaptive.Aeron/Protocol/HeaderFlyweight.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,6 +14,7 @@ * limitations under the License. */ +using System; using System.Runtime.CompilerServices; using System.Text; using Adaptive.Agrona; @@ -23,7 +24,7 @@ namespace Adaptive.Aeron.Protocol { /// /// Flyweight for general Aeron network protocol header of a message frame. - /// + ///
     /// 0                   1                   2                   3
     /// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     /// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -32,14 +33,14 @@ namespace Adaptive.Aeron.Protocol
     /// |  Version    |     Flags     |               Type              |
     /// +-------------+---------------+---------------------------------+
     /// |                       Depends on Type                        ...
-    /// 
+    /// 
///
public class HeaderFlyweight : UnsafeBuffer { - public static readonly byte[] EMPTY_BUFFER = new byte[0]; + public static readonly byte[] EMPTY_BUFFER = Array.Empty(); /// - /// Header type PAD. + /// Header type PAD. /// public const int HDR_TYPE_PAD = 0x00; @@ -59,7 +60,7 @@ public class HeaderFlyweight : UnsafeBuffer public const int HDR_TYPE_SM = 0x03; /// - /// Header type ERR. + /// Header type ERR. /// public const int HDR_TYPE_ERR = 0x04; @@ -69,10 +70,10 @@ public class HeaderFlyweight : UnsafeBuffer public const int HDR_TYPE_SETUP = 0x05; /// - /// Header type RTT Measurement. + /// Header type RTT Measurement. /// public const int HDR_TYPE_RTTM = 0x06; - + /// /// Header type RESOLUTION. /// @@ -97,9 +98,9 @@ public class HeaderFlyweight : UnsafeBuffer /// Header type Response Setup. ///
public const int HDR_TYPE_RSP_SETUP = 0x0B; - + /// - /// Header type EXT. + /// Header type EXT. /// public const int HDR_TYPE_EXT = 0xFFFF; @@ -112,22 +113,22 @@ public class HeaderFlyweight : UnsafeBuffer /// Offset in the frame at which the frame length field begins. ///
public const int FRAME_LENGTH_FIELD_OFFSET = 0; - + /// /// Offset in the frame at which the version field begins. /// public const int VERSION_FIELD_OFFSET = 4; - + /// /// Offset in the frame at which the flags field begins. /// public const int FLAGS_FIELD_OFFSET = 5; - + /// /// Offset in the frame at which the frame type field begins. /// public const int TYPE_FIELD_OFFSET = 6; - + /// /// Minimum length of any Aeron frame. /// @@ -144,7 +145,8 @@ public HeaderFlyweight() /// Construct a flyweight which wraps a over the frame. /// /// to wrap for the flyweight. - public HeaderFlyweight(UnsafeBuffer buffer) : base(buffer) + public HeaderFlyweight(UnsafeBuffer buffer) + : base(buffer) { } @@ -155,7 +157,7 @@ public HeaderFlyweight(UnsafeBuffer buffer) : base(buffer) [MethodImpl(MethodImplOptions.AggressiveInlining)] public short Version() { - return (short) (GetByte(VERSION_FIELD_OFFSET) & 0xFF); + return (short)(GetByte(VERSION_FIELD_OFFSET) & 0xFF); } /// @@ -166,7 +168,7 @@ public short Version() [MethodImpl(MethodImplOptions.AggressiveInlining)] public HeaderFlyweight Version(short version) { - PutByte(VERSION_FIELD_OFFSET, (byte) version); + PutByte(VERSION_FIELD_OFFSET, (byte)version); return this; } @@ -178,7 +180,7 @@ public HeaderFlyweight Version(short version) [MethodImpl(MethodImplOptions.AggressiveInlining)] public short Flags() { - return (short) (GetByte(FLAGS_FIELD_OFFSET) & 0xFF); + return (short)(GetByte(FLAGS_FIELD_OFFSET) & 0xFF); } /// @@ -189,7 +191,7 @@ public short Flags() [MethodImpl(MethodImplOptions.AggressiveInlining)] public HeaderFlyweight Flags(short flags) { - PutByte(FLAGS_FIELD_OFFSET, (byte) flags); + PutByte(FLAGS_FIELD_OFFSET, (byte)flags); return this; } @@ -212,7 +214,7 @@ public int HeaderType() [MethodImpl(MethodImplOptions.AggressiveInlining)] public HeaderFlyweight HeaderType(int type) { - PutShort(TYPE_FIELD_OFFSET, (short) type); + PutShort(TYPE_FIELD_OFFSET, (short)type); return this; } @@ -239,7 +241,7 @@ public HeaderFlyweight FrameLength(int length) return this; } - + /// /// Convert header flags to an array of chars to be human-readable. /// @@ -247,7 +249,7 @@ public HeaderFlyweight FrameLength(int length) /// header flags converted to an array of chars to be human-readable. public static char[] FlagsToChars(short flags) { - char[] chars = {'0', '0', '0', '0', '0', '0', '0', '0'}; + char[] chars = { '0', '0', '0', '0', '0', '0', '0', '0' }; int length = chars.Length; short mask = (short)(1 << (length - 1)); @@ -272,7 +274,7 @@ public static char[] FlagsToChars(short flags) public static void AppendFlagsAsChars(short flags, StringBuilder stringBuilder) { const int length = 8; - short mask = (short) (1 << (length - 1)); + short mask = (short)(1 << (length - 1)); for (int i = 0; i < length; i++) { @@ -281,4 +283,4 @@ public static void AppendFlagsAsChars(short flags, StringBuilder stringBuilder) } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/PublicAPI.Shipped.txt b/src/Adaptive.Aeron/PublicAPI.Shipped.txt new file mode 100644 index 00000000..d0f55a9e --- /dev/null +++ b/src/Adaptive.Aeron/PublicAPI.Shipped.txt @@ -0,0 +1,1637 @@ +abstract Adaptive.Aeron.Publication.AvailableWindow.get -> long +abstract Adaptive.Aeron.Publication.Offer(Adaptive.Aeron.DirectBufferVector[] vectors, Adaptive.Aeron.ReservedValueSupplier reservedValueSupplier = null) -> long +abstract Adaptive.Aeron.Publication.Offer(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.ReservedValueSupplier reservedValueSupplier = null) -> long +abstract Adaptive.Aeron.Publication.Offer(Adaptive.Agrona.IDirectBuffer bufferOne, int offsetOne, int lengthOne, Adaptive.Agrona.IDirectBuffer bufferTwo, int offsetTwo, int lengthTwo, Adaptive.Aeron.ReservedValueSupplier reservedValueSupplier = null) -> long +abstract Adaptive.Aeron.Publication.TryClaim(int length, Adaptive.Aeron.LogBuffer.BufferClaim bufferClaim) -> long +Adaptive.Aeron.Aeron +Adaptive.Aeron.Aeron.AddAvailableCounterHandler(Adaptive.Aeron.AvailableCounterHandler handler) -> long +Adaptive.Aeron.Aeron.AddCloseHandler(System.Action handler) -> long +Adaptive.Aeron.Aeron.AddCounter(int typeId, Adaptive.Agrona.IDirectBuffer keyBuffer, int keyOffset, int keyLength, Adaptive.Agrona.IDirectBuffer labelBuffer, int labelOffset, int labelLength) -> Adaptive.Aeron.Counter +Adaptive.Aeron.Aeron.AddCounter(int typeId, string label) -> Adaptive.Aeron.Counter +Adaptive.Aeron.Aeron.AddExclusivePublication(string channel, int streamId) -> Adaptive.Aeron.ExclusivePublication +Adaptive.Aeron.Aeron.AddPublication(string channel, int streamId) -> Adaptive.Aeron.Publication +Adaptive.Aeron.Aeron.AddStaticCounter(int typeId, Adaptive.Agrona.IDirectBuffer keyBuffer, int keyOffset, int keyLength, Adaptive.Agrona.IDirectBuffer labelBuffer, int labelOffset, int labelLength, long registrationId) -> Adaptive.Aeron.Counter +Adaptive.Aeron.Aeron.AddStaticCounter(int typeId, string label, long registrationId) -> Adaptive.Aeron.Counter +Adaptive.Aeron.Aeron.AddSubscription(string channel, int streamId, Adaptive.Aeron.AvailableImageHandler availableImageHandler, Adaptive.Aeron.UnavailableImageHandler unavailableImageHandler) -> Adaptive.Aeron.Subscription +Adaptive.Aeron.Aeron.AddSubscription(string channel, int streamId) -> Adaptive.Aeron.Subscription +Adaptive.Aeron.Aeron.AddUnavailableCounterHandler(Adaptive.Aeron.UnavailableCounterHandler handler) -> long +Adaptive.Aeron.Aeron.AsyncAddCounter(int typeId, Adaptive.Agrona.IDirectBuffer keyBuffer, int keyOffset, int keyLength, Adaptive.Agrona.IDirectBuffer labelBuffer, int labelOffset, int labelLength) -> long +Adaptive.Aeron.Aeron.AsyncAddCounter(int typeId, string label) -> long +Adaptive.Aeron.Aeron.AsyncAddExclusivePublication(string channel, int streamId) -> long +Adaptive.Aeron.Aeron.AsyncAddPublication(string channel, int streamId) -> long +Adaptive.Aeron.Aeron.AsyncAddStaticCounter(int typeId, Adaptive.Agrona.IDirectBuffer keyBuffer, int keyOffset, int keyLength, Adaptive.Agrona.IDirectBuffer labelBuffer, int labelOffset, int labelLength, long registrationId) -> long +Adaptive.Aeron.Aeron.AsyncAddStaticCounter(int typeId, string label, long registrationId) -> long +Adaptive.Aeron.Aeron.AsyncAddSubscription(string channel, int streamId, Adaptive.Aeron.AvailableImageHandler availableImageHandler, Adaptive.Aeron.UnavailableImageHandler unavailableImageHandler) -> long +Adaptive.Aeron.Aeron.AsyncAddSubscription(string channel, int streamId) -> long +Adaptive.Aeron.Aeron.AsyncRemoveCounter(long registrationId) -> void +Adaptive.Aeron.Aeron.AsyncRemovePublication(long registrationId) -> void +Adaptive.Aeron.Aeron.AsyncRemoveSubscription(long registrationId) -> void +Adaptive.Aeron.Aeron.ClientId.get -> long +Adaptive.Aeron.Aeron.ConductorAgentInvoker.get -> Adaptive.Agrona.Concurrent.AgentInvoker +Adaptive.Aeron.Aeron.Configuration +Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.AeronDirectory() -> System.IO.DirectoryInfo +Adaptive.Aeron.Aeron.Context.AeronDirectoryName() -> string +Adaptive.Aeron.Aeron.Context.AeronDirectoryName(string dirName) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.AvailableCounterHandler() -> Adaptive.Aeron.AvailableCounterHandler +Adaptive.Aeron.Aeron.Context.AvailableCounterHandler(Adaptive.Aeron.AvailableCounterHandler handler) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.AvailableImageHandler() -> Adaptive.Aeron.AvailableImageHandler +Adaptive.Aeron.Aeron.Context.AvailableImageHandler(Adaptive.Aeron.AvailableImageHandler handler) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.AwaitingIdleStrategy() -> Adaptive.Agrona.Concurrent.IIdleStrategy +Adaptive.Aeron.Aeron.Context.AwaitingIdleStrategy(Adaptive.Agrona.Concurrent.IIdleStrategy idleStrategy) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.ClientId() -> long +Adaptive.Aeron.Aeron.Context.ClientLock() -> Adaptive.Agrona.Concurrent.ILock +Adaptive.Aeron.Aeron.Context.ClientLock(Adaptive.Agrona.Concurrent.ILock lock) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.ClientName() -> string +Adaptive.Aeron.Aeron.Context.ClientName(string clientName) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.Clone() -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.CloseHandler() -> System.Action +Adaptive.Aeron.Aeron.Context.CloseHandler(System.Action handler) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.CloseLingerDurationNs() -> long +Adaptive.Aeron.Aeron.Context.CloseLingerDurationNs(long closeLingerDurationNs) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.CncFile() -> System.IO.FileInfo +Adaptive.Aeron.Aeron.Context.Conclude() -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.ConcludeAeronDirectory() -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.Context() -> void +Adaptive.Aeron.Aeron.Context.CountersMetaDataBuffer() -> Adaptive.Agrona.Concurrent.UnsafeBuffer +Adaptive.Aeron.Aeron.Context.CountersMetaDataBuffer(Adaptive.Agrona.Concurrent.UnsafeBuffer countersMetaDataBuffer) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.CountersValuesBuffer() -> Adaptive.Agrona.Concurrent.UnsafeBuffer +Adaptive.Aeron.Aeron.Context.CountersValuesBuffer(Adaptive.Agrona.Concurrent.UnsafeBuffer countersValuesBuffer) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.DeleteAeronDirectory() -> void +Adaptive.Aeron.Aeron.Context.Dispose() -> void +Adaptive.Aeron.Aeron.Context.DriverAgentInvoker() -> Adaptive.Agrona.Concurrent.AgentInvoker +Adaptive.Aeron.Aeron.Context.DriverAgentInvoker(Adaptive.Agrona.Concurrent.AgentInvoker driverAgentInvoker) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.DriverProxy() -> Adaptive.Aeron.DriverProxy +Adaptive.Aeron.Aeron.Context.DriverTimeoutMs() -> long +Adaptive.Aeron.Aeron.Context.DriverTimeoutMs(long driverTimeoutMs) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.EnableExperimentalFeatures() -> bool +Adaptive.Aeron.Aeron.Context.EnableExperimentalFeatures(bool enableExperimentalFeatures) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.EpochClock() -> Adaptive.Agrona.Concurrent.IEpochClock +Adaptive.Aeron.Aeron.Context.EpochClock(Adaptive.Agrona.Concurrent.IEpochClock clock) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.ErrorHandler() -> Adaptive.Agrona.IErrorHandler +Adaptive.Aeron.Aeron.Context.ErrorHandler(Adaptive.Agrona.IErrorHandler errorHandler) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.FilePageSize() -> int +Adaptive.Aeron.Aeron.Context.IdleSleepDurationNs() -> long +Adaptive.Aeron.Aeron.Context.IdleSleepDurationNs(long idleSleepDurationNs) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.IdleStrategy() -> Adaptive.Agrona.Concurrent.IIdleStrategy +Adaptive.Aeron.Aeron.Context.IdleStrategy(Adaptive.Agrona.Concurrent.IIdleStrategy idleStrategy) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.InterServiceTimeoutNs() -> long +Adaptive.Aeron.Aeron.Context.IsConcluded.get -> bool +Adaptive.Aeron.Aeron.Context.IsDriverActive(long driverTimeoutMs, System.Action logger) -> bool +Adaptive.Aeron.Aeron.Context.KeepAliveIntervalNs() -> long +Adaptive.Aeron.Aeron.Context.KeepAliveIntervalNs(long value) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.MapExistingCncFile(System.Action logProgress) -> Adaptive.Agrona.Util.MappedByteBuffer +Adaptive.Aeron.Aeron.Context.NanoClock() -> Adaptive.Agrona.Concurrent.INanoClock +Adaptive.Aeron.Aeron.Context.NanoClock(Adaptive.Agrona.Concurrent.INanoClock clock) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.PreTouchMappedMemory() -> bool +Adaptive.Aeron.Aeron.Context.PreTouchMappedMemory(bool preTouchMappedMemory) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.PublicationErrorFrameHandler() -> Adaptive.Aeron.IPublicationErrorFrameHandler +Adaptive.Aeron.Aeron.Context.PublicationErrorFrameHandler(Adaptive.Aeron.IPublicationErrorFrameHandler publicationErrorFrameHandler) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.ResourceLingerDurationNs() -> long +Adaptive.Aeron.Aeron.Context.ResourceLingerDurationNs(long resourceLingerDurationNs) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.SaveErrorLog(System.IO.StreamWriter writer, Adaptive.Agrona.Util.MappedByteBuffer cncByteBuffer) -> int +Adaptive.Aeron.Aeron.Context.SaveErrorLog(System.IO.StreamWriter writer) -> int +Adaptive.Aeron.Aeron.Context.SubscriberErrorHandler() -> Adaptive.Agrona.IErrorHandler +Adaptive.Aeron.Aeron.Context.SubscriberErrorHandler(Adaptive.Agrona.IErrorHandler errorHandler) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.ThreadFactory() -> Adaptive.Agrona.Concurrent.IThreadFactory +Adaptive.Aeron.Aeron.Context.ThreadFactory(Adaptive.Agrona.Concurrent.IThreadFactory threadFactory) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.ToClientBuffer() -> Adaptive.Agrona.Concurrent.Broadcast.CopyBroadcastReceiver +Adaptive.Aeron.Aeron.Context.ToDriverBuffer() -> Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer +Adaptive.Aeron.Aeron.Context.UnavailableCounterHandler() -> Adaptive.Aeron.UnavailableCounterHandler +Adaptive.Aeron.Aeron.Context.UnavailableCounterHandler(Adaptive.Aeron.UnavailableCounterHandler handler) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.UnavailableImageHandler() -> Adaptive.Aeron.UnavailableImageHandler +Adaptive.Aeron.Aeron.Context.UnavailableImageHandler(Adaptive.Aeron.UnavailableImageHandler handler) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Context.UseConductorAgentInvoker() -> bool +Adaptive.Aeron.Aeron.Context.UseConductorAgentInvoker(bool useConductorAgentInvoker) -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.CountersReader.get -> Adaptive.Agrona.Concurrent.Status.CountersReader +Adaptive.Aeron.Aeron.Ctx.get -> Adaptive.Aeron.Aeron.Context +Adaptive.Aeron.Aeron.Dispose() -> void +Adaptive.Aeron.Aeron.GetCounter(long correlationId) -> Adaptive.Aeron.Counter +Adaptive.Aeron.Aeron.GetExclusivePublication(long registrationId) -> Adaptive.Aeron.ExclusivePublication +Adaptive.Aeron.Aeron.GetPublication(long registrationId) -> Adaptive.Aeron.ConcurrentPublication +Adaptive.Aeron.Aeron.GetSubscription(long registrationId) -> Adaptive.Aeron.Subscription +Adaptive.Aeron.Aeron.HasActiveCommands() -> bool +Adaptive.Aeron.Aeron.IsClosed.get -> bool +Adaptive.Aeron.Aeron.IsCommandActive(long correlationId) -> bool +Adaptive.Aeron.Aeron.NextCorrelationId() -> long +Adaptive.Aeron.Aeron.NextSessionId(int streamId) -> int +Adaptive.Aeron.Aeron.PrintCounters(System.IO.StreamWriter out) -> void +Adaptive.Aeron.Aeron.RemoveAvailableCounterHandler(Adaptive.Aeron.AvailableCounterHandler handler) -> bool +Adaptive.Aeron.Aeron.RemoveAvailableCounterHandler(long registrationId) -> bool +Adaptive.Aeron.Aeron.RemoveCloseHandler(long registrationId) -> bool +Adaptive.Aeron.Aeron.RemoveCloseHandler(System.Action handler) -> bool +Adaptive.Aeron.Aeron.RemoveUnavailableCounterHandler(Adaptive.Aeron.UnavailableCounterHandler handler) -> bool +Adaptive.Aeron.Aeron.RemoveUnavailableCounterHandler(long registrationId) -> bool +Adaptive.Aeron.AeronCounters +Adaptive.Aeron.AeronThrowHelper +Adaptive.Aeron.AeronThrowHelper.AeronThrowHelper() -> void +Adaptive.Aeron.AeronVersion +Adaptive.Aeron.AeronVersion.AeronVersion() -> void +Adaptive.Aeron.AvailableCounterHandler +Adaptive.Aeron.AvailableImageHandler +Adaptive.Aeron.BufferBuilder +Adaptive.Aeron.BufferBuilder.Append(Adaptive.Agrona.IDirectBuffer srcBuffer, int srcOffset, int length) -> Adaptive.Aeron.BufferBuilder +Adaptive.Aeron.BufferBuilder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Aeron.BufferBuilder.BufferBuilder() -> void +Adaptive.Aeron.BufferBuilder.BufferBuilder(int initialCapacity) -> void +Adaptive.Aeron.BufferBuilder.Capacity() -> int +Adaptive.Aeron.BufferBuilder.CaptureHeader(Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.BufferBuilder +Adaptive.Aeron.BufferBuilder.Compact() -> Adaptive.Aeron.BufferBuilder +Adaptive.Aeron.BufferBuilder.CompleteHeader(Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.Header +Adaptive.Aeron.BufferBuilder.Limit() -> int +Adaptive.Aeron.BufferBuilder.Limit(int limit) -> void +Adaptive.Aeron.BufferBuilder.NextTermOffset() -> int +Adaptive.Aeron.BufferBuilder.NextTermOffset(int offset) -> void +Adaptive.Aeron.BufferBuilder.Reset() -> Adaptive.Aeron.BufferBuilder +Adaptive.Aeron.ChannelUri +Adaptive.Aeron.ChannelUri.ChannelTag() -> string +Adaptive.Aeron.ChannelUri.ChannelUri(string prefix, string media, Adaptive.Agrona.Collections.Map params) -> void +Adaptive.Aeron.ChannelUri.ContainsKey(string key) -> bool +Adaptive.Aeron.ChannelUri.EntityTag() -> string +Adaptive.Aeron.ChannelUri.ForEachParameter(System.Action consumer) -> void +Adaptive.Aeron.ChannelUri.Get(string key, string defaultValue) -> string +Adaptive.Aeron.ChannelUri.Get(string key) -> string +Adaptive.Aeron.ChannelUri.HasControlModeResponse() -> bool +Adaptive.Aeron.ChannelUri.InitialPosition(long position, int initialTermId, int termLength) -> void +Adaptive.Aeron.ChannelUri.IsIpc.get -> bool +Adaptive.Aeron.ChannelUri.IsUdp.get -> bool +Adaptive.Aeron.ChannelUri.Media() -> string +Adaptive.Aeron.ChannelUri.Media(string media) -> Adaptive.Aeron.ChannelUri +Adaptive.Aeron.ChannelUri.Prefix() -> string +Adaptive.Aeron.ChannelUri.Prefix(string prefix) -> Adaptive.Aeron.ChannelUri +Adaptive.Aeron.ChannelUri.Put(string key, string value) -> string +Adaptive.Aeron.ChannelUri.Remove(string key) -> string +Adaptive.Aeron.ChannelUri.ReplaceEndpointWildcardPort(string resolvedEndpoint) -> void +Adaptive.Aeron.ChannelUri.Scheme() -> string +Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Alias() -> string +Adaptive.Aeron.ChannelUriStringBuilder.Alias(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Alias(string alias) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Build() -> string +Adaptive.Aeron.ChannelUriStringBuilder.ChannelReceiveTimestampOffset() -> string +Adaptive.Aeron.ChannelUriStringBuilder.ChannelReceiveTimestampOffset(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ChannelReceiveTimestampOffset(string timestampOffset) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ChannelSendTimestampOffset() -> string +Adaptive.Aeron.ChannelUriStringBuilder.ChannelSendTimestampOffset(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ChannelSendTimestampOffset(string timestampOffset) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ChannelUriStringBuilder() -> void +Adaptive.Aeron.ChannelUriStringBuilder.ChannelUriStringBuilder(Adaptive.Aeron.ChannelUri channelUri) -> void +Adaptive.Aeron.ChannelUriStringBuilder.ChannelUriStringBuilder(string initialUri) -> void +Adaptive.Aeron.ChannelUriStringBuilder.Clear() -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.CongestionControl() -> string +Adaptive.Aeron.ChannelUriStringBuilder.CongestionControl(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.CongestionControl(string congestionControl) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ControlEndpoint() -> string +Adaptive.Aeron.ChannelUriStringBuilder.ControlEndpoint(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ControlEndpoint(string controlEndpoint) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ControlMode() -> string +Adaptive.Aeron.ChannelUriStringBuilder.ControlMode(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ControlMode(string controlMode) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Endpoint() -> string +Adaptive.Aeron.ChannelUriStringBuilder.Endpoint(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Endpoint(string endpoint) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Eos() -> bool? +Adaptive.Aeron.ChannelUriStringBuilder.Eos(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Eos(bool? eos) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.FlowControl() -> string +Adaptive.Aeron.ChannelUriStringBuilder.FlowControl(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.FlowControl(string flowControl) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Group() -> bool? +Adaptive.Aeron.ChannelUriStringBuilder.Group(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Group(bool? group) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.GroupTag() -> long? +Adaptive.Aeron.ChannelUriStringBuilder.GroupTag(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.GroupTag(long? groupTag) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.InitialPosition(long position, int initialTermId, int termLength) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.InitialTermId() -> int? +Adaptive.Aeron.ChannelUriStringBuilder.InitialTermId(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.InitialTermId(int? initialTermId) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.IsSessionIdTagged() -> bool +Adaptive.Aeron.ChannelUriStringBuilder.IsSessionIdTagged(bool isSessionIdTagged) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Linger() -> long? +Adaptive.Aeron.ChannelUriStringBuilder.Linger(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Linger(long? lingerNs) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.MaxResend() -> int? +Adaptive.Aeron.ChannelUriStringBuilder.MaxResend(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.MaxResend(int? maxResend) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Media() -> string +Adaptive.Aeron.ChannelUriStringBuilder.Media(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Media(string media) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.MediaReceiveTimestampOffset() -> string +Adaptive.Aeron.ChannelUriStringBuilder.MediaReceiveTimestampOffset(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.MediaReceiveTimestampOffset(string timestampOffset) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.MinFlowControl(int? minGroupSize, string timeout) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Mtu() -> int? +Adaptive.Aeron.ChannelUriStringBuilder.Mtu(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Mtu(int? mtu) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.NakDelay() -> long? +Adaptive.Aeron.ChannelUriStringBuilder.NakDelay(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.NakDelay(string nakDelay) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.NetworkInterface() -> string +Adaptive.Aeron.ChannelUriStringBuilder.NetworkInterface(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.NetworkInterface(string networkInterface) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Prefix() -> string +Adaptive.Aeron.ChannelUriStringBuilder.Prefix(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Prefix(string prefix) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.PublicationWindowLength() -> int? +Adaptive.Aeron.ChannelUriStringBuilder.PublicationWindowLength(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.PublicationWindowLength(int? publicationWindowLength) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ReceiverWindowLength() -> int? +Adaptive.Aeron.ChannelUriStringBuilder.ReceiverWindowLength(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ReceiverWindowLength(int? receiverWindowLength) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Rejoin() -> bool? +Adaptive.Aeron.ChannelUriStringBuilder.Rejoin(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Rejoin(bool? rejoin) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Reliable() -> bool? +Adaptive.Aeron.ChannelUriStringBuilder.Reliable(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Reliable(bool? isReliable) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ResponseCorrelationId() -> string +Adaptive.Aeron.ChannelUriStringBuilder.ResponseCorrelationId(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ResponseCorrelationId(long? responseCorrelationId) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ResponseCorrelationId(string responseCorrelationId) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ResponseEndpoint() -> string +Adaptive.Aeron.ChannelUriStringBuilder.ResponseEndpoint(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.ResponseEndpoint(string responseEndpoint) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.SessionId() -> int? +Adaptive.Aeron.ChannelUriStringBuilder.SessionId(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.SessionId(int? sessionId) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.SessionId(string sessionIdStr) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.SocketRcvbufLength() -> int? +Adaptive.Aeron.ChannelUriStringBuilder.SocketRcvbufLength(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.SocketRcvbufLength(int? socketRcvbufLength) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.SocketSndbufLength() -> int? +Adaptive.Aeron.ChannelUriStringBuilder.SocketSndbufLength(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.SocketSndbufLength(int? socketSndbufLength) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Sparse() -> bool? +Adaptive.Aeron.ChannelUriStringBuilder.Sparse(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Sparse(bool? isSparse) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.SpiesSimulateConnection() -> bool? +Adaptive.Aeron.ChannelUriStringBuilder.SpiesSimulateConnection(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.SpiesSimulateConnection(bool? spiesSimulateConnection) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.StreamId() -> int? +Adaptive.Aeron.ChannelUriStringBuilder.StreamId(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.StreamId(int? streamId) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.TaggedFlowControl(long? groupTag, int? minGroupSize, string timeout) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.TaggedSessionId(long? sessionId) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Tags() -> string +Adaptive.Aeron.ChannelUriStringBuilder.Tags(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Tags(long? channelTag, long? pubSubTag) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Tags(string tags) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.TermId() -> int? +Adaptive.Aeron.ChannelUriStringBuilder.TermId(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.TermId(int? termId) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.TermLength() -> int? +Adaptive.Aeron.ChannelUriStringBuilder.TermLength(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.TermLength(int? termLength) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.TermOffset() -> int? +Adaptive.Aeron.ChannelUriStringBuilder.TermOffset(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.TermOffset(int? termOffset) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Tether() -> bool? +Adaptive.Aeron.ChannelUriStringBuilder.Tether(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Tether(bool? tether) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Ttl() -> int? +Adaptive.Aeron.ChannelUriStringBuilder.Ttl(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Ttl(int? ttl) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.UntetheredLingerTimeout(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.UntetheredLingerTimeout(string timeout) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.UntetheredLingerTimeoutNs() -> long? +Adaptive.Aeron.ChannelUriStringBuilder.UntetheredLingerTimeoutNs(long? timeout) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.UntetheredRestingTimeout(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.UntetheredRestingTimeout(string timeout) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.UntetheredRestingTimeoutNs() -> long? +Adaptive.Aeron.ChannelUriStringBuilder.UntetheredRestingTimeoutNs(long? timeout) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.UntetheredWindowLimitTimeout(Adaptive.Aeron.ChannelUri channelUri) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.UntetheredWindowLimitTimeout(string timeout) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.UntetheredWindowLimitTimeoutNs() -> long? +Adaptive.Aeron.ChannelUriStringBuilder.UntetheredWindowLimitTimeoutNs(long? timeout) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.ChannelUriStringBuilder.Validate() -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.CncFileDescriptor +Adaptive.Aeron.CncFileDescriptor.CncFileDescriptor() -> void +Adaptive.Aeron.Command.ClientTimeoutFlyweight +Adaptive.Aeron.Command.ClientTimeoutFlyweight.ClientId() -> long +Adaptive.Aeron.Command.ClientTimeoutFlyweight.ClientId(long clientId) -> Adaptive.Aeron.Command.ClientTimeoutFlyweight +Adaptive.Aeron.Command.ClientTimeoutFlyweight.ClientTimeoutFlyweight() -> void +Adaptive.Aeron.Command.ClientTimeoutFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.ClientTimeoutFlyweight +Adaptive.Aeron.Command.ControlProtocolEvents +Adaptive.Aeron.Command.ControlProtocolEvents.ControlProtocolEvents() -> void +Adaptive.Aeron.Command.CorrelatedMessageFlyweight +Adaptive.Aeron.Command.CorrelatedMessageFlyweight.ClientId() -> long +Adaptive.Aeron.Command.CorrelatedMessageFlyweight.ClientId(long clientId) -> Adaptive.Aeron.Command.CorrelatedMessageFlyweight +Adaptive.Aeron.Command.CorrelatedMessageFlyweight.CorrelatedMessageFlyweight() -> void +Adaptive.Aeron.Command.CorrelatedMessageFlyweight.CorrelationId() -> long +Adaptive.Aeron.Command.CorrelatedMessageFlyweight.CorrelationId(long correlationId) -> Adaptive.Aeron.Command.CorrelatedMessageFlyweight +Adaptive.Aeron.Command.CorrelatedMessageFlyweight.ValidateLength(int msgTypeId, int length) -> void +Adaptive.Aeron.Command.CorrelatedMessageFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.CorrelatedMessageFlyweight +Adaptive.Aeron.Command.CounterMessageFlyweight +Adaptive.Aeron.Command.CounterMessageFlyweight.CounterMessageFlyweight() -> void +Adaptive.Aeron.Command.CounterMessageFlyweight.KeyBuffer(Adaptive.Agrona.IDirectBuffer keyBuffer, int keyOffset, int keyLength) -> Adaptive.Aeron.Command.CounterMessageFlyweight +Adaptive.Aeron.Command.CounterMessageFlyweight.KeyBufferLength() -> int +Adaptive.Aeron.Command.CounterMessageFlyweight.KeyBufferOffset() -> int +Adaptive.Aeron.Command.CounterMessageFlyweight.Label(string label) -> Adaptive.Aeron.Command.CounterMessageFlyweight +Adaptive.Aeron.Command.CounterMessageFlyweight.LabelBuffer(Adaptive.Agrona.IDirectBuffer labelBuffer, int labelOffset, int labelLength) -> Adaptive.Aeron.Command.CounterMessageFlyweight +Adaptive.Aeron.Command.CounterMessageFlyweight.LabelBufferLength() -> int +Adaptive.Aeron.Command.CounterMessageFlyweight.LabelBufferOffset() -> int +Adaptive.Aeron.Command.CounterMessageFlyweight.Length() -> int +Adaptive.Aeron.Command.CounterMessageFlyweight.TypeId() -> int +Adaptive.Aeron.Command.CounterMessageFlyweight.TypeId(int typeId) -> Adaptive.Aeron.Command.CounterMessageFlyweight +Adaptive.Aeron.Command.CounterMessageFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.CounterMessageFlyweight +Adaptive.Aeron.Command.CounterUpdateFlyweight +Adaptive.Aeron.Command.CounterUpdateFlyweight.CorrelationId() -> long +Adaptive.Aeron.Command.CounterUpdateFlyweight.CorrelationId(long correlationId) -> Adaptive.Aeron.Command.CounterUpdateFlyweight +Adaptive.Aeron.Command.CounterUpdateFlyweight.CounterId() -> int +Adaptive.Aeron.Command.CounterUpdateFlyweight.CounterId(int counterId) -> Adaptive.Aeron.Command.CounterUpdateFlyweight +Adaptive.Aeron.Command.CounterUpdateFlyweight.CounterUpdateFlyweight() -> void +Adaptive.Aeron.Command.CounterUpdateFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.CounterUpdateFlyweight +Adaptive.Aeron.Command.DestinationByIdMessageFlyweight +Adaptive.Aeron.Command.DestinationByIdMessageFlyweight.DestinationByIdMessageFlyweight() -> void +Adaptive.Aeron.Command.DestinationByIdMessageFlyweight.DestinationRegistrationId() -> long +Adaptive.Aeron.Command.DestinationByIdMessageFlyweight.DestinationRegistrationId(long destinationRegistrationId) -> Adaptive.Aeron.Command.DestinationByIdMessageFlyweight +Adaptive.Aeron.Command.DestinationByIdMessageFlyweight.ResourceRegistrationId() -> long +Adaptive.Aeron.Command.DestinationByIdMessageFlyweight.ResourceRegistrationId(long registrationId) -> Adaptive.Aeron.Command.DestinationByIdMessageFlyweight +Adaptive.Aeron.Command.DestinationByIdMessageFlyweight.ValidateLength(int msgTypeId, int length) -> void +Adaptive.Aeron.Command.DestinationByIdMessageFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.DestinationByIdMessageFlyweight +Adaptive.Aeron.Command.DestinationMessageFlyweight +Adaptive.Aeron.Command.DestinationMessageFlyweight.AppendChannel(System.Text.StringBuilder stringBuilder) -> void +Adaptive.Aeron.Command.DestinationMessageFlyweight.Channel() -> string +Adaptive.Aeron.Command.DestinationMessageFlyweight.Channel(string channel) -> Adaptive.Aeron.Command.DestinationMessageFlyweight +Adaptive.Aeron.Command.DestinationMessageFlyweight.DestinationMessageFlyweight() -> void +Adaptive.Aeron.Command.DestinationMessageFlyweight.Length() -> int +Adaptive.Aeron.Command.DestinationMessageFlyweight.RegistrationCorrelationId() -> long +Adaptive.Aeron.Command.DestinationMessageFlyweight.RegistrationCorrelationId(long correlationId) -> Adaptive.Aeron.Command.DestinationMessageFlyweight +Adaptive.Aeron.Command.DestinationMessageFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.DestinationMessageFlyweight +Adaptive.Aeron.Command.ErrorResponseFlyweight +Adaptive.Aeron.Command.ErrorResponseFlyweight.AppendMessage(System.Text.StringBuilder stringBuilder) -> int +Adaptive.Aeron.Command.ErrorResponseFlyweight.ErrorCode() -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.Command.ErrorResponseFlyweight.ErrorCode(Adaptive.Aeron.ErrorCode code) -> Adaptive.Aeron.Command.ErrorResponseFlyweight +Adaptive.Aeron.Command.ErrorResponseFlyweight.ErrorCodeValue() -> int +Adaptive.Aeron.Command.ErrorResponseFlyweight.ErrorMessage() -> string +Adaptive.Aeron.Command.ErrorResponseFlyweight.ErrorMessage(string message) -> Adaptive.Aeron.Command.ErrorResponseFlyweight +Adaptive.Aeron.Command.ErrorResponseFlyweight.ErrorResponseFlyweight() -> void +Adaptive.Aeron.Command.ErrorResponseFlyweight.Length() -> int +Adaptive.Aeron.Command.ErrorResponseFlyweight.OffendingCommandCorrelationId() -> long +Adaptive.Aeron.Command.ErrorResponseFlyweight.OffendingCommandCorrelationId(long correlationId) -> Adaptive.Aeron.Command.ErrorResponseFlyweight +Adaptive.Aeron.Command.ErrorResponseFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.ErrorResponseFlyweight +Adaptive.Aeron.Command.GetNextAvailableSessionIdMessageFlyweight +Adaptive.Aeron.Command.GetNextAvailableSessionIdMessageFlyweight.GetNextAvailableSessionIdMessageFlyweight() -> void +Adaptive.Aeron.Command.GetNextAvailableSessionIdMessageFlyweight.Length() -> int +Adaptive.Aeron.Command.GetNextAvailableSessionIdMessageFlyweight.StreamId() -> int +Adaptive.Aeron.Command.GetNextAvailableSessionIdMessageFlyweight.StreamId(int streamId) -> Adaptive.Aeron.Command.GetNextAvailableSessionIdMessageFlyweight +Adaptive.Aeron.Command.GetNextAvailableSessionIdMessageFlyweight.ValidateLength(int msgTypeId, int length) -> void +Adaptive.Aeron.Command.GetNextAvailableSessionIdMessageFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.GetNextAvailableSessionIdMessageFlyweight +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.AppendLogFileName(System.Text.StringBuilder stringBuilder) -> void +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.AppendSourceIdentity(System.Text.StringBuilder stringBuilder) -> void +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.CorrelationId() -> long +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.CorrelationId(long correlationId) -> Adaptive.Aeron.Command.ImageBuffersReadyFlyweight +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.ImageBuffersReadyFlyweight() -> void +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.Length() -> int +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.LogFileName() -> string +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.LogFileName(string logFileName) -> Adaptive.Aeron.Command.ImageBuffersReadyFlyweight +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.SessionId() -> int +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.SessionId(int sessionId) -> Adaptive.Aeron.Command.ImageBuffersReadyFlyweight +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.SourceIdentity() -> string +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.SourceIdentity(string value) -> Adaptive.Aeron.Command.ImageBuffersReadyFlyweight +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.StreamId() -> int +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.StreamId(int streamId) -> Adaptive.Aeron.Command.ImageBuffersReadyFlyweight +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.SubscriberPositionId() -> int +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.SubscriberPositionId(int id) -> Adaptive.Aeron.Command.ImageBuffersReadyFlyweight +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.SubscriptionRegistrationId() -> long +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.SubscriptionRegistrationId(long id) -> Adaptive.Aeron.Command.ImageBuffersReadyFlyweight +Adaptive.Aeron.Command.ImageBuffersReadyFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.ImageBuffersReadyFlyweight +Adaptive.Aeron.Command.ImageMessageFlyweight +Adaptive.Aeron.Command.ImageMessageFlyweight.AppendChannel(System.Text.StringBuilder stringBuilder) -> void +Adaptive.Aeron.Command.ImageMessageFlyweight.Channel() -> string +Adaptive.Aeron.Command.ImageMessageFlyweight.Channel(string channel) -> Adaptive.Aeron.Command.ImageMessageFlyweight +Adaptive.Aeron.Command.ImageMessageFlyweight.CorrelationId() -> long +Adaptive.Aeron.Command.ImageMessageFlyweight.CorrelationId(long correlationId) -> Adaptive.Aeron.Command.ImageMessageFlyweight +Adaptive.Aeron.Command.ImageMessageFlyweight.ImageMessageFlyweight() -> void +Adaptive.Aeron.Command.ImageMessageFlyweight.Length() -> int +Adaptive.Aeron.Command.ImageMessageFlyweight.StreamId() -> int +Adaptive.Aeron.Command.ImageMessageFlyweight.StreamId(int streamId) -> Adaptive.Aeron.Command.ImageMessageFlyweight +Adaptive.Aeron.Command.ImageMessageFlyweight.SubscriptionRegistrationId() -> long +Adaptive.Aeron.Command.ImageMessageFlyweight.SubscriptionRegistrationId(long registrationId) -> Adaptive.Aeron.Command.ImageMessageFlyweight +Adaptive.Aeron.Command.ImageMessageFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.ImageMessageFlyweight +Adaptive.Aeron.Command.NextAvailableSessionIdFlyweight +Adaptive.Aeron.Command.NextAvailableSessionIdFlyweight.CorrelationId() -> long +Adaptive.Aeron.Command.NextAvailableSessionIdFlyweight.CorrelationId(long correlationId) -> Adaptive.Aeron.Command.NextAvailableSessionIdFlyweight +Adaptive.Aeron.Command.NextAvailableSessionIdFlyweight.NextAvailableSessionIdFlyweight() -> void +Adaptive.Aeron.Command.NextAvailableSessionIdFlyweight.NextSessionId() -> int +Adaptive.Aeron.Command.NextAvailableSessionIdFlyweight.NextSessionId(int sessionId) -> Adaptive.Aeron.Command.NextAvailableSessionIdFlyweight +Adaptive.Aeron.Command.NextAvailableSessionIdFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.NextAvailableSessionIdFlyweight +Adaptive.Aeron.Command.OperationSucceededFlyweight +Adaptive.Aeron.Command.OperationSucceededFlyweight.CorrelationId() -> long +Adaptive.Aeron.Command.OperationSucceededFlyweight.CorrelationId(long correlationId) -> Adaptive.Aeron.Command.OperationSucceededFlyweight +Adaptive.Aeron.Command.OperationSucceededFlyweight.OperationSucceededFlyweight() -> void +Adaptive.Aeron.Command.OperationSucceededFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.OperationSucceededFlyweight +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.AppendLogFileName(System.Text.StringBuilder stringBuilder) -> void +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.ChannelStatusCounterId() -> int +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.ChannelStatusCounterId(int counterId) -> Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.CorrelationId() -> long +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.CorrelationId(long correlationId) -> Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.Length() -> int +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.LogFileName() -> string +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.LogFileName(string logFileName) -> Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.PublicationBuffersReadyFlyweight() -> void +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.PublicationLimitCounterId() -> int +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.PublicationLimitCounterId(int positionCounterId) -> Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.RegistrationId() -> long +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.RegistrationId(long registrationId) -> Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.SessionId() -> int +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.SessionId(int sessionId) -> Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.StreamId() -> int +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.StreamId(int streamId) -> Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight +Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.PublicationBuffersReadyFlyweight +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.DestinationRegistrationId() -> long +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.DestinationRegistrationId(long registrationId) -> Adaptive.Aeron.Command.PublicationErrorFrameFlyweight +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.ErrorCode() -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.ErrorCode(Adaptive.Aeron.ErrorCode code) -> Adaptive.Aeron.Command.PublicationErrorFrameFlyweight +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.ErrorCodeValue() -> int +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.ErrorMessage() -> string +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.ErrorMessage(string message) -> Adaptive.Aeron.Command.PublicationErrorFrameFlyweight +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.GroupTag() -> long +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.GroupTag(long groupTag) -> Adaptive.Aeron.Command.PublicationErrorFrameFlyweight +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.Length() -> int +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.PublicationErrorFrameFlyweight() -> void +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.ReceiverId() -> long +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.ReceiverId(long receiverId) -> Adaptive.Aeron.Command.PublicationErrorFrameFlyweight +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.RegistrationId() -> long +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.RegistrationId(long registrationId) -> Adaptive.Aeron.Command.PublicationErrorFrameFlyweight +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.SessionId() -> int +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.SessionId(int sessionId) -> Adaptive.Aeron.Command.PublicationErrorFrameFlyweight +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.SourceAddress() -> System.Net.IPEndPoint +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.StreamId() -> int +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.StreamId(int streamId) -> Adaptive.Aeron.Command.PublicationErrorFrameFlyweight +Adaptive.Aeron.Command.PublicationErrorFrameFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.PublicationErrorFrameFlyweight +Adaptive.Aeron.Command.PublicationMessageFlyweight +Adaptive.Aeron.Command.PublicationMessageFlyweight.AppendChannel(System.Text.StringBuilder stringBuilder) -> void +Adaptive.Aeron.Command.PublicationMessageFlyweight.Channel() -> string +Adaptive.Aeron.Command.PublicationMessageFlyweight.Channel(string channel) -> Adaptive.Aeron.Command.PublicationMessageFlyweight +Adaptive.Aeron.Command.PublicationMessageFlyweight.Length() -> int +Adaptive.Aeron.Command.PublicationMessageFlyweight.PublicationMessageFlyweight() -> void +Adaptive.Aeron.Command.PublicationMessageFlyweight.StreamId() -> int +Adaptive.Aeron.Command.PublicationMessageFlyweight.StreamId(int streamId) -> Adaptive.Aeron.Command.PublicationMessageFlyweight +Adaptive.Aeron.Command.PublicationMessageFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.PublicationMessageFlyweight +Adaptive.Aeron.Command.RejectImageFlyweight +Adaptive.Aeron.Command.RejectImageFlyweight.ClientId(long clientId) -> Adaptive.Aeron.Command.RejectImageFlyweight +Adaptive.Aeron.Command.RejectImageFlyweight.CorrelationId(long correlationId) -> Adaptive.Aeron.Command.RejectImageFlyweight +Adaptive.Aeron.Command.RejectImageFlyweight.ImageCorrelationId() -> long +Adaptive.Aeron.Command.RejectImageFlyweight.ImageCorrelationId(long position) -> Adaptive.Aeron.Command.RejectImageFlyweight +Adaptive.Aeron.Command.RejectImageFlyweight.Position() -> long +Adaptive.Aeron.Command.RejectImageFlyweight.Position(long position) -> Adaptive.Aeron.Command.RejectImageFlyweight +Adaptive.Aeron.Command.RejectImageFlyweight.Reason() -> string +Adaptive.Aeron.Command.RejectImageFlyweight.Reason(string reason) -> Adaptive.Aeron.Command.RejectImageFlyweight +Adaptive.Aeron.Command.RejectImageFlyweight.ReasonBufferLength() -> int +Adaptive.Aeron.Command.RejectImageFlyweight.RejectImageFlyweight() -> void +Adaptive.Aeron.Command.RejectImageFlyweight.ValidateLength(int msgTypeId, int length) -> void +Adaptive.Aeron.Command.RejectImageFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.RejectImageFlyweight +Adaptive.Aeron.Command.RemoveCounterFlyweight +Adaptive.Aeron.Command.RemoveCounterFlyweight.RemoveCounterFlyweight() -> void +Adaptive.Aeron.Command.RemoveMessageFlyweight +Adaptive.Aeron.Command.RemoveMessageFlyweight.RegistrationId() -> long +Adaptive.Aeron.Command.RemoveMessageFlyweight.RegistrationId(long registrationId) -> Adaptive.Aeron.Command.RemoveMessageFlyweight +Adaptive.Aeron.Command.RemoveMessageFlyweight.RemoveMessageFlyweight() -> void +Adaptive.Aeron.Command.RemoveMessageFlyweight.ValidateLength(int msgTypeId, int length) -> void +Adaptive.Aeron.Command.RemoveMessageFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.RemoveMessageFlyweight +Adaptive.Aeron.Command.RemovePublicationFlyweight +Adaptive.Aeron.Command.RemovePublicationFlyweight.FlagsFieldIsValid(int messageLength) -> bool +Adaptive.Aeron.Command.RemovePublicationFlyweight.RemovePublicationFlyweight() -> void +Adaptive.Aeron.Command.RemovePublicationFlyweight.Revoke() -> bool +Adaptive.Aeron.Command.RemovePublicationFlyweight.Revoke(bool revoke) -> Adaptive.Aeron.Command.RemovePublicationFlyweight +Adaptive.Aeron.Command.RemovePublicationFlyweight.Revoke(int messageLength) -> bool +Adaptive.Aeron.Command.RemovePublicationFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.RemovePublicationFlyweight +Adaptive.Aeron.Command.RemoveSubscriptionFlyweight +Adaptive.Aeron.Command.RemoveSubscriptionFlyweight.RemoveSubscriptionFlyweight() -> void +Adaptive.Aeron.Command.StaticCounterFlyweight +Adaptive.Aeron.Command.StaticCounterFlyweight.CorrelationId() -> long +Adaptive.Aeron.Command.StaticCounterFlyweight.CorrelationId(long correlationId) -> Adaptive.Aeron.Command.StaticCounterFlyweight +Adaptive.Aeron.Command.StaticCounterFlyweight.CounterId() -> int +Adaptive.Aeron.Command.StaticCounterFlyweight.CounterId(int counterId) -> Adaptive.Aeron.Command.StaticCounterFlyweight +Adaptive.Aeron.Command.StaticCounterFlyweight.StaticCounterFlyweight() -> void +Adaptive.Aeron.Command.StaticCounterFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.StaticCounterFlyweight +Adaptive.Aeron.Command.StaticCounterMessageFlyweight +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.KeyBuffer(Adaptive.Agrona.IDirectBuffer keyBuffer, int keyOffset, int keyLength) -> Adaptive.Aeron.Command.StaticCounterMessageFlyweight +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.KeyBufferLength() -> int +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.KeyBufferOffset() -> int +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.Label(string label) -> Adaptive.Aeron.Command.StaticCounterMessageFlyweight +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.LabelBuffer(Adaptive.Agrona.IDirectBuffer labelBuffer, int labelOffset, int labelLength) -> Adaptive.Aeron.Command.StaticCounterMessageFlyweight +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.LabelBufferLength() -> int +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.LabelBufferOffset() -> int +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.Length() -> int +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.RegistrationId() -> long +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.RegistrationId(long registrationId) -> Adaptive.Aeron.Command.StaticCounterMessageFlyweight +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.StaticCounterMessageFlyweight() -> void +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.TypeId() -> int +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.TypeId(int typeId) -> Adaptive.Aeron.Command.StaticCounterMessageFlyweight +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.ValidateLength(int msgTypeId, int length) -> void +Adaptive.Aeron.Command.StaticCounterMessageFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.StaticCounterMessageFlyweight +Adaptive.Aeron.Command.SubscriptionMessageFlyweight +Adaptive.Aeron.Command.SubscriptionMessageFlyweight.AppendChannel(System.Text.StringBuilder stringBuilder) -> void +Adaptive.Aeron.Command.SubscriptionMessageFlyweight.Channel() -> string +Adaptive.Aeron.Command.SubscriptionMessageFlyweight.Channel(string channel) -> Adaptive.Aeron.Command.SubscriptionMessageFlyweight +Adaptive.Aeron.Command.SubscriptionMessageFlyweight.Length() -> int +Adaptive.Aeron.Command.SubscriptionMessageFlyweight.RegistrationCorrelationId() -> long +Adaptive.Aeron.Command.SubscriptionMessageFlyweight.RegistrationCorrelationId(long correlationId) -> Adaptive.Aeron.Command.SubscriptionMessageFlyweight +Adaptive.Aeron.Command.SubscriptionMessageFlyweight.StreamId() -> int +Adaptive.Aeron.Command.SubscriptionMessageFlyweight.StreamId(int streamId) -> Adaptive.Aeron.Command.SubscriptionMessageFlyweight +Adaptive.Aeron.Command.SubscriptionMessageFlyweight.SubscriptionMessageFlyweight() -> void +Adaptive.Aeron.Command.SubscriptionMessageFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.SubscriptionMessageFlyweight +Adaptive.Aeron.Command.SubscriptionReadyFlyweight +Adaptive.Aeron.Command.SubscriptionReadyFlyweight.ChannelStatusCounterId() -> int +Adaptive.Aeron.Command.SubscriptionReadyFlyweight.ChannelStatusCounterId(int counterId) -> Adaptive.Aeron.Command.SubscriptionReadyFlyweight +Adaptive.Aeron.Command.SubscriptionReadyFlyweight.CorrelationId() -> long +Adaptive.Aeron.Command.SubscriptionReadyFlyweight.CorrelationId(long correlationId) -> Adaptive.Aeron.Command.SubscriptionReadyFlyweight +Adaptive.Aeron.Command.SubscriptionReadyFlyweight.SubscriptionReadyFlyweight() -> void +Adaptive.Aeron.Command.SubscriptionReadyFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.SubscriptionReadyFlyweight +Adaptive.Aeron.Command.TerminateDriverFlyweight +Adaptive.Aeron.Command.TerminateDriverFlyweight.Length() -> int +Adaptive.Aeron.Command.TerminateDriverFlyweight.TerminateDriverFlyweight() -> void +Adaptive.Aeron.Command.TerminateDriverFlyweight.TokenBuffer(Adaptive.Agrona.IDirectBuffer tokenBuffer, int tokenOffset, int tokenLength) -> Adaptive.Aeron.Command.TerminateDriverFlyweight +Adaptive.Aeron.Command.TerminateDriverFlyweight.TokenBufferLength() -> int +Adaptive.Aeron.Command.TerminateDriverFlyweight.TokenBufferOffset() -> int +Adaptive.Aeron.Command.TerminateDriverFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Aeron.Command.TerminateDriverFlyweight +Adaptive.Aeron.ConcurrentPublication +Adaptive.Aeron.Config +Adaptive.Aeron.ControlledFragmentAssembler +Adaptive.Aeron.ControlledFragmentAssembler.Clear() -> void +Adaptive.Aeron.ControlledFragmentAssembler.ControlledFragmentAssembler(Adaptive.Aeron.LogBuffer.IControlledFragmentHandler delegate, int initialBufferLength = 0) -> void +Adaptive.Aeron.ControlledFragmentAssembler.Delegate() -> Adaptive.Aeron.LogBuffer.IControlledFragmentHandler +Adaptive.Aeron.ControlledFragmentAssembler.FreeSessionBuffer(int sessionId) -> bool +Adaptive.Aeron.ControlledFragmentAssembler.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Aeron.Counter +Adaptive.Aeron.Counter.Counter(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, long registrationId, int counterId) -> void +Adaptive.Aeron.Counter.RegistrationId.get -> long +Adaptive.Aeron.DirectBufferVector +Adaptive.Aeron.DirectBufferVector.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Aeron.DirectBufferVector.Buffer(Adaptive.Agrona.IDirectBuffer buffer) -> Adaptive.Aeron.DirectBufferVector +Adaptive.Aeron.DirectBufferVector.DirectBufferVector() -> void +Adaptive.Aeron.DirectBufferVector.DirectBufferVector(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> void +Adaptive.Aeron.DirectBufferVector.Length() -> int +Adaptive.Aeron.DirectBufferVector.Length(int length) -> Adaptive.Aeron.DirectBufferVector +Adaptive.Aeron.DirectBufferVector.Offset() -> int +Adaptive.Aeron.DirectBufferVector.Offset(int offset) -> Adaptive.Aeron.DirectBufferVector +Adaptive.Aeron.DirectBufferVector.Reset(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> Adaptive.Aeron.DirectBufferVector +Adaptive.Aeron.DirectBufferVector.Validate() -> Adaptive.Aeron.DirectBufferVector +Adaptive.Aeron.DriverProxy +Adaptive.Aeron.DriverProxy.AddCounter(int typeId, Adaptive.Agrona.IDirectBuffer keyBuffer, int keyOffset, int keyLength, Adaptive.Agrona.IDirectBuffer labelBuffer, int labelOffset, int labelLength) -> long +Adaptive.Aeron.DriverProxy.AddCounter(int typeId, string label) -> long +Adaptive.Aeron.DriverProxy.AddDestination(long registrationId, string endpointChannel) -> long +Adaptive.Aeron.DriverProxy.AddExclusivePublication(string channel, int streamId) -> long +Adaptive.Aeron.DriverProxy.AddPublication(string channel, int streamId) -> long +Adaptive.Aeron.DriverProxy.AddRcvDestination(long registrationId, string endpointChannel) -> long +Adaptive.Aeron.DriverProxy.AddSubscription(string channel, int streamId) -> long +Adaptive.Aeron.DriverProxy.ClientClose() -> void +Adaptive.Aeron.DriverProxy.DriverProxy(Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer toDriverCommandBuffer, long clientId) -> void +Adaptive.Aeron.DriverProxy.RejectImage(long imageCorrelationId, long position, string reason) -> long +Adaptive.Aeron.DriverProxy.RemoveCounter(long registrationId) -> long +Adaptive.Aeron.DriverProxy.RemoveDestination(long publicationRegistrationId, long destinationRegistrationId) -> long +Adaptive.Aeron.DriverProxy.RemoveDestination(long registrationId, string endpointChannel) -> long +Adaptive.Aeron.DriverProxy.RemovePublication(long registrationId, bool revoke) -> long +Adaptive.Aeron.DriverProxy.RemoveRcvDestination(long registrationId, string endpointChannel) -> long +Adaptive.Aeron.DriverProxy.RemoveSubscription(long registrationId) -> long +Adaptive.Aeron.DriverProxy.TerminateDriver(Adaptive.Agrona.IDirectBuffer tokenBuffer, int tokenOffset, int tokenLength) -> bool +Adaptive.Aeron.DriverProxy.TimeOfLastDriverKeepaliveMs() -> long +Adaptive.Aeron.DutyCycleStallTracker +Adaptive.Aeron.DutyCycleStallTracker.CycleTimeThresholdExceededCount() -> Adaptive.Agrona.Concurrent.Status.AtomicCounter +Adaptive.Aeron.DutyCycleStallTracker.CycleTimeThresholdNs() -> long +Adaptive.Aeron.DutyCycleStallTracker.DutyCycleStallTracker(Adaptive.Agrona.Concurrent.Status.AtomicCounter maxCycleTime, Adaptive.Agrona.Concurrent.Status.AtomicCounter cycleTimeThresholdExceededCount, long cycleTimeThresholdNs) -> void +Adaptive.Aeron.DutyCycleStallTracker.MaxCycleTime() -> Adaptive.Agrona.Concurrent.Status.AtomicCounter +Adaptive.Aeron.DutyCycleTracker +Adaptive.Aeron.DutyCycleTracker.DutyCycleTracker() -> void +Adaptive.Aeron.DutyCycleTracker.MeasureAndUpdate(long nowNs) -> void +Adaptive.Aeron.DutyCycleTracker.Update(long nowNs) -> void +Adaptive.Aeron.EndOfStreamHandler +Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.CHANNEL_ENDPOINT_ERROR = 4 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.GENERIC_ERROR = 11 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.IMAGE_REJECTED = 13 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.INVALID_CHANNEL = 1 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.MALFORMED_COMMAND = 7 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.NOT_SUPPORTED = 8 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.PUBLICATION_REVOKED = 14 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.RESOURCE_TEMPORARILY_UNAVAILABLE = 10 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.STORAGE_SPACE = 12 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.UNKNOWN_CODE_VALUE = -1 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.UNKNOWN_COMMAND_TYPE_ID = 6 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.UNKNOWN_COUNTER = 5 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.UNKNOWN_HOST = 9 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.UNKNOWN_PUBLICATION = 3 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.UNKNOWN_SUBSCRIPTION = 2 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.ErrorCode.UNUSED = 0 -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.Exceptions.AeronEvent +Adaptive.Aeron.Exceptions.AeronEvent.AeronEvent(string message, Adaptive.Aeron.Exceptions.Category category) -> void +Adaptive.Aeron.Exceptions.AeronEvent.AeronEvent(string message) -> void +Adaptive.Aeron.Exceptions.AeronException +Adaptive.Aeron.Exceptions.AeronException.AddSuppressed(System.Exception exception) -> void +Adaptive.Aeron.Exceptions.AeronException.AeronException() -> void +Adaptive.Aeron.Exceptions.AeronException.AeronException(Adaptive.Aeron.Exceptions.Category category) -> void +Adaptive.Aeron.Exceptions.AeronException.AeronException(string message, Adaptive.Aeron.Exceptions.Category category) -> void +Adaptive.Aeron.Exceptions.AeronException.AeronException(string message, System.Exception innerException, Adaptive.Aeron.Exceptions.Category category) -> void +Adaptive.Aeron.Exceptions.AeronException.AeronException(string message, System.Exception innerException) -> void +Adaptive.Aeron.Exceptions.AeronException.AeronException(string message) -> void +Adaptive.Aeron.Exceptions.AeronException.AeronException(System.Exception cause) -> void +Adaptive.Aeron.Exceptions.AeronException.AeronException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) -> void +Adaptive.Aeron.Exceptions.AeronException.Category.get -> Adaptive.Aeron.Exceptions.Category +Adaptive.Aeron.Exceptions.AeronException.SuppressedExceptions.get -> System.Collections.Generic.List +Adaptive.Aeron.Exceptions.AeronTimeoutException +Adaptive.Aeron.Exceptions.AeronTimeoutException.AeronTimeoutException() -> void +Adaptive.Aeron.Exceptions.AeronTimeoutException.AeronTimeoutException(string message, Adaptive.Aeron.Exceptions.Category category) -> void +Adaptive.Aeron.Exceptions.AeronTimeoutException.AeronTimeoutException(string message, System.Exception innerException, Adaptive.Aeron.Exceptions.Category category) -> void +Adaptive.Aeron.Exceptions.AeronTimeoutException.AeronTimeoutException(string message, System.Exception innerException) -> void +Adaptive.Aeron.Exceptions.AeronTimeoutException.AeronTimeoutException(string message) -> void +Adaptive.Aeron.Exceptions.Category +Adaptive.Aeron.Exceptions.Category.ERROR = 1 -> Adaptive.Aeron.Exceptions.Category +Adaptive.Aeron.Exceptions.Category.FATAL = 0 -> Adaptive.Aeron.Exceptions.Category +Adaptive.Aeron.Exceptions.Category.WARN = 2 -> Adaptive.Aeron.Exceptions.Category +Adaptive.Aeron.Exceptions.ChannelEndpointException +Adaptive.Aeron.Exceptions.ChannelEndpointException.ChannelEndpointException(int statusIndicatorId, string message) -> void +Adaptive.Aeron.Exceptions.ChannelEndpointException.StatusIndicatorId.get -> int +Adaptive.Aeron.Exceptions.ClientTimeoutException +Adaptive.Aeron.Exceptions.ClientTimeoutException.ClientTimeoutException(string message) -> void +Adaptive.Aeron.Exceptions.ConcurrentConcludeException +Adaptive.Aeron.Exceptions.ConcurrentConcludeException.ConcurrentConcludeException() -> void +Adaptive.Aeron.Exceptions.ConductorServiceTimeoutException +Adaptive.Aeron.Exceptions.ConductorServiceTimeoutException.ConductorServiceTimeoutException(string message) -> void +Adaptive.Aeron.Exceptions.ConfigurationException +Adaptive.Aeron.Exceptions.ConfigurationException.ConfigurationException(string message) -> void +Adaptive.Aeron.Exceptions.ControlProtocolException +Adaptive.Aeron.Exceptions.ControlProtocolException.ControlProtocolException(Adaptive.Aeron.ErrorCode code, string msg, System.Exception rootCause) -> void +Adaptive.Aeron.Exceptions.ControlProtocolException.ControlProtocolException(Adaptive.Aeron.ErrorCode code, string msg) -> void +Adaptive.Aeron.Exceptions.ControlProtocolException.ControlProtocolException(Adaptive.Aeron.ErrorCode code, System.Exception rootCause) -> void +Adaptive.Aeron.Exceptions.ControlProtocolException.ErrorCode() -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.Exceptions.DriverTimeoutException +Adaptive.Aeron.Exceptions.DriverTimeoutException.DriverTimeoutException(string message) -> void +Adaptive.Aeron.Exceptions.RegistrationException +Adaptive.Aeron.Exceptions.RegistrationException.CorrelationId() -> long +Adaptive.Aeron.Exceptions.RegistrationException.ErrorCode() -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.Exceptions.RegistrationException.ErrorCodeValue() -> int +Adaptive.Aeron.Exceptions.RegistrationException.RegistrationException(Adaptive.Aeron.Exceptions.RegistrationException cause) -> void +Adaptive.Aeron.Exceptions.RegistrationException.RegistrationException(long correlationId, int errorCodeValue, Adaptive.Aeron.ErrorCode code, string msg) -> void +Adaptive.Aeron.Exceptions.StorageSpaceException +Adaptive.Aeron.Exceptions.StorageSpaceException.StorageSpaceException(string message) -> void +Adaptive.Aeron.ExclusivePublication +Adaptive.Aeron.ExclusivePublication.AppendPadding(int length) -> long +Adaptive.Aeron.ExclusivePublication.OfferBlock(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, int length) -> long +Adaptive.Aeron.ExclusivePublication.Revoke() -> void +Adaptive.Aeron.ExclusivePublication.RevokeOnClose() -> void +Adaptive.Aeron.ExclusivePublication.TermId() -> int +Adaptive.Aeron.ExclusivePublication.TermOffset() -> int +Adaptive.Aeron.FragmentAssembler +Adaptive.Aeron.FragmentAssembler.Clear() -> void +Adaptive.Aeron.FragmentAssembler.Delegate() -> Adaptive.Aeron.LogBuffer.IFragmentHandler +Adaptive.Aeron.FragmentAssembler.FragmentAssembler(Adaptive.Aeron.LogBuffer.FragmentHandler fragmentHandler, int initialBufferLength = 0) -> void +Adaptive.Aeron.FragmentAssembler.FragmentAssembler(Adaptive.Aeron.LogBuffer.IFragmentHandler fragmentHandler, int initialBufferLength = 0) -> void +Adaptive.Aeron.FragmentAssembler.FreeSessionBuffer(int sessionId) -> bool +Adaptive.Aeron.FragmentAssembler.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> void +Adaptive.Aeron.ILogBuffersFactory +Adaptive.Aeron.ILogBuffersFactory.Map(string logFileName) -> Adaptive.Aeron.LogBuffers +Adaptive.Aeron.Image +Adaptive.Aeron.Image.ActiveTransportCount() -> int +Adaptive.Aeron.Image.BlockPoll(Adaptive.Aeron.LogBuffer.BlockHandler handler, int blockLengthLimit) -> int +Adaptive.Aeron.Image.BoundedControlledPoll(Adaptive.Aeron.LogBuffer.ControlledFragmentHandler handler, long limitPosition, int fragmentLimit) -> int +Adaptive.Aeron.Image.BoundedControlledPoll(Adaptive.Aeron.LogBuffer.IControlledFragmentHandler handler, long limitPosition, int fragmentLimit) -> int +Adaptive.Aeron.Image.BoundedPoll(Adaptive.Aeron.LogBuffer.FragmentHandler handler, long limitPosition, int fragmentLimit) -> int +Adaptive.Aeron.Image.BoundedPoll(Adaptive.Aeron.LogBuffer.IFragmentHandler handler, long limitPosition, int fragmentLimit) -> int +Adaptive.Aeron.Image.Closed.get -> bool +Adaptive.Aeron.Image.ControlledPeek(long initialPosition, Adaptive.Aeron.LogBuffer.ControlledFragmentHandler handler, long limitPosition) -> long +Adaptive.Aeron.Image.ControlledPeek(long initialPosition, Adaptive.Aeron.LogBuffer.IControlledFragmentHandler handler, long limitPosition) -> long +Adaptive.Aeron.Image.ControlledPoll(Adaptive.Aeron.LogBuffer.ControlledFragmentHandler handler, int fragmentLimit) -> int +Adaptive.Aeron.Image.ControlledPoll(Adaptive.Aeron.LogBuffer.IControlledFragmentHandler handler, int fragmentLimit) -> int +Adaptive.Aeron.Image.CorrelationId.get -> long +Adaptive.Aeron.Image.EndOfStreamPosition.get -> long +Adaptive.Aeron.Image.FileStream.get -> System.IO.FileStream +Adaptive.Aeron.Image.Image(Adaptive.Aeron.Subscription subscription, int sessionId, Adaptive.Agrona.Concurrent.Status.IPosition subscriberPosition, Adaptive.Aeron.LogBuffers logBuffers, Adaptive.Agrona.IErrorHandler errorHandler, string sourceIdentity, long correlationId) -> void +Adaptive.Aeron.Image.InitialTermId.get -> int +Adaptive.Aeron.Image.IsEndOfStream.get -> bool +Adaptive.Aeron.Image.JoinPosition.get -> long +Adaptive.Aeron.Image.MtuLength.get -> int +Adaptive.Aeron.Image.Poll(Adaptive.Aeron.LogBuffer.FragmentHandler fragmentHandler, int fragmentLimit) -> int +Adaptive.Aeron.Image.Poll(Adaptive.Aeron.LogBuffer.IFragmentHandler fragmentHandler, int fragmentLimit) -> int +Adaptive.Aeron.Image.Position.get -> long +Adaptive.Aeron.Image.Position.set -> void +Adaptive.Aeron.Image.PositionBitsToShift.get -> int +Adaptive.Aeron.Image.PublicationRevoked.get -> bool +Adaptive.Aeron.Image.RawPoll(Adaptive.Aeron.LogBuffer.RawBlockHandler handler, int blockLengthLimit) -> int +Adaptive.Aeron.Image.Reject(string reason) -> void +Adaptive.Aeron.Image.SessionId.get -> int +Adaptive.Aeron.Image.SourceIdentity.get -> string +Adaptive.Aeron.Image.SubscriberPositionId.get -> int +Adaptive.Aeron.Image.Subscription.get -> Adaptive.Aeron.Subscription +Adaptive.Aeron.Image.TermBufferLength.get -> int +Adaptive.Aeron.ImageControlledFragmentAssembler +Adaptive.Aeron.ImageControlledFragmentAssembler.Builder() -> Adaptive.Aeron.BufferBuilder +Adaptive.Aeron.ImageControlledFragmentAssembler.Delegate() -> Adaptive.Aeron.LogBuffer.IControlledFragmentHandler +Adaptive.Aeron.ImageControlledFragmentAssembler.ImageControlledFragmentAssembler(Adaptive.Aeron.LogBuffer.IControlledFragmentHandler delegate, int initialBufferLength = 0) -> void +Adaptive.Aeron.ImageControlledFragmentAssembler.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Aeron.ImageFragmentAssembler +Adaptive.Aeron.ImageFragmentAssembler.Delegate() -> Adaptive.Aeron.LogBuffer.IFragmentHandler +Adaptive.Aeron.ImageFragmentAssembler.ImageFragmentAssembler(Adaptive.Aeron.LogBuffer.FragmentHandler fragmentHandler, int initialBufferLength = 0) -> void +Adaptive.Aeron.ImageFragmentAssembler.ImageFragmentAssembler(Adaptive.Aeron.LogBuffer.IFragmentHandler fragmentHandler, int initialBufferLength = 0) -> void +Adaptive.Aeron.ImageFragmentAssembler.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> void +Adaptive.Aeron.IPublicationErrorFrameHandler +Adaptive.Aeron.IPublicationErrorFrameHandler.OnPublicationError(Adaptive.Aeron.Status.PublicationErrorFrame errorFrame) -> void +Adaptive.Aeron.LogBuffer.BlockHandler +Adaptive.Aeron.LogBuffer.BufferClaim +Adaptive.Aeron.LogBuffer.BufferClaim.Abort() -> void +Adaptive.Aeron.LogBuffer.BufferClaim.Buffer.get -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Aeron.LogBuffer.BufferClaim.BufferClaim() -> void +Adaptive.Aeron.LogBuffer.BufferClaim.Commit() -> void +Adaptive.Aeron.LogBuffer.BufferClaim.Flags() -> byte +Adaptive.Aeron.LogBuffer.BufferClaim.Flags(byte flags) -> Adaptive.Aeron.LogBuffer.BufferClaim +Adaptive.Aeron.LogBuffer.BufferClaim.HeaderType() -> int +Adaptive.Aeron.LogBuffer.BufferClaim.HeaderType(int type) -> Adaptive.Aeron.LogBuffer.BufferClaim +Adaptive.Aeron.LogBuffer.BufferClaim.Length.get -> int +Adaptive.Aeron.LogBuffer.BufferClaim.Offset.get -> int +Adaptive.Aeron.LogBuffer.BufferClaim.PutBytes(Adaptive.Agrona.IDirectBuffer srcBuffer, int srcIndex, int length) -> Adaptive.Aeron.LogBuffer.BufferClaim +Adaptive.Aeron.LogBuffer.BufferClaim.ReservedValue() -> long +Adaptive.Aeron.LogBuffer.BufferClaim.ReservedValue(long value) -> Adaptive.Aeron.LogBuffer.BufferClaim +Adaptive.Aeron.LogBuffer.BufferClaim.Wrap(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, int offset, int length) -> void +Adaptive.Aeron.LogBuffer.ControlledFragmentHandler +Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction.ABORT = 0 -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction.BREAK = 1 -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction.COMMIT = 2 -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction.CONTINUE = 3 -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Aeron.LogBuffer.FragmentHandler +Adaptive.Aeron.LogBuffer.FrameDescriptor +Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameDescriptor() -> void +Adaptive.Aeron.LogBuffer.HandlerHelper +Adaptive.Aeron.LogBuffer.Header +Adaptive.Aeron.LogBuffer.Header.Buffer.get -> Adaptive.Agrona.IDirectBuffer +Adaptive.Aeron.LogBuffer.Header.Buffer.set -> void +Adaptive.Aeron.LogBuffer.Header.Context.get -> object +Adaptive.Aeron.LogBuffer.Header.Context.set -> void +Adaptive.Aeron.LogBuffer.Header.Flags.get -> byte +Adaptive.Aeron.LogBuffer.Header.FragmentedFrameLength.get -> int +Adaptive.Aeron.LogBuffer.Header.FragmentedFrameLength.set -> void +Adaptive.Aeron.LogBuffer.Header.FrameLength.get -> int +Adaptive.Aeron.LogBuffer.Header.Header(int initialTermId, int positionBitsToShift, object context) -> void +Adaptive.Aeron.LogBuffer.Header.Header(int initialTermId, int positionBitsToShift) -> void +Adaptive.Aeron.LogBuffer.Header.InitialTermId.get -> int +Adaptive.Aeron.LogBuffer.Header.InitialTermId.set -> void +Adaptive.Aeron.LogBuffer.Header.NextTermOffset.get -> int +Adaptive.Aeron.LogBuffer.Header.Offset.get -> int +Adaptive.Aeron.LogBuffer.Header.Offset.set -> void +Adaptive.Aeron.LogBuffer.Header.Position.get -> long +Adaptive.Aeron.LogBuffer.Header.PositionBitsToShift.get -> int +Adaptive.Aeron.LogBuffer.Header.PositionBitsToShift.set -> void +Adaptive.Aeron.LogBuffer.Header.ReservedValue.get -> long +Adaptive.Aeron.LogBuffer.Header.SessionId.get -> int +Adaptive.Aeron.LogBuffer.Header.SetBuffer(Adaptive.Agrona.IDirectBuffer buffer, int offset) -> void +Adaptive.Aeron.LogBuffer.Header.StreamId.get -> int +Adaptive.Aeron.LogBuffer.Header.TermId.get -> int +Adaptive.Aeron.LogBuffer.Header.TermOffset.get -> int +Adaptive.Aeron.LogBuffer.Header.Type.get -> int +Adaptive.Aeron.LogBuffer.HeaderWriter +Adaptive.Aeron.LogBuffer.HeaderWriter.HeaderWriter() -> void +Adaptive.Aeron.LogBuffer.HeaderWriter.HeaderWriter(Adaptive.Agrona.Concurrent.UnsafeBuffer defaultHeader) -> void +Adaptive.Aeron.LogBuffer.HeaderWriter.Write(Adaptive.Agrona.Concurrent.UnsafeBuffer termBuffer, int offset, int length, int termId) -> void +Adaptive.Aeron.LogBuffer.IBlockHandler +Adaptive.Aeron.LogBuffer.IBlockHandler.OnBlock(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, int sessionId, int termId) -> void +Adaptive.Aeron.LogBuffer.IControlledFragmentHandler +Adaptive.Aeron.LogBuffer.IControlledFragmentHandler.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Aeron.LogBuffer.IFragmentHandler +Adaptive.Aeron.LogBuffer.IFragmentHandler.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> void +Adaptive.Aeron.LogBuffer.LogBufferDescriptor +Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LogBufferDescriptor() -> void +Adaptive.Aeron.LogBuffer.RawBlockHandler +Adaptive.Aeron.LogBuffer.TermBlockScanner +Adaptive.Aeron.LogBuffer.TermBlockScanner.TermBlockScanner() -> void +Adaptive.Aeron.LogBuffer.TermReader +Adaptive.Aeron.LogBuffer.TermReader.TermReader() -> void +Adaptive.Aeron.LogBuffer.TermRebuilder +Adaptive.Aeron.LogBuffer.TermRebuilder.TermRebuilder() -> void +Adaptive.Aeron.LogBuffers +Adaptive.Aeron.LogBuffers.DecRef() -> int +Adaptive.Aeron.LogBuffers.Dispose() -> void +Adaptive.Aeron.LogBuffers.DuplicateTermBuffers() -> Adaptive.Agrona.Concurrent.UnsafeBuffer[] +Adaptive.Aeron.LogBuffers.FileStream.get -> System.IO.FileStream +Adaptive.Aeron.LogBuffers.IncRef() -> int +Adaptive.Aeron.LogBuffers.LingerDeadlineNs() -> long +Adaptive.Aeron.LogBuffers.LingerDeadlineNs(long timeNs) -> void +Adaptive.Aeron.LogBuffers.LogBuffers(string logFileName) -> void +Adaptive.Aeron.LogBuffers.MetaDataBuffer() -> Adaptive.Agrona.Concurrent.UnsafeBuffer +Adaptive.Aeron.LogBuffers.PreTouch() -> void +Adaptive.Aeron.LogBuffers.TermLength() -> int +Adaptive.Aeron.NoOpPublicationErrorFrameHandler +Adaptive.Aeron.NoOpPublicationErrorFrameHandler.NoOpPublicationErrorFrameHandler() -> void +Adaptive.Aeron.NoOpPublicationErrorFrameHandler.OnPublicationError(Adaptive.Aeron.Status.PublicationErrorFrame errorFrame) -> void +Adaptive.Aeron.Protocol.DataHeaderFlyweight +Adaptive.Aeron.Protocol.DataHeaderFlyweight.DataHeaderFlyweight() -> void +Adaptive.Aeron.Protocol.DataHeaderFlyweight.DataHeaderFlyweight(Adaptive.Agrona.Concurrent.UnsafeBuffer buffer) -> void +Adaptive.Aeron.Protocol.DataHeaderFlyweight.DataOffset() -> int +Adaptive.Aeron.Protocol.DataHeaderFlyweight.ReservedValue() -> long +Adaptive.Aeron.Protocol.DataHeaderFlyweight.ReservedValue(long reservedValue) -> Adaptive.Aeron.Protocol.DataHeaderFlyweight +Adaptive.Aeron.Protocol.DataHeaderFlyweight.SessionId() -> int +Adaptive.Aeron.Protocol.DataHeaderFlyweight.SessionId(int sessionId) -> Adaptive.Aeron.Protocol.DataHeaderFlyweight +Adaptive.Aeron.Protocol.DataHeaderFlyweight.StreamId() -> int +Adaptive.Aeron.Protocol.DataHeaderFlyweight.StreamId(int streamId) -> Adaptive.Aeron.Protocol.DataHeaderFlyweight +Adaptive.Aeron.Protocol.DataHeaderFlyweight.TermId() -> int +Adaptive.Aeron.Protocol.DataHeaderFlyweight.TermId(int termId) -> Adaptive.Aeron.Protocol.DataHeaderFlyweight +Adaptive.Aeron.Protocol.DataHeaderFlyweight.TermOffset() -> int +Adaptive.Aeron.Protocol.DataHeaderFlyweight.TermOffset(int termOffset) -> Adaptive.Aeron.Protocol.DataHeaderFlyweight +Adaptive.Aeron.Protocol.HeaderFlyweight +Adaptive.Aeron.Protocol.HeaderFlyweight.Flags() -> short +Adaptive.Aeron.Protocol.HeaderFlyweight.Flags(short flags) -> Adaptive.Aeron.Protocol.HeaderFlyweight +Adaptive.Aeron.Protocol.HeaderFlyweight.FrameLength() -> int +Adaptive.Aeron.Protocol.HeaderFlyweight.FrameLength(int length) -> Adaptive.Aeron.Protocol.HeaderFlyweight +Adaptive.Aeron.Protocol.HeaderFlyweight.HeaderFlyweight() -> void +Adaptive.Aeron.Protocol.HeaderFlyweight.HeaderFlyweight(Adaptive.Agrona.Concurrent.UnsafeBuffer buffer) -> void +Adaptive.Aeron.Protocol.HeaderFlyweight.HeaderType() -> int +Adaptive.Aeron.Protocol.HeaderFlyweight.HeaderType(int type) -> Adaptive.Aeron.Protocol.HeaderFlyweight +Adaptive.Aeron.Protocol.HeaderFlyweight.Version() -> short +Adaptive.Aeron.Protocol.HeaderFlyweight.Version(short version) -> Adaptive.Aeron.Protocol.HeaderFlyweight +Adaptive.Aeron.Publication +Adaptive.Aeron.Publication.AddDestination(string endpointChannel) -> void +Adaptive.Aeron.Publication.AsyncAddDestination(string endpointChannel) -> long +Adaptive.Aeron.Publication.AsyncRemoveDestination(long destinationRegistrationId) -> long +Adaptive.Aeron.Publication.AsyncRemoveDestination(string endpointChannel) -> long +Adaptive.Aeron.Publication.Channel.get -> string +Adaptive.Aeron.Publication.ChannelStatus.get -> long +Adaptive.Aeron.Publication.ChannelStatusId.get -> int +Adaptive.Aeron.Publication.Dispose() -> void +Adaptive.Aeron.Publication.InitialTermId.get -> int +Adaptive.Aeron.Publication.IsClosed.get -> bool +Adaptive.Aeron.Publication.IsConnected.get -> bool +Adaptive.Aeron.Publication.IsOriginal.get -> bool +Adaptive.Aeron.Publication.LocalSocketAddresses() -> System.Collections.Generic.List +Adaptive.Aeron.Publication.MaxMessageLength.get -> int +Adaptive.Aeron.Publication.MaxPayloadLength.get -> int +Adaptive.Aeron.Publication.MaxPossiblePosition.get -> long +Adaptive.Aeron.Publication.Offer(Adaptive.Agrona.Concurrent.UnsafeBuffer buffer) -> long +Adaptive.Aeron.Publication.OriginalRegistrationId.get -> long +Adaptive.Aeron.Publication.PositionBitsToShift.get -> int +Adaptive.Aeron.Publication.PositionLimit.get -> long +Adaptive.Aeron.Publication.PositionLimitId.get -> int +Adaptive.Aeron.Publication.RegistrationId.get -> long +Adaptive.Aeron.Publication.RemoveDestination(long registrationId) -> void +Adaptive.Aeron.Publication.RemoveDestination(string endpointChannel) -> void +Adaptive.Aeron.Publication.SessionId.get -> int +Adaptive.Aeron.Publication.StreamId.get -> int +Adaptive.Aeron.Publication.TermBufferLength.get -> int +Adaptive.Aeron.ReservedValueSupplier +Adaptive.Aeron.RethrowingErrorHandler +Adaptive.Aeron.RethrowingErrorHandler.OnError(System.Exception exception) -> void +Adaptive.Aeron.RethrowingErrorHandler.RethrowingErrorHandler() -> void +Adaptive.Aeron.Security.AllowAllAuthorisationService +Adaptive.Aeron.Security.AllowAllAuthorisationService.AllowAllAuthorisationService() -> void +Adaptive.Aeron.Security.AllowAllAuthorisationService.IsAuthorised(int protocolId, int actionId, object type, byte[] encodedPrincipal) -> bool +Adaptive.Aeron.Security.AuthenticationException +Adaptive.Aeron.Security.AuthenticationException.AuthenticationException(string message) -> void +Adaptive.Aeron.Security.DefaultAuthenticatorSupplier +Adaptive.Aeron.Security.DefaultAuthenticatorSupplier.DefaultAuthenticatorSupplier() -> void +Adaptive.Aeron.Security.DefaultAuthenticatorSupplier.Get() -> Adaptive.Aeron.Security.IAuthenticator +Adaptive.Aeron.Security.DenyAllAuthorisationService +Adaptive.Aeron.Security.DenyAllAuthorisationService.DenyAllAuthorisationService() -> void +Adaptive.Aeron.Security.DenyAllAuthorisationService.IsAuthorised(int protocolId, int actionId, object type, byte[] encodedPrincipal) -> bool +Adaptive.Aeron.Security.IAuthenticator +Adaptive.Aeron.Security.IAuthenticator.OnChallengedSession(Adaptive.Aeron.Security.ISessionProxy sessionProxy, long nowMs) -> void +Adaptive.Aeron.Security.IAuthenticator.OnChallengeResponse(long sessionId, byte[] encodedCredentials, long nowMs) -> void +Adaptive.Aeron.Security.IAuthenticator.OnConnectedSession(Adaptive.Aeron.Security.ISessionProxy sessionProxy, long nowMs) -> void +Adaptive.Aeron.Security.IAuthenticator.OnConnectRequest(long sessionId, byte[] encodedCredentials, long nowMs) -> void +Adaptive.Aeron.Security.IAuthenticatorSupplier +Adaptive.Aeron.Security.IAuthenticatorSupplier.Get() -> Adaptive.Aeron.Security.IAuthenticator +Adaptive.Aeron.Security.IAuthorisationService +Adaptive.Aeron.Security.IAuthorisationService.IsAuthorised(int protocolId, int actionId, object type, byte[] encodedPrincipal) -> bool +Adaptive.Aeron.Security.IAuthorisationServiceSupplier +Adaptive.Aeron.Security.IAuthorisationServiceSupplier.Get() -> Adaptive.Aeron.Security.IAuthorisationService +Adaptive.Aeron.Security.ICredentialsSupplier +Adaptive.Aeron.Security.ICredentialsSupplier.EncodedCredentials() -> byte[] +Adaptive.Aeron.Security.ICredentialsSupplier.OnChallenge(byte[] endcodedChallenge) -> byte[] +Adaptive.Aeron.Security.ISessionProxy +Adaptive.Aeron.Security.ISessionProxy.Authenticate(byte[] encodedPrincipal) -> bool +Adaptive.Aeron.Security.ISessionProxy.Challenge(byte[] encodedChallenge) -> bool +Adaptive.Aeron.Security.ISessionProxy.Reject() -> void +Adaptive.Aeron.Security.ISessionProxy.SessionId() -> long +Adaptive.Aeron.Security.NullCredentialsSupplier +Adaptive.Aeron.Security.NullCredentialsSupplier.EncodedCredentials() -> byte[] +Adaptive.Aeron.Security.NullCredentialsSupplier.NullCredentialsSupplier() -> void +Adaptive.Aeron.Security.NullCredentialsSupplier.OnChallenge(byte[] endcodedChallenge) -> byte[] +Adaptive.Aeron.Status.ChannelEndpointStatus +Adaptive.Aeron.Status.HeartbeatTimestamp +Adaptive.Aeron.Status.HeartbeatTimestamp.HeartbeatTimestamp() -> void +Adaptive.Aeron.Status.LocalSocketAddressStatus +Adaptive.Aeron.Status.LocalSocketAddressStatus.LocalSocketAddressStatus() -> void +Adaptive.Aeron.Status.PublicationErrorFrame +Adaptive.Aeron.Status.PublicationErrorFrame.Clone() -> object +Adaptive.Aeron.Status.PublicationErrorFrame.DestinationRegistrationId() -> long +Adaptive.Aeron.Status.PublicationErrorFrame.ErrorCode() -> Adaptive.Aeron.ErrorCode +Adaptive.Aeron.Status.PublicationErrorFrame.ErrorMessage() -> string +Adaptive.Aeron.Status.PublicationErrorFrame.GroupTag() -> long +Adaptive.Aeron.Status.PublicationErrorFrame.PublicationErrorFrame() -> void +Adaptive.Aeron.Status.PublicationErrorFrame.ReceiverId() -> long +Adaptive.Aeron.Status.PublicationErrorFrame.RegistrationId() -> long +Adaptive.Aeron.Status.PublicationErrorFrame.SessionId() -> int +Adaptive.Aeron.Status.PublicationErrorFrame.Set(Adaptive.Aeron.Command.PublicationErrorFrameFlyweight frameFlyweight) -> Adaptive.Aeron.Status.PublicationErrorFrame +Adaptive.Aeron.Status.PublicationErrorFrame.SourceAddress() -> System.Net.IPEndPoint +Adaptive.Aeron.Status.PublicationErrorFrame.StreamId() -> int +Adaptive.Aeron.Status.ReadableCounter +Adaptive.Aeron.Status.ReadableCounter.CounterId.get -> int +Adaptive.Aeron.Status.ReadableCounter.Dispose() -> void +Adaptive.Aeron.Status.ReadableCounter.Get() -> long +Adaptive.Aeron.Status.ReadableCounter.GetWeak() -> long +Adaptive.Aeron.Status.ReadableCounter.IsClosed.get -> bool +Adaptive.Aeron.Status.ReadableCounter.Label.get -> string +Adaptive.Aeron.Status.ReadableCounter.ReadableCounter(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, int counterId) -> void +Adaptive.Aeron.Status.ReadableCounter.ReadableCounter(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, long registrationId, int counterId) -> void +Adaptive.Aeron.Status.ReadableCounter.RegistrationId.get -> long +Adaptive.Aeron.Status.ReadableCounter.State.get -> int +Adaptive.Aeron.Subscription +Adaptive.Aeron.Subscription.AddDestination(string endpointChannel) -> void +Adaptive.Aeron.Subscription.AsyncAddDestination(string endpointChannel) -> long +Adaptive.Aeron.Subscription.AsyncRemoveDestination(string endpointChannel) -> long +Adaptive.Aeron.Subscription.AvailableImageHandler.get -> Adaptive.Aeron.AvailableImageHandler +Adaptive.Aeron.Subscription.BlockPoll(Adaptive.Aeron.LogBuffer.BlockHandler blockHandler, int blockLengthLimit) -> long +Adaptive.Aeron.Subscription.Channel.get -> string +Adaptive.Aeron.Subscription.ChannelStatus.get -> long +Adaptive.Aeron.Subscription.ChannelStatusId.get -> int +Adaptive.Aeron.Subscription.ControlledPoll(Adaptive.Aeron.LogBuffer.ControlledFragmentHandler fragmentHandler, int fragmentLimit) -> int +Adaptive.Aeron.Subscription.ControlledPoll(Adaptive.Aeron.LogBuffer.IControlledFragmentHandler fragmentHandler, int fragmentLimit) -> int +Adaptive.Aeron.Subscription.Dispose() -> void +Adaptive.Aeron.Subscription.ForEachImage(System.Action consumer) -> void +Adaptive.Aeron.Subscription.HasNoImages.get -> bool +Adaptive.Aeron.Subscription.ImageAtIndex(int index) -> Adaptive.Aeron.Image +Adaptive.Aeron.Subscription.ImageBySessionId(int sessionId) -> Adaptive.Aeron.Image +Adaptive.Aeron.Subscription.ImageCount.get -> int +Adaptive.Aeron.Subscription.Images.get -> System.Collections.Generic.IList +Adaptive.Aeron.Subscription.IsClosed.get -> bool +Adaptive.Aeron.Subscription.IsConnected.get -> bool +Adaptive.Aeron.Subscription.LocalSocketAddresses.get -> System.Collections.Generic.List +Adaptive.Aeron.Subscription.Poll(Adaptive.Aeron.LogBuffer.FragmentHandler fragmentHandler, int fragmentLimit) -> int +Adaptive.Aeron.Subscription.Poll(Adaptive.Aeron.LogBuffer.IFragmentHandler fragmentHandler, int fragmentLimit) -> int +Adaptive.Aeron.Subscription.RawPoll(Adaptive.Aeron.LogBuffer.RawBlockHandler rawBlockHandler, int blockLengthLimit) -> long +Adaptive.Aeron.Subscription.RegistrationId.get -> long +Adaptive.Aeron.Subscription.RemoveDestination(string endpointChannel) -> void +Adaptive.Aeron.Subscription.ResolvedEndpoint.get -> string +Adaptive.Aeron.Subscription.StreamId.get -> int +Adaptive.Aeron.Subscription.TryResolveChannelEndpointPort() -> string +Adaptive.Aeron.Subscription.UnavailableImageHandler.get -> Adaptive.Aeron.UnavailableImageHandler +Adaptive.Aeron.UnavailableCounterHandler +Adaptive.Aeron.UnavailableImageHandler +const Adaptive.Aeron.Aeron.Configuration.CLOSE_LINGER_DURATION_DEFAULT_NS = 0 -> long +const Adaptive.Aeron.Aeron.Configuration.CLOSE_LINGER_DURATION_PROP_NAME = "aeron.client.close.linger.duration" -> string +const Adaptive.Aeron.Aeron.Configuration.MAX_CLIENT_NAME_LENGTH = 100 -> int +const Adaptive.Aeron.Aeron.Configuration.PRE_TOUCH_MAPPED_MEMORY_DEFAULT = false -> bool +const Adaptive.Aeron.Aeron.Configuration.PRE_TOUCH_MAPPED_MEMORY_PROP_NAME = "aeron.pre.touch.mapped.memory" -> string +const Adaptive.Aeron.Aeron.Configuration.RESOURCE_LINGER_DURATION_PROP_NAME = "aeron.client.resource.linger.duration" -> string +const Adaptive.Aeron.Aeron.Context.AERON_DIR_PROP_NAME = "aeron.dir" -> string +const Adaptive.Aeron.Aeron.Context.ALIAS_PARAM_NAME = "alias" -> string +const Adaptive.Aeron.Aeron.Context.CHANNEL_RECEIVE_TIMESTAMP_OFFSET_PARAM_NAME = "channel-rcv-ts-offset" -> string +const Adaptive.Aeron.Aeron.Context.CHANNEL_SEND_TIMESTAMP_OFFSET_PARAM_NAME = "channel-snd-ts-offset" -> string +const Adaptive.Aeron.Aeron.Context.CONGESTION_CONTROL_PARAM_NAME = "cc" -> string +const Adaptive.Aeron.Aeron.Context.CONTROL_MODE_RESPONSE = "response" -> string +const Adaptive.Aeron.Aeron.Context.DEBUG_TIMEOUT_PROP_NAME = "aeron.debug.timeout" -> string +const Adaptive.Aeron.Aeron.Context.DRIVER_TIMEOUT_MS = 10000 -> long +const Adaptive.Aeron.Aeron.Context.ENABLE_EXPERIMENTAL_FEATURES_PROP_NAME = "aeron.enable.experimental.features" -> string +const Adaptive.Aeron.Aeron.Context.ENDPOINT_PARAM_NAME = "endpoint" -> string +const Adaptive.Aeron.Aeron.Context.EOS_PARAM_NAME = "eos" -> string +const Adaptive.Aeron.Aeron.Context.FALLBACK_LOGGER_PROP_NAME = "aeron.fallback.logger" -> string +const Adaptive.Aeron.Aeron.Context.FLOW_CONTROL_PARAM_NAME = "fc" -> string +const Adaptive.Aeron.Aeron.Context.GROUP_PARAM_NAME = "group" -> string +const Adaptive.Aeron.Aeron.Context.GROUP_TAG_PARAM_NAME = "gtag" -> string +const Adaptive.Aeron.Aeron.Context.INITIAL_TERM_ID_PARAM_NAME = "init-term-id" -> string +const Adaptive.Aeron.Aeron.Context.INTERFACE_PARAM_NAME = "interface" -> string +const Adaptive.Aeron.Aeron.Context.IPC_CHANNEL = "aeron:ipc" -> string +const Adaptive.Aeron.Aeron.Context.IPC_MEDIA = "ipc" -> string +const Adaptive.Aeron.Aeron.Context.LINGER_PARAM_NAME = "linger" -> string +const Adaptive.Aeron.Aeron.Context.MAX_RESEND_PARAM_NAME = "max-resend" -> string +const Adaptive.Aeron.Aeron.Context.MDC_CONTROL_MODE = "control-mode" -> string +const Adaptive.Aeron.Aeron.Context.MDC_CONTROL_MODE_DYNAMIC = "dynamic" -> string +const Adaptive.Aeron.Aeron.Context.MDC_CONTROL_MODE_MANUAL = "manual" -> string +const Adaptive.Aeron.Aeron.Context.MDC_CONTROL_MODE_PARAM_NAME = "control-mode" -> string +const Adaptive.Aeron.Aeron.Context.MDC_CONTROL_PARAM_NAME = "control" -> string +const Adaptive.Aeron.Aeron.Context.MEDIA_RCV_TIMESTAMP_OFFSET_PARAM_NAME = "media-rcv-ts-offset" -> string +const Adaptive.Aeron.Aeron.Context.MTU_LENGTH_PARAM_NAME = "mtu" -> string +const Adaptive.Aeron.Aeron.Context.MTU_LENGTH_URI_PARAM_NAME = "mtu" -> string +const Adaptive.Aeron.Aeron.Context.NAK_DELAY_PARAM_NAME = "nak-delay" -> string +const Adaptive.Aeron.Aeron.Context.NULL_SESSION_ID = -1 -> int +const Adaptive.Aeron.Aeron.Context.PRINT_CONFIGURATION_ON_START_PROP_NAME = "aeron.print.configuration" -> string +const Adaptive.Aeron.Aeron.Context.PROTOTYPE_CORRELATION_ID = "prototype" -> string +const Adaptive.Aeron.Aeron.Context.PUBLICATION_WINDOW_LENGTH_PARAM_NAME = "pub-wnd" -> string +const Adaptive.Aeron.Aeron.Context.RECEIVER_WINDOW_LENGTH_PARAM_NAME = "rcv-wnd" -> string +const Adaptive.Aeron.Aeron.Context.REJOIN_PARAM_NAME = "rejoin" -> string +const Adaptive.Aeron.Aeron.Context.RELIABLE_STREAM_PARAM_NAME = "reliable" -> string +const Adaptive.Aeron.Aeron.Context.RESERVED_OFFSET = "reserved" -> string +const Adaptive.Aeron.Aeron.Context.RESPONSE_CORRELATION_ID_PARAM_NAME = "response-correlation-id" -> string +const Adaptive.Aeron.Aeron.Context.RESPONSE_ENDPOINT_PARAM_NAME = "response-endpoint" -> string +const Adaptive.Aeron.Aeron.Context.SESSION_ID_PARAM_NAME = "session-id" -> string +const Adaptive.Aeron.Aeron.Context.SOCKET_RCVBUF_PARAM_NAME = "so-rcvbuf" -> string +const Adaptive.Aeron.Aeron.Context.SOCKET_SNDBUF_PARAM_NAME = "so-sndbuf" -> string +const Adaptive.Aeron.Aeron.Context.SPARSE_PARAM_NAME = "sparse" -> string +const Adaptive.Aeron.Aeron.Context.SPIES_SIMULATE_CONNECTION_PARAM_NAME = "ssc" -> string +const Adaptive.Aeron.Aeron.Context.SPY_PREFIX = "aeron-spy:" -> string +const Adaptive.Aeron.Aeron.Context.STREAM_ID_PARAM_NAME = "stream-id" -> string +const Adaptive.Aeron.Aeron.Context.TAG_PREFIX = "tag:" -> string +const Adaptive.Aeron.Aeron.Context.TAGS_PARAM_NAME = "tags" -> string +const Adaptive.Aeron.Aeron.Context.TERM_ID_PARAM_NAME = "term-id" -> string +const Adaptive.Aeron.Aeron.Context.TERM_LENGTH_PARAM_NAME = "term-length" -> string +const Adaptive.Aeron.Aeron.Context.TERM_OFFSET_PARAM_NAME = "term-offset" -> string +const Adaptive.Aeron.Aeron.Context.TETHER_PARAM_NAME = "tether" -> string +const Adaptive.Aeron.Aeron.Context.TTL_PARAM_NAME = "ttl" -> string +const Adaptive.Aeron.Aeron.Context.UDP_CHANNEL = "aeron:udp" -> string +const Adaptive.Aeron.Aeron.Context.UDP_MEDIA = "udp" -> string +const Adaptive.Aeron.Aeron.Context.UNTETHERED_LINGER_TIMEOUT_PARAM_NAME = "untethered-linger-timeout" -> string +const Adaptive.Aeron.Aeron.Context.UNTETHERED_RESTING_TIMEOUT_PARAM_NAME = "untethered-resting-timeout" -> string +const Adaptive.Aeron.Aeron.Context.UNTETHERED_WINDOW_LIMIT_TIMEOUT_PARAM_NAME = "untethered-window-limit-timeout" -> string +const Adaptive.Aeron.Aeron.NULL_VALUE = -1 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_CONTROL_SESSION_TYPE_ID = 113 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_CONTROL_SESSIONS_TYPE_ID = 102 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_CYCLE_TIME_THRESHOLD_EXCEEDED_TYPE_ID = 104 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_ERROR_COUNT_TYPE_ID = 101 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_MAX_CYCLE_TIME_TYPE_ID = 103 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_RECORDER_MAX_WRITE_TIME_TYPE_ID = 105 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_RECORDER_TOTAL_WRITE_BYTES_TYPE_ID = 106 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_RECORDER_TOTAL_WRITE_TIME_TYPE_ID = 107 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_RECORDING_POSITION_TYPE_ID = 100 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_RECORDING_SESSION_COUNT_TYPE_ID = 111 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_REPLAY_SESSION_COUNT_TYPE_ID = 112 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_REPLAYER_MAX_READ_TIME_TYPE_ID = 108 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_REPLAYER_TOTAL_READ_BYTES_TYPE_ID = 109 -> int +const Adaptive.Aeron.AeronCounters.ARCHIVE_REPLAYER_TOTAL_READ_TIME_TYPE_ID = 110 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_BACKUP_ERROR_COUNT_TYPE_ID = 211 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_BACKUP_LIVE_LOG_POSITION_TYPE_ID = 209 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_BACKUP_QUERY_DEADLINE_TYPE_ID = 210 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_BACKUP_SNAPSHOT_RETRIEVE_COUNT_TYPE_ID = 240 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_BACKUP_STATE_TYPE_ID = 208 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_CLIENT_TIMEOUT_COUNT_TYPE_ID = 213 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_CLUSTERED_SERVICE_CYCLE_TIME_THRESHOLD_EXCEEDED_TYPE_ID = 219 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_CLUSTERED_SERVICE_ERROR_COUNT_TYPE_ID = 215 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_CLUSTERED_SERVICE_MAX_CYCLE_TIME_TYPE_ID = 218 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_COMMIT_POSITION_TYPE_ID = 203 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_CONSENSUS_MODULE_ERROR_COUNT_TYPE_ID = 212 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_CONSENSUS_MODULE_STATE_TYPE_ID = 200 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_CONTROL_TOGGLE_TYPE_ID = 202 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_CYCLE_TIME_THRESHOLD_EXCEEDED_TYPE_ID = 217 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_ELECTION_COUNT_TYPE_ID = 238 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_ELECTION_STATE_TYPE_ID = 207 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_INVALID_REQUEST_COUNT_TYPE_ID = 214 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_LEADERSHIP_TERM_ID_TYPE_ID = 239 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_MAX_CYCLE_TIME_TYPE_ID = 216 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_NODE_ROLE_TYPE_ID = 201 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_RECOVERY_STATE_TYPE_ID = 204 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_SESSION_TYPE_ID = 241 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_SNAPSHOT_COUNTER_TYPE_ID = 205 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_STANDBY_CONTROL_TOGGLE_TYPE_ID = 223 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_STANDBY_CYCLE_TIME_THRESHOLD_EXCEEDED_TYPE_ID = 228 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_STANDBY_ERROR_COUNT_TYPE_ID = 221 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_STANDBY_HEARTBEAT_RESPONSE_COUNT_TYPE_ID = 222 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_STANDBY_MAX_CYCLE_TIME_TYPE_ID = 227 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_STANDBY_SNAPSHOT_COUNTER_TYPE_ID = 232 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_STANDBY_SOURCE_MEMBER_ID_TYPE_ID = 231 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_STANDBY_STATE_TYPE_ID = 220 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_TOTAL_MAX_SNAPSHOT_DURATION_TYPE_ID = 234 -> int +const Adaptive.Aeron.AeronCounters.CLUSTER_TOTAL_SNAPSHOT_DURATION_THRESHOLD_EXCEEDED_TYPE_ID = 235 -> int +const Adaptive.Aeron.AeronCounters.CLUSTERED_SERVICE_MAX_SNAPSHOT_DURATION_TYPE_ID = 236 -> int +const Adaptive.Aeron.AeronCounters.CLUSTERED_SERVICE_SNAPSHOT_DURATION_THRESHOLD_EXCEEDED_TYPE_ID = 237 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_HEARTBEAT_TYPE_ID = 11 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_LOCAL_SOCKET_ADDRESS_STATUS_TYPE_ID = 14 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_PER_IMAGE_TYPE_ID = 10 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_PUBLISHER_LIMIT_TYPE_ID = 1 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_PUBLISHER_POS_TYPE_ID = 12 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_RECEIVE_CHANNEL_STATUS_TYPE_ID = 7 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_RECEIVER_HWM_TYPE_ID = 3 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_RECEIVER_NAKS_SENT_TYPE_ID = 20 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_RECEIVER_POS_TYPE_ID = 5 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_SEND_CHANNEL_STATUS_TYPE_ID = 6 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_SENDER_BPE_TYPE_ID = 13 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_SENDER_LIMIT_TYPE_ID = 9 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_SENDER_NAKS_RECEIVED_TYPE_ID = 19 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_SENDER_POSITION_TYPE_ID = 2 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_SUBSCRIBER_POSITION_TYPE_ID = 4 -> int +const Adaptive.Aeron.AeronCounters.DRIVER_SYSTEM_COUNTER_TYPE_ID = 0 -> int +const Adaptive.Aeron.AeronCounters.FLOW_CONTROL_RECEIVERS_COUNTER_TYPE_ID = 17 -> int +const Adaptive.Aeron.AeronCounters.MDC_DESTINATIONS_COUNTER_TYPE_ID = 18 -> int +const Adaptive.Aeron.AeronCounters.NAME_RESOLVER_CACHE_ENTRIES_COUNTER_TYPE_ID = 16 -> int +const Adaptive.Aeron.AeronCounters.NAME_RESOLVER_NEIGHBORS_COUNTER_TYPE_ID = 15 -> int +const Adaptive.Aeron.AeronCounters.NODE_CONTROL_TOGGLE_TYPE_ID = 233 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_APPLICATION_ERROR_COUNT_TYPE_ID = 509 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_APPLICATION_INTERVAL_MAX_SERVICE_TIME_TYPE_ID = 513 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_APPLICATION_INTERVAL_SERVICE_TIME_TYPE_ID = 512 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_APPLICATION_INTERVAL_TOTAL_INVOCATIONS_TYPE_ID = 514 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_APPLICATION_MAX_SERVICE_TIME_TYPE_ID = 510 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_APPLICATION_SEQUENCE_INDEX_COUNTER_TYPE_ID = 507 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_APPLICATION_SERVICE_TIME_THRESHOLD_EXCEEDED_COUNT_TYPE_ID = 511 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_APPLICATION_SESSION_ID_TYPE_ID = 519 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_APPLICATION_SNAPSHOT_LOAD_TIME_TYPE_ID = 515 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_APPLICATION_SNAPSHOT_STORE_TIME_TYPE_ID = 516 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_APPLICATION_STATE_COUNTER_TYPE_ID = 508 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_APPLICATION_TAKE_SNAPSHOT_COUNT_TYPE_ID = 518 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_APPLICATION_TAKE_SNAPSHOT_FAILURES_TYPE_ID = 517 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_CLIENT_SNAPSHOT_ID_COUNTER_TYPE_ID = 505 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_GROUP_HWM_COUNTER_TYPE_ID = 501 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_INDEX_COUNTER_TYPE_ID = 500 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_REPLAY_INDEX_INITIAL_SEQUENCE_INDEX_COUNTER_TYPE_ID = 524 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_REPLAY_INDEX_INITIAL_SEQUENCE_LOG_POSITION_COUNTER_TYPE_ID = 525 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_REPLAY_INDEX_MAX_SEQUENCE_INDEX_COUNTER_TYPE_ID = 522 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_REPLAY_INDEX_MAX_SEQUENCE_LOG_POSITION_COUNTER_TYPE_ID = 523 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_REPLAY_INDEX_MIN_SEQUENCE_INDEX_COUNTER_TYPE_ID = 520 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_REPLAY_INDEX_MIN_SEQUENCE_LOG_POSITION_COUNTER_TYPE_ID = 521 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_SESSION_GREATEST_MESSAGE_ID_COUNTER_TYPE_ID = 502 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_SESSION_GREATEST_MESSAGE_TIMESTAMP_COUNTER_TYPE_ID = 504 -> int +const Adaptive.Aeron.AeronCounters.SEQUENCER_SESSION_MESSAGES_COUNTER_TYPE_ID = 503 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_AERON_VERSION = 34 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_BYTES_CURRENTLY_MAPPED = 35 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_BYTES_RECEIVED = 1 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_BYTES_SENT = 0 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_CLIENT_TIMEOUTS = 24 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_CONDUCTOR_CYCLE_TIME_THRESHOLD_EXCEEDED = 27 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_CONDUCTOR_MAX_CYCLE_TIME = 26 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_CONDUCTOR_PROXY_FAILS = 4 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_CONTROL_PROTOCOL_VERSION = 43 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_CONTROLLABLE_IDLE_STRATEGY = 22 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_ERROR_FRAMES_RECEIVED = 38 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_ERROR_FRAMES_SENT = 39 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_ERRORS = 15 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_FLOW_CONTROL_OVER_RUNS = 13 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_FLOW_CONTROL_UNDER_RUNS = 12 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_FREE_FAILS = 17 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_HEARTBEATS_RECEIVED = 10 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_HEARTBEATS_SENT = 9 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_IMAGES_REJECTED = 42 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_INVALID_PACKETS = 14 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_LOSS_GAP_FILLS = 23 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_NAK_MESSAGES_RECEIVED = 6 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_NAK_MESSAGES_SENT = 5 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_NAME_RESOLVER_MAX_TIME = 32 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_NAME_RESOLVER_TIME_THRESHOLD_EXCEEDED = 33 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_POSSIBLE_TTL_ASYMMETRY = 21 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_PUBLICATION_IMAGES_REVOKED = 41 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_PUBLICATIONS_REVOKED = 40 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_RECEIVER_CYCLE_TIME_THRESHOLD_EXCEEDED = 31 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_RECEIVER_MAX_CYCLE_TIME = 30 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_RECEIVER_PROXY_FAILS = 2 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_RESOLUTION_CHANGES = 25 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_RETRANSMIT_OVERFLOW = 37 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_RETRANSMITS_SENT = 11 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_RETRANSMITTED_BYTES = 36 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_SENDER_CYCLE_TIME_THRESHOLD_EXCEEDED = 29 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_SENDER_FLOW_CONTROL_LIMITS = 18 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_SENDER_MAX_CYCLE_TIME = 28 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_SENDER_PROXY_FAILS = 3 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_SHORT_SENDS = 16 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_STATUS_MESSAGES_RECEIVED = 8 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_STATUS_MESSAGES_SENT = 7 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_UNBLOCKED_COMMANDS = 20 -> int +const Adaptive.Aeron.AeronCounters.SYSTEM_COUNTER_ID_UNBLOCKED_PUBLICATIONS = 19 -> int +const Adaptive.Aeron.AeronCounters.TRANSITION_MODULE_CONTROL_TOGGLE_TYPE_ID = 225 -> int +const Adaptive.Aeron.AeronCounters.TRANSITION_MODULE_CYCLE_TIME_THRESHOLD_EXCEEDED_TYPE_ID = 230 -> int +const Adaptive.Aeron.AeronCounters.TRANSITION_MODULE_ERROR_COUNT_TYPE_ID = 226 -> int +const Adaptive.Aeron.AeronCounters.TRANSITION_MODULE_MAX_CYCLE_TIME_TYPE_ID = 229 -> int +const Adaptive.Aeron.AeronCounters.TRANSITION_MODULE_STATE_TYPE_ID = 224 -> int +const Adaptive.Aeron.AeronVersion.MAJOR_VERSION = 1 -> int +const Adaptive.Aeron.AeronVersion.MINOR_VERSION = 49 -> int +const Adaptive.Aeron.AeronVersion.PATCH_VERSION = 0 -> int +const Adaptive.Aeron.AeronVersion.VERSION = "1.49.0" -> string +const Adaptive.Aeron.ChannelUri.AERON_SCHEME = "aeron" -> string +const Adaptive.Aeron.ChannelUri.INVALID_TAG = -1 -> long +const Adaptive.Aeron.ChannelUri.MAX_URI_LENGTH = 4095 -> int +const Adaptive.Aeron.ChannelUri.SPY_QUALIFIER = "aeron-spy" -> string +const Adaptive.Aeron.ChannelUriStringBuilder.TAG_PREFIX = "tag:" -> string +const Adaptive.Aeron.CncFileDescriptor.CNC_FILE = "cnc.dat" -> string +const Adaptive.Aeron.Command.ControlProtocolEvents.ADD_COUNTER = 9 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ADD_DESTINATION = 7 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ADD_EXCLUSIVE_PUBLICATION = 3 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ADD_PUBLICATION = 1 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ADD_RCV_DESTINATION = 12 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ADD_STATIC_COUNTER = 15 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ADD_SUBSCRIPTION = 4 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.CLIENT_CLOSE = 11 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.CLIENT_KEEPALIVE = 6 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.CONTROL_PROTOCOL_MAJOR_VERSION = 1 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.CONTROL_PROTOCOL_MINOR_VERSION = 0 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.CONTROL_PROTOCOL_PATCH_VERSION = 0 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.GET_NEXT_AVAILABLE_SESSION_ID = 18 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ON_AVAILABLE_IMAGE = 3842 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ON_CLIENT_TIMEOUT = 3850 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ON_COUNTER_READY = 3848 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ON_ERROR = 3841 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ON_EXCLUSIVE_PUBLICATION_READY = 3846 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ON_NEXT_AVAILABLE_SESSION_ID = 3853 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ON_OPERATION_SUCCESS = 3844 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ON_PUBLICATION_ERROR = 3852 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ON_PUBLICATION_READY = 3843 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ON_STATIC_COUNTER = 3851 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ON_SUBSCRIPTION_READY = 3847 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ON_UNAVAILABLE_COUNTER = 3849 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.ON_UNAVAILABLE_IMAGE = 3845 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.REJECT_IMAGE = 16 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.REMOVE_COUNTER = 10 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.REMOVE_DESTINATION = 8 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.REMOVE_DESTINATION_BY_ID = 17 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.REMOVE_PUBLICATION = 2 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.REMOVE_RCV_DESTINATION = 13 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.REMOVE_SUBSCRIPTION = 5 -> int +const Adaptive.Aeron.Command.ControlProtocolEvents.TERMINATE_DRIVER = 14 -> int +const Adaptive.Aeron.LogBuffer.FrameDescriptor.BEGIN_FRAG_FLAG = 128 -> byte +const Adaptive.Aeron.LogBuffer.FrameDescriptor.END_FRAG_FLAG = 64 -> byte +const Adaptive.Aeron.LogBuffer.FrameDescriptor.FLAGS_OFFSET = 5 -> int +const Adaptive.Aeron.LogBuffer.FrameDescriptor.FRAME_ALIGNMENT = 32 -> int +const Adaptive.Aeron.LogBuffer.FrameDescriptor.MAX_MESSAGE_LENGTH = 16777216 -> int +const Adaptive.Aeron.LogBuffer.FrameDescriptor.PADDING_FRAME_TYPE = 0 -> int +const Adaptive.Aeron.LogBuffer.FrameDescriptor.SESSION_ID_OFFSET = 12 -> int +const Adaptive.Aeron.LogBuffer.FrameDescriptor.TERM_ID_OFFSET = 20 -> int +const Adaptive.Aeron.LogBuffer.FrameDescriptor.TERM_OFFSET = 8 -> int +const Adaptive.Aeron.LogBuffer.FrameDescriptor.TYPE_OFFSET = 6 -> int +const Adaptive.Aeron.LogBuffer.FrameDescriptor.UNFRAGMENTED = 192 -> byte +const Adaptive.Aeron.LogBuffer.FrameDescriptor.VERSION_OFFSET = 4 -> int +const Adaptive.Aeron.LogBuffer.LogBufferDescriptor.PAGE_MAX_SIZE = 1073741824 -> int +const Adaptive.Aeron.LogBuffer.LogBufferDescriptor.PAGE_MIN_SIZE = 4096 -> int +const Adaptive.Aeron.LogBuffer.LogBufferDescriptor.PARTITION_COUNT = 3 -> int +const Adaptive.Aeron.LogBuffer.LogBufferDescriptor.TERM_MAX_LENGTH = 1073741824 -> int +const Adaptive.Aeron.LogBuffer.LogBufferDescriptor.TERM_MIN_LENGTH = 65536 -> int +const Adaptive.Aeron.Protocol.DataHeaderFlyweight.BEGIN_FLAG = 128 -> short +const Adaptive.Aeron.Protocol.DataHeaderFlyweight.DATA_OFFSET = 32 -> int +const Adaptive.Aeron.Protocol.DataHeaderFlyweight.DEFAULT_RESERVE_VALUE = 0 -> long +const Adaptive.Aeron.Protocol.DataHeaderFlyweight.END_FLAG = 64 -> short +const Adaptive.Aeron.Protocol.DataHeaderFlyweight.EOS_FLAG = 32 -> short +const Adaptive.Aeron.Protocol.DataHeaderFlyweight.HEADER_LENGTH = 32 -> int +const Adaptive.Aeron.Protocol.DataHeaderFlyweight.RESERVED_VALUE_OFFSET = 24 -> int +const Adaptive.Aeron.Protocol.DataHeaderFlyweight.REVOKED_FLAG = 16 -> short +const Adaptive.Aeron.Protocol.DataHeaderFlyweight.SESSION_ID_FIELD_OFFSET = 12 -> int +const Adaptive.Aeron.Protocol.DataHeaderFlyweight.STREAM_ID_FIELD_OFFSET = 16 -> int +const Adaptive.Aeron.Protocol.DataHeaderFlyweight.TERM_ID_FIELD_OFFSET = 20 -> int +const Adaptive.Aeron.Protocol.DataHeaderFlyweight.TERM_OFFSET_FIELD_OFFSET = 8 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.CURRENT_VERSION = 0 -> byte +const Adaptive.Aeron.Protocol.HeaderFlyweight.FLAGS_FIELD_OFFSET = 5 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.FRAME_LENGTH_FIELD_OFFSET = 0 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.HDR_TYPE_ATS_DATA = 8 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.HDR_TYPE_ATS_SETUP = 10 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.HDR_TYPE_ATS_SM = 9 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.HDR_TYPE_DATA = 1 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.HDR_TYPE_ERR = 4 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.HDR_TYPE_EXT = 65535 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.HDR_TYPE_NAK = 2 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.HDR_TYPE_PAD = 0 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.HDR_TYPE_RES = 7 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.HDR_TYPE_RSP_SETUP = 11 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.HDR_TYPE_RTTM = 6 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.HDR_TYPE_SETUP = 5 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.HDR_TYPE_SM = 3 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.TYPE_FIELD_OFFSET = 6 -> int +const Adaptive.Aeron.Protocol.HeaderFlyweight.VERSION_FIELD_OFFSET = 4 -> int +const Adaptive.Aeron.Publication.ADMIN_ACTION = -3 -> long +const Adaptive.Aeron.Publication.BACK_PRESSURED = -2 -> long +const Adaptive.Aeron.Publication.CLOSED = -4 -> long +const Adaptive.Aeron.Publication.MAX_POSITION_EXCEEDED = -5 -> long +const Adaptive.Aeron.Publication.NOT_CONNECTED = -1 -> long +const Adaptive.Aeron.Status.ChannelEndpointStatus.ACTIVE = 1 -> long +const Adaptive.Aeron.Status.ChannelEndpointStatus.CHANNEL_OFFSET = 0 -> int +const Adaptive.Aeron.Status.ChannelEndpointStatus.CLOSING = 2 -> long +const Adaptive.Aeron.Status.ChannelEndpointStatus.ERRORED = -1 -> long +const Adaptive.Aeron.Status.ChannelEndpointStatus.INITIALIZING = 0 -> long +const Adaptive.Aeron.Status.ChannelEndpointStatus.NO_ID_ALLOCATED = -1 -> int +const Adaptive.Aeron.Status.HeartbeatTimestamp.HEARTBEAT_TYPE_ID = 11 -> int +const Adaptive.Aeron.Status.HeartbeatTimestamp.REGISTRATION_ID_OFFSET = 0 -> int +const Adaptive.Aeron.Status.LocalSocketAddressStatus.LOCAL_SOCKET_ADDRESS_STATUS_TYPE_ID = 14 -> int +override Adaptive.Aeron.Aeron.Context.ToString() -> string +override Adaptive.Aeron.Aeron.ToString() -> string +override Adaptive.Aeron.ChannelUri.Equals(object obj) -> bool +override Adaptive.Aeron.ChannelUri.GetHashCode() -> int +override Adaptive.Aeron.ChannelUri.ToString() -> string +override Adaptive.Aeron.ChannelUriStringBuilder.ToString() -> string +override Adaptive.Aeron.Command.CounterMessageFlyweight.ToString() -> string +override Adaptive.Aeron.Command.NextAvailableSessionIdFlyweight.ToString() -> string +override Adaptive.Aeron.Command.StaticCounterFlyweight.ToString() -> string +override Adaptive.Aeron.Command.StaticCounterMessageFlyweight.ToString() -> string +override Adaptive.Aeron.ConcurrentPublication.AvailableWindow.get -> long +override Adaptive.Aeron.ConcurrentPublication.Offer(Adaptive.Aeron.DirectBufferVector[] vectors, Adaptive.Aeron.ReservedValueSupplier reservedValueSupplier = null) -> long +override Adaptive.Aeron.ConcurrentPublication.Offer(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.ReservedValueSupplier reservedValueSupplier = null) -> long +override Adaptive.Aeron.ConcurrentPublication.Offer(Adaptive.Agrona.IDirectBuffer bufferOne, int offsetOne, int lengthOne, Adaptive.Agrona.IDirectBuffer bufferTwo, int offsetTwo, int lengthTwo, Adaptive.Aeron.ReservedValueSupplier reservedValueSupplier = null) -> long +override Adaptive.Aeron.ConcurrentPublication.TryClaim(int length, Adaptive.Aeron.LogBuffer.BufferClaim bufferClaim) -> long +override Adaptive.Aeron.Counter.Dispose() -> void +override Adaptive.Aeron.Counter.IsClosed.get -> bool +override Adaptive.Aeron.DirectBufferVector.ToString() -> string +override Adaptive.Aeron.DriverProxy.ToString() -> string +override Adaptive.Aeron.DutyCycleStallTracker.ReportMeasurement(long durationNs) -> void +override Adaptive.Aeron.Exceptions.AeronException.ToString() -> string +override Adaptive.Aeron.Exceptions.RegistrationException.Message.get -> string +override Adaptive.Aeron.ExclusivePublication.AvailableWindow.get -> long +override Adaptive.Aeron.ExclusivePublication.Offer(Adaptive.Aeron.DirectBufferVector[] vectors, Adaptive.Aeron.ReservedValueSupplier reservedValueSupplier = null) -> long +override Adaptive.Aeron.ExclusivePublication.Offer(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.ReservedValueSupplier reservedValueSupplier = null) -> long +override Adaptive.Aeron.ExclusivePublication.Offer(Adaptive.Agrona.IDirectBuffer bufferOne, int offsetOne, int lengthOne, Adaptive.Agrona.IDirectBuffer bufferTwo, int offsetTwo, int lengthTwo, Adaptive.Aeron.ReservedValueSupplier reservedValueSupplier = null) -> long +override Adaptive.Aeron.ExclusivePublication.Position.get -> long +override Adaptive.Aeron.ExclusivePublication.TryClaim(int length, Adaptive.Aeron.LogBuffer.BufferClaim bufferClaim) -> long +override Adaptive.Aeron.Image.ToString() -> string +override Adaptive.Aeron.Protocol.DataHeaderFlyweight.ToString() -> string +override Adaptive.Aeron.Publication.ToString() -> string +override Adaptive.Aeron.Status.PublicationErrorFrame.ToString() -> string +override Adaptive.Aeron.Subscription.ToString() -> string +static Adaptive.Aeron.Aeron.Configuration.ClientName() -> string +static Adaptive.Aeron.Aeron.Configuration.CloseLingerDurationNs() -> long +static Adaptive.Aeron.Aeron.Configuration.IdleSleepDurationNs() -> long +static Adaptive.Aeron.Aeron.Configuration.PreTouchMappedMemory() -> bool +static Adaptive.Aeron.Aeron.Configuration.ResourceLingerDurationNs() -> long +static Adaptive.Aeron.Aeron.Connect() -> Adaptive.Aeron.Aeron +static Adaptive.Aeron.Aeron.Connect(Adaptive.Aeron.Aeron.Context ctx) -> Adaptive.Aeron.Aeron +static Adaptive.Aeron.Aeron.Context.CheckDebugTimeout(long timeout, Adaptive.Agrona.TimeUnit timeUnit, double factor, string debugFieldName) -> long +static Adaptive.Aeron.Aeron.Context.CheckDebugTimeout(long timeout, Adaptive.Agrona.TimeUnit timeUnit, string debugFieldName) -> long +static Adaptive.Aeron.Aeron.Context.DriverFilePageSize(System.IO.DirectoryInfo aeronDirectory, Adaptive.Agrona.Concurrent.IEpochClock clock, long timeoutMs) -> int +static Adaptive.Aeron.Aeron.Context.FallbackLogger() -> System.IO.TextWriter +static Adaptive.Aeron.Aeron.Context.GetAeronDirectoryName() -> string +static Adaptive.Aeron.Aeron.Context.IsDriverActive(long driverTimeoutMs, System.Action logger, Adaptive.Agrona.Util.MappedByteBuffer cncByteBuffer) -> bool +static Adaptive.Aeron.Aeron.Context.IsDriverActive(System.IO.DirectoryInfo directory, long driverTimeoutMs, System.Action logger) -> bool +static Adaptive.Aeron.Aeron.Context.PrintErrorLog(Adaptive.Agrona.Concurrent.IAtomicBuffer errorBuffer, System.IO.TextWriter out) -> int +static Adaptive.Aeron.Aeron.Context.RequestDriverTermination(System.IO.DirectoryInfo directory, Adaptive.Agrona.IDirectBuffer tokenBuffer, int tokenOffset, int tokenLength) -> bool +static Adaptive.Aeron.Aeron.Context.SetupErrorHandler(Adaptive.Agrona.IErrorHandler userErrorHandler, Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog errorLog) -> Adaptive.Agrona.IErrorHandler +static Adaptive.Aeron.Aeron.Context.ShouldPrintConfigurationOnStart() -> bool +static Adaptive.Aeron.AeronCounters.AppendToLabel(Adaptive.Agrona.Concurrent.IAtomicBuffer metaDataBuffer, int counterId, string value) -> int +static Adaptive.Aeron.AeronCounters.AppendVersionInfo(Adaptive.Agrona.IMutableDirectBuffer tempBuffer, int offset, string fullVersion) -> int +static Adaptive.Aeron.AeronCounters.FormatVersionInfo(string fullVersion) -> string +static Adaptive.Aeron.AeronCounters.ValidateCounterTypeId(Adaptive.Aeron.Aeron aeron, Adaptive.Aeron.Counter counter, int expectedCounterTypeId) -> void +static Adaptive.Aeron.AeronCounters.ValidateCounterTypeId(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, int counterId, int expectedCounterTypeId) -> void +static Adaptive.Aeron.AeronThrowHelper.ThrowAeronException(string message) -> void +static Adaptive.Aeron.ChannelUri.AddAliasIfAbsent(string uri, string alias) -> string +static Adaptive.Aeron.ChannelUri.AddSessionId(string channel, int sessionId) -> string +static Adaptive.Aeron.ChannelUri.CreateDestinationUri(string channel, string endpoint) -> string +static Adaptive.Aeron.ChannelUri.GetTag(string paramValue) -> long +static Adaptive.Aeron.ChannelUri.IsControlModeResponse(string channelUri) -> bool +static Adaptive.Aeron.ChannelUri.IsTagged(string paramValue) -> bool +static Adaptive.Aeron.ChannelUri.Parse(string uri) -> Adaptive.Aeron.ChannelUri +static Adaptive.Aeron.CncFileDescriptor.CheckVersion(int cncVersion) -> void +static Adaptive.Aeron.CncFileDescriptor.ClientLivenessTimeoutNs(Adaptive.Agrona.IDirectBuffer metaDataBuffer) -> long +static Adaptive.Aeron.CncFileDescriptor.ClientLivenessTimeoutOffset(int baseOffset) -> int +static Adaptive.Aeron.CncFileDescriptor.CncVersionOffset(int baseOffset) -> int +static Adaptive.Aeron.CncFileDescriptor.ComputeCncFileLength(int totalLengthOfBuffers, int alignment) -> int +static Adaptive.Aeron.CncFileDescriptor.CountersMetaDataBufferLengthOffset(int baseOffset) -> int +static Adaptive.Aeron.CncFileDescriptor.CountersValuesBufferLengthOffset(int baseOffset) -> int +static Adaptive.Aeron.CncFileDescriptor.CreateCountersMetaDataBuffer(Adaptive.Agrona.Util.MappedByteBuffer buffer, Adaptive.Agrona.IDirectBuffer metaDataBuffer) -> Adaptive.Agrona.Concurrent.UnsafeBuffer +static Adaptive.Aeron.CncFileDescriptor.CreateCountersValuesBuffer(Adaptive.Agrona.Util.MappedByteBuffer buffer, Adaptive.Agrona.IDirectBuffer metaDataBuffer) -> Adaptive.Agrona.Concurrent.UnsafeBuffer +static Adaptive.Aeron.CncFileDescriptor.CreateErrorLogBuffer(Adaptive.Agrona.Util.MappedByteBuffer buffer, Adaptive.Agrona.IDirectBuffer metaDataBuffer) -> Adaptive.Agrona.Concurrent.UnsafeBuffer +static Adaptive.Aeron.CncFileDescriptor.CreateMetaDataBuffer(Adaptive.Agrona.Util.MappedByteBuffer buffer) -> Adaptive.Agrona.Concurrent.UnsafeBuffer +static Adaptive.Aeron.CncFileDescriptor.CreateToClientsBuffer(Adaptive.Agrona.Util.MappedByteBuffer buffer, Adaptive.Agrona.IDirectBuffer metaDataBuffer) -> Adaptive.Agrona.Concurrent.UnsafeBuffer +static Adaptive.Aeron.CncFileDescriptor.CreateToDriverBuffer(Adaptive.Agrona.Util.MappedByteBuffer buffer, Adaptive.Agrona.IDirectBuffer metaDataBuffer) -> Adaptive.Agrona.Concurrent.UnsafeBuffer +static Adaptive.Aeron.CncFileDescriptor.ErrorLogBufferLengthOffset(int baseOffset) -> int +static Adaptive.Aeron.CncFileDescriptor.FilePageSize(Adaptive.Agrona.IDirectBuffer metaDataBuffer) -> int +static Adaptive.Aeron.CncFileDescriptor.IsCncFile(System.IO.FileInfo path) -> bool +static Adaptive.Aeron.CncFileDescriptor.IsCncFileLengthSufficient(Adaptive.Agrona.IDirectBuffer metaDataBuffer, long cncFileLength) -> bool +static Adaptive.Aeron.CncFileDescriptor.Pid(Adaptive.Agrona.IDirectBuffer metaDataBuffer) -> long +static Adaptive.Aeron.CncFileDescriptor.PidOffset(int baseOffset) -> int +static Adaptive.Aeron.CncFileDescriptor.StartTimestamp(Adaptive.Agrona.IDirectBuffer metaDataBuffer) -> long +static Adaptive.Aeron.CncFileDescriptor.StartTimestampOffset(int baseOffset) -> int +static Adaptive.Aeron.CncFileDescriptor.ToClientsBufferLengthOffset(int baseOffset) -> int +static Adaptive.Aeron.CncFileDescriptor.ToDriverBufferLengthOffset(int baseOffset) -> int +static Adaptive.Aeron.Command.CounterMessageFlyweight.ComputeLength(int keyLength, int labelLength) -> int +static Adaptive.Aeron.Command.DestinationMessageFlyweight.ComputeLength(int channelLength) -> int +static Adaptive.Aeron.Command.PublicationMessageFlyweight.ComputeLength(int channelLength) -> int +static Adaptive.Aeron.Command.RejectImageFlyweight.ComputeLength(string reason) -> int +static Adaptive.Aeron.Command.RemoveMessageFlyweight.Length() -> int +static Adaptive.Aeron.Command.RemovePublicationFlyweight.Length() -> int +static Adaptive.Aeron.Command.StaticCounterMessageFlyweight.ComputeLength(int keyLength, int labelLength) -> int +static Adaptive.Aeron.Command.SubscriptionMessageFlyweight.ComputeLength(int channelLength) -> int +static Adaptive.Aeron.Command.TerminateDriverFlyweight.ComputeLength(int tokenLength) -> int +static Adaptive.Aeron.Config.GetBoolean(string propertyName) -> bool +static Adaptive.Aeron.Config.GetDurationInNanos(string propertyName, long defaultValue) -> long +static Adaptive.Aeron.Config.GetInteger(string propertyName, int defaultValue) -> int +static Adaptive.Aeron.Config.GetLong(string propertyName, long defaultValue) -> long +static Adaptive.Aeron.Config.GetProperty(string propertyName, string defaultValue = null) -> string +static Adaptive.Aeron.Config.GetSizeAsInt(string propertyName, int defaultValue) -> int +static Adaptive.Aeron.DirectBufferVector.ValidateAndComputeLength(Adaptive.Aeron.DirectBufferVector[] vectors) -> int +static Adaptive.Aeron.Exceptions.AeronException.IsFatal(in System.Exception t) -> bool +static Adaptive.Aeron.Exceptions.StorageSpaceException.IsStorageSpaceError(System.Exception error) -> bool +static Adaptive.Aeron.LogBuffer.FrameDescriptor.ComputeMaxMessageLength(int termLength) -> int +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FlagsOffset(int termOffset) -> int +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameFlags(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, int termOffset, byte flags) -> void +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameFlags(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, int termOffset) -> byte +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameLength(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, int termOffset) -> int +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameLengthOrdered(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, int termOffset, int frameLength) -> void +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameLengthVolatile(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, int termOffset) -> int +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameSessionId(Adaptive.Agrona.Concurrent.UnsafeBuffer buffer, int termOffset, int sessionId) -> void +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameSessionId(Adaptive.Agrona.Concurrent.UnsafeBuffer buffer, int termOffset) -> int +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameTermId(Adaptive.Agrona.Concurrent.UnsafeBuffer buffer, int termOffset, int termId) -> void +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameTermId(Adaptive.Agrona.Concurrent.UnsafeBuffer buffer, int termOffset) -> int +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameTermOffset(Adaptive.Agrona.Concurrent.UnsafeBuffer buffer, int termOffset) -> void +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameType(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, int termOffset, int type) -> void +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameType(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, int termOffset) -> int +static Adaptive.Aeron.LogBuffer.FrameDescriptor.FrameVersion(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, int termOffset) -> int +static Adaptive.Aeron.LogBuffer.FrameDescriptor.IsPaddingFrame(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, int termOffset) -> bool +static Adaptive.Aeron.LogBuffer.FrameDescriptor.LengthOffset(int termOffset) -> int +static Adaptive.Aeron.LogBuffer.FrameDescriptor.SessionIdOffset(int termOffset) -> int +static Adaptive.Aeron.LogBuffer.FrameDescriptor.TermIdOffset(int termOffset) -> int +static Adaptive.Aeron.LogBuffer.FrameDescriptor.TermOffsetOffset(int termOffset) -> int +static Adaptive.Aeron.LogBuffer.FrameDescriptor.TypeOffset(int termOffset) -> int +static Adaptive.Aeron.LogBuffer.FrameDescriptor.VersionOffset(int termOffset) -> int +static Adaptive.Aeron.LogBuffer.HandlerHelper.ToBlockHandler(Adaptive.Aeron.LogBuffer.BlockHandler delegate) -> Adaptive.Aeron.LogBuffer.IBlockHandler +static Adaptive.Aeron.LogBuffer.HandlerHelper.ToControlledFragmentHandler(Adaptive.Aeron.LogBuffer.ControlledFragmentHandler delegate) -> Adaptive.Aeron.LogBuffer.IControlledFragmentHandler +static Adaptive.Aeron.LogBuffer.HandlerHelper.ToFragmentHandler(Adaptive.Aeron.LogBuffer.FragmentHandler delegate) -> Adaptive.Aeron.LogBuffer.IFragmentHandler +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ActiveTermCount(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, int termCount) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ActiveTermCount(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ActiveTermCountOrdered(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, int termCount) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ActiveTransportCount(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, int numberOfActiveTransports) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ActiveTransportCount(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ApplyDefaultHeader(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, Adaptive.Agrona.Concurrent.UnsafeBuffer termBuffer, int termOffset) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.CasActiveTermCount(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, int expectedTermCount, int updateTermCount) -> bool +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.CasRawTail(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, int partitionIndex, long expectedRawTail, long updateRawTail) -> bool +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.CheckPageSize(int pageSize) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.CheckTermLength(int termLength) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ComputeAssembledFrameLength(int length, int maxPayloadSize) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ComputeFragmentedFrameLength(int length, int maxPayloadSize) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ComputeLogLength(int termLength, int filePageSize) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ComputePosition(int activeTermId, int termOffset, int positionBitsToShift, int initialTermId) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ComputeTermBeginPosition(int activeTermId, int positionBitsToShift, int initialTermId) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ComputeTermIdFromPosition(long position, int positionBitsToShift, int initialTermId) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.CorrelationId(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, long id) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.CorrelationId(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.DefaultFrameHeader(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer) -> Adaptive.Agrona.Concurrent.UnsafeBuffer +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.EndOfStreamPosition(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, long position) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.EndOfStreamPosition(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.EntityTag(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, long value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.EntityTag(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.Group(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, bool value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.Group(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> bool +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.IndexByPosition(long position, int positionBitsToShift) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.IndexByTerm(int initialTermId, int activeTermId) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.IndexByTermCount(long termCount) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.InitialiseTailWithTermId(Adaptive.Agrona.Concurrent.UnsafeBuffer logMetaData, int partitionIndex, int termId) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.InitialTermId(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, int initialTermId) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.InitialTermId(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.IsConnected(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, bool isConnected) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.IsConnected(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer) -> bool +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.IsPublicationRevoked(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, bool value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.IsPublicationRevoked(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> bool +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.IsResponse(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, bool value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.IsResponse(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> bool +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LingerTimeoutNs(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, long value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LingerTimeoutNs(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.MaxResend(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, int value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.MaxResend(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.MtuLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, int mtuLength) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.MtuLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.NextPartitionIndex(int currentIndex) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.OsDefaultSocketRcvbufLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, int value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.OsDefaultSocketRcvbufLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.OsDefaultSocketSndbufLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, int value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.OsDefaultSocketSndbufLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.OsMaxSocketRcvbufLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, int value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.OsMaxSocketRcvbufLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.OsMaxSocketSndbufLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, int value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.OsMaxSocketSndbufLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.PackTail(int termId, int termOffset) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.PageSize(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, int pageSize) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.PageSize(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.PositionBitsToShift(int termBufferLength) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.PublicationWindowLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, int value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.PublicationWindowLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.RawTail(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, int partitionIndex, long rawTail) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.RawTail(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, int partitionIndex) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.RawTailVolatile(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, int partitionIndex, long rawTail) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.RawTailVolatile(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, int partitionIndex) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.RawTailVolatile(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ReceiverWindowLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, int value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ReceiverWindowLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.Rejoin(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, bool value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.Rejoin(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> bool +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.Reliable(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, bool value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.Reliable(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> bool +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ResponseCorrelationId(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, long value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.ResponseCorrelationId(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.RotateLog(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, int currentTermCount, int currentTermId) -> bool +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.SignalEos(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, bool value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.SignalEos(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> bool +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.SocketRcvbufLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, int value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.SocketRcvbufLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.SocketSndbufLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, int value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.SocketSndbufLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.Sparse(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, bool value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.Sparse(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> bool +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.SpiesSimulateConnection(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, bool value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.SpiesSimulateConnection(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> bool +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.StoreDefaultFrameHeader(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, Adaptive.Agrona.IDirectBuffer defaultHeader) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.TermId(long rawTail) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.TermLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer, int termLength) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.TermLength(Adaptive.Agrona.Concurrent.UnsafeBuffer metaDataBuffer) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.TermOffset(long rawTail, long termLength) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.TermOffset(long result) -> int +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.Tether(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, bool value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.Tether(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> bool +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.UntetheredLingerTimeoutNs(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, long value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.UntetheredLingerTimeoutNs(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.UntetheredRestingTimeoutNs(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, long value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.UntetheredRestingTimeoutNs(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> long +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.UntetheredWindowLimitTimeoutNs(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer, long value) -> void +static Adaptive.Aeron.LogBuffer.LogBufferDescriptor.UntetheredWindowLimitTimeoutNs(Adaptive.Agrona.Concurrent.UnsafeBuffer metadataBuffer) -> long +static Adaptive.Aeron.LogBuffer.TermBlockScanner.Scan(Adaptive.Agrona.Concurrent.IAtomicBuffer termBuffer, int termOffset, int limitOffset) -> int +static Adaptive.Aeron.LogBuffer.TermReader.FragmentsRead(long readOutcome) -> int +static Adaptive.Aeron.LogBuffer.TermReader.Offset(long readOutcome) -> int +static Adaptive.Aeron.LogBuffer.TermReader.Pack(int offset, int fragmentsRead) -> long +static Adaptive.Aeron.LogBuffer.TermReader.Read(Adaptive.Agrona.Concurrent.UnsafeBuffer termBuffer, int termOffset, Adaptive.Aeron.LogBuffer.IFragmentHandler handler, int fragmentsLimit, Adaptive.Aeron.LogBuffer.Header header, Adaptive.Agrona.ErrorHandler errorHandler) -> long +static Adaptive.Aeron.LogBuffer.TermReader.Read(Adaptive.Agrona.Concurrent.UnsafeBuffer termBuffer, int termOffset, Adaptive.Aeron.LogBuffer.IFragmentHandler handler, int fragmentsLimit, Adaptive.Aeron.LogBuffer.Header header, Adaptive.Agrona.IErrorHandler errorHandler, long currentPosition, Adaptive.Agrona.Concurrent.Status.IPosition subscriberPosition) -> int +static Adaptive.Aeron.LogBuffer.TermRebuilder.Insert(Adaptive.Agrona.Concurrent.IAtomicBuffer termBuffer, int termOffset, Adaptive.Agrona.Concurrent.UnsafeBuffer packet, int length) -> void +static Adaptive.Aeron.Protocol.DataHeaderFlyweight.CreateDefaultHeader(int sessionId, int streamId, int termId) -> Adaptive.Agrona.Concurrent.UnsafeBuffer +static Adaptive.Aeron.Protocol.DataHeaderFlyweight.FragmentLength(Adaptive.Agrona.Concurrent.UnsafeBuffer termBuffer, int frameOffset) -> int +static Adaptive.Aeron.Protocol.DataHeaderFlyweight.IsEndOfStream(Adaptive.Agrona.Concurrent.UnsafeBuffer packet) -> bool +static Adaptive.Aeron.Protocol.DataHeaderFlyweight.IsHeartbeat(Adaptive.Agrona.Concurrent.UnsafeBuffer packet, int length) -> bool +static Adaptive.Aeron.Protocol.DataHeaderFlyweight.IsRevoked(Adaptive.Agrona.Concurrent.UnsafeBuffer packet) -> bool +static Adaptive.Aeron.Protocol.DataHeaderFlyweight.ReservedValue(Adaptive.Agrona.Concurrent.UnsafeBuffer termBuffer, int frameOffset) -> long +static Adaptive.Aeron.Protocol.DataHeaderFlyweight.SessionId(Adaptive.Agrona.Concurrent.UnsafeBuffer termBuffer, int frameOffset) -> int +static Adaptive.Aeron.Protocol.DataHeaderFlyweight.StreamId(Adaptive.Agrona.Concurrent.UnsafeBuffer termBuffer, int frameOffset) -> int +static Adaptive.Aeron.Protocol.DataHeaderFlyweight.TermId(Adaptive.Agrona.Concurrent.UnsafeBuffer termBuffer, int frameOffset) -> int +static Adaptive.Aeron.Protocol.DataHeaderFlyweight.TermOffset(Adaptive.Agrona.Concurrent.UnsafeBuffer termBuffer, int frameOffset) -> int +static Adaptive.Aeron.Protocol.HeaderFlyweight.AppendFlagsAsChars(short flags, System.Text.StringBuilder stringBuilder) -> void +static Adaptive.Aeron.Protocol.HeaderFlyweight.FlagsToChars(short flags) -> char[] +static Adaptive.Aeron.Publication.ErrorString(long position) -> string +static Adaptive.Aeron.Status.HeartbeatTimestamp.FindCounterIdByRegistrationId(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, int counterTypeId, long registrationId) -> int +static Adaptive.Aeron.Status.HeartbeatTimestamp.IsActive(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, int counterId, int counterTypeId, long registrationId) -> bool +static Adaptive.Aeron.Status.LocalSocketAddressStatus.FindAddress(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, long channelStatus, int channelStatusId) -> string +static Adaptive.Aeron.Status.LocalSocketAddressStatus.FindAddresses(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, long channelStatus, int channelStatusId) -> System.Collections.Generic.List +static Adaptive.Aeron.Status.LocalSocketAddressStatus.FindNumberOfAddressesByRegistrationId(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, long registrationId) -> int +static Adaptive.Aeron.Status.LocalSocketAddressStatus.IsActive(in Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, in int channelStatusId) -> bool +static readonly Adaptive.Aeron.Aeron.Configuration.AWAITING_IDLE_SLEEP_MS -> int +static readonly Adaptive.Aeron.Aeron.Configuration.CLIENT_NAME_PROP_NAME -> string +static readonly Adaptive.Aeron.Aeron.Configuration.DEFAULT_ERROR_HANDLER -> Adaptive.Agrona.IErrorHandler +static readonly Adaptive.Aeron.Aeron.Configuration.IDLE_SLEEP_DEFAULT_MS -> int +static readonly Adaptive.Aeron.Aeron.Configuration.IDLE_SLEEP_DEFAULT_NS -> long +static readonly Adaptive.Aeron.Aeron.Configuration.IDLE_SLEEP_DURATION_PROP_NAME -> string +static readonly Adaptive.Aeron.Aeron.Configuration.KeepaliveIntervalNs -> long +static readonly Adaptive.Aeron.Aeron.Configuration.RESOURCE_LINGER_DURATION_DEFAULT_NS -> long +static readonly Adaptive.Aeron.Aeron.Context.AERON_DIR_PROP_DEFAULT -> string +static readonly Adaptive.Aeron.CncFileDescriptor.CLIENT_LIVENESS_TIMEOUT_FIELD_OFFSET -> int +static readonly Adaptive.Aeron.CncFileDescriptor.CNC_VERSION -> int +static readonly Adaptive.Aeron.CncFileDescriptor.CNC_VERSION_FIELD_OFFSET -> int +static readonly Adaptive.Aeron.CncFileDescriptor.COUNTERS_METADATA_BUFFER_LENGTH_FIELD_OFFSET -> int +static readonly Adaptive.Aeron.CncFileDescriptor.COUNTERS_VALUES_BUFFER_LENGTH_FIELD_OFFSET -> int +static readonly Adaptive.Aeron.CncFileDescriptor.END_OF_METADATA_OFFSET -> int +static readonly Adaptive.Aeron.CncFileDescriptor.ERROR_LOG_BUFFER_LENGTH_FIELD_OFFSET -> int +static readonly Adaptive.Aeron.CncFileDescriptor.FILE_PAGE_SIZE_FIELD_OFFSET -> int +static readonly Adaptive.Aeron.CncFileDescriptor.META_DATA_LENGTH -> int +static readonly Adaptive.Aeron.CncFileDescriptor.PID_FIELD_OFFSET -> int +static readonly Adaptive.Aeron.CncFileDescriptor.START_TIMESTAMP_FIELD_OFFSET -> int +static readonly Adaptive.Aeron.CncFileDescriptor.TO_CLIENTS_BUFFER_LENGTH_FIELD_OFFSET -> int +static readonly Adaptive.Aeron.CncFileDescriptor.TO_DRIVER_BUFFER_LENGTH_FIELD_OFFSET -> int +static readonly Adaptive.Aeron.Command.ClientTimeoutFlyweight.LENGTH -> int +static readonly Adaptive.Aeron.Command.ControlProtocolEvents.ControlProtocolSemanticVersion -> int +static readonly Adaptive.Aeron.Command.CorrelatedMessageFlyweight.LENGTH -> int +static readonly Adaptive.Aeron.Command.CounterUpdateFlyweight.LENGTH -> int +static readonly Adaptive.Aeron.Command.DestinationByIdMessageFlyweight.MESSAGE_LENGTH -> int +static readonly Adaptive.Aeron.Command.GetNextAvailableSessionIdMessageFlyweight.LENGTH -> int +static readonly Adaptive.Aeron.Command.NextAvailableSessionIdFlyweight.LENGTH -> int +static readonly Adaptive.Aeron.Command.OperationSucceededFlyweight.LENGTH -> int +static readonly Adaptive.Aeron.Command.StaticCounterFlyweight.LENGTH -> int +static readonly Adaptive.Aeron.Command.SubscriptionReadyFlyweight.LENGTH -> int +static readonly Adaptive.Aeron.Config.Params -> System.Collections.Generic.Dictionary +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_ACTIVE_TERM_COUNT_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_ACTIVE_TRANSPORT_COUNT -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_CORRELATION_ID_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_DEFAULT_FRAME_HEADER_LENGTH_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_DEFAULT_FRAME_HEADER_MAX_LENGTH -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_DEFAULT_FRAME_HEADER_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_END_OF_STREAM_POSITION_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_ENTITY_TAG_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_GROUP_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_INITIAL_TERM_ID_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_IS_CONNECTED_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_IS_PUBLICATION_REVOKED_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_IS_RESPONSE_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_LINGER_TIMEOUT_NS_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_MAX_RESEND_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_META_DATA_LENGTH -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_META_DATA_SECTION_INDEX -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_MTU_LENGTH_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_OS_DEFAULT_SOCKET_RCVBUF_LENGTH_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_OS_DEFAULT_SOCKET_SNDBUF_LENGTH_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_OS_MAX_SOCKET_RCVBUF_LENGTH_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_OS_MAX_SOCKET_SNDBUF_LENGTH_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_PAGE_SIZE_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_PUBLICATION_WINDOW_LENGTH_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_RECEIVER_WINDOW_LENGTH_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_REJOIN_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_RELIABLE_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_RESPONSE_CORRELATION_ID_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_SIGNAL_EOS_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_SOCKET_RCVBUF_LENGTH_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_SOCKET_SNDBUF_LENGTH_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_SPARSE_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_SPIES_SIMULATE_CONNECTION_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_TERM_LENGTH_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_TETHER_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_UNTETHERED_LINGER_TIMEOUT_NS_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_UNTETHERED_RESTING_TIMEOUT_NS_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.LOG_UNTETHERED_WINDOW_LIMIT_TIMEOUT_NS_OFFSET -> int +static readonly Adaptive.Aeron.LogBuffer.LogBufferDescriptor.TERM_TAIL_COUNTERS_OFFSET -> int +static readonly Adaptive.Aeron.Protocol.DataHeaderFlyweight.BEGIN_AND_END_FLAGS -> short +static readonly Adaptive.Aeron.Protocol.DataHeaderFlyweight.BEGIN_END_AND_EOS_FLAGS -> short +static readonly Adaptive.Aeron.Protocol.DataHeaderFlyweight.BEGIN_END_EOS_AND_REVOKED_FLAGS -> short +static readonly Adaptive.Aeron.Protocol.HeaderFlyweight.EMPTY_BUFFER -> byte[] +static readonly Adaptive.Aeron.Protocol.HeaderFlyweight.MIN_HEADER_LENGTH -> int +static readonly Adaptive.Aeron.RethrowingErrorHandler.INSTANCE -> Adaptive.Agrona.IErrorHandler +static readonly Adaptive.Aeron.Security.AllowAllAuthorisationService.ALLOW_ALL_NAME -> string +static readonly Adaptive.Aeron.Security.AllowAllAuthorisationService.INSTANCE -> Adaptive.Aeron.Security.IAuthorisationService +static readonly Adaptive.Aeron.Security.DefaultAuthenticatorSupplier.DEFAULT_AUTHENTICATOR -> Adaptive.Aeron.Security.IAuthenticator +static readonly Adaptive.Aeron.Security.DefaultAuthenticatorSupplier.INSTANCE -> Adaptive.Aeron.Security.DefaultAuthenticatorSupplier +static readonly Adaptive.Aeron.Security.DefaultAuthenticatorSupplier.NULL_ENCODED_PRINCIPAL -> byte[] +static readonly Adaptive.Aeron.Security.DenyAllAuthorisationService.DENY_ALL_NAME -> string +static readonly Adaptive.Aeron.Security.DenyAllAuthorisationService.INSTANCE -> Adaptive.Aeron.Security.IAuthorisationService +static readonly Adaptive.Aeron.Security.NullCredentialsSupplier.NULL_CREDENTIAL -> byte[] +static readonly Adaptive.Aeron.Status.LocalSocketAddressStatus.INITIAL_LENGTH -> int +virtual Adaptive.Aeron.AvailableCounterHandler.Invoke(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, long registrationId, int counterId) -> void +virtual Adaptive.Aeron.AvailableImageHandler.Invoke(Adaptive.Aeron.Image image) -> void +virtual Adaptive.Aeron.DutyCycleTracker.ReportMeasurement(long durationNs) -> void +virtual Adaptive.Aeron.EndOfStreamHandler.Invoke(Adaptive.Aeron.Image image) -> void +virtual Adaptive.Aeron.LogBuffer.BlockHandler.Invoke(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, int sessionId, int termId) -> void +virtual Adaptive.Aeron.LogBuffer.ControlledFragmentHandler.Invoke(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +virtual Adaptive.Aeron.LogBuffer.FragmentHandler.Invoke(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> void +virtual Adaptive.Aeron.LogBuffer.RawBlockHandler.Invoke(System.IO.FileStream fileStream, long fileOffset, Adaptive.Agrona.Concurrent.UnsafeBuffer termBuffer, int termOffset, int length, int sessionId, int termId) -> void +virtual Adaptive.Aeron.Publication.Position.get -> long +virtual Adaptive.Aeron.ReservedValueSupplier.Invoke(Adaptive.Agrona.IDirectBuffer termBuffer, int termOffset, int frameLength) -> long +virtual Adaptive.Aeron.UnavailableCounterHandler.Invoke(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, long registrationId, int counterId) -> void +virtual Adaptive.Aeron.UnavailableImageHandler.Invoke(Adaptive.Aeron.Image image) -> void diff --git a/src/Adaptive.Aeron/PublicAPI.Unshipped.txt b/src/Adaptive.Aeron/PublicAPI.Unshipped.txt new file mode 100644 index 00000000..5ddfd141 --- /dev/null +++ b/src/Adaptive.Aeron/PublicAPI.Unshipped.txt @@ -0,0 +1,12 @@ +Adaptive.Aeron.ChannelUri.Diff(Adaptive.Aeron.ChannelUri that) -> System.Collections.Generic.IDictionary +Adaptive.Aeron.ChannelUriStringBuilder.NakDelay(long? nakDelayNs) -> Adaptive.Aeron.ChannelUriStringBuilder +Adaptive.Aeron.LogBuffer.HeaderWriter.HeaderWriter(long versionFlagsType, long sessionId, long streamId) -> void +readonly Adaptive.Aeron.LogBuffer.HeaderWriter._sessionId -> long +readonly Adaptive.Aeron.LogBuffer.HeaderWriter._streamId -> long +readonly Adaptive.Aeron.LogBuffer.HeaderWriter._versionFlagsType -> long +static Adaptive.Aeron.AeronCounters.AppendVersionInfo(Adaptive.Agrona.IMutableDirectBuffer tempBuffer, int offset, string fullVersion, string commitHashCode) -> int +static Adaptive.Aeron.AeronCounters.FormatVersionInfo(string fullVersion, string commitHash) -> string +static Adaptive.Aeron.AeronCounters.SetReferenceId(Adaptive.Agrona.Concurrent.IAtomicBuffer metaDataBuffer, Adaptive.Agrona.Concurrent.IAtomicBuffer valuesBuffer, int counterId, long referenceId) -> void +static Adaptive.Aeron.LogBuffer.HeaderWriter.NewInstance(Adaptive.Agrona.Concurrent.UnsafeBuffer defaultHeader) -> Adaptive.Aeron.LogBuffer.HeaderWriter +virtual Adaptive.Aeron.LogBuffer.HeaderWriter.Write(Adaptive.Agrona.Concurrent.UnsafeBuffer termBuffer, int offset, int length, int termId) -> void +*REMOVED*Adaptive.Aeron.LogBuffer.HeaderWriter.Write(Adaptive.Agrona.Concurrent.UnsafeBuffer termBuffer, int offset, int length, int termId) -> void diff --git a/src/Adaptive.Aeron/Publication.cs b/src/Adaptive.Aeron/Publication.cs index efa57697..167e3271 100644 --- a/src/Adaptive.Aeron/Publication.cs +++ b/src/Adaptive.Aeron/Publication.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,16 +31,19 @@ namespace Adaptive.Aeron { /// - /// Aeron publisher API for sending messages to subscribers of a given channel and streamId pair. s - /// are created via the + /// Aeron publisher API for sending messages to subscribers of a given channel and streamId pair. + /// s + /// are created via the + /// /// methods, and messages are sent via one of the methods. /// /// The APIs used for tryClaim and offer are non-blocking. /// /// /// Note: All methods are threadsafe except offer and tryClaim for the subclass - /// . In the case of all methods are threadsafe. - /// + /// . In the case of all methods are + /// threadsafe. + /// /// /// /// @@ -50,7 +53,8 @@ namespace Adaptive.Aeron public abstract class Publication : IDisposable { /// - /// The publication is not connected to a subscriber, this can be an intermittent state as subscribers come and go. + /// The publication is not connected to a subscriber, this can be an intermittent state as subscribers come and + /// go. /// public const long NOT_CONNECTED = -1; @@ -60,8 +64,8 @@ public abstract class Publication : IDisposable public const long BACK_PRESSURED = -2; /// - /// The offer failed due to an administration action and should be retried. - /// The action is an operation such as log rotation which is likely to have succeeded by the next retry attempt. + /// The offer failed due to an administration action and should be retried. The action is an operation such as + /// log rotation which is likely to have succeeded by the next retry attempt. /// public const long ADMIN_ACTION = -3; @@ -74,8 +78,8 @@ public abstract class Publication : IDisposable /// The offer failed due to reaching the maximum position of the stream given term buffer length times the total /// possible number of terms. /// - /// If this happens then the publication should be closed and a new one added. To make it less likely to happen then - /// increase the term buffer length. + /// If this happens then the publication should be closed and a new one added. To make it less likely to happen + /// then increase the term buffer length. /// /// public const long MAX_POSITION_EXCEEDED = -5; @@ -83,10 +87,10 @@ public abstract class Publication : IDisposable internal readonly long _originalRegistrationId; internal readonly long _maxPossiblePosition; internal readonly int _channelStatusId; - + internal readonly int _maxFramedLength; internal volatile bool _isClosed; - internal bool revokeOnClose = false; + internal bool _revokeOnClose = false; internal readonly IReadablePosition _positionLimit; internal readonly UnsafeBuffer[] _termBuffers; @@ -98,9 +102,8 @@ public abstract class Publication : IDisposable // For testing purposes only internal Publication() { - } - + internal Publication( ClientConductor clientConductor, string channel, @@ -110,7 +113,8 @@ internal Publication( int channelStatusId, LogBuffers logBuffers, long originalRegistrationId, - long registrationId) + long registrationId + ) { var logMetaDataBuffer = logBuffers.MetaDataBuffer(); TermBufferLength = logBuffers.TermLength(); @@ -143,7 +147,8 @@ internal Publication( /// /// Number of bits to right shift a position to get a term count for how far the stream has progressed. /// - /// of bits to right shift a position to get a term count for how far the stream has progressed. + /// of bits to right shift a position to get a term count for how far the stream has progressed. + /// public int PositionBitsToShift { get; } /// @@ -154,9 +159,9 @@ internal Publication( /// /// The maximum possible position this stream can reach due to its term buffer length. - /// + /// /// Maximum possible position is term-length times 2^31 in bytes. - /// + /// /// /// the maximum possible position this stream can reach due to it term buffer length. public long MaxPossiblePosition => _maxPossiblePosition; @@ -181,28 +186,28 @@ internal Publication( public int SessionId { get; } /// - /// The initial term id assigned when this was created. This can be used to determine how many - /// terms have passed since creation. + /// The initial term id assigned when this was created. This can be used to + /// determine how many terms have passed since creation. /// /// the initial term id. public int InitialTermId { get; } /// - /// Maximum message length supported in bytes. Messages may be made of of multiple fragments if greater than - /// MTU length. + /// Maximum message length supported in bytes. Messages may be made of of multiple fragments if greater than MTU + /// length. /// /// maximum message length supported in bytes. public int MaxMessageLength { get; } /// /// Maximum length of a message payload that fits within a message fragment. - /// + /// /// This is the MTU length minus the message fragment header length. - /// + /// /// maximum message fragment payload length. /// public int MaxPayloadLength { get; } - + /// /// Get the registration used to register this Publication with the media driver by the first publisher. /// @@ -218,8 +223,9 @@ internal Publication( /// /// Get the registration id used to register this Publication with the media driver. - /// - /// If this value is different from the then a previous active registration exists. + /// + /// If this value is different from the then a previous active registration + /// exists. /// /// registration id public long RegistrationId { get; } @@ -227,12 +233,13 @@ internal Publication( /// /// Has the seen an active Subscriber recently? /// - /// true if this has seen an active subscriber otherwise false. + /// true if this has seen an active subscriber otherwise false. + /// public bool IsConnected => !_isClosed && LogBufferDescriptor.IsConnected(_logMetaDataBuffer); /// /// Remove resources used by this Publication when there are no more references. - /// + /// /// Publications are reference counted and are only truly closed when the ref count reaches zero. /// public void Dispose() @@ -252,12 +259,13 @@ public void Dispose() /// /// Get the status of the media channel for this Publication. /// - /// The status will be if a socket exception occurs on setup - /// and if all is well. - /// + /// The status will be if a socket exception occurs on setup and + /// if all is well. + /// /// /// - /// status for the channel as one of the constants from with it being + /// status for the channel as one of the constants from with + /// it being /// if the publication is closed. /// public long ChannelStatus @@ -282,12 +290,10 @@ public long ChannelStatus /// /// Fetches the local socket address for this publication. If the channel is not /// , then this will return an empty list. - /// - /// The format is as follows: - /// IPv4: ip address:port - /// IPv6: [ip6 address]:port - /// This is to match the formatting used in the Aeron URI. For publications this will be the control address and - /// is likely to only contain a single entry. + /// + /// The format is as follows: IPv4: ip address:port IPv6: [ip6 address]:port This is + /// to match the formatting used in the Aeron URI. For publications this will be the control address and is + /// likely to only contain a single entry. /// /// local socket addresses for this publication. /// @@ -295,11 +301,13 @@ public List LocalSocketAddresses() { return LocalSocketAddressStatus.FindAddresses(_conductor.CountersReader(), ChannelStatus, _channelStatusId); } - + /// /// Get the current position to which the publication has advanced for this stream. /// - /// the current position to which the publication has advanced for this stream or . + /// the current position to which the publication has advanced for this stream or + /// . + /// public virtual long Position { get @@ -312,17 +320,22 @@ public virtual long Position var rawTail = LogBufferDescriptor.RawTailVolatile(_logMetaDataBuffer); var termOffset = LogBufferDescriptor.TermOffset(rawTail, TermBufferLength); - return LogBufferDescriptor.ComputePosition(LogBufferDescriptor.TermId(rawTail), termOffset, - PositionBitsToShift, InitialTermId); + return LogBufferDescriptor.ComputePosition( + LogBufferDescriptor.TermId(rawTail), + termOffset, + PositionBitsToShift, + InitialTermId + ); } } /// /// Get the position limit beyond which this will be back pressured. - /// + /// /// This should only be used as a guide to determine when back pressure is likely to be applied. /// - /// the position limit beyond which this will be back pressured. + /// the position limit beyond which this will be back pressured. + /// public long PositionLimit { get @@ -339,7 +352,8 @@ public long PositionLimit /// /// Get the counter id for the position limit after which the publication will be back pressured. /// - /// the counter id for the position limit after which the publication will be back pressured. + /// the counter id for the position limit after which the publication will be back pressured. + /// public int PositionLimitId => _positionLimit.Id; /// @@ -353,7 +367,8 @@ public long PositionLimit /// Non-blocking publish of a buffer containing a message. /// /// containing message. - /// The new stream position, otherwise , , + /// The new stream position, otherwise , + /// , /// , or . [MethodImpl(MethodImplOptions.AggressiveInlining)] public long Offer(UnsafeBuffer buffer) @@ -368,14 +383,16 @@ public long Offer(UnsafeBuffer buffer) /// offset in the buffer at which the encoded message begins. /// in bytes of the encoded message. /// for the frame. - /// The new stream position, otherwise a negative error value , , + /// The new stream position, otherwise a negative error value , + /// , /// , or . [MethodImpl(MethodImplOptions.AggressiveInlining)] public abstract long Offer( IDirectBuffer buffer, int offset, int length, - ReservedValueSupplier reservedValueSupplier = null); + ReservedValueSupplier reservedValueSupplier = null + ); /// /// Non-blocking publish of a message composed of two parts, e.g. a header and encapsulated payload. @@ -388,7 +405,8 @@ public abstract long Offer( /// of the second part of the message. /// for the frame. /// The new stream position, otherwise a negative error value of , - /// , , , or . + /// , , , or + /// . public abstract long Offer( IDirectBuffer bufferOne, int offsetOne, @@ -396,38 +414,40 @@ public abstract long Offer( IDirectBuffer bufferTwo, int offsetTwo, int lengthTwo, - ReservedValueSupplier reservedValueSupplier = null); + ReservedValueSupplier reservedValueSupplier = null + ); /// /// Non-blocking publish by gathering buffer vectors into a message. /// /// which make up the message. /// for the frame. - /// The new stream position, otherwise a negative error value , , + /// The new stream position, otherwise a negative error value , + /// , /// , or . [MethodImpl(MethodImplOptions.AggressiveInlining)] public abstract long Offer(DirectBufferVector[] vectors, ReservedValueSupplier reservedValueSupplier = null); /// /// Try to claim a range in the publication log into which a message can be written with zero copy semantics. - /// Once the message has been written then should be called thus making it available. - /// A claim length cannot be greater than - /// - /// Note: This method can only be used for message lengths less than MTU length minus header. - /// If the claim is held for more than the aeron.publication.unblock.timeout system property then the driver will - /// assume the publication thread is dead and will unblock the claim thus allowing other threads to make progress - /// for and other claims to be sent to reach end-of-stream (EOS). + /// Once the message has been written then should be called thus making + /// it available. A claim length cannot be greater than + /// + /// Note: This method can only be used for message lengths less than MTU length minus header. If the + /// claim is held for more than the aeron.publication.unblock.timeout system property then the driver will + /// assume the publication thread is dead and will unblock the claim thus allowing other threads to make + /// progress for and other claims to be sent to reach end-of-stream (EOS). /// /// /// BufferClaim bufferClaim = new BufferClaim(); // Can be stored and reused to avoid allocation - /// + /// /// if (publication.TryClaim(messageLength, bufferClaim) > 0L) /// { /// try /// { /// IMutableDirectBuffer buffer = bufferClaim.Buffer; /// int offset = bufferClaim.Offset; - /// + /// /// // Work with buffer directly or wrap with a flyweight /// } /// finally @@ -436,13 +456,15 @@ public abstract long Offer( /// } /// } /// - /// + /// /// /// of the range to claim, in bytes. /// to be populated if the claim succeeds. - /// The new stream position, otherwise , , + /// The new stream position, otherwise , + /// , /// , or . - /// if the length is greater than max payload length within an MTU. + /// if the length is greater than max payload length within an MTU. + /// /// /// [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -493,9 +515,9 @@ public void RemoveDestination(long registrationId) /// /// Asynchronously add a destination manually to a multi-destination-cast Publication. /// - /// Errors will be delivered asynchronously to the . Completion can be - /// tracked by passing the returned correlation id to . - /// + /// Errors will be delivered asynchronously to the . Completion + /// can be tracked by passing the returned correlation id to . + /// /// /// /// for the destination to add. @@ -513,9 +535,9 @@ public long AsyncAddDestination(string endpointChannel) /// /// Asynchronously remove a previously added destination from a multi-destination-cast Publication. /// - /// Errors will be delivered asynchronously to the . Completion can be - /// tracked by passing the returned correlation id to . - /// + /// Errors will be delivered asynchronously to the . Completion + /// can be tracked by passing the returned correlation id to . + /// /// /// /// for the destination to remove. @@ -529,13 +551,14 @@ public long AsyncRemoveDestination(string endpointChannel) return _conductor.AsyncRemoveDestination(RegistrationId, endpointChannel); } - + /// - /// Asynchronously remove a previously added destination from a multi-destination-cast Publication by registrationId. + /// Asynchronously remove a previously added destination from a multi-destination-cast Publication by + /// registrationId. /// - /// Errors will be delivered asynchronously to the . Completion can be - /// tracked by passing the returned correlation id to . - /// + /// Errors will be delivered asynchronously to the . Completion + /// can be tracked by passing the returned correlation id to . + /// /// /// /// for the destination to remove. @@ -593,7 +616,8 @@ internal void CheckPayloadLength(int length) if (length > MaxPayloadLength) { ThrowHelper.ThrowArgumentException( - $"claim exceeds maxPayloadLength of {MaxPayloadLength:D}, length={length:D}"); + $"claim exceeds maxPayloadLength of {MaxPayloadLength:D}, length={length:D}" + ); } } @@ -603,10 +627,11 @@ internal void CheckMaxMessageLength(int length) if (length > MaxMessageLength) { ThrowHelper.ThrowArgumentException( - $"message exceeds maxMessageLength of {MaxMessageLength:D}, length={length:D}"); + $"message exceeds maxMessageLength of {MaxMessageLength:D}, length={length:D}" + ); } } - + internal static int ValidateAndComputeLength(int lengthOne, int lengthTwo) { if (lengthOne < 0) @@ -627,11 +652,11 @@ internal static int ValidateAndComputeLength(int lengthOne, int lengthTwo) return totalLength; } - + /// - /// Returns a string representation of a position. Generally used for errors. If the position is a valid error then - /// String name of the error will be returned. If the value is 0 or greater the text will be "NONE". If the position - /// is negative, but not a known error code then "UNKNOWN" will be returned. + /// Returns a string representation of a position. Generally used for errors. If the position is a valid error + /// then String name of the error will be returned. If the value is 0 or greater the text will be "NONE". If the + /// position is negative, but not a known error code then "UNKNOWN" will be returned. /// /// position value returned from a call to offer. /// String representation of the error. @@ -668,18 +693,19 @@ public static string ErrorString(long position) public override string ToString() { - return "Publication{" + - "originalRegistrationId=" + OriginalRegistrationId + - ", registrationId=" + RegistrationId + - ", isClosed=" + _isClosed + - ", isConnected=" + IsConnected + - ", initialTermId=" + InitialTermId + - ", termBufferLength=" + TermBufferLength + - ", sessionId=" + SessionId + - ", streamId=" + StreamId + - ", channel='" + Channel + '\'' + - ", position=" + Position + - '}'; + return + "Publication{" + + "originalRegistrationId=" + OriginalRegistrationId + + ", registrationId=" + RegistrationId + + ", isClosed=" + _isClosed + + ", isConnected=" + IsConnected + + ", initialTermId=" + InitialTermId + + ", termBufferLength=" + TermBufferLength + + ", sessionId=" + SessionId + + ", streamId=" + StreamId + + ", channel='" + Channel + '\'' + + ", position=" + Position + + '}'; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/PublicationErrorFrameHandler.cs b/src/Adaptive.Aeron/PublicationErrorFrameHandler.cs index 625b9cc7..d4b0d15c 100644 --- a/src/Adaptive.Aeron/PublicationErrorFrameHandler.cs +++ b/src/Adaptive.Aeron/PublicationErrorFrameHandler.cs @@ -1,37 +1,52 @@ -using Adaptive.Aeron.Status; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron.Status; namespace Adaptive.Aeron { - /// - /// Interface for handling various error frame messages for publications. - /// @since 1.47.0 - /// - public interface IPublicationErrorFrameHandler - { - /// - /// Called when an error frame for a publication is received by the local driver and needs to be propagated to the - /// appropriate clients. E.g. when an image is invalidated. This callback will reuse the {@link - /// PublicationErrorFrame} instance, so data is only valid for the lifetime of the callback. If the user needs to - /// pass the data onto another thread or hold in another location for use later, then the user needs to make use of - /// the method to create a copy for their own use. - /// - /// This callback will be executed on the client conductor thread, similar to image availability notifications. - /// - /// - /// This notification will only be propagated to clients that have added an instance of the Publication that received - /// the error frame (i.e. the originalRegistrationId matches the registrationId on the error frame). - /// - /// - /// - /// containing the relevant information about the publication and the error message. - void OnPublicationError(PublicationErrorFrame errorFrame); - } + /// + /// Interface for handling various error frame messages for publications. @since 1.47.0 + /// + public interface IPublicationErrorFrameHandler + { + /// + /// Called when an error frame for a publication is received by the local driver and needs to be propagated to + /// the appropriate clients. E.g. when an image is invalidated. This callback will reuse the + /// {@link PublicationErrorFrame} instance, so data is only valid for the lifetime of the callback. If the user + /// needs to pass the data onto another thread or hold in another location for use later, then the user needs to + /// make use of the method to create a copy for their own use. + /// + /// This callback will be executed on the client conductor thread, similar to image availability notifications. + /// + /// + /// This notification will only be propagated to clients that have added an instance of the Publication that + /// received the error frame (i.e. the originalRegistrationId matches the registrationId on the error frame). + /// + /// + /// + /// containing the relevant information about the publication and the error message. + /// + void OnPublicationError(PublicationErrorFrame errorFrame); + } - public class NoOpPublicationErrorFrameHandler : IPublicationErrorFrameHandler - { - public void OnPublicationError(PublicationErrorFrame errorFrame) - { - - } - } -} \ No newline at end of file + public class NoOpPublicationErrorFrameHandler : IPublicationErrorFrameHandler + { + public void OnPublicationError(PublicationErrorFrame errorFrame) + { + } + } +} diff --git a/src/Adaptive.Aeron/ReservedValueSupplier.cs b/src/Adaptive.Aeron/ReservedValueSupplier.cs index d1128986..ad0a3d9c 100644 --- a/src/Adaptive.Aeron/ReservedValueSupplier.cs +++ b/src/Adaptive.Aeron/ReservedValueSupplier.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,15 +26,16 @@ namespace Adaptive.Aeron /// in the header plus the body of the frame will have been written at the point of supply. /// /// - /// The reserved value can be used for carrying out of band data with message fragments such a checksums or timestamps. + /// The reserved value can be used for carrying out of band data with message fragments such a checksums or + /// timestamps. /// - /// - /// Callback to provide the reserved value to be encoded with each message fragment as the last action - /// before the length field is set which commits the fragment for sending to the media. + /// + /// Callback to provide the reserved value to be encoded with each message fragment as the last action before the + /// length field is set which commits the fragment for sending to the media. /// /// containing the encoding message fragment. /// at which the header of the frame begins. /// Total length of the frame including header. /// the value to be used for storing in the reserved value field. public delegate long ReservedValueSupplier(IDirectBuffer termBuffer, int termOffset, int frameLength); -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/RethrowingErrorHandler.cs b/src/Adaptive.Aeron/RethrowingErrorHandler.cs index 037a047f..b27ae2f8 100644 --- a/src/Adaptive.Aeron/RethrowingErrorHandler.cs +++ b/src/Adaptive.Aeron/RethrowingErrorHandler.cs @@ -1,10 +1,26 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using Adaptive.Agrona; namespace Adaptive.Aeron { /// - /// Error handler that will rethrow an . + /// Error handler that will rethrow an . /// public class RethrowingErrorHandler : IErrorHandler { @@ -18,4 +34,4 @@ public void OnError(Exception exception) throw exception; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Security/AuthenticationException.cs b/src/Adaptive.Aeron/Security/AuthenticationException.cs index 08939286..5d0c5c44 100644 --- a/src/Adaptive.Aeron/Security/AuthenticationException.cs +++ b/src/Adaptive.Aeron/Security/AuthenticationException.cs @@ -1,5 +1,19 @@ -using System; -using System.Runtime.Serialization; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron.Exceptions; namespace Adaptive.Aeron.Security @@ -13,8 +27,9 @@ public class AuthenticationException : AeronException /// Authentication exception with provided message and . /// /// to detail the exception. - public AuthenticationException(string message) : base(message) + public AuthenticationException(string message) + : base(message) { } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Security/DefaultAuthenticatorSupplier.cs b/src/Adaptive.Aeron/Security/DefaultAuthenticatorSupplier.cs index 7ce4f036..fda627ae 100644 --- a/src/Adaptive.Aeron/Security/DefaultAuthenticatorSupplier.cs +++ b/src/Adaptive.Aeron/Security/DefaultAuthenticatorSupplier.cs @@ -1,3 +1,21 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; + namespace Adaptive.Aeron.Security { /// @@ -9,11 +27,11 @@ public class DefaultAuthenticatorSupplier : IAuthenticatorSupplier /// Singleton instance. /// public static readonly DefaultAuthenticatorSupplier INSTANCE = new DefaultAuthenticatorSupplier(); - + /// /// The null encoded principal is an empty array of bytes. /// - public static readonly byte[] NULL_ENCODED_PRINCIPAL = new byte[0]; + public static readonly byte[] NULL_ENCODED_PRINCIPAL = Array.Empty(); /// /// Singleton instance which can be used to avoid allocation. @@ -21,10 +39,11 @@ public class DefaultAuthenticatorSupplier : IAuthenticatorSupplier public static readonly IAuthenticator DEFAULT_AUTHENTICATOR = new DefaultAuthenticator(); /// - /// Gets the singleton instance which authenticates all connection requests - /// immediately. + /// Gets the singleton instance which authenticates all connection + /// requests immediately. /// - /// which authenticates all connection requests immediately. + /// which authenticates all connection requests immediately. + /// public IAuthenticator Get() { return DEFAULT_AUTHENTICATOR; @@ -51,4 +70,4 @@ public void OnChallengedSession(ISessionProxy sessionProxy, long nowMs) } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Security/IAuthenticator.cs b/src/Adaptive.Aeron/Security/IAuthenticator.cs index 1aaca387..f1d1d011 100644 --- a/src/Adaptive.Aeron/Security/IAuthenticator.cs +++ b/src/Adaptive.Aeron/Security/IAuthenticator.cs @@ -1,9 +1,26 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + namespace Adaptive.Aeron.Security { /// /// Interface for an Authenticator to handle authentication of clients to a system. /// - /// The session-id refers to the authentication session and not the Aeron transport session assigned to a publication. + /// The session-id refers to the authentication session and not the Aeron transport session assigned to a + /// publication. /// /// /// @@ -12,7 +29,8 @@ namespace Adaptive.Aeron.Security public interface IAuthenticator { /// - /// Called upon reception of a Connect Request and will be followed up by multiple calls to + /// Called upon reception of a Connect Request and will be followed up by multiple calls to + /// /// one the response channel is connected. /// /// to identify the client session connecting. @@ -24,15 +42,17 @@ public interface IAuthenticator /// Called upon reception of a Challenge Response from an unauthenticated client. /// /// to identify the client session connecting. - /// from the Challenge Response. Will not be null, but may be 0 length. + /// from the Challenge Response. Will not be null, but may be 0 length. + /// /// current epoch time in milliseconds. void OnChallengeResponse(long sessionId, byte[] encodedCredentials, long nowMs); /// - /// Called when a client's response channel has been connected. This method may be called multiple times until the - /// session timeouts, is challenged, authenticated, or rejected. + /// Called when a client's response channel has been connected. This method may be called multiple times until + /// the session timeouts, is challenged, authenticated, or rejected. /// - /// to use to update authentication status. Proxy is only valid for the duration of the call. + /// to use to update authentication status. Proxy is only valid for the duration of + /// the call. /// current epoch time in milliseconds. /// void OnConnectedSession(ISessionProxy sessionProxy, long nowMs); @@ -45,12 +65,13 @@ public interface IAuthenticator /// /// /// It is up to the concrete class to provide any timeout management. - /// + /// /// /// - /// to use to update authentication status. Proxy is only valid for the duration of the call. + /// to use to update authentication status. Proxy is only valid for the duration of + /// the call. /// current epoch time in milliseconds. /// void OnChallengedSession(ISessionProxy sessionProxy, long nowMs); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Security/IAuthenticatorSupplier.cs b/src/Adaptive.Aeron/Security/IAuthenticatorSupplier.cs index 6ce0373d..b5336cbb 100644 --- a/src/Adaptive.Aeron/Security/IAuthenticatorSupplier.cs +++ b/src/Adaptive.Aeron/Security/IAuthenticatorSupplier.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + namespace Adaptive.Aeron.Security { /// @@ -7,4 +23,4 @@ public interface IAuthenticatorSupplier { IAuthenticator Get(); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Security/IAuthorisationService.cs b/src/Adaptive.Aeron/Security/IAuthorisationService.cs index 60224480..40c3b969 100644 --- a/src/Adaptive.Aeron/Security/IAuthorisationService.cs +++ b/src/Adaptive.Aeron/Security/IAuthorisationService.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + namespace Adaptive.Aeron.Security { /// @@ -7,16 +23,17 @@ namespace Adaptive.Aeron.Security public interface IAuthorisationService { /// - /// Checks if the client with authenticated credentials is allowed to perform an action indicated by the - /// given {@code actionId}. + /// Checks if the client with authenticated credentials is allowed to perform an action indicated by the given + /// {@code actionId} . /// /// of the protocol to which the action belongs, e.g. a SBE schema id. /// of the command being checked, e.g. a SBE message template id. - /// optional type for the action being checked, may be {@code null}. For example for - /// an admin request in the cluster it will contain {@code AdminRequestType} value which - /// denotes the exact kind of the request. + /// optional type for the action being checked, may be {@code null}. For example for + /// an admin request in the cluster it will contain {@code AdminRequestType} value which denotes the exact kind + /// of the request. /// that has been authenticated. - /// {@code true} if the client is authorised to execute the action or {@code false} otherwise. + /// {@code true} if the client is authorised to execute the action or {@code false} otherwise. + /// bool IsAuthorised(int protocolId, int actionId, object type, byte[] encodedPrincipal); } @@ -26,33 +43,33 @@ public interface IAuthorisationService public class AllowAllAuthorisationService : IAuthorisationService { public static readonly IAuthorisationService INSTANCE = new AllowAllAuthorisationService(); - + /// /// Special case token for authorisation service supplier that allow all requests. /// public static readonly string ALLOW_ALL_NAME = "ALLOW_ALL"; - + public bool IsAuthorised(int protocolId, int actionId, object type, byte[] encodedPrincipal) { return true; } } - + /// /// An instance that forbids all actions. /// public class DenyAllAuthorisationService : IAuthorisationService { public static readonly IAuthorisationService INSTANCE = new DenyAllAuthorisationService(); - + /// /// Special case token for authorisation service supplier that will deny all requests. /// public static readonly string DENY_ALL_NAME = "DENY_ALL"; - + public bool IsAuthorised(int protocolId, int actionId, object type, byte[] encodedPrincipal) { return false; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Security/IAuthorisationServiceSupplier.cs b/src/Adaptive.Aeron/Security/IAuthorisationServiceSupplier.cs index 9c6935d7..cf28f8aa 100644 --- a/src/Adaptive.Aeron/Security/IAuthorisationServiceSupplier.cs +++ b/src/Adaptive.Aeron/Security/IAuthorisationServiceSupplier.cs @@ -1,10 +1,26 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + namespace Adaptive.Aeron.Security { /// - /// Used to supply instances of . + /// Used to supply instances of . /// public interface IAuthorisationServiceSupplier { IAuthorisationService Get(); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Security/ICredentialsSupplier.cs b/src/Adaptive.Aeron/Security/ICredentialsSupplier.cs index 365d5ef7..6bcb58eb 100644 --- a/src/Adaptive.Aeron/Security/ICredentialsSupplier.cs +++ b/src/Adaptive.Aeron/Security/ICredentialsSupplier.cs @@ -1,8 +1,24 @@ -namespace Adaptive.Aeron.Security +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Aeron.Security { /// /// Supplier of credentials for authentication with a system. - /// + /// /// Implement this interface to supply credentials for clients. If no credentials are required then the /// can be used. /// @@ -19,7 +35,8 @@ public interface ICredentialsSupplier /// authentication with a system. /// /// from the cluster to use in providing a credential. - /// encoded credentials in binary form to be included in the Challenge Response to the system. + /// encoded credentials in binary form to be included in the Challenge Response to the system. + /// byte[] OnChallenge(byte[] endcodedChallenge); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Security/ISessionProxy.cs b/src/Adaptive.Aeron/Security/ISessionProxy.cs index a37a40ca..05c3c6d1 100644 --- a/src/Adaptive.Aeron/Security/ISessionProxy.cs +++ b/src/Adaptive.Aeron/Security/ISessionProxy.cs @@ -1,7 +1,24 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + namespace Adaptive.Aeron.Security { /// - /// Representation of a session during the authentication process from the perspective of an . + /// Representation of a session during the authentication process from the perspective of an + /// . /// /// public interface ISessionProxy @@ -16,14 +33,16 @@ public interface ISessionProxy /// Inform the system that the session requires a challenge by sending the provided encoded challenge. /// /// to be sent to the client. - /// true if challenge was accepted to be sent at present time or false if it will be retried later. + /// true if challenge was accepted to be sent at present time or false if it will be retried later. + /// bool Challenge(byte[] encodedChallenge); /// /// Inform the system that the session has met authentication requirements. /// /// that has passed authentication. - /// true if authentication was accepted at present time or false if it will be retried later. + /// true if authentication was accepted at present time or false if it will be retried later. + /// bool Authenticate(byte[] encodedPrincipal); /// @@ -31,4 +50,4 @@ public interface ISessionProxy /// void Reject(); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Security/NullCredentialsSupplier.cs b/src/Adaptive.Aeron/Security/NullCredentialsSupplier.cs index 92a4ad5b..ae83f2b3 100644 --- a/src/Adaptive.Aeron/Security/NullCredentialsSupplier.cs +++ b/src/Adaptive.Aeron/Security/NullCredentialsSupplier.cs @@ -1,4 +1,22 @@ -namespace Adaptive.Aeron.Security +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; + +namespace Adaptive.Aeron.Security { /// /// Null provider of credentials when no authentication is required. @@ -8,8 +26,7 @@ public class NullCredentialsSupplier : ICredentialsSupplier /// /// Null credentials are an empty array of bytes. /// - public static readonly byte[] NULL_CREDENTIAL = new byte[0]; - + public static readonly byte[] NULL_CREDENTIAL = Array.Empty(); /// public byte[] EncodedCredentials() @@ -23,4 +40,4 @@ public byte[] OnChallenge(byte[] endcodedChallenge) return NULL_CREDENTIAL; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Status/ChannelEndpointStatus.cs b/src/Adaptive.Aeron/Status/ChannelEndpointStatus.cs index e61642e1..784ae36c 100644 --- a/src/Adaptive.Aeron/Status/ChannelEndpointStatus.cs +++ b/src/Adaptive.Aeron/Status/ChannelEndpointStatus.cs @@ -1,10 +1,23 @@ -using Adaptive.Agrona; -using Adaptive.Agrona.Concurrent.Status; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ namespace Adaptive.Aeron.Status { /// - /// Status of the Aeron media channel for a or . + /// Status of the Aeron media channel for a or . /// public static class ChannelEndpointStatus { @@ -38,4 +51,4 @@ public static class ChannelEndpointStatus /// public const int CHANNEL_OFFSET = 0; } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Status/HeartbeatTimestamp.cs b/src/Adaptive.Aeron/Status/HeartbeatTimestamp.cs index 0ce5f1ad..8d1e8e38 100644 --- a/src/Adaptive.Aeron/Status/HeartbeatTimestamp.cs +++ b/src/Adaptive.Aeron/Status/HeartbeatTimestamp.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Agrona; using Adaptive.Agrona.Concurrent.Status; @@ -6,6 +22,11 @@ namespace Adaptive.Aeron.Status /// /// Allocate a counter for tracking the last heartbeat of an entity with a given registration id. /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class HeartbeatTimestamp { /// @@ -25,8 +46,11 @@ public class HeartbeatTimestamp /// to match on. /// for the active client. /// the counter id if found otherwise . - public static int FindCounterIdByRegistrationId(CountersReader countersReader, int counterTypeId, - long registrationId) + public static int FindCounterIdByRegistrationId( + CountersReader countersReader, + int counterTypeId, + long registrationId + ) { IDirectBuffer buffer = countersReader.MetaDataBuffer; @@ -35,9 +59,14 @@ public static int FindCounterIdByRegistrationId(CountersReader countersReader, i int counterState = countersReader.GetCounterState(counterId); if (counterState == CountersReader.RECORD_ALLOCATED) { - if (countersReader.GetCounterTypeId(counterId) == counterTypeId && - buffer.GetLong(CountersReader.MetaDataOffset(counterId) + CountersReader.KEY_OFFSET + - REGISTRATION_ID_OFFSET) == registrationId) + if ( + countersReader.GetCounterTypeId(counterId) == counterTypeId + && registrationId == buffer.GetLong( + CountersReader.MetaDataOffset(counterId) + + CountersReader.KEY_OFFSET + + REGISTRATION_ID_OFFSET + ) + ) { return counterId; } @@ -51,7 +80,6 @@ public static int FindCounterIdByRegistrationId(CountersReader countersReader, i return CountersReader.NULL_COUNTER_ID; } - /// /// Is the counter active for usage? Checks to see if reclaimed or reused and matches registration id. /// @@ -60,15 +88,19 @@ public static int FindCounterIdByRegistrationId(CountersReader countersReader, i /// to validate type. /// for the entity. /// true if still valid otherwise false. - public static bool IsActive(CountersReader countersReader, int counterId, int counterTypeId, - long registrationId) + public static bool IsActive( + CountersReader countersReader, + int counterId, + int counterTypeId, + long registrationId + ) { IDirectBuffer buffer = countersReader.MetaDataBuffer; int recordOffset = CountersReader.MetaDataOffset(counterId); - return countersReader.GetCounterTypeId(counterId) == counterTypeId && - buffer.GetLong(recordOffset + CountersReader.KEY_OFFSET + REGISTRATION_ID_OFFSET) == - registrationId && countersReader.GetCounterState(counterId) == CountersReader.RECORD_ALLOCATED; + return countersReader.GetCounterTypeId(counterId) == counterTypeId + && buffer.GetLong(recordOffset + CountersReader.KEY_OFFSET + REGISTRATION_ID_OFFSET) == registrationId + && countersReader.GetCounterState(counterId) == CountersReader.RECORD_ALLOCATED; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Status/LocalSocketAddressStatus.cs b/src/Adaptive.Aeron/Status/LocalSocketAddressStatus.cs index f812fe37..e7a99cb4 100644 --- a/src/Adaptive.Aeron/Status/LocalSocketAddressStatus.cs +++ b/src/Adaptive.Aeron/Status/LocalSocketAddressStatus.cs @@ -1,6 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System.Collections.Generic; -using System.Linq; using Adaptive.Agrona; using Adaptive.Agrona.Concurrent.Status; @@ -9,46 +23,50 @@ namespace Adaptive.Aeron.Status /// /// Counter used to store the status of a bind address and port for the local end of a channel. /// - /// When the value is then the key value and label will be updated with the - /// socket address and port which is bound. + /// When the value is then the key value and label will be updated + /// with the socket address and port which is bound. /// /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class LocalSocketAddressStatus { - private const int CHANNEL_STATUS_ID_OFFSET = 0; - private static readonly int LOCAL_SOCKET_ADDRESS_LENGTH_OFFSET = CHANNEL_STATUS_ID_OFFSET + BitUtil.SIZE_OF_INT; + private const int ChannelStatusIdOffset = 0; + private static readonly int LocalSocketAddressLengthOffset = ChannelStatusIdOffset + BitUtil.SIZE_OF_INT; - private static readonly int LOCAL_SOCKET_ADDRESS_STRING_OFFSET = - LOCAL_SOCKET_ADDRESS_LENGTH_OFFSET + BitUtil.SIZE_OF_INT; + private static readonly int LocalSocketAddressStringOffset = + LocalSocketAddressLengthOffset + BitUtil.SIZE_OF_INT; - private static readonly int MAX_IPV6_LENGTH = "[ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255]:65536".Length; + private static readonly int MaxIpv6Length = "[ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255]:65536".Length; /// /// Initial length for a key, this will be expanded later when bound. /// public static readonly int INITIAL_LENGTH = BitUtil.SIZE_OF_INT * 2; - private static readonly List EMPTY_LIST = new List(); + private static readonly List EmptyList = new List(); /// /// Type of the counter used to track a local socket address and port. /// public const int LOCAL_SOCKET_ADDRESS_STATUS_TYPE_ID = AeronCounters.DRIVER_LOCAL_SOCKET_ADDRESS_STATUS_TYPE_ID; - /// /// Find the list of currently bound local sockets. /// /// for the connected driver. /// value for the channel which aggregates the transports. - /// identity of the counter for the channel which aggregates the transports. + /// identity of the counter for the channel which aggregates the transports. + /// /// the list of active bound local socket addresses. - public static List FindAddresses(CountersReader countersReader, long channelStatus, - int channelStatusId) + public static List FindAddresses(CountersReader countersReader, long channelStatus, int channelStatusId) { if (channelStatus != ChannelEndpointStatus.ACTIVE) { - return EMPTY_LIST; + return EmptyList; } List bindings = new List(2); @@ -64,15 +82,20 @@ public static List FindAddresses(CountersReader countersReader, long cha int recordOffset = CountersReader.MetaDataOffset(counterId); int keyIndex = recordOffset + CountersReader.KEY_OFFSET; - if (channelStatusId == buffer.GetInt(keyIndex + CHANNEL_STATUS_ID_OFFSET) && - ChannelEndpointStatus.ACTIVE == countersReader.GetCounterValue(counterId)) + if ( + channelStatusId == buffer.GetInt(keyIndex + ChannelStatusIdOffset) + && ChannelEndpointStatus.ACTIVE == countersReader.GetCounterValue(counterId) + ) { - int length = buffer.GetInt(keyIndex + LOCAL_SOCKET_ADDRESS_LENGTH_OFFSET); + int length = buffer.GetInt(keyIndex + LocalSocketAddressLengthOffset); if (length > 0) { bindings.Add( - buffer.GetStringWithoutLengthAscii(keyIndex + LOCAL_SOCKET_ADDRESS_STRING_OFFSET, - length)); + buffer.GetStringWithoutLengthAscii( + keyIndex + LocalSocketAddressStringOffset, + length + ) + ); } } } @@ -92,7 +115,8 @@ public static List FindAddresses(CountersReader countersReader, long cha /// /// for the connected driver. /// value for the channel which aggregates the transports. - /// identity of the counter for the channel which aggregates the transports. + /// identity of the counter for the channel which aggregates the transports. + /// /// the endpoint representing the bound socket address or null if not found. public static string FindAddress(CountersReader countersReader, long channelStatus, int channelStatusId) { @@ -112,14 +136,18 @@ public static string FindAddress(CountersReader countersReader, long channelStat int recordOffset = CountersReader.MetaDataOffset(counterId); int keyIndex = recordOffset + CountersReader.KEY_OFFSET; - if (channelStatusId == buffer.GetInt(keyIndex + CHANNEL_STATUS_ID_OFFSET) && - ChannelEndpointStatus.ACTIVE == countersReader.GetCounterValue(counterId)) + if ( + channelStatusId == buffer.GetInt(keyIndex + ChannelStatusIdOffset) + && ChannelEndpointStatus.ACTIVE == countersReader.GetCounterValue(counterId) + ) { - int length = buffer.GetInt(keyIndex + LOCAL_SOCKET_ADDRESS_LENGTH_OFFSET); + int length = buffer.GetInt(keyIndex + LocalSocketAddressLengthOffset); if (length > 0) { endpoint = buffer.GetStringWithoutLengthAscii( - keyIndex + LOCAL_SOCKET_ADDRESS_STRING_OFFSET, length); + keyIndex + LocalSocketAddressStringOffset, + length + ); } break; @@ -135,7 +163,7 @@ public static string FindAddress(CountersReader countersReader, long channelStat return endpoint; } - + /// /// Return number of local addresses for the given subscription registration id. /// @@ -149,9 +177,11 @@ public static int FindNumberOfAddressesByRegistrationId(CountersReader countersR for (int counterId = 0, maxId = countersReader.MaxCounterId; counterId < maxId; counterId++) { int counterState = countersReader.GetCounterState(counterId); - if (counterState == CountersReader.RECORD_ALLOCATED && - countersReader.GetCounterTypeId(counterId) == LOCAL_SOCKET_ADDRESS_STATUS_TYPE_ID && - countersReader.GetCounterRegistrationId(counterId) == registrationId) + if ( + counterState == CountersReader.RECORD_ALLOCATED + && countersReader.GetCounterTypeId(counterId) == LOCAL_SOCKET_ADDRESS_STATUS_TYPE_ID + && countersReader.GetCounterRegistrationId(counterId) == registrationId + ) { result++; } @@ -163,7 +193,7 @@ public static int FindNumberOfAddressesByRegistrationId(CountersReader countersR return result; } - + /// /// Is a socket currently active for a channel. /// @@ -184,8 +214,10 @@ public static bool IsActive(in CountersReader countersReader, in int channelStat int recordOffset = CountersReader.MetaDataOffset(counterId); int keyIndex = recordOffset + CountersReader.KEY_OFFSET; - if (channelStatusId == buffer.GetInt(keyIndex + CHANNEL_STATUS_ID_OFFSET) && - ChannelEndpointStatus.ACTIVE == countersReader.GetCounterValue(counterId)) + if ( + channelStatusId == buffer.GetInt(keyIndex + ChannelStatusIdOffset) + && ChannelEndpointStatus.ACTIVE == countersReader.GetCounterValue(counterId) + ) { return true; } @@ -199,6 +231,5 @@ public static bool IsActive(in CountersReader countersReader, in int channelStat return false; } - } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Status/PublicationErrorFrame.cs b/src/Adaptive.Aeron/Status/PublicationErrorFrame.cs index 0935ab1d..68852ef2 100644 --- a/src/Adaptive.Aeron/Status/PublicationErrorFrame.cs +++ b/src/Adaptive.Aeron/Status/PublicationErrorFrame.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Net; using Adaptive.Aeron.Command; @@ -9,15 +25,15 @@ namespace Adaptive.Aeron.Status /// public class PublicationErrorFrame : ICloneable { - private long registrationId; - private int sessionId; - private int streamId; - private long receiverId; - private long destinationRegistrationId; - private long groupTag; - private ErrorCode errorCode; - private string errorMessage; - private IPEndPoint sourceAddress; + private long _registrationId; + private int _sessionId; + private int _streamId; + private long _receiverId; + private long _destinationRegistrationId; + private long _groupTag; + private ErrorCode _errorCode; + private string _errorMessage; + private IPEndPoint _sourceAddress; /// /// Registration id of the publication that received the error frame. @@ -25,7 +41,7 @@ public class PublicationErrorFrame : ICloneable /// registration id of the publication. public long RegistrationId() { - return registrationId; + return _registrationId; } /// @@ -34,7 +50,7 @@ public long RegistrationId() /// session id of the publication. public int SessionId() { - return sessionId; + return _sessionId; } /// @@ -43,7 +59,7 @@ public int SessionId() /// stream id of the publication. public int StreamId() { - return streamId; + return _streamId; } /// @@ -52,17 +68,17 @@ public int StreamId() /// receiver id of the source that send the error frame. public long ReceiverId() { - return receiverId; + return _receiverId; } /// /// Group tag of the source that sent the error frame. /// - /// group tag of the source that sent the error frame or if the source did not have a group - /// tag set. + /// group tag of the source that sent the error frame or if the + /// source did not have a group tag set. public long GroupTag() { - return groupTag; + return _groupTag; } /// @@ -71,7 +87,7 @@ public long GroupTag() /// the error code. public ErrorCode ErrorCode() { - return errorCode; + return _errorCode; } /// @@ -80,7 +96,7 @@ public ErrorCode ErrorCode() /// the error message. public string ErrorMessage() { - return errorMessage; + return _errorMessage; } /// @@ -89,7 +105,7 @@ public string ErrorMessage() /// address of the remote source. public IPEndPoint SourceAddress() { - return sourceAddress; + return _sourceAddress; } /// @@ -99,7 +115,7 @@ public IPEndPoint SourceAddress() /// registrationId of the destination or . public long DestinationRegistrationId() { - return destinationRegistrationId; + return _destinationRegistrationId; } /// @@ -109,47 +125,47 @@ public long DestinationRegistrationId() /// this for fluent API. public PublicationErrorFrame Set(PublicationErrorFrameFlyweight frameFlyweight) { - registrationId = frameFlyweight.RegistrationId(); - sessionId = frameFlyweight.SessionId(); - streamId = frameFlyweight.StreamId(); - receiverId = frameFlyweight.ReceiverId(); - groupTag = frameFlyweight.GroupTag(); - sourceAddress = frameFlyweight.SourceAddress(); - errorCode = frameFlyweight.ErrorCode(); - errorMessage = frameFlyweight.ErrorMessage(); - destinationRegistrationId = frameFlyweight.DestinationRegistrationId(); + _registrationId = frameFlyweight.RegistrationId(); + _sessionId = frameFlyweight.SessionId(); + _streamId = frameFlyweight.StreamId(); + _receiverId = frameFlyweight.ReceiverId(); + _groupTag = frameFlyweight.GroupTag(); + _sourceAddress = frameFlyweight.SourceAddress(); + _errorCode = frameFlyweight.ErrorCode(); + _errorMessage = frameFlyweight.ErrorMessage(); + _destinationRegistrationId = frameFlyweight.DestinationRegistrationId(); return this; } /// - /// Return a copy of this message. Useful if a callback is reusing an instance of this class to avoid unnecessary - /// allocation. + /// Return a copy of this message. Useful if a callback is reusing an instance of this class to avoid + /// unnecessary allocation. /// /// a copy of this instance's data. public object Clone() { return MemberwiseClone(); } - + /// /// Build a String representation of the error frame. /// /// a String representation of the error frame. public override string ToString() { - return "CounterMessageFlyweight{" + - "registrationId=" + registrationId + - ", sessionId=" + sessionId + - ", streamId=" + streamId + - ", receiverId=" + receiverId + - ", destinationRegistrationId=" + destinationRegistrationId + - ", groupTag=" + groupTag + - ", errorCode=" + errorCode + - ", errorMessage=" + errorMessage + - ", sourceAddress=" + sourceAddress + - "}"; + return + "CounterMessageFlyweight{" + + "registrationId=" + _registrationId + + ", sessionId=" + _sessionId + + ", streamId=" + _streamId + + ", receiverId=" + _receiverId + + ", destinationRegistrationId=" + _destinationRegistrationId + + ", groupTag=" + _groupTag + + ", errorCode=" + _errorCode + + ", errorMessage=" + _errorMessage + + ", sourceAddress=" + _sourceAddress + + "}"; } - } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Status/ReadableCounter.cs b/src/Adaptive.Aeron/Status/ReadableCounter.cs index 8a190cee..10cbbba7 100644 --- a/src/Adaptive.Aeron/Status/ReadableCounter.cs +++ b/src/Adaptive.Aeron/Status/ReadableCounter.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using Adaptive.Agrona; using Adaptive.Agrona.Concurrent; using Adaptive.Agrona.Concurrent.Status; @@ -6,11 +22,11 @@ namespace Adaptive.Aeron.Status { /// - /// Readonly view of an associated . + /// Readonly view of an associated . /// - /// Note:The user should call and ensure the result is false to avoid a race on reading a - /// closed . - /// + /// Note: The user should call and ensure the result is false to avoid a race on + /// reading a closed . + /// /// /// public sealed class ReadableCounter : IDisposable @@ -25,15 +41,19 @@ public sealed class ReadableCounter : IDisposable /// Construct a view of an existing counter. /// /// for getting access to the buffers. - /// assigned by the driver for the counter or if not known. + /// assigned by the driver for the counter or + /// if not known. /// for the counter to be viewed. - /// if the id has for the counter has not been allocated. + /// if the id has for the counter has not been allocated. + /// public ReadableCounter(CountersReader countersReader, long registrationId, int counterId) { var counterState = countersReader.GetCounterState(counterId); if (counterState != CountersReader.RECORD_ALLOCATED) { - throw new InvalidOperationException("Counter not allocated: id=" + counterId + " state=" + counterState); + throw new InvalidOperationException( + "Counter not allocated: id=" + counterId + " state=" + counterState + ); } _countersReader = countersReader; @@ -52,9 +72,10 @@ public ReadableCounter(CountersReader countersReader, long registrationId, int c /// /// for getting access to the buffers. /// for the counter to be viewed. - /// if the id has for the counter has not been allocated. - public ReadableCounter(CountersReader countersReader, int counterId) : this(countersReader, Aeron.NULL_VALUE, - counterId) + /// if the id has for the counter has not been allocated. + /// + public ReadableCounter(CountersReader countersReader, int counterId) + : this(countersReader, Aeron.NULL_VALUE, counterId) { } @@ -88,9 +109,9 @@ public ReadableCounter(CountersReader countersReader, int counterId) : this(coun /// /// Get the latest value for the counter with volatile semantics. /// - /// Note:The user should call and ensure the result is false to avoid a race on reading - /// a closed counter. - /// + /// Note: The user should call and ensure the result is false to avoid a race + /// on reading a closed counter. + /// /// /// /// the latest value for the counter. @@ -126,4 +147,4 @@ public void Dispose() /// true if it has been closed otherwise false. public bool IsClosed => _isClosed; } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/Subscription.cs b/src/Adaptive.Aeron/Subscription.cs index e6175b95..692e1d69 100644 --- a/src/Adaptive.Aeron/Subscription.cs +++ b/src/Adaptive.Aeron/Subscription.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,21 +29,21 @@ namespace Adaptive.Aeron [StructLayout(LayoutKind.Sequential)] internal struct SubscriptionFields { - internal static readonly Image[] EMPTY_IMAGES = Array.Empty(); + internal static readonly Image[] EmptyImages = Array.Empty(); // padding to prevent false sharing private CacheLinePadding _padding1; - internal readonly long registrationId; - internal readonly int streamId; - internal int roundRobinIndex; - internal volatile bool isClosed; - internal volatile Image[] images; - internal readonly ClientConductor conductor; - internal readonly string channel; - internal readonly AvailableImageHandler availableImageHandler; - internal readonly UnavailableImageHandler unavailableImageHandler; - internal int channelStatusId; + internal readonly long _registrationId; + internal readonly int _streamId; + internal int _roundRobinIndex; + internal volatile bool _isClosed; + internal volatile Image[] _images; + internal readonly ClientConductor _conductor; + internal readonly string _channel; + internal readonly AvailableImageHandler _availableImageHandler; + internal readonly UnavailableImageHandler _unavailableImageHandler; + internal int _channelStatusId; // padding to prevent false sharing private CacheLinePadding _padding2; @@ -54,45 +54,49 @@ internal SubscriptionFields( ClientConductor clientConductor, string channel, AvailableImageHandler availableImageHandler, - UnavailableImageHandler unavailableImageHandler) + UnavailableImageHandler unavailableImageHandler + ) { _padding1 = new CacheLinePadding(); _padding2 = new CacheLinePadding(); - channelStatusId = ChannelEndpointStatus.NO_ID_ALLOCATED; - - this.registrationId = registrationId; - this.streamId = streamId; - conductor = clientConductor; - this.channel = channel; - this.availableImageHandler = availableImageHandler; - this.unavailableImageHandler = unavailableImageHandler; - roundRobinIndex = 0; - isClosed = false; - images = EMPTY_IMAGES; - channelStatusId = 0; + _channelStatusId = ChannelEndpointStatus.NO_ID_ALLOCATED; + + _registrationId = registrationId; + _streamId = streamId; + _conductor = clientConductor; + _channel = channel; + _availableImageHandler = availableImageHandler; + _unavailableImageHandler = unavailableImageHandler; + _roundRobinIndex = 0; + _isClosed = false; + _images = EmptyImages; + _channelStatusId = 0; } } - +#pragma warning disable S103 // long cref atom; mirrors upstream Java @see exempted by Checkstyle ignorePattern /// - /// Aeron Subscriber API for receiving a reconstructed for a stream of messages from publishers on - /// a given channel and streamId pair, i.e. a . s are aggregated under a . - /// - /// s are created via an object, and received messages are delivered - /// to the . - /// - /// By default, fragmented messages are not reassembled before delivery. If an application must - /// receive whole messages, even if they were fragmented, then the Subscriber - /// should be created with a or a custom implementation. - /// - /// It is an application's responsibility to the for new messages. - /// - /// Note:Subscriptions are not threadsafe and should not be shared between subscribers. + /// Aeron Subscriber API for receiving a reconstructed for a stream of messages from + /// publishers on a given channel and streamId pair, i.e. a . s + /// are aggregated under a . + /// + /// s are created via an object, and received messages are + /// delivered to the . + /// + /// By default, fragmented messages are not reassembled before delivery. If an application must receive whole + /// messages, even if they were fragmented, then the Subscriber should be created with a + /// or a custom implementation. + /// + /// It is an application's responsibility to the + /// for new messages. + /// + /// Note: Subscriptions are not threadsafe and should not be shared between subscribers. /// /// /// /// /// +#pragma warning restore S103 public class Subscription : IDisposable { private SubscriptionFields _fields; @@ -100,64 +104,74 @@ public class Subscription : IDisposable // For testing purposes only internal Subscription() { - } - + internal Subscription( ClientConductor conductor, string channel, int streamId, long registrationId, AvailableImageHandler availableImageHandler, - UnavailableImageHandler unavailableImageHandler) + UnavailableImageHandler unavailableImageHandler + ) { - _fields = new SubscriptionFields(registrationId, streamId, conductor, channel, availableImageHandler, - unavailableImageHandler); + _fields = new SubscriptionFields( + registrationId, + streamId, + conductor, + channel, + availableImageHandler, + unavailableImageHandler + ); } /// /// Media address for delivery to the channel. /// /// Media address for delivery to the channel. - public string Channel => _fields.channel; + public string Channel => _fields._channel; /// /// Stream identity for scoping within the channel media address. /// /// Stream identity for scoping within the channel media address. - public int StreamId => _fields.streamId; + public int StreamId => _fields._streamId; /// /// Return the registration id used to register this Subscription with the media driver. /// /// registration id - public long RegistrationId => _fields.registrationId; + public long RegistrationId => _fields._registrationId; /// - /// Callback used to indicate when an becomes available under this + /// Callback used to indicate when an becomes available under this + /// /// - /// callback used to indicate when an becomes available under this . - public AvailableImageHandler AvailableImageHandler => _fields.availableImageHandler; + /// callback used to indicate when an becomes available under this + /// . + public AvailableImageHandler AvailableImageHandler => _fields._availableImageHandler; /// /// Callback used to indicate when an goes unavailable under this /// - /// callback used to indicate when an goes unavailable under this . - public UnavailableImageHandler UnavailableImageHandler => _fields.unavailableImageHandler; + /// callback used to indicate when an goes unavailable under this + /// . + public UnavailableImageHandler UnavailableImageHandler => _fields._unavailableImageHandler; /// - /// Poll the s under the subscription for available message fragments. + /// Poll the s under the subscription for available message fragments. /// /// Each fragment read will be a whole message if it is under MTU length. If larger than MTU then it will come /// as a series of fragments ordered within a session. /// /// - /// To assemble messages that span multiple fragments then use . - /// + /// To assemble messages that span multiple fragments then use . + /// /// /// /// callback for handling each message fragment as it is read. - /// number of message fragments to limit when polling across multiple s. + /// number of message fragments to limit when polling across multiple + /// s. /// the number of fragments received. public int Poll(FragmentHandler fragmentHandler, int fragmentLimit) { @@ -166,29 +180,30 @@ public int Poll(FragmentHandler fragmentHandler, int fragmentLimit) } /// - /// Poll the s under the subscription for available message fragments. + /// Poll the s under the subscription for available message fragments. /// /// Each fragment read will be a whole message if it is under MTU length. If larger than MTU then it will come /// as a series of fragments ordered within a session. /// /// - /// To assemble messages that span multiple fragments then use . - /// + /// To assemble messages that span multiple fragments then use . + /// /// /// /// callback for handling each message fragment as it is read. - /// number of message fragments to limit when polling across multiple s. + /// number of message fragments to limit when polling across multiple + /// s. /// the number of fragments received. public int Poll(IFragmentHandler fragmentHandler, int fragmentLimit) { - var images = _fields.images; + var images = _fields._images; var length = images.Length; var fragmentsRead = 0; - var startingIndex = _fields.roundRobinIndex++; + var startingIndex = _fields._roundRobinIndex++; if (startingIndex >= length) { - _fields.roundRobinIndex = startingIndex = 0; + _fields._roundRobinIndex = startingIndex = 0; } for (var i = startingIndex; i < length && fragmentsRead < fragmentLimit; i++) @@ -205,32 +220,33 @@ public int Poll(IFragmentHandler fragmentHandler, int fragmentLimit) } /// - /// Poll in a controlled manner the s under the subscription for available message fragments. - /// Control is applied to message fragments in the stream. If more fragments can be read on another stream - /// they will even if BREAK or ABORT is returned from the fragment handler. + /// Poll in a controlled manner the s under the subscription for available message + /// fragments. Control is applied to message fragments in the stream. If more fragments can be read on another + /// stream they will even if BREAK or ABORT is returned from the fragment handler. /// /// Each fragment read will be a whole message if it is under MTU length. If larger than MTU then it will come /// as a series of fragments ordered within a session. /// /// - /// To assemble messages that span multiple fragments then use . - /// + /// To assemble messages that span multiple fragments then use . + /// /// /// /// callback for handling each message fragment as it is read. - /// number of message fragments to limit when polling across multiple s. + /// number of message fragments to limit when polling across multiple + /// s. /// the number of fragments received. /// public int ControlledPoll(IControlledFragmentHandler fragmentHandler, int fragmentLimit) { - var images = _fields.images; + var images = _fields._images; var length = images.Length; var fragmentsRead = 0; - var startingIndex = _fields.roundRobinIndex++; + var startingIndex = _fields._roundRobinIndex++; if (startingIndex >= length) { - _fields.roundRobinIndex = startingIndex = 0; + _fields._roundRobinIndex = startingIndex = 0; } for (var i = startingIndex; i < length && fragmentsRead < fragmentLimit; i++) @@ -247,20 +263,21 @@ public int ControlledPoll(IControlledFragmentHandler fragmentHandler, int fragme } /// - /// Poll in a controlled manner the s under the subscription for available message fragments. - /// Control is applied to fragments in the stream. If more fragments can be read on another stream + /// Poll in a controlled manner the s under the subscription for available message + /// fragments. Control is applied to fragments in the stream. If more fragments can be read on another stream /// they will even if BREAK or ABORT is returned from the fragment handler. /// /// Each fragment read will be a whole message if it is under MTU length. If larger than MTU then it will come /// as a series of fragments ordered within a session. /// /// - /// To assemble messages that span multiple fragments then use . - /// + /// To assemble messages that span multiple fragments then use . + /// /// /// /// callback for handling each message fragment as it is read. - /// number of message fragments to limit when polling across multiple s. + /// number of message fragments to limit when polling across multiple + /// s. /// the number of fragments received /// public int ControlledPoll(ControlledFragmentHandler fragmentHandler, int fragmentLimit) @@ -270,10 +287,10 @@ public int ControlledPoll(ControlledFragmentHandler fragmentHandler, int fragmen } /// - /// Poll the s under the subscription for available message fragments in blocks. + /// Poll the s under the subscription for available message fragments in blocks. /// /// This method is useful for operations like bulk archiving and messaging indexing. - /// + /// /// /// /// to receive a block of fragments from each . @@ -282,7 +299,7 @@ public int ControlledPoll(ControlledFragmentHandler fragmentHandler, int fragmen public long BlockPoll(BlockHandler blockHandler, int blockLengthLimit) { long bytesConsumed = 0; - foreach (var image in _fields.images) + foreach (var image in _fields._images) { bytesConsumed += image.BlockPoll(blockHandler, blockLengthLimit); } @@ -291,8 +308,8 @@ public long BlockPoll(BlockHandler blockHandler, int blockLengthLimit) } /// - /// Poll in a non-blocking manner for available message fragments on each in turn, - /// delivered to the supplied as raw blocks. + /// Poll in a non-blocking manner for available message fragments on each in turn, delivered + /// to the supplied as raw blocks. /// /// This method is useful for operations like bulk archiving a stream to file. /// @@ -303,7 +320,7 @@ public long BlockPoll(BlockHandler blockHandler, int blockLengthLimit) public long RawPoll(RawBlockHandler rawBlockHandler, int blockLengthLimit) { long bytesConsumed = 0; - foreach (var image in _fields.images) + foreach (var image in _fields._images) { bytesConsumed += image.RawPoll(rawBlockHandler, blockLengthLimit); } @@ -312,14 +329,15 @@ public long RawPoll(RawBlockHandler rawBlockHandler, int blockLengthLimit) } /// - /// Is this subscription connected by having at least one open publication . + /// Is this subscription connected by having at least one open publication . /// - /// true if this subscription connected by having at least one open publication . + /// true if this subscription connected by having at least one open publication + /// . public bool IsConnected { get { - foreach (var image in _fields.images) + foreach (var image in _fields._images) { if (!image.Closed) { @@ -332,16 +350,16 @@ public bool IsConnected } /// - /// Has this subscription currently no s? + /// Has this subscription currently no s? /// /// Has this subscription currently no s? - public bool HasNoImages => _fields.images.Length == 0; + public bool HasNoImages => _fields._images.Length == 0; /// - /// Count of s associated to this subscription. + /// Count of s associated to this subscription. /// /// count of s associated to this subscription. - public int ImageCount => _fields.images.Length; + public int ImageCount => _fields._images.Length; /// /// Return the associated with the given sessionId. @@ -352,7 +370,7 @@ public Image ImageBySessionId(int sessionId) { Image result = null; - foreach (var image in _fields.images) + foreach (var image in _fields._images) { if (sessionId == image.SessionId) { @@ -375,34 +393,35 @@ public Image ImageAtIndex(int index) } /// - /// Get a of active s that match this subscription. + /// Get a of active s that match this subscription. /// - /// an unmodifiable of active s that match this subscription. - public IList Images => new ReadOnlyCollection(_fields.images); + /// an unmodifiable of active s that match this + /// subscription. + public IList Images => new ReadOnlyCollection(_fields._images); /// - /// Iterate over the s for this subscription. + /// Iterate over the s for this subscription. /// /// to handle each . public void ForEachImage(Action consumer) { - foreach (var image in _fields.images) + foreach (var image in _fields._images) { consumer(image); } } /// - /// Close the Subscription so that associated s can be released. + /// Close the Subscription so that associated s can be released. /// /// This method is idempotent. /// /// public void Dispose() { - if (!_fields.isClosed) + if (!_fields._isClosed) { - _fields.conductor.RemoveSubscription(this); + _fields._conductor.RemoveSubscription(this); } } @@ -410,58 +429,54 @@ public void Dispose() /// Has this object been closed and should no longer be used? /// /// true if it has been closed otherwise false. - public bool IsClosed => _fields.isClosed; - + public bool IsClosed => _fields._isClosed; /// /// Get the status of the media channel for this Subscription. /// - /// The status will be if a socket exception occurs on setup - /// and if all is well. - /// + /// The status will be if a socket exception occurs on setup and + /// if all is well. + /// /// /// - /// status for the channel as one of the constants from with it being + /// status for the channel as one of the constants from with + /// it being /// if the subscription is closed. /// public long ChannelStatus { get { - if (_fields.isClosed) + if (_fields._isClosed) { return ChannelEndpointStatus.NO_ID_ALLOCATED; } - return _fields.conductor.ChannelStatus(ChannelStatusId); + return _fields._conductor.ChannelStatus(ChannelStatusId); } } - /// /// Get the counter used to represent the channel status for this Subscription. /// /// the counter used to represent the channel status for this Subscription. public int ChannelStatusId { - get => _fields.channelStatusId; - internal set => _fields.channelStatusId = value; + get => _fields._channelStatusId; + internal set => _fields._channelStatusId = value; } /// /// Fetches the local socket addresses for this subscription. If the channel is not /// , then this will return an empty list. - /// - /// The format is as follows: - /// IPv4: ip address:port - /// IPv6: [ip6 address]:port - /// This is to match the formatting used in the Aeron URI. + /// + /// The format is as follows: IPv4: ip address:port IPv6: [ip6 address]:port This is + /// to match the formatting used in the Aeron URI. /// /// of socket addresses for this subscription. /// public List LocalSocketAddresses => - LocalSocketAddressStatus.FindAddresses(_fields.conductor.CountersReader(), ChannelStatus, - ChannelStatusId); + LocalSocketAddressStatus.FindAddresses(_fields._conductor.CountersReader(), ChannelStatus, ChannelStatusId); /// /// Add a destination manually to a multi-destination Subscription. @@ -469,12 +484,12 @@ public int ChannelStatusId /// for the destination to add. public void AddDestination(string endpointChannel) { - if (_fields.isClosed) + if (_fields._isClosed) { throw new AeronException("Subscription is closed"); } - _fields.conductor.AddRcvDestination(_fields.registrationId, endpointChannel); + _fields._conductor.AddRcvDestination(_fields._registrationId, endpointChannel); } /// @@ -483,61 +498,62 @@ public void AddDestination(string endpointChannel) /// for the destination to remove. public void RemoveDestination(string endpointChannel) { - if (_fields.isClosed) + if (_fields._isClosed) { throw new AeronException("Subscription is closed"); } - _fields.conductor.RemoveRcvDestination(_fields.registrationId, endpointChannel); + _fields._conductor.RemoveRcvDestination(_fields._registrationId, endpointChannel); } /// /// Asynchronously add a destination manually to a multi-destination Subscription. /// - /// Errors will be delivered asynchronously to the . Completion can be - /// tracked by passing the returned correlation id to . - /// + /// Errors will be delivered asynchronously to the . Completion + /// can be tracked by passing the returned correlation id to . + /// /// /// /// for the destination to add. /// the correlationId for the command. public long AsyncAddDestination(string endpointChannel) { - if (_fields.isClosed) + if (_fields._isClosed) { throw new AeronException("Subscription is closed"); } - return _fields.conductor.AsyncAddRcvDestination(_fields.registrationId, endpointChannel); + return _fields._conductor.AsyncAddRcvDestination(_fields._registrationId, endpointChannel); } /// /// Asynchronously remove a previously added destination from a multi-destination Subscription. /// - /// Errors will be delivered asynchronously to the . Completion can be - /// tracked by passing the returned correlation id to . - /// + /// Errors will be delivered asynchronously to the . Completion + /// can be tracked by passing the returned correlation id to . + /// /// /// /// for the destination to remove. /// the correlationId for the command. public long AsyncRemoveDestination(string endpointChannel) { - if (_fields.isClosed) + if (_fields._isClosed) { throw new AeronException("Subscription is closed"); } - return _fields.conductor.AsyncRemoveRcvDestination(_fields.registrationId, endpointChannel); + return _fields._conductor.AsyncRemoveRcvDestination(_fields._registrationId, endpointChannel); } /// - /// Resolve channel endpoint and replace it with the port from the ephemeral range when 0 was provided. If there are - /// no addresses, or if there is more than one, returned from then the original + /// Resolve channel endpoint and replace it with the port from the ephemeral range when 0 was provided. If there + /// are no addresses, or if there is more than one, returned from then + /// the original /// is returned. /// - /// If the channel is not , then {@code null} will be returned. - /// + /// If the channel is not , then {@code null} will be returned. + /// /// /// /// channel URI string with an endpoint being resolved to the allocated port. @@ -549,13 +565,15 @@ public string TryResolveChannelEndpointPort() if (ChannelEndpointStatus.ACTIVE == channelStatus) { - IList localSocketAddresses = - LocalSocketAddressStatus.FindAddresses(_fields.conductor.CountersReader(), channelStatus, - _fields.channelStatusId); + IList localSocketAddresses = LocalSocketAddressStatus.FindAddresses( + _fields._conductor.CountersReader(), + channelStatus, + _fields._channelStatusId + ); if (1 == localSocketAddresses.Count) { - ChannelUri uri = ChannelUri.Parse(_fields.channel); + ChannelUri uri = ChannelUri.Parse(_fields._channel); string endpoint = uri.Get(Aeron.Context.ENDPOINT_PARAM_NAME); if (null != endpoint && endpoint.EndsWith(":0", StringComparison.Ordinal)) @@ -565,7 +583,7 @@ public string TryResolveChannelEndpointPort() } } - return _fields.channel; + return _fields._channel; } return null; @@ -573,40 +591,41 @@ public string TryResolveChannelEndpointPort() /// /// Find the resolved endpoint for the channel. This may be null if MDS is used and no destination is yet added. - /// The result will similar to taking the first element returned from . If more than - /// one destination is added then the first found is returned. + /// The result will similar to taking the first element returned from . + /// If more than one destination is added then the first found is returned. /// - /// If the channel is not , then {@code null} will be returned. - /// + /// If the channel is not , then {@code null} will be returned. + /// /// /// /// The resolved endpoint or null if not found. /// /// public string ResolvedEndpoint => - LocalSocketAddressStatus.FindAddress(_fields.conductor.CountersReader(), ChannelStatus, - _fields.channelStatusId); - + LocalSocketAddressStatus.FindAddress( + _fields._conductor.CountersReader(), + ChannelStatus, + _fields._channelStatusId + ); internal void InternalClose(long lingerDurationNs) { - var images = _fields.images; - _fields.images = SubscriptionFields.EMPTY_IMAGES; - _fields.isClosed = true; - _fields.conductor.CloseImages(images, _fields.unavailableImageHandler, lingerDurationNs); + var images = _fields._images; + _fields._images = SubscriptionFields.EmptyImages; + _fields._isClosed = true; + _fields._conductor.CloseImages(images, _fields._unavailableImageHandler, lingerDurationNs); } internal void AddImage(Image image) { - _fields.images = ArrayUtil.Add(_fields.images, image); + _fields._images = ArrayUtil.Add(_fields._images, image); } internal Image RemoveImage(long correlationId) { - var oldArray = _fields.images; + var oldArray = _fields._images; Image removedImage = null; - int i = 0; foreach (var image in oldArray) @@ -623,8 +642,9 @@ internal Image RemoveImage(long correlationId) if (null != removedImage) { removedImage.Close(); - _fields.images = oldArray.Length == 1 ? SubscriptionFields.EMPTY_IMAGES : ArrayUtil.Remove(oldArray, i); - _fields.conductor.ReleaseLogBuffers(removedImage.LogBuffers, correlationId, Aeron.NULL_VALUE); + _fields._images = + oldArray.Length == 1 ? SubscriptionFields.EmptyImages : ArrayUtil.Remove(oldArray, i); + _fields._conductor.ReleaseLogBuffers(removedImage.LogBuffers, correlationId, Aeron.NULL_VALUE); } return removedImage; @@ -636,22 +656,23 @@ internal void RejectImage(long correlationId, long position, String reason) { throw new AeronException("spies can not reject images"); } - - _fields.conductor.RejectImage(correlationId, position, reason); + + _fields._conductor.RejectImage(correlationId, position, reason); } /// public override string ToString() { - return "Subscription{" + - "registrationId=" + RegistrationId + - ", isClosed=" + IsClosed + - ", isConnected=" + IsConnected + - ", streamId=" + StreamId + - ", channel='" + Channel + '\'' + - ", localSocketAddresses='" + LocalSocketAddresses + - ", imageCount=" + ImageCount + - '}'; + return + "Subscription{" + + "registrationId=" + RegistrationId + + ", isClosed=" + IsClosed + + ", isConnected=" + IsConnected + + ", streamId=" + StreamId + + ", channel='" + Channel + '\'' + + ", localSocketAddresses='" + LocalSocketAddresses + + ", imageCount=" + ImageCount + + '}'; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/UnavailableCounterHandler.cs b/src/Adaptive.Aeron/UnavailableCounterHandler.cs index c54ad523..ef940a4e 100644 --- a/src/Adaptive.Aeron/UnavailableCounterHandler.cs +++ b/src/Adaptive.Aeron/UnavailableCounterHandler.cs @@ -1,16 +1,32 @@ -using Adaptive.Agrona.Concurrent.Status; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona.Concurrent.Status; namespace Adaptive.Aeron { /// - /// Interface for notification of s being removed via an client. + /// Interface for notification of s being removed via an client. /// - /// Within this callback reentrant calls to the client are not permitted and - /// will result in undefined behaviour. + /// Within this callback reentrant calls to the client are not permitted and will result in + /// undefined behaviour. /// /// /// for more detail on the counter. /// for the counter. /// that is available. public delegate void UnavailableCounterHandler(CountersReader countersReader, long registrationId, int counterId); -} \ No newline at end of file +} diff --git a/src/Adaptive.Aeron/UnavailableImageHandler.cs b/src/Adaptive.Aeron/UnavailableImageHandler.cs index f91b204c..51c8f8b7 100644 --- a/src/Adaptive.Aeron/UnavailableImageHandler.cs +++ b/src/Adaptive.Aeron/UnavailableImageHandler.cs @@ -1,13 +1,29 @@ -namespace Adaptive.Aeron +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Aeron { /// - /// Interface for delivery of inactive image notification to a . - /// + /// Interface for delivery of inactive image notification to a . + /// /// Method called by Aeron to deliver notification that an is no longer available for polling. /// - /// Within this callback reentrant calls to the client are not permitted and - /// will result in undefined behaviour. + /// Within this callback reentrant calls to the client are not permitted and will result in + /// undefined behaviour. /// /// that is no longer available for polling. public delegate void UnavailableImageHandler(Image image); -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona.PerformanceTest/Adaptive.Agrona.PerformanceTest.licenseheader b/src/Adaptive.Agrona.PerformanceTest/Adaptive.Agrona.PerformanceTest.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Adaptive.Agrona.PerformanceTest/Adaptive.Agrona.PerformanceTest.licenseheader +++ b/src/Adaptive.Agrona.PerformanceTest/Adaptive.Agrona.PerformanceTest.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Adaptive.Agrona.PerformanceTest/ManyToOneRingBufferConcurrentTest.cs b/src/Adaptive.Agrona.PerformanceTest/ManyToOneRingBufferConcurrentTest.cs index 951ad1e4..98155e5d 100644 --- a/src/Adaptive.Agrona.PerformanceTest/ManyToOneRingBufferConcurrentTest.cs +++ b/src/Adaptive.Agrona.PerformanceTest/ManyToOneRingBufferConcurrentTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,11 +36,16 @@ public ManyToOneRingBufferConcurrentTest() private void InitializeInstanceFields() { - _unsafeBuffer = new UnsafeBuffer(BufferUtil.AllocateDirectAligned(16 * 1024 + RingBufferDescriptor.TrailerLength, BitUtil.CACHE_LINE_LENGTH)); + _unsafeBuffer = new UnsafeBuffer( + BufferUtil.AllocateDirectAligned( + 16 * 1024 + RingBufferDescriptor.TrailerLength, + BitUtil.CACHE_LINE_LENGTH + ) + ); _ringBuffer = new ManyToOneRingBuffer(_unsafeBuffer); } - private const int MsgTypeID = 7; + private const int MsgTypeId = 7; private UnsafeBuffer _unsafeBuffer; private IRingBuffer _ringBuffer; @@ -78,9 +83,13 @@ public void ProvideCorrelationIds(int reps) } var nextCorrelationId = _ringBuffer.NextCorrelationId(); - if (nextCorrelationId != reps*numThreads) + if (nextCorrelationId != reps * numThreads) { - Console.WriteLine("error - ProvideCorrelationIds - _ringBuffer.NextCorrelationId()={0}, reps*numThreads={1}", nextCorrelationId, reps * numThreads); + Console.WriteLine( + "error - ProvideCorrelationIds - _ringBuffer.NextCorrelationId()={0}, reps*numThreads={1}", + nextCorrelationId, + reps * numThreads + ); } } @@ -117,7 +126,7 @@ public void ExchangeMessages(int reps) }; var msgCount = 0; - while (msgCount < reps*numProducers) + while (msgCount < reps * numProducers) { var readCount = _ringBuffer.Read(handler); if (0 == readCount) @@ -130,7 +139,11 @@ public void ExchangeMessages(int reps) if (msgCount != reps * numProducers) { - Console.WriteLine("error - msgCount != reps * numProducers. msgCount={0}, reps * numProducers={1}", msgCount, reps * numProducers); + Console.WriteLine( + "error - msgCount != reps * numProducers. msgCount={0}, reps * numProducers={1}", + msgCount, + reps * numProducers + ); return; } } @@ -139,40 +152,45 @@ internal class Producer { private readonly ManyToOneRingBufferConcurrentTest _outerInstance; - internal readonly int ProducerId; - internal readonly Barrier Barrier; - internal readonly int Reps; + internal readonly int _producerId; + internal readonly Barrier _barrier; + internal readonly int _reps; - internal Producer(ManyToOneRingBufferConcurrentTest outerInstance, int producerId, Barrier barrier, int reps) + internal Producer( + ManyToOneRingBufferConcurrentTest outerInstance, + int producerId, + Barrier barrier, + int reps + ) { _outerInstance = outerInstance; - ProducerId = producerId; - Barrier = barrier; - Reps = reps; + _producerId = producerId; + _barrier = barrier; + _reps = reps; } public void Run() { try { - Barrier.SignalAndWait(); + _barrier.SignalAndWait(); } catch (Exception) { // ignored } - const int length = BitUtil.SIZE_OF_INT*2; + const int length = BitUtil.SIZE_OF_INT * 2; const int repsValueOffset = BitUtil.SIZE_OF_INT; var srcBuffer = new UnsafeBuffer(new byte[1024]); - srcBuffer.PutInt(0, ProducerId); + srcBuffer.PutInt(0, _producerId); - for (var i = 0; i < Reps; i++) + for (var i = 0; i < _reps; i++) { srcBuffer.PutInt(repsValueOffset, i); - while (!_outerInstance._ringBuffer.Write(MsgTypeID, srcBuffer, 0, length)) + while (!_outerInstance._ringBuffer.Write(MsgTypeId, srcBuffer, 0, length)) { Thread.Yield(); } @@ -180,4 +198,4 @@ public void Run() } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona.PerformanceTest/Program.cs b/src/Adaptive.Agrona.PerformanceTest/Program.cs index 4d520f4b..3fbf83bf 100644 --- a/src/Adaptive.Agrona.PerformanceTest/Program.cs +++ b/src/Adaptive.Agrona.PerformanceTest/Program.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,19 +19,19 @@ namespace Adaptive.Agrona.PerformanceTest { - class Program + static class Program { static void Main(string[] args) { // warm up - new ManyToOneRingBufferConcurrentTest().ExchangeMessages(10*1000); - new ManyToOneRingBufferConcurrentTest().ProvideCorrelationIds(10*1000); + new ManyToOneRingBufferConcurrentTest().ExchangeMessages(10 * 1000); + new ManyToOneRingBufferConcurrentTest().ProvideCorrelationIds(10 * 1000); var iterations = 3; for (var i = 0; i < iterations; i++) { var sw = Stopwatch.StartNew(); - new ManyToOneRingBufferConcurrentTest().ExchangeMessages(10*1000*1000); + new ManyToOneRingBufferConcurrentTest().ExchangeMessages(10 * 1000 * 1000); Console.WriteLine("ExchangeMessages run {0} done in {1}ms", i, sw.ElapsedMilliseconds); } diff --git a/src/Adaptive.Agrona.Tests/.editorconfig b/src/Adaptive.Agrona.Tests/.editorconfig new file mode 100644 index 00000000..9a4d3fce --- /dev/null +++ b/src/Adaptive.Agrona.Tests/.editorconfig @@ -0,0 +1,6 @@ +# Test method names follow the Method_Scenario_Result convention by design. +# Disable the non-API method PascalCase rule for this project; locals/params/ +# fields still follow the root .editorconfig rules. + +[*.cs] +dotnet_naming_rule.non_api_methods_must_be_pascal.severity = none diff --git a/src/Adaptive.Agrona.Tests/Adaptive.Agrona.Tests.licenseheader b/src/Adaptive.Agrona.Tests/Adaptive.Agrona.Tests.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Adaptive.Agrona.Tests/Adaptive.Agrona.Tests.licenseheader +++ b/src/Adaptive.Agrona.Tests/Adaptive.Agrona.Tests.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Adaptive.Agrona.Tests/AtomicBufferTests.cs b/src/Adaptive.Agrona.Tests/AtomicBufferTests.cs index 474b953f..5d078ddf 100644 --- a/src/Adaptive.Agrona.Tests/AtomicBufferTests.cs +++ b/src/Adaptive.Agrona.Tests/AtomicBufferTests.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -40,46 +40,52 @@ public class AtomicBufferTests private const long LongValue = int.MaxValue + 5L; private const double DoubleValue = int.MaxValue + 7.0d; - private string TempFileName; - private MappedByteBuffer MappedByteBuffer; + private string _tempFileName; + private MappedByteBuffer _mappedByteBuffer; - private IAtomicBuffer ByteArrayBacked; - private IAtomicBuffer AlignedByteArrayBacked; + private IAtomicBuffer _byteArrayBacked; + private IAtomicBuffer _alignedByteArrayBacked; - private IAtomicBuffer UnmanagedBacked; + private IAtomicBuffer _unmanagedBacked; - private IAtomicBuffer MemoryMappedFileBacked; - private bool Initialized; + private IAtomicBuffer _memoryMappedFileBacked; + private bool _initialized; public void Initialize() { - if (Initialized) + if (_initialized) + { return; + } - ByteArrayBacked = new UnsafeBuffer(new byte[BufferCapacity], 0, BufferCapacity); - AlignedByteArrayBacked = - new UnsafeBuffer(BufferUtil.AllocateDirectAligned(BufferCapacity, BitUtil.CACHE_LINE_LENGTH)); + _byteArrayBacked = new UnsafeBuffer(new byte[BufferCapacity], 0, BufferCapacity); + _alignedByteArrayBacked = new UnsafeBuffer( + BufferUtil.AllocateDirectAligned(BufferCapacity, BitUtil.CACHE_LINE_LENGTH) + ); - UnmanagedBacked = new UnsafeBuffer(Marshal.AllocHGlobal(BufferCapacity), BufferCapacity); + _unmanagedBacked = new UnsafeBuffer(Marshal.AllocHGlobal(BufferCapacity), BufferCapacity); - TempFileName = Path.GetTempFileName(); - MappedByteBuffer = new MappedByteBuffer(MemoryMappedFile.CreateFromFile(TempFileName, - FileMode.OpenOrCreate, null, BufferCapacity)); + _tempFileName = Path.GetTempFileName(); + _mappedByteBuffer = new MappedByteBuffer( + MemoryMappedFile.CreateFromFile(_tempFileName, FileMode.OpenOrCreate, null, BufferCapacity) + ); - MemoryMappedFileBacked = new UnsafeBuffer(MappedByteBuffer.Pointer, BufferCapacity); + _memoryMappedFileBacked = new UnsafeBuffer(_mappedByteBuffer.Pointer, BufferCapacity); - Initialized = true; + _initialized = true; } [OneTimeTearDown] public void Destroy() { - if (!Initialized) + if (!_initialized) + { return; + } - MappedByteBuffer?.Dispose(); + _mappedByteBuffer?.Dispose(); - File.Delete(TempFileName); + File.Delete(_tempFileName); } [DatapointSource] @@ -87,10 +93,10 @@ public IEnumerable Datapoints() { Initialize(); - yield return ByteArrayBacked; - yield return AlignedByteArrayBacked; - yield return UnmanagedBacked; - yield return MemoryMappedFileBacked; + yield return _byteArrayBacked; + yield return _alignedByteArrayBacked; + yield return _unmanagedBacked; + yield return _memoryMappedFileBacked; } [Theory] @@ -511,4 +517,4 @@ public void ShouldGetBytesIntoAtomicBufferFromAtomicBuffer(IAtomicBuffer buffer) Assert.That(buff, Is.EqualTo(testBytes)); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona.Tests/BitUtilTest.cs b/src/Adaptive.Agrona.Tests/BitUtilTest.cs index d64ff2eb..6014691f 100644 --- a/src/Adaptive.Agrona.Tests/BitUtilTest.cs +++ b/src/Adaptive.Agrona.Tests/BitUtilTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -58,7 +58,7 @@ public void ShouldAlignValueToNextMultipleOfAlignment() [Test] public void ShouldConvertToHexCorrectly() { - byte[] buffer = { 0x01, 0x23, 0x45, 0x69, 0x78, 0xBC, 0xDA, 0xEF, 0x5F }; + byte[] buffer = { 0x01, 0x23, 0x45, 0x69, 0x78, 0xBC, 0xDA, 0xEF, 0x5F }; byte[] converted = BitUtil.ToHexByteArray(buffer); string hexStr = BitUtil.ToHex(buffer); @@ -81,4 +81,4 @@ public void ShouldDetectEvenAndOddNumbers() Assert.IsFalse(BitUtil.IsEven(int.MaxValue)); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona.Tests/Collections/ArrayUtilTests.cs b/src/Adaptive.Agrona.Tests/Collections/ArrayUtilTests.cs index d43ba46e..935facaa 100644 --- a/src/Adaptive.Agrona.Tests/Collections/ArrayUtilTests.cs +++ b/src/Adaptive.Agrona.Tests/Collections/ArrayUtilTests.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,7 +50,7 @@ public void ShouldRemovePresentElementAtStart() { var result = ArrayUtil.Remove(_values, One); - Assert.That(new [] { Two }, Is.EqualTo(result)); + Assert.That(new[] { Two }, Is.EqualTo(result)); } [Test] @@ -58,8 +58,7 @@ public void ShouldRemoveByIndex() { var result = ArrayUtil.Remove(_values, 0); - Assert.That(new [] { Two }, Is.EqualTo(result)); + Assert.That(new[] { Two }, Is.EqualTo(result)); } } - -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona.Tests/Collections/CollectionUtilTests.cs b/src/Adaptive.Agrona.Tests/Collections/CollectionUtilTests.cs index 5dc038de..bbec2657 100644 --- a/src/Adaptive.Agrona.Tests/Collections/CollectionUtilTests.cs +++ b/src/Adaptive.Agrona.Tests/Collections/CollectionUtilTests.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,14 +35,18 @@ public void GetOrDefaultUsesSupplier() [Test] public void GetOrDefaultDoesNotCreateNewValueWhenOneExists() { - var ints = new Dictionary {[0] = 0}; - var result = CollectionUtil.GetOrDefault(ints, 0, (x) => - { - Assert.Fail("Shouldn't be called"); - return x + 1; - }); + var ints = new Dictionary { [0] = 0 }; + var result = CollectionUtil.GetOrDefault( + ints, + 0, + (x) => + { + Assert.Fail("Shouldn't be called"); + return x + 1; + } + ); Assert.That(result, Is.EqualTo(0)); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona.Tests/Concurrent/Broadcast/BroadcastReceiverTest.cs b/src/Adaptive.Agrona.Tests/Concurrent/Broadcast/BroadcastReceiverTest.cs index cffd2e58..fe606b99 100644 --- a/src/Adaptive.Agrona.Tests/Concurrent/Broadcast/BroadcastReceiverTest.cs +++ b/src/Adaptive.Agrona.Tests/Concurrent/Broadcast/BroadcastReceiverTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,10 +25,11 @@ namespace Adaptive.Agrona.Tests.Concurrent.Broadcast [TestFixture] public class BroadcastReceiverTest { - private const int MsgTypeID = 7; + private const int MsgTypeId = 7; private const int Capacity = 1024; private static readonly int TotalBufferLength = Capacity + BroadcastBufferDescriptor.TrailerLength; - private static readonly int TailIntentCounterOffset = Capacity + BroadcastBufferDescriptor.TailIntentCounterOffset; + private static readonly int TailIntentCounterOffset = + Capacity + BroadcastBufferDescriptor.TailIntentCounterOffset; private static readonly int TailCounterIndex = Capacity + BroadcastBufferDescriptor.TailCounterOffset; private static readonly int LatestCounterIndex = Capacity + BroadcastBufferDescriptor.LatestCounterOffset; @@ -81,15 +82,15 @@ public void ShouldReceiveFirstMessageFromBuffer() var recordLengthAligned = BitUtil.Align(recordLength, RecordDescriptor.RecordAlignment); long tail = recordLengthAligned; var latestRecord = tail - recordLengthAligned; - var recordOffset = (int) latestRecord; + var recordOffset = (int)latestRecord; A.CallTo(() => _buffer.GetLongVolatile(TailIntentCounterOffset)).Returns(tail); A.CallTo(() => _buffer.GetLongVolatile(TailCounterIndex)).Returns(tail); A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetLengthOffset(recordOffset))).Returns(recordLength); - A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(recordOffset))).Returns(MsgTypeID); + A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(recordOffset))).Returns(MsgTypeId); Assert.True(_broadcastReceiver.ReceiveNext()); - Assert.AreEqual(MsgTypeID, _broadcastReceiver.TypeId()); + Assert.AreEqual(MsgTypeId, _broadcastReceiver.TypeId()); Assert.AreEqual(_buffer, _broadcastReceiver.Buffer()); Assert.AreEqual(RecordDescriptor.GetMsgOffset(recordOffset), _broadcastReceiver.Offset()); Assert.AreEqual(length, _broadcastReceiver.Length()); @@ -106,35 +107,35 @@ public void ShouldReceiveTwoMessagesFromBuffer() const int length = 8; var recordLength = length + RecordDescriptor.HeaderLength; var recordLengthAligned = BitUtil.Align(recordLength, RecordDescriptor.RecordAlignment); - long tail = recordLengthAligned*2; + long tail = recordLengthAligned * 2; var latestRecord = tail - recordLengthAligned; const int recordOffsetOne = 0; - var recordOffsetTwo = (int) latestRecord; + var recordOffsetTwo = (int)latestRecord; A.CallTo(() => _buffer.GetLongVolatile(TailIntentCounterOffset)).Returns(tail); A.CallTo(() => _buffer.GetLongVolatile(TailCounterIndex)).Returns(tail); A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetLengthOffset(recordOffsetOne))).Returns(recordLength); - A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(recordOffsetOne))).Returns(MsgTypeID); + A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(recordOffsetOne))).Returns(MsgTypeId); A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetLengthOffset(recordOffsetTwo))).Returns(recordLength); - A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(recordOffsetTwo))).Returns(MsgTypeID); - + A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(recordOffsetTwo))).Returns(MsgTypeId); Assert.IsTrue(_broadcastReceiver.ReceiveNext()); - Assert.AreEqual(MsgTypeID, _broadcastReceiver.TypeId()); + Assert.AreEqual(MsgTypeId, _broadcastReceiver.TypeId()); Assert.AreEqual(_buffer, _broadcastReceiver.Buffer()); Assert.AreEqual(RecordDescriptor.GetMsgOffset(recordOffsetOne), _broadcastReceiver.Offset()); Assert.AreEqual(length, _broadcastReceiver.Length()); Assert.True(_broadcastReceiver.Validate()); Assert.IsTrue(_broadcastReceiver.ReceiveNext()); - Assert.AreEqual(MsgTypeID, _broadcastReceiver.TypeId()); + Assert.AreEqual(MsgTypeId, _broadcastReceiver.TypeId()); Assert.AreEqual(_buffer, _broadcastReceiver.Buffer()); Assert.AreEqual(RecordDescriptor.GetMsgOffset(recordOffsetTwo), _broadcastReceiver.Offset()); Assert.AreEqual(length, _broadcastReceiver.Length()); Assert.True(_broadcastReceiver.Validate()); - A.CallTo(() => _buffer.GetLongVolatile(TailCounterIndex)).MustHaveHappened() + A.CallTo(() => _buffer.GetLongVolatile(TailCounterIndex)) + .MustHaveHappened() .Then(A.CallTo(() => _buffer.GetLongVolatile(TailIntentCounterOffset)).MustHaveHappened()) .Then(A.CallTo(() => _buffer.GetLongVolatile(TailIntentCounterOffset)).MustHaveHappened()) .Then(A.CallTo(() => _buffer.GetLongVolatile(TailCounterIndex)).MustHaveHappened()) @@ -148,19 +149,19 @@ public void ShouldLateJoinTransmission() const int length = 8; var recordLength = length + RecordDescriptor.HeaderLength; var recordLengthAligned = BitUtil.Align(recordLength, RecordDescriptor.RecordAlignment); - var tail = Capacity*3L + RecordDescriptor.HeaderLength + recordLengthAligned; + var tail = Capacity * 3L + RecordDescriptor.HeaderLength + recordLengthAligned; var latestRecord = tail - recordLengthAligned; - var recordOffset = (int) latestRecord & (Capacity - 1); + var recordOffset = (int)latestRecord & (Capacity - 1); A.CallTo(() => _buffer.GetLongVolatile(TailIntentCounterOffset)).Returns(tail); A.CallTo(() => _buffer.GetLongVolatile(TailCounterIndex)).Returns(tail); A.CallTo(() => _buffer.GetLong(LatestCounterIndex)).Returns(latestRecord); A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetLengthOffset(recordOffset))).Returns(recordLength); - A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(recordOffset))).Returns(MsgTypeID); + A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(recordOffset))).Returns(MsgTypeId); Assert.IsTrue(_broadcastReceiver.ReceiveNext()); - Assert.AreEqual(MsgTypeID, _broadcastReceiver.TypeId()); + Assert.AreEqual(MsgTypeId, _broadcastReceiver.TypeId()); Assert.AreEqual(_buffer, _broadcastReceiver.Buffer()); Assert.AreEqual(RecordDescriptor.GetMsgOffset(recordOffset), _broadcastReceiver.Offset()); Assert.AreEqual(length, _broadcastReceiver.Length()); @@ -169,35 +170,37 @@ public void ShouldLateJoinTransmission() Assert.Greater(_broadcastReceiver.LappedCount(), 0); } - [Test] public void ShouldCopeWithPaddingRecordAndWrapOfBufferForNextRecord() { const int length = 120; var recordLength = length + RecordDescriptor.HeaderLength; var recordLengthAligned = BitUtil.Align(recordLength, RecordDescriptor.RecordAlignment); - var catchupTail = (Capacity*2L) - RecordDescriptor.HeaderLength; + var catchupTail = (Capacity * 2L) - RecordDescriptor.HeaderLength; var postPaddingTail = catchupTail + RecordDescriptor.HeaderLength + recordLengthAligned; var latestRecord = catchupTail - recordLengthAligned; - var catchupOffset = (int) latestRecord & (Capacity - 1); + var catchupOffset = (int)latestRecord & (Capacity - 1); - A.CallTo(() => _buffer.GetLongVolatile(TailIntentCounterOffset)).ReturnsNextFromSequence(catchupTail, postPaddingTail); - A.CallTo(() => _buffer.GetLongVolatile(TailCounterIndex)).ReturnsNextFromSequence(catchupTail, postPaddingTail); + A.CallTo(() => _buffer.GetLongVolatile(TailIntentCounterOffset)) + .ReturnsNextFromSequence(catchupTail, postPaddingTail); + A.CallTo(() => _buffer.GetLongVolatile(TailCounterIndex)) + .ReturnsNextFromSequence(catchupTail, postPaddingTail); A.CallTo(() => _buffer.GetLong(LatestCounterIndex)).Returns(latestRecord); A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetLengthOffset(catchupOffset))).Returns(recordLength); - A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(catchupOffset))).Returns(MsgTypeID); + A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(catchupOffset))).Returns(MsgTypeId); - var paddingOffset = (int) catchupTail & (Capacity - 1); - var recordOffset = (int) (postPaddingTail - recordLengthAligned) & (Capacity - 1); + var paddingOffset = (int)catchupTail & (Capacity - 1); + var recordOffset = (int)(postPaddingTail - recordLengthAligned) & (Capacity - 1); - A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(paddingOffset))).Returns(RecordDescriptor.PaddingMsgTypeID); + A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(paddingOffset))) + .Returns(RecordDescriptor.PaddingMsgTypeID); A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetLengthOffset(recordOffset))).Returns(recordLength); - A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(recordOffset))).Returns(MsgTypeID); + A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(recordOffset))).Returns(MsgTypeId); Assert.IsTrue(_broadcastReceiver.ReceiveNext()); // To catch up to record before padding. Assert.IsTrue(_broadcastReceiver.ReceiveNext()); // no skip over the padding and read next record. - Assert.AreEqual(MsgTypeID, _broadcastReceiver.TypeId()); + Assert.AreEqual(MsgTypeId, _broadcastReceiver.TypeId()); Assert.AreEqual(_buffer, _broadcastReceiver.Buffer()); Assert.AreEqual(RecordDescriptor.GetMsgOffset(recordOffset), _broadcastReceiver.Offset()); Assert.AreEqual(length, _broadcastReceiver.Length()); @@ -212,17 +215,17 @@ public void ShouldDealWithRecordBecomingInvalidDueToOverwrite() var recordLengthAligned = BitUtil.Align(recordLength, RecordDescriptor.RecordAlignment); long tail = recordLengthAligned; var latestRecord = tail - recordLengthAligned; - var recordOffset = (int) latestRecord; - + var recordOffset = (int)latestRecord; - A.CallTo(() => _buffer.GetLongVolatile(TailIntentCounterOffset)).ReturnsNextFromSequence(tail, tail + (Capacity - recordLengthAligned)); + A.CallTo(() => _buffer.GetLongVolatile(TailIntentCounterOffset)) + .ReturnsNextFromSequence(tail, tail + (Capacity - recordLengthAligned)); A.CallTo(() => _buffer.GetLongVolatile(TailCounterIndex)).Returns(tail); A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetLengthOffset(recordOffset))).Returns(recordLength); - A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(recordOffset))).Returns(MsgTypeID); + A.CallTo(() => _buffer.GetInt(RecordDescriptor.GetTypeOffset(recordOffset))).Returns(MsgTypeId); Assert.IsTrue(_broadcastReceiver.ReceiveNext()); - Assert.AreEqual(MsgTypeID, _broadcastReceiver.TypeId()); + Assert.AreEqual(MsgTypeId, _broadcastReceiver.TypeId()); Assert.AreEqual(_buffer, _broadcastReceiver.Buffer()); Assert.AreEqual(RecordDescriptor.GetMsgOffset(recordOffset), _broadcastReceiver.Offset()); Assert.AreEqual(length, _broadcastReceiver.Length()); @@ -232,4 +235,4 @@ public void ShouldDealWithRecordBecomingInvalidDueToOverwrite() A.CallTo(() => _buffer.GetLongVolatile(TailCounterIndex)).MustHaveHappened(); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona.Tests/Concurrent/CountersManagerTest.cs b/src/Adaptive.Agrona.Tests/Concurrent/CountersManagerTest.cs index f4884768..c8b1a42b 100644 --- a/src/Adaptive.Agrona.Tests/Concurrent/CountersManagerTest.cs +++ b/src/Adaptive.Agrona.Tests/Concurrent/CountersManagerTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,7 +37,7 @@ public long Time() } private const int NumberOfCounters = 4; - private const long FREE_TO_REUSE_TIMEOUT = 1000; + private const long FreeToReuseTimeout = 1000; private TestEpochClock _testClock; @@ -58,15 +58,22 @@ public void Setup() _consumer = A.Fake>(); _metaData = A.Fake(); - _labelsBuffer = - new UnsafeBuffer(BufferUtil.AllocateDirect(NumberOfCounters * CountersReader.METADATA_LENGTH)); - _counterBuffer = - new UnsafeBuffer(BufferUtil.AllocateDirect(NumberOfCounters * CountersReader.COUNTER_LENGTH)); + _labelsBuffer = new UnsafeBuffer( + BufferUtil.AllocateDirect(NumberOfCounters * CountersReader.METADATA_LENGTH) + ); + _counterBuffer = new UnsafeBuffer( + BufferUtil.AllocateDirect(NumberOfCounters * CountersReader.COUNTER_LENGTH) + ); _manager = new CountersManager(_labelsBuffer, _counterBuffer, Encoding.ASCII); _reader = new CountersManager(_labelsBuffer, _counterBuffer, Encoding.ASCII); - _managerWithCooldown = new CountersManager(_labelsBuffer, _counterBuffer, Encoding.ASCII, _testClock, - FREE_TO_REUSE_TIMEOUT); + _managerWithCooldown = new CountersManager( + _labelsBuffer, + _counterBuffer, + Encoding.ASCII, + _testClock, + FreeToReuseTimeout + ); } [Test] @@ -95,7 +102,14 @@ public void ShouldCopeWithExceptionKeyFunc() try { - _manager.Allocate("label", CountersManager.DEFAULT_TYPE_ID, _ => { throw ex; }); + _manager.Allocate( + "label", + CountersManager.DEFAULT_TYPE_ID, + _ => + { + throw ex; + } + ); } catch (Exception caught) { @@ -128,7 +142,8 @@ public void ShouldStoreMultipleLabels() _reader.ForEach(_consumer); - A.CallTo(() => _consumer(abc, "abc")).MustHaveHappened() + A.CallTo(() => _consumer(abc, "abc")) + .MustHaveHappened() .Then(A.CallTo(() => _consumer(def, "def")).MustHaveHappened()) .Then(A.CallTo(() => _consumer(ghi, "ghi")).MustHaveHappened()); @@ -145,7 +160,8 @@ public void ShouldFreeAndReuseCounters() _manager.Free(def); _reader.ForEach(_consumer); - A.CallTo(() => _consumer(abc, "abc")).MustHaveHappened() + A.CallTo(() => _consumer(abc, "abc")) + .MustHaveHappened() .Then(A.CallTo(() => _consumer(ghi, "ghi")).MustHaveHappened()); A.CallTo(() => _consumer(A._, A._)).MustHaveHappened(2, Times.Exactly); @@ -156,26 +172,26 @@ public void ShouldFreeAndReuseCounters() [Test] public void ShouldFreeAndNotReuseCountersThatHaveCooldown() { - int abc = _managerWithCooldown.Allocate("abc"); + _managerWithCooldown.Allocate("abc"); int def = _managerWithCooldown.Allocate("def"); int ghi = _managerWithCooldown.Allocate("ghi"); _managerWithCooldown.Free(def); - _testClock.CurrentTimestamp += FREE_TO_REUSE_TIMEOUT - 1; + _testClock.CurrentTimestamp += FreeToReuseTimeout - 1; Assert.That(_managerWithCooldown.Allocate("the next label"), Is.GreaterThan(ghi)); } [Test] public void ShouldFreeAndReuseCountersAfterCooldown() { - int abc = _managerWithCooldown.Allocate("abc"); + _managerWithCooldown.Allocate("abc"); int def = _managerWithCooldown.Allocate("def"); - int ghi = _managerWithCooldown.Allocate("ghi"); + _managerWithCooldown.Allocate("ghi"); _managerWithCooldown.Free(def); - _testClock.CurrentTimestamp += FREE_TO_REUSE_TIMEOUT; + _testClock.CurrentTimestamp += FreeToReuseTimeout; Assert.That(_managerWithCooldown.Allocate("the next label"), Is.EqualTo(def)); } @@ -219,10 +235,26 @@ public void ShouldStoreMetaData() _manager.ForEach(_metaData); - A.CallTo(() => _metaData(counterIdOne, typeIdOne, - A.That.Matches(d => d.GetLong(0) == keyOne), "Test Label One")).MustHaveHappened() - .Then(A.CallTo(() => _metaData(counterIdTwo, typeIdTwo, - A.That.Matches(d => d.GetLong(0) == keyTwo), "Test Label Two")).MustHaveHappened()); + A.CallTo(() => + _metaData( + counterIdOne, + typeIdOne, + A.That.Matches(d => d.GetLong(0) == keyOne), + "Test Label One" + ) + ) + .MustHaveHappened() + .Then( + A.CallTo(() => + _metaData( + counterIdTwo, + typeIdTwo, + A.That.Matches(d => d.GetLong(0) == keyTwo), + "Test Label Two" + ) + ) + .MustHaveHappened() + ); A.CallTo(() => _metaData(A._, A._, A._, A._)) .MustHaveHappened(2, Times.Exactly); @@ -245,17 +277,47 @@ public void ShouldStoreRawData() var labelTwoBuffer = new UnsafeBuffer(Encoding.ASCII.GetBytes("Test Label Two")); int counterIdOne = _manager.Allocate( - typeIdOne, keyOneBuffer, 0, keyOneBuffer.Capacity, labelOneBuffer, 0, labelOneBuffer.Capacity); + typeIdOne, + keyOneBuffer, + 0, + keyOneBuffer.Capacity, + labelOneBuffer, + 0, + labelOneBuffer.Capacity + ); int counterIdTwo = _manager.Allocate( - typeIdTwo, keyTwoBuffer, 0, keyTwoBuffer.Capacity, labelTwoBuffer, 0, labelTwoBuffer.Capacity); + typeIdTwo, + keyTwoBuffer, + 0, + keyTwoBuffer.Capacity, + labelTwoBuffer, + 0, + labelTwoBuffer.Capacity + ); _manager.ForEach(_metaData); - A.CallTo(() => _metaData(counterIdOne, typeIdOne, - A.That.Matches(d => d.GetLong(0) == keyOne), "Test Label One")).MustHaveHappened() - .Then(A.CallTo(() => _metaData(counterIdTwo, typeIdTwo, - A.That.Matches(d => d.GetLong(0) == keyTwo), "Test Label Two")).MustHaveHappened()); + A.CallTo(() => + _metaData( + counterIdOne, + typeIdOne, + A.That.Matches(d => d.GetLong(0) == keyOne), + "Test Label One" + ) + ) + .MustHaveHappened() + .Then( + A.CallTo(() => + _metaData( + counterIdTwo, + typeIdTwo, + A.That.Matches(d => d.GetLong(0) == keyTwo), + "Test Label Two" + ) + ) + .MustHaveHappened() + ); } [Test] @@ -269,4 +331,4 @@ public void ShouldStoreAndLoadValue() Assert.AreEqual(_manager.GetCounterValue(counterId), value); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona.Tests/Concurrent/RingBuffer/InOrder.cs b/src/Adaptive.Agrona.Tests/Concurrent/RingBuffer/InOrder.cs index deb46a2f..484a4df1 100644 --- a/src/Adaptive.Agrona.Tests/Concurrent/RingBuffer/InOrder.cs +++ b/src/Adaptive.Agrona.Tests/Concurrent/RingBuffer/InOrder.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using System.Linq.Expressions; using FakeItEasy; @@ -28,4 +44,4 @@ public void CallTo(Expression p0) } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona.Tests/Concurrent/RingBuffer/ManyToOneRingBufferTest.cs b/src/Adaptive.Agrona.Tests/Concurrent/RingBuffer/ManyToOneRingBufferTest.cs index 10952d49..abdeec81 100644 --- a/src/Adaptive.Agrona.Tests/Concurrent/RingBuffer/ManyToOneRingBufferTest.cs +++ b/src/Adaptive.Agrona.Tests/Concurrent/RingBuffer/ManyToOneRingBufferTest.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,7 @@ namespace Adaptive.Agrona.Tests.Concurrent.RingBuffer [TestFixture] public class ManyToOneRingBufferTest { - private const int MsgTypeID = 7; + private const int MsgTypeId = 7; private const int Capacity = 4096; private static readonly int TotalBufferLength = Capacity + RingBufferDescriptor.TrailerLength; private static readonly int TailCounterIndex = Capacity + RingBufferDescriptor.TailPositionOffset; @@ -61,11 +61,11 @@ public void ShouldWriteToEmptyBuffer() var srcBuffer = new UnsafeBuffer(new byte[1024]); const int srcIndex = 0; - Assert.True(_ringBuffer.Write(MsgTypeID, srcBuffer, srcIndex, length)); + Assert.True(_ringBuffer.Write(MsgTypeId, srcBuffer, srcIndex, length)); var o = new InOrder(); o.CallTo(() => _buffer.PutIntOrdered(RecordDescriptor.LengthOffset((int)tail), -recordLength)); - o.CallTo(() => _buffer.PutInt(RecordDescriptor.TypeOffset((int)tail), MsgTypeID)); + o.CallTo(() => _buffer.PutInt(RecordDescriptor.TypeOffset((int)tail), MsgTypeId)); o.CallTo(() => _buffer.PutBytes(RecordDescriptor.EncodedMsgOffset((int)tail), srcBuffer, srcIndex, length)); o.CallTo(() => _buffer.PutIntOrdered(RecordDescriptor.LengthOffset((int)tail), recordLength)); } @@ -75,8 +75,8 @@ public void ShouldRejectWriteWhenInsufficientSpace() { const int length = 200; const long head = 0L; - var tail = head + - (Capacity - BitUtil.Align(length - RecordDescriptor.Alignment, RecordDescriptor.Alignment)); + var tail = + head + (Capacity - BitUtil.Align(length - RecordDescriptor.Alignment, RecordDescriptor.Alignment)); A.CallTo(() => _buffer.GetLongVolatile(HeadCounterIndex)).Returns(head); A.CallTo(() => _buffer.GetLongVolatile(TailCounterIndex)).Returns(tail); @@ -84,7 +84,7 @@ public void ShouldRejectWriteWhenInsufficientSpace() var srcBuffer = new UnsafeBuffer(new byte[1024]); const int srcIndex = 0; - Assert.False(_ringBuffer.Write(MsgTypeID, srcBuffer, srcIndex, length)); + Assert.False(_ringBuffer.Write(MsgTypeId, srcBuffer, srcIndex, length)); A.CallTo(() => _buffer.PutInt(A._, A._)).MustNotHaveHappened(); A.CallTo(() => _buffer.CompareAndSetLong(A._, A._, A._)).MustNotHaveHappened(); @@ -106,7 +106,7 @@ public void ShouldRejectWriteWhenBufferFull() var srcBuffer = new UnsafeBuffer(new byte[1024]); const int srcIndex = 0; - Assert.False(_ringBuffer.Write(MsgTypeID, srcBuffer, srcIndex, length)); + Assert.False(_ringBuffer.Write(MsgTypeId, srcBuffer, srcIndex, length)); A.CallTo(() => _buffer.PutInt(A._, A._)).MustNotHaveHappened(); A.CallTo(() => _buffer.CompareAndSetLong(A._, A._, A._)).MustNotHaveHappened(); @@ -125,24 +125,32 @@ public void ShouldInsertPaddingRecordPlusMessageOnBufferWrap() A.CallTo(() => _buffer.GetLongVolatile(HeadCounterIndex)).Returns(head); A.CallTo(() => _buffer.GetLongVolatile(TailCounterIndex)).Returns(tail); A.CallTo(() => - _buffer.CompareAndSetLong(TailCounterIndex, tail, - tail + alignedRecordLength + RecordDescriptor.Alignment)).Returns(true); + _buffer.CompareAndSetLong( + TailCounterIndex, + tail, + tail + alignedRecordLength + RecordDescriptor.Alignment + ) + ) + .Returns(true); var srcBuffer = new UnsafeBuffer(new byte[1024]); const int srcIndex = 0; - Assert.True(_ringBuffer.Write(MsgTypeID, srcBuffer, srcIndex, length)); + Assert.True(_ringBuffer.Write(MsgTypeId, srcBuffer, srcIndex, length)); var o = new InOrder(); o.CallTo(() => - _buffer.PutIntOrdered(RecordDescriptor.LengthOffset((int)tail), -RecordDescriptor.HeaderLength)); + _buffer.PutIntOrdered(RecordDescriptor.LengthOffset((int)tail), -RecordDescriptor.HeaderLength) + ); o.CallTo(() => - _buffer.PutInt(RecordDescriptor.TypeOffset((int)tail), ManyToOneRingBuffer.PaddingMsgTypeId)); + _buffer.PutInt(RecordDescriptor.TypeOffset((int)tail), ManyToOneRingBuffer.PaddingMsgTypeId) + ); o.CallTo(() => - _buffer.PutIntOrdered(RecordDescriptor.LengthOffset((int)tail), RecordDescriptor.HeaderLength)); + _buffer.PutIntOrdered(RecordDescriptor.LengthOffset((int)tail), RecordDescriptor.HeaderLength) + ); o.CallTo(() => _buffer.PutIntOrdered(RecordDescriptor.LengthOffset(0), -recordLength)); - o.CallTo(() => _buffer.PutInt(RecordDescriptor.TypeOffset(0), MsgTypeID)); + o.CallTo(() => _buffer.PutInt(RecordDescriptor.TypeOffset(0), MsgTypeId)); o.CallTo(() => _buffer.PutBytes(RecordDescriptor.EncodedMsgOffset(0), srcBuffer, srcIndex, length)); o.CallTo(() => _buffer.PutIntOrdered(RecordDescriptor.LengthOffset(0), recordLength)); } @@ -159,24 +167,32 @@ public void ShouldInsertPaddingRecordPlusMessageOnBufferWrapWithHeadEqualToTail( A.CallTo(() => _buffer.GetLongVolatile(HeadCounterIndex)).Returns(head); A.CallTo(() => _buffer.GetLongVolatile(TailCounterIndex)).Returns(tail); A.CallTo(() => - _buffer.CompareAndSetLong(TailCounterIndex, tail, - tail + alignedRecordLength + RecordDescriptor.Alignment)).Returns(true); + _buffer.CompareAndSetLong( + TailCounterIndex, + tail, + tail + alignedRecordLength + RecordDescriptor.Alignment + ) + ) + .Returns(true); var srcBuffer = new UnsafeBuffer(new byte[1024]); const int srcIndex = 0; - Assert.True(_ringBuffer.Write(MsgTypeID, srcBuffer, srcIndex, length)); + Assert.True(_ringBuffer.Write(MsgTypeId, srcBuffer, srcIndex, length)); var o = new InOrder(); o.CallTo(() => - _buffer.PutIntOrdered(RecordDescriptor.LengthOffset((int)tail), -RecordDescriptor.HeaderLength)); + _buffer.PutIntOrdered(RecordDescriptor.LengthOffset((int)tail), -RecordDescriptor.HeaderLength) + ); o.CallTo(() => - _buffer.PutInt(RecordDescriptor.TypeOffset((int)tail), ManyToOneRingBuffer.PaddingMsgTypeId)); + _buffer.PutInt(RecordDescriptor.TypeOffset((int)tail), ManyToOneRingBuffer.PaddingMsgTypeId) + ); o.CallTo(() => - _buffer.PutIntOrdered(RecordDescriptor.LengthOffset((int)tail), RecordDescriptor.HeaderLength)); + _buffer.PutIntOrdered(RecordDescriptor.LengthOffset((int)tail), RecordDescriptor.HeaderLength) + ); o.CallTo(() => _buffer.PutIntOrdered(RecordDescriptor.LengthOffset(0), -recordLength)); - o.CallTo(() => _buffer.PutInt(RecordDescriptor.TypeOffset(0), MsgTypeID)); + o.CallTo(() => _buffer.PutInt(RecordDescriptor.TypeOffset(0), MsgTypeId)); o.CallTo(() => _buffer.PutBytes(RecordDescriptor.EncodedMsgOffset(0), srcBuffer, srcIndex, length)); o.CallTo(() => _buffer.PutIntOrdered(RecordDescriptor.LengthOffset(0), recordLength)); } @@ -229,10 +245,12 @@ public void ShouldReadTwoMessages() var headIndex = (int)head; A.CallTo(() => _buffer.GetLong(HeadCounterIndex)).Returns(head); - A.CallTo(() => _buffer.GetInt(RecordDescriptor.TypeOffset(headIndex))).Returns(MsgTypeID); + A.CallTo(() => _buffer.GetInt(RecordDescriptor.TypeOffset(headIndex))).Returns(MsgTypeId); A.CallTo(() => _buffer.GetIntVolatile(RecordDescriptor.LengthOffset(headIndex))).Returns(recordLength); - A.CallTo(() => _buffer.GetInt(RecordDescriptor.TypeOffset(headIndex + alignedRecordLength))).Returns(MsgTypeID); - A.CallTo(() => _buffer.GetIntVolatile(RecordDescriptor.LengthOffset(headIndex + alignedRecordLength))).Returns(recordLength); + A.CallTo(() => _buffer.GetInt(RecordDescriptor.TypeOffset(headIndex + alignedRecordLength))) + .Returns(MsgTypeId); + A.CallTo(() => _buffer.GetIntVolatile(RecordDescriptor.LengthOffset(headIndex + alignedRecordLength))) + .Returns(recordLength); var times = new int[1]; MessageHandler handler = (msgTypeId, buffer, index, length) => times[0]++; @@ -241,9 +259,11 @@ public void ShouldReadTwoMessages() Assert.AreEqual(messagesRead, 2); Assert.AreEqual(times[0], 2); - A.CallTo(() => _buffer.SetMemory(headIndex, alignedRecordLength * 2, 0)).MustHaveHappened(1, Times.Exactly) + A.CallTo(() => _buffer.SetMemory(headIndex, alignedRecordLength * 2, 0)) + .MustHaveHappened(1, Times.Exactly) .Then( - A.CallTo(() => _buffer.PutLongOrdered(HeadCounterIndex, tail)).MustHaveHappened(1, Times.Exactly)); + A.CallTo(() => _buffer.PutLongOrdered(HeadCounterIndex, tail)).MustHaveHappened(1, Times.Exactly) + ); } [Test] @@ -256,7 +276,7 @@ public void ShouldLimitReadOfMessages() var headIndex = (int)head; A.CallTo(() => _buffer.GetLong(HeadCounterIndex)).Returns(head); - A.CallTo(() => _buffer.GetInt(RecordDescriptor.TypeOffset(headIndex))).Returns(MsgTypeID); + A.CallTo(() => _buffer.GetInt(RecordDescriptor.TypeOffset(headIndex))).Returns(MsgTypeId); A.CallTo(() => _buffer.GetIntVolatile(RecordDescriptor.LengthOffset(headIndex))).Returns(recordLength); var times = new int[1]; @@ -268,10 +288,12 @@ public void ShouldLimitReadOfMessages() Assert.AreEqual(messagesRead, 1); Assert.AreEqual(times[0], 1); - A.CallTo(() => _buffer.SetMemory(headIndex, alignedRecordLength, 0)).MustHaveHappened(1, Times.Exactly) + A.CallTo(() => _buffer.SetMemory(headIndex, alignedRecordLength, 0)) + .MustHaveHappened(1, Times.Exactly) .Then( A.CallTo(() => _buffer.PutLongOrdered(HeadCounterIndex, head + alignedRecordLength)) - .MustHaveHappened(1, Times.Exactly)); + .MustHaveHappened(1, Times.Exactly) + ); } [Test] @@ -285,11 +307,13 @@ public void ShouldCopeWithExceptionFromHandler() var headIndex = (int)head; A.CallTo(() => _buffer.GetLong(HeadCounterIndex)).Returns(head); - A.CallTo(() => _buffer.GetInt(RecordDescriptor.TypeOffset(headIndex))).Returns(MsgTypeID); + A.CallTo(() => _buffer.GetInt(RecordDescriptor.TypeOffset(headIndex))).Returns(MsgTypeId); A.CallTo(() => _buffer.GetIntVolatile(RecordDescriptor.LengthOffset(headIndex))).Returns(recordLength); - A.CallTo(() => _buffer.GetInt(RecordDescriptor.TypeOffset(headIndex + alignedRecordLength))).Returns(MsgTypeID); - A.CallTo(() => _buffer.GetIntVolatile(RecordDescriptor.LengthOffset(headIndex + alignedRecordLength))).Returns(recordLength); - + A.CallTo(() => _buffer.GetInt(RecordDescriptor.TypeOffset(headIndex + alignedRecordLength))) + .Returns(MsgTypeId); + A.CallTo(() => _buffer.GetIntVolatile(RecordDescriptor.LengthOffset(headIndex + alignedRecordLength))) + .Returns(recordLength); + var times = new int[1]; MessageHandler handler = (msgTypeId, buffer, index, length) => { @@ -310,8 +334,10 @@ public void ShouldCopeWithExceptionFromHandler() A.CallTo(() => _buffer.SetMemory(headIndex, alignedRecordLength * 2, 0)) .MustHaveHappened(1, Times.Exactly) - .Then(A.CallTo(() => _buffer.PutLongOrdered(HeadCounterIndex, tail)) - .MustHaveHappened(1, Times.Exactly)); + .Then( + A.CallTo(() => _buffer.PutLongOrdered(HeadCounterIndex, tail)) + .MustHaveHappened(1, Times.Exactly) + ); return; } @@ -341,7 +367,8 @@ public void ShouldUnblockMessageWithHeader() var o = new InOrder(); o.CallTo(() => - _buffer.PutInt(RecordDescriptor.TypeOffset(messageLength), ManyToOneRingBuffer.PaddingMsgTypeId)); + _buffer.PutInt(RecordDescriptor.TypeOffset(messageLength), ManyToOneRingBuffer.PaddingMsgTypeId) + ); o.CallTo(() => _buffer.PutIntOrdered(RecordDescriptor.LengthOffset(messageLength), messageLength)); } @@ -357,7 +384,8 @@ public void ShouldUnblockGapWithZeros() var o = new InOrder(); o.CallTo(() => - _buffer.PutInt(RecordDescriptor.TypeOffset(messageLength), ManyToOneRingBuffer.PaddingMsgTypeId)); + _buffer.PutInt(RecordDescriptor.TypeOffset(messageLength), ManyToOneRingBuffer.PaddingMsgTypeId) + ); o.CallTo(() => _buffer.PutIntOrdered(RecordDescriptor.LengthOffset(messageLength), messageLength)); } @@ -372,7 +400,8 @@ public void ShouldNotUnblockGapWithMessageRaceOnSecondMessageIncreasingTailThenI Assert.False(_ringBuffer.Unblock()); A.CallTo(() => - _buffer.PutInt(RecordDescriptor.TypeOffset(messageLength), ManyToOneRingBuffer.PaddingMsgTypeId)) + _buffer.PutInt(RecordDescriptor.TypeOffset(messageLength), ManyToOneRingBuffer.PaddingMsgTypeId) + ) .MustNotHaveHappened(); } @@ -386,9 +415,10 @@ public void ShouldNotUnblockGapWithMessageRaceWhenScanForwardTakesAnInterrupt() A.CallTo(() => _buffer.GetIntVolatile(messageLength * 2 + RecordDescriptor.Alignment)).Returns(7); Assert.False(_ringBuffer.Unblock()); - + A.CallTo(() => - _buffer.PutInt(RecordDescriptor.TypeOffset(messageLength), ManyToOneRingBuffer.PaddingMsgTypeId)) + _buffer.PutInt(RecordDescriptor.TypeOffset(messageLength), ManyToOneRingBuffer.PaddingMsgTypeId) + ) .MustNotHaveHappened(); } @@ -413,7 +443,7 @@ public void ShouldThrowExceptionWhenMaxMessageSizeExceeded() { var srcBuffer = new UnsafeBuffer(new byte[1024]); - _ringBuffer.Write(MsgTypeID, srcBuffer, 0, _ringBuffer.MaxMsgLength() + 1); + _ringBuffer.Write(MsgTypeId, srcBuffer, 0, _ringBuffer.MaxMsgLength() + 1); } [Test] @@ -427,7 +457,8 @@ public void ShouldInsertPaddingAndWriteToBuffer() long tail = 2 * Capacity - padding; var head = tail; - // free space is (200 + 300) more than message length (400) but contiguous space (300) is less than message length (400) + // free space is (200 + 300) more than message length (400) but contiguous space (300) + // is less than message length (400) long headCache = Capacity + 300; A.CallTo(() => _buffer.GetLongVolatile(HeadCounterIndex)).Returns(head); @@ -437,7 +468,7 @@ public void ShouldInsertPaddingAndWriteToBuffer() .Returns(true); var srcBuffer = new UnsafeBuffer(new byte[messageLength]); - Assert.True(_ringBuffer.Write(MsgTypeID, srcBuffer, 0, messageLength)); + Assert.True(_ringBuffer.Write(MsgTypeId, srcBuffer, 0, messageLength)); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona.Tests/EndianessConverterTests.cs b/src/Adaptive.Agrona.Tests/EndianessConverterTests.cs index 2a0decfc..c7ddd3d5 100644 --- a/src/Adaptive.Agrona.Tests/EndianessConverterTests.cs +++ b/src/Adaptive.Agrona.Tests/EndianessConverterTests.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -123,7 +123,7 @@ public void ApplyULongWithBigEndianShouldReverseBytes() const ulong input = 12; var result = EndianessConverter.ApplyUint64(ByteOrder.BigEndian, input); - + ulong expected = BitConverter.ToUInt64(BitConverter.GetBytes(input).Reverse().ToArray(), 0); Assert.AreEqual(expected, result); } diff --git a/src/Adaptive.Agrona.Tests/ExpectedException.cs b/src/Adaptive.Agrona.Tests/ExpectedException.cs index 42baee42..13ea4e31 100644 --- a/src/Adaptive.Agrona.Tests/ExpectedException.cs +++ b/src/Adaptive.Agrona.Tests/ExpectedException.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -60,21 +60,34 @@ public override TestResult Execute(TestExecutionContext context) catch (Exception ex) { if (ex is NUnitException) + { ex = ex.InnerException; + } + caughtType = ex.GetType(); } if (caughtType == _expectedType) + { context.CurrentResult.SetResult(ResultState.Success); + } else if (caughtType != null) - context.CurrentResult.SetResult(ResultState.Failure, - string.Format("Expected {0} but got {1}", _expectedType.Name, caughtType.Name)); + { + context.CurrentResult.SetResult( + ResultState.Failure, + string.Format("Expected {0} but got {1}", _expectedType.Name, caughtType.Name) + ); + } else - context.CurrentResult.SetResult(ResultState.Failure, - string.Format("Expected {0} but no exception was thrown", _expectedType.Name)); + { + context.CurrentResult.SetResult( + ResultState.Failure, + string.Format("Expected {0} but no exception was thrown", _expectedType.Name) + ); + } return context.CurrentResult; } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona.Tests/TimeUnitTests.cs b/src/Adaptive.Agrona.Tests/TimeUnitTests.cs index 01ce1d42..0152baed 100644 --- a/src/Adaptive.Agrona.Tests/TimeUnitTests.cs +++ b/src/Adaptive.Agrona.Tests/TimeUnitTests.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using NUnit.Framework; namespace Adaptive.Agrona.Tests @@ -10,11 +26,11 @@ public void MillisToNanos() { Assert.AreEqual(1000000, TimeUnit.MILLIS.ToNanos(1)); } - + [Test] public void NanosToMillis() { Assert.AreEqual(1, TimeUnit.NANOSECONDS.ToMillis(1000000)); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Adaptive.Agrona.csproj b/src/Adaptive.Agrona/Adaptive.Agrona.csproj index 00d14331..a07e1dcd 100644 --- a/src/Adaptive.Agrona/Adaptive.Agrona.csproj +++ b/src/Adaptive.Agrona/Adaptive.Agrona.csproj @@ -1,35 +1,43 @@  - - netstandard2.0 - true - Agrona - 1.49.0 - Adaptive Financial Consulting Ltd. - Adaptive Financial Consulting Ltd. - Agrona libraries initially included in Aeron Client - Copyright Adaptive Financial Consulting Ltd. - https://github.com/AdaptiveConsulting/Aeron.NET/blob/master/LICENSE - https://github.com/AdaptiveConsulting/Aeron.NET/ - https://raw.githubusercontent.com/AdaptiveConsulting/Aeron.NET/master/images/adaptive.png - Agrona provides a library of data structures and utility methods that are a common need when building high-performance applications in .NET - agrona high-performance primitives utilities - true - $(NoWarn);1591 - $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb - - - - all - runtime; build; native; contentfiles; analyzers - - - all - - - - - - - - - \ No newline at end of file + + netstandard2.0 + true + Agrona + 1.49.0 + Adaptive Financial Consulting Ltd. + Adaptive Financial Consulting Ltd. + Agrona libraries initially included in Aeron Client + Copyright Adaptive Financial Consulting Ltd. + https://github.com/AdaptiveConsulting/Aeron.NET/blob/master/LICENSE + https://github.com/AdaptiveConsulting/Aeron.NET/ + https://raw.githubusercontent.com/AdaptiveConsulting/Aeron.NET/master/images/adaptive.png + Agrona provides a library of data structures and utility methods that are a common need when building high-performance applications in .NET + agrona high-performance primitives utilities + true + $(NoWarn);1591 + $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb + + + + all + runtime; build; native; contentfiles; analyzers + + + all + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + diff --git a/src/Adaptive.Agrona/BitUtil.cs b/src/Adaptive.Agrona/BitUtil.cs index 732cdc69..d1423b92 100644 --- a/src/Adaptive.Agrona/BitUtil.cs +++ b/src/Adaptive.Agrona/BitUtil.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,11 @@ namespace Adaptive.Agrona /// /// Miscellaneous useful functions for dealing with low level bits and bytes. /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class BitUtil { /// @@ -35,7 +40,7 @@ public class BitUtil /// /// Size of a boolean in bytes /// - public const int SIZE_OF_BOOLEAN= 1; + public const int SIZE_OF_BOOLEAN = 1; /// /// Size of a char in bytes @@ -72,9 +77,24 @@ public class BitUtil /// public const int CACHE_LINE_LENGTH = 64; - private static readonly byte[] HexDigitTable = { - (byte) '0', (byte) '1', (byte) '2', (byte) '3', (byte) '4', (byte) '5', (byte) '6', (byte) '7', - (byte) '8', (byte) '9', (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd', (byte) 'e', (byte) 'f' + private static readonly byte[] HexDigitTable = + { + (byte)'0', + (byte)'1', + (byte)'2', + (byte)'3', + (byte)'4', + (byte)'5', + (byte)'6', + (byte)'7', + (byte)'8', + (byte)'9', + (byte)'a', + (byte)'b', + (byte)'c', + (byte)'d', + (byte)'e', + (byte)'f', }; private static readonly byte[] FromHexDigitTable; @@ -108,13 +128,13 @@ static BitUtil() private const int LastDigitMask = 1; - private static readonly Encoding Utf8Encoding = Encoding.UTF8; + private static readonly Encoding Utf8Encoding = Encoding.UTF8; /// /// Fast method of finding the next power of 2 greater than or equal to the supplied value. - /// + /// /// If the value is <= 0 then 1 will be returned. - /// + /// /// This method is not suitable for or numbers greater than 2^30. /// /// from which to search for next power of 2 @@ -126,12 +146,12 @@ public static int FindNextPositivePowerOfTwo(int value) } /// - /// Align a value to the next multiple up of alignment. - /// If the value equals an alignment multiple then it is returned unchanged. + /// Align a value to the next multiple up of alignment. If the value equals an alignment multiple then it is + /// returned unchanged. /// - /// This method executes without branching. This code is designed to be use in the fast path and should not - /// be used with negative numbers. Negative numbers will result in undefined behaviour. - /// + /// This method executes without branching. This code is designed to be use in the fast path and should not be + /// used with negative numbers. Negative numbers will result in undefined behaviour. + /// /// /// /// to be aligned up. @@ -144,12 +164,12 @@ public static int Align(int value, int alignment) } /// - /// Align a value to the next multiple up of alignment. - /// If the value equals an alignment multiple then it is returned unchanged. + /// Align a value to the next multiple up of alignment. If the value equals an alignment multiple then it is + /// returned unchanged. /// - /// This method executes without branching. This code is designed to be use in the fast path and should not - /// be used with negative numbers. Negative numbers will result in undefined behaviour. - /// + /// This method executes without branching. This code is designed to be use in the fast path and should not be + /// used with negative numbers. Negative numbers will result in undefined behaviour. + /// /// /// /// to be aligned up. @@ -325,11 +345,11 @@ public static bool IsAligned(long address, int alignment) return (address & (alignment - 1)) == 0; } - private static readonly ThreadLocal threadLocalRandom = new ThreadLocal(() => new Random()); - + private static readonly ThreadLocal ThreadLocalRandom = new ThreadLocal(() => new Random()); + public static int GenerateRandomisedId() { - return threadLocalRandom.Value.Next(); + return ThreadLocalRandom.Value.Next(); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/BufferUtil.cs b/src/Adaptive.Agrona/BufferUtil.cs index de79e738..bd31cbac 100644 --- a/src/Adaptive.Agrona/BufferUtil.cs +++ b/src/Adaptive.Agrona/BufferUtil.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,15 +14,20 @@ * limitations under the License. */ -using Adaptive.Agrona.Util; using System; using System.Text; +using Adaptive.Agrona.Util; namespace Adaptive.Agrona { /// /// Common functions for buffer implementations. /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class BufferUtil { public static readonly byte[] NullBytes = Encoding.UTF8.GetBytes("null"); @@ -42,7 +47,7 @@ public static void BoundsCheck(byte[] buffer, long index, int length) ThrowHelper.ThrowIndexOutOfRangeException($"index={index:D}, length={length:D}, capacity={capacity:D}"); } } - + public static ByteBuffer AllocateDirectAligned(int capacity, int alignment) { return new ByteBuffer(capacity, alignment); @@ -52,10 +57,10 @@ public static ByteBuffer AllocateDirect(int capacity) { return new ByteBuffer(capacity, BitUtil.SIZE_OF_LONG); } - + public static ByteBuffer Allocate(int capacity) { return new ByteBuffer(capacity, BitUtil.SIZE_OF_LONG); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/ByteBuffer.cs b/src/Adaptive.Agrona/ByteBuffer.cs index 6ae0b665..ffa9de12 100644 --- a/src/Adaptive.Agrona/ByteBuffer.cs +++ b/src/Adaptive.Agrona/ByteBuffer.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,7 +36,7 @@ public ByteBuffer(int capacity, int byteAlignment) ptr = (ptr + byteAlignment - 1) & ~(byteAlignment - 1); BufferPointer = new IntPtr(ptr); } - + ~ByteBuffer() { Dispose(false); @@ -50,7 +50,9 @@ public void Dispose() private void Dispose(bool disposing) { if (_disposed) + { return; + } _bufferHandle.Free(); @@ -65,4 +67,4 @@ public byte Get(int index) } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/ByteOrder.cs b/src/Adaptive.Agrona/ByteOrder.cs index 7815cf8f..c6d10f7a 100644 --- a/src/Adaptive.Agrona/ByteOrder.cs +++ b/src/Adaptive.Agrona/ByteOrder.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,16 +19,15 @@ namespace Adaptive.Agrona public enum ByteOrder { /// - /// Constant denoting big-endian byte order. In this order, the bytes of a - /// multibyte value are ordered from most significant to least significant. + /// Constant denoting big-endian byte order. In this order, the bytes of a multibyte value are ordered from most + /// significant to least significant. /// BigEndian, /// - /// Constant denoting little-endian byte order. In this order, the bytes of - /// a multibyte value are ordered from least significant to most - /// significant. + /// Constant denoting little-endian byte order. In this order, the bytes of a multibyte value are ordered from + /// least significant to most significant. /// - LittleEndian + LittleEndian, } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/CacheLinePadding.cs b/src/Adaptive.Agrona/CacheLinePadding.cs index 97601185..a8b51160 100644 --- a/src/Adaptive.Agrona/CacheLinePadding.cs +++ b/src/Adaptive.Agrona/CacheLinePadding.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,18 +14,30 @@ * limitations under the License. */ +using System.Diagnostics.CodeAnalysis; + namespace Adaptive.Agrona { + [SuppressMessage( + "Performance", + "CA1815", + Justification = "Cache-line padding struct; equality semantics are deliberately unused." + )] public struct CacheLinePadding { #pragma warning disable 649 - private long p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15; + private long _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8, _p9, _p10, _p11, _p12, _p13, _p14, _p15; #pragma warning restore 649 // To prevent compiler removing unused padding fields public override string ToString() { - return $"{nameof(p1)}: {p1}, {nameof(p2)}: {p2}, {nameof(p3)}: {p3}, {nameof(p4)}: {p4}, {nameof(p5)}: {p5}, {nameof(p6)}: {p6}, {nameof(p7)}: {p7}, {nameof(p8)}: {p8}, {nameof(p9)}: {p9}, {nameof(p10)}: {p10}, {nameof(p11)}: {p11}, {nameof(p12)}: {p12}, {nameof(p13)}: {p13}, {nameof(p14)}: {p14}, {nameof(p15)}: {p15}"; + return + $"{nameof(_p1)}: {_p1}, {nameof(_p2)}: {_p2}, {nameof(_p3)}: {_p3}, " + + $"{nameof(_p4)}: {_p4}, {nameof(_p5)}: {_p5}, {nameof(_p6)}: {_p6}, " + + $"{nameof(_p7)}: {_p7}, {nameof(_p8)}: {_p8}, {nameof(_p9)}: {_p9}, " + + $"{nameof(_p10)}: {_p10}, {nameof(_p11)}: {_p11}, {nameof(_p12)}: {_p12}, " + + $"{nameof(_p13)}: {_p13}, {nameof(_p14)}: {_p14}, {nameof(_p15)}: {_p15}"; } } } diff --git a/src/Adaptive.Agrona/CloseHelper.cs b/src/Adaptive.Agrona/CloseHelper.cs index 122a12a1..9c39952d 100644 --- a/src/Adaptive.Agrona/CloseHelper.cs +++ b/src/Adaptive.Agrona/CloseHelper.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,10 +15,8 @@ */ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; -using Adaptive.Agrona.Concurrent; namespace Adaptive.Agrona { @@ -34,9 +32,7 @@ public static void QuietDispose(IDisposable disposable) { disposable?.Dispose(); } - catch - { - } + catch { } } /// @@ -49,13 +45,11 @@ public static void QuietDispose(Action disposable) { disposable?.Invoke(); } - catch - { - } + catch { } } /// - /// Dispose an delegating exceptions to . + /// Dispose an delegating exceptions to . /// /// to delegate exceptions to. /// to be closed. @@ -72,7 +66,7 @@ public static void Dispose(ErrorHandler errorHandler, IDisposable disposable) } /// - /// Dispose an delegating exceptions to . + /// Dispose an delegating exceptions to . /// /// to delegate exceptions to. /// to be closed. @@ -89,7 +83,7 @@ public static void Dispose(IErrorHandler errorHandler, IDisposable disposable) } /// - /// Dispose an delegating exceptions to . + /// Dispose an delegating exceptions to . /// /// to delegate exceptions to. /// to be closed. @@ -151,19 +145,26 @@ public static void CloseAll(IEnumerable disposables) } /// - /// Dispose all disposables and delegate exceptions to the . - /// If is null, exceptions are aggregated and thrown at the end. + /// Dispose all disposables and delegate exceptions to the . If + /// is null, exceptions are aggregated and thrown at the end. /// - public static void CloseAll(IErrorHandler errorHandler, ICollection disposables) where T : IDisposable + public static void CloseAll(IErrorHandler errorHandler, ICollection disposables) + where T : IDisposable { - if (disposables == null) return; + if (disposables == null) + { + return; + } NullReferenceException error = null; List suppressed = null; foreach (var disposable in disposables) { - if (disposable == null) continue; + if (disposable == null) + { + continue; + } try { @@ -206,4 +207,4 @@ public static void CloseAll(IErrorHandler errorHandler, ICollection dispos } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Collections/ArrayUtil.cs b/src/Adaptive.Agrona/Collections/ArrayUtil.cs index cb8062f0..2dec71df 100644 --- a/src/Adaptive.Agrona/Collections/ArrayUtil.cs +++ b/src/Adaptive.Agrona/Collections/ArrayUtil.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,19 +19,24 @@ namespace Adaptive.Agrona.Collections using System; /// - /// Utility class for operating on arrays as if they were collections. This is useful for - /// critical paths where operations like add and remove are seldom used, but iterating - /// is common and checkcast and indirection are comparatively expensive. - /// + /// Utility class for operating on arrays as if they were collections. This is useful for critical paths where + /// operations like add and remove are seldom used, but iterating is common and checkcast and indirection are + /// comparatively expensive. + /// /// In all cases the array being mutated is assumed to be full. - /// + /// /// In all cases reference equality is used. /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public sealed class ArrayUtil { public const int UNKNOWN_INDEX = -1; - - public static readonly string[] EMPTY_STRING_ARRAY = new string[0]; + + public static readonly string[] EMPTY_STRING_ARRAY = Array.Empty(); /// /// Add an element to an array resulting in a new array. @@ -50,7 +55,7 @@ public static T[] Add(T[] oldElements, T elementToAdd) /// /// Remove an element from an array resulting in a new array if the element was found otherwise the old array. - /// + /// /// Returns its input parameter if the element to remove isn't a member. /// /// to have the element removed from. @@ -130,4 +135,4 @@ internal static T[] CopyOf(T[] original, int newLength) return dest; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Collections/CollectionUtil.cs b/src/Adaptive.Agrona/Collections/CollectionUtil.cs index 0885b116..4ca9b0c3 100644 --- a/src/Adaptive.Agrona/Collections/CollectionUtil.cs +++ b/src/Adaptive.Agrona/Collections/CollectionUtil.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,11 @@ namespace Adaptive.Agrona.Collections /// /// Utility functions for collection objects. /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class CollectionUtil { /// @@ -31,10 +36,13 @@ public class CollectionUtil /// on which the lookup is done. /// of the default value if one is not found. /// the value if found or a new default which as been added to the map. - public static TValue GetOrDefault(IDictionary map, TKey key, Func supplier) + public static TValue GetOrDefault( + IDictionary map, + TKey key, + Func supplier + ) { - TValue value; - if (!map.TryGetValue(key, out value)) + if (!map.TryGetValue(key, out TValue value)) { value = supplier(key); map[key] = value; @@ -43,4 +51,4 @@ public static TValue GetOrDefault(IDictionary map, T return value; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Collections/DictionaryExtensions.cs b/src/Adaptive.Agrona/Collections/DictionaryExtensions.cs index a228cc6a..a67bc427 100644 --- a/src/Adaptive.Agrona/Collections/DictionaryExtensions.cs +++ b/src/Adaptive.Agrona/Collections/DictionaryExtensions.cs @@ -1,4 +1,20 @@ -using System.Collections.Generic; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System.Collections.Generic; namespace Adaptive.Agrona.Collections { @@ -7,9 +23,10 @@ public static class DictionaryExtensions public static TValue GetOrDefault( this IDictionary dictionary, TKey key, - TValue @default = default(TValue)) + TValue @default = default + ) { return dictionary.TryGetValue(key, out var value) ? value : @default; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Collections/IntObjConsumer.cs b/src/Adaptive.Agrona/Collections/IntObjConsumer.cs index f56e7a7e..2bca6008 100644 --- a/src/Adaptive.Agrona/Collections/IntObjConsumer.cs +++ b/src/Adaptive.Agrona/Collections/IntObjConsumer.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,9 +16,8 @@ namespace Adaptive.Agrona.Collections { - /// - /// This is an (int, Object) primitive specialisation of a BiConsumer. - /// - public delegate void IntObjConsumer(int i, T v); - -} \ No newline at end of file + /// + /// This is an (int, Object) primitive specialisation of a BiConsumer. + /// + public delegate void IntObjConsumer(int i, T v); +} diff --git a/src/Adaptive.Agrona/Collections/ListUtil.cs b/src/Adaptive.Agrona/Collections/ListUtil.cs index b0500fb5..f04ef6ef 100644 --- a/src/Adaptive.Agrona/Collections/ListUtil.cs +++ b/src/Adaptive.Agrona/Collections/ListUtil.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,8 +26,9 @@ namespace Adaptive.Agrona.Collections public static class ListUtil { /// - /// Removes element at index i, but instead of copying all elements to the left, moves into the same slot the last - /// element. This avoids the copy costs, but spoils the list order. If i is the last element it is just removed. + /// Removes element at index i, but instead of copying all elements to the left, moves into the same slot the + /// last element. This avoids the copy costs, but spoils the list order. If i is the last element it is just + /// removed. /// /// to be modified. /// removal index. @@ -71,4 +72,4 @@ public static bool FastUnorderedRemove(List list, T e) return false; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Collections/Map.cs b/src/Adaptive.Agrona/Collections/Map.cs index c61752e1..82537a1b 100644 --- a/src/Adaptive.Agrona/Collections/Map.cs +++ b/src/Adaptive.Agrona/Collections/Map.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Collections; using System.Collections.Generic; @@ -34,7 +50,11 @@ public TValue Put(TKey key, TValue value) public TValue Remove(TKey key) { - if (!_dictionaryImplementation.TryGetValue(key, out var value)) return _defaultValue; + if (!_dictionaryImplementation.TryGetValue(key, out var value)) + { + return _defaultValue; + } + _dictionaryImplementation.Remove(key); return value; } @@ -73,4 +93,4 @@ public void ForEach(Action consumer) } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/AgentInvoker.cs b/src/Adaptive.Agrona/Concurrent/AgentInvoker.cs index 69ba8e3b..5ad76f4e 100644 --- a/src/Adaptive.Agrona/Concurrent/AgentInvoker.cs +++ b/src/Adaptive.Agrona/Concurrent/AgentInvoker.cs @@ -1,17 +1,34 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Threading; using Adaptive.Agrona.Concurrent.Status; namespace Adaptive.Agrona.Concurrent { /// - /// container which does not start a thread. It instead allows the duty ctyle to be - /// invoked directly. - /// - /// Exceptions which occur during the invocation will be caught and passed to the provided . - /// + /// container which does not start a thread. It instead allows the duty ctyle + /// to be invoked directly. + /// + /// Exceptions which occur during the invocation will be caught and passed to the + /// provided . + /// /// Note: This class is not threadsafe. - /// + /// /// public class AgentInvoker : IDisposable { @@ -38,13 +55,10 @@ public class AgentInvoker : IDisposable /// Create an agent and initialise it. /// /// to be called if an is encountered - /// to be incremented each time an exception is encountered. This may be null. + /// to be incremented each time an exception is encountered. This may be null. + /// /// to be run in this thread. - public AgentInvoker( - IErrorHandler errorHandler, - AtomicCounter errorCounter, - IAgent agent - ) + public AgentInvoker(IErrorHandler errorHandler, AtomicCounter errorCounter, IAgent agent) { Objects.RequireNonNull(errorHandler, "errorHandler"); Objects.RequireNonNull(agent, "agent"); @@ -89,13 +103,15 @@ public void Start() /// /// Invoke the method and return the work count. - /// - /// If an error occurs then the will be called on the errorCounter if not null - /// and the will be passed to the method. If the error - /// is an then will be called after the error handler. - /// - /// If not successfully started or after closed then this method will return without invoking the . - /// + /// + /// If an error occurs then the will be called on the errorCounter if + /// not null and the will be passed to the method. If + /// the error is an then will be called + /// after the error handler. + /// + /// If not successfully started or after closed then this method will return without invoking the + /// . + /// /// /// the work count for the method. public int Invoke() @@ -147,7 +163,6 @@ public void Dispose() { HandleError(exception); } - } private void HandleError(Exception exception) @@ -160,4 +175,4 @@ private void HandleError(Exception exception) _errorHandler.OnError(exception); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/AgentRunner.cs b/src/Adaptive.Agrona/Concurrent/AgentRunner.cs index bc1e8127..4780d766 100644 --- a/src/Adaptive.Agrona/Concurrent/AgentRunner.cs +++ b/src/Adaptive.Agrona/Concurrent/AgentRunner.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ namespace Adaptive.Agrona.Concurrent { /// - /// Agent runner containing an which is run on a . + /// Agent runner containing an which is run on a . /// /// Note: An instance should only be started once and then discarded, it should not be reused. /// @@ -31,10 +31,10 @@ public class AgentRunner : IDisposable /// /// Indicates that the runner is being closed. /// - private static readonly Thread TOMBSTONE = new Thread(() => { }); + private static readonly Thread Tombstone = new Thread(() => { }); public static readonly int RETRY_CLOSE_TIMEOUT_MS = 3000; - + private volatile bool _isRunning = true; /// @@ -53,14 +53,30 @@ public class AgentRunner : IDisposable /// /// to use for Agent run loop /// to be called if an is encountered - /// to be incremented each time an exception is encountered. This may be null. + /// to be incremented each time an exception is encountered. This may be + /// null. /// to be run in this thread. - public AgentRunner(IIdleStrategy idleStrategy, IErrorHandler errorHandler, AtomicCounter errorCounter, IAgent agent) + public AgentRunner( + IIdleStrategy idleStrategy, + IErrorHandler errorHandler, + AtomicCounter errorCounter, + IAgent agent + ) { - if (idleStrategy == null) throw new ArgumentNullException(nameof(idleStrategy)); - if (errorHandler == null) throw new ArgumentNullException(nameof(errorHandler)); - if (agent == null) throw new ArgumentNullException(nameof(agent)); + if (idleStrategy == null) + { + throw new ArgumentNullException(nameof(idleStrategy)); + } + if (errorHandler == null) + { + throw new ArgumentNullException(nameof(errorHandler)); + } + + if (agent == null) + { + throw new ArgumentNullException(nameof(agent)); + } _idleStrategy = idleStrategy; _errorHandler = errorHandler; @@ -116,9 +132,9 @@ public Thread Thread() } /// - /// Run an . + /// Run an . /// - /// This method does not return until the run loop is stopped via . + /// This method does not return until the run loop is stopped via . /// /// public void Run() @@ -167,7 +183,8 @@ public void Run() } /// - /// Stop the running Agent and cleanup. This will wait for the work loop to exit and the performing + /// Stop the running Agent and cleanup. This will wait for the work loop to exit and the + /// performing /// it logic. /// /// The clean up logic will only be performed once even if close is called from multiple concurrent threads. @@ -177,7 +194,7 @@ public void Dispose() { _isRunning = false; - var thread = _thread.GetAndSet(TOMBSTONE); + var thread = _thread.GetAndSet(Tombstone); if (null == thread) { @@ -191,7 +208,7 @@ public void Dispose() _errorHandler.OnError(ex); } } - else if (TOMBSTONE != thread) + else if (Tombstone != thread) { while (true) { @@ -204,8 +221,10 @@ public void Dispose() return; } - Console.Error.WriteLine($"Timeout waiting for agent '{_agent.RoleName()}' to close, Retrying..."); - + Console.Error.WriteLine( + $"Timeout waiting for agent '{_agent.RoleName()}' to close, Retrying..." + ); + thread.Interrupt(); } catch (ThreadInterruptedException) @@ -250,4 +269,4 @@ private void HandleError(Exception exception) } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/AgentTerminationException.cs b/src/Adaptive.Agrona/Concurrent/AgentTerminationException.cs index e6350e31..05e5147e 100644 --- a/src/Adaptive.Agrona/Concurrent/AgentTerminationException.cs +++ b/src/Adaptive.Agrona/Concurrent/AgentTerminationException.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; namespace Adaptive.Agrona.Concurrent { @@ -8,12 +24,14 @@ public AgentTerminationException() { } - public AgentTerminationException(string message) : base(message) + public AgentTerminationException(string message) + : base(message) { } - public AgentTerminationException(Exception innerException) : base(innerException?.ToString(), innerException) + public AgentTerminationException(Exception innerException) + : base(innerException?.ToString(), innerException) { } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/AtomicBoolean.cs b/src/Adaptive.Agrona/Concurrent/AtomicBoolean.cs index a736f300..a3cc690a 100644 --- a/src/Adaptive.Agrona/Concurrent/AtomicBoolean.cs +++ b/src/Adaptive.Agrona/Concurrent/AtomicBoolean.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,6 @@ * limitations under the License. */ -using System; using System.Runtime.CompilerServices; using System.Threading; using Adaptive.Agrona.Util; @@ -25,12 +24,12 @@ public class AtomicBoolean { private int _value; - private const int TRUE = 1; - private const int FALSE = 0; + private const int True = 1; + private const int False = 0; public AtomicBoolean(bool initialValue) { - Interlocked.Exchange(ref _value, initialValue ? TRUE : FALSE); + Interlocked.Exchange(ref _value, initialValue ? True : False); } /// @@ -63,18 +62,18 @@ public static implicit operator bool(AtomicBoolean value) [MethodImpl(MethodImplOptions.AggressiveInlining)] private static bool ToBool(int value) { - if (value != FALSE && value != TRUE) + if (value != False && value != True) { ThrowHelper.ThrowArgumentOutOfRangeException(nameof(value)); } - return value == TRUE; + return value == True; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private static int ToInt(bool value) { - return value ? TRUE : FALSE; + return value ? True : False; } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -83,4 +82,4 @@ public void Set(bool value) Volatile.Write(ref _value, ToInt(value)); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/AtomicLong.cs b/src/Adaptive.Agrona/Concurrent/AtomicLong.cs index 3beb4c0a..ed4d41eb 100644 --- a/src/Adaptive.Agrona/Concurrent/AtomicLong.cs +++ b/src/Adaptive.Agrona/Concurrent/AtomicLong.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,7 +49,7 @@ public void Add(long add) { Interlocked.Add(ref _long, add); } - + /// /// Atomically increments the current value /// @@ -59,4 +59,4 @@ public long IncrementAndGet() return Interlocked.Increment(ref _long); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/AtomicReference.cs b/src/Adaptive.Agrona/Concurrent/AtomicReference.cs index 9944bc16..c7f1db53 100644 --- a/src/Adaptive.Agrona/Concurrent/AtomicReference.cs +++ b/src/Adaptive.Agrona/Concurrent/AtomicReference.cs @@ -1,5 +1,5 @@ -/* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,8 @@ namespace Adaptive.Agrona.Concurrent { - public class AtomicReference where T : class + public class AtomicReference + where T : class { private T _value; @@ -52,4 +53,4 @@ public bool CompareAndSet(T compareValue, T newValue) return original == compareValue; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/BackgroundThreadFactory.cs b/src/Adaptive.Agrona/Concurrent/BackgroundThreadFactory.cs index b9484d79..f54a65f1 100644 --- a/src/Adaptive.Agrona/Concurrent/BackgroundThreadFactory.cs +++ b/src/Adaptive.Agrona/Concurrent/BackgroundThreadFactory.cs @@ -1,4 +1,20 @@ -using System.Threading; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System.Threading; namespace Adaptive.Agrona.Concurrent { @@ -8,10 +24,7 @@ public class BackgroundThreadFactory : IThreadFactory public Thread NewThread(ThreadStart runner) { - return new Thread(runner) - { - IsBackground = true - }; + return new Thread(runner) { IsBackground = true }; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/BackoffIdleStrategy.cs b/src/Adaptive.Agrona/Concurrent/BackoffIdleStrategy.cs index eead50c3..134fb20f 100644 --- a/src/Adaptive.Agrona/Concurrent/BackoffIdleStrategy.cs +++ b/src/Adaptive.Agrona/Concurrent/BackoffIdleStrategy.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,6 @@ * limitations under the License. */ - using System; using System.Threading; @@ -22,10 +21,9 @@ namespace Adaptive.Agrona.Concurrent { /// /// Idling strategy for threads when they have no work to do. - /// - /// Spin for maxSpins, then - /// for maxYields, then - /// on an exponential backup to maxParkPeriodMs + /// + /// Spin for maxSpins, then for maxYields, then on an + /// exponential backup to maxParkPeriodMs /// /// TODO Padding to avoid false sharing public class BackoffIdleStrategy : IIdleStrategy @@ -35,7 +33,7 @@ private enum State NOT_IDLE, SPINNING, YIELDING, - PARKING + PARKING, } private readonly long _maxSpins; @@ -123,4 +121,4 @@ public void Reset() _state = State.NOT_IDLE; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/Broadcast/BroadcastBufferDescriptor.cs b/src/Adaptive.Agrona/Concurrent/Broadcast/BroadcastBufferDescriptor.cs index 134d5f51..352eb810 100644 --- a/src/Adaptive.Agrona/Concurrent/Broadcast/BroadcastBufferDescriptor.cs +++ b/src/Adaptive.Agrona/Concurrent/Broadcast/BroadcastBufferDescriptor.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,34 +14,39 @@ * limitations under the License. */ -using Adaptive.Agrona.Util; using System; +using Adaptive.Agrona.Util; namespace Adaptive.Agrona.Concurrent.Broadcast { /// - /// Layout of the broadcast buffer. The buffer consists of a ring of messages that is a power of 2 in size. - /// This is followed by a trailer section containing state information about the ring. + /// Layout of the broadcast buffer. The buffer consists of a ring of messages that is a power of 2 in size. This is + /// followed by a trailer section containing state information about the ring. /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class BroadcastBufferDescriptor { /// - /// Offset within the trailer for where the tail intended value is stored. + /// Offset within the trailer for where the tail intended value is stored. /// public static readonly int TailIntentCounterOffset; /// - /// Offset within the trailer for where the tail value is stored. + /// Offset within the trailer for where the tail value is stored. /// public static readonly int TailCounterOffset; /// - /// Offset within the trailer for where the latest sequence value is stored. + /// Offset within the trailer for where the latest sequence value is stored. /// public static readonly int LatestCounterOffset; - /// - /// Total size of the trailer + /// + /// Total size of the trailer /// public static readonly int TrailerLength; @@ -56,7 +61,7 @@ static BroadcastBufferDescriptor() offset += BitUtil.SIZE_OF_LONG; LatestCounterOffset = offset; - TrailerLength = BitUtil.CACHE_LINE_LENGTH*2; + TrailerLength = BitUtil.CACHE_LINE_LENGTH * 2; } /// @@ -73,4 +78,4 @@ public static void CheckCapacity(int capacity) } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/Broadcast/BroadcastReceiver.cs b/src/Adaptive.Agrona/Concurrent/Broadcast/BroadcastReceiver.cs index 9d5a8d47..983e371f 100644 --- a/src/Adaptive.Agrona/Concurrent/Broadcast/BroadcastReceiver.cs +++ b/src/Adaptive.Agrona/Concurrent/Broadcast/BroadcastReceiver.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,11 +20,11 @@ namespace Adaptive.Agrona.Concurrent.Broadcast { /// - /// Receive messages broadcast from a BroadcastTransmitter via an underlying buffer. Receivers can join - /// a transmission stream at any point by consuming the latest message at the point of joining and forward. + /// Receive messages broadcast from a BroadcastTransmitter via an underlying buffer. Receivers can join a + /// transmission stream at any point by consuming the latest message at the point of joining and forward. /// - /// If a Receiver cannot keep up with the transmission stream then loss will be experienced. Loss is not an - /// error condition. + /// If a Receiver cannot keep up with the transmission stream then loss will be experienced. Loss is not an error + /// condition. /// /// /// Note: Each Receiver is not threadsafe but there can be zero or many receivers to a transmission stream. @@ -45,9 +45,9 @@ public class BroadcastReceiver private readonly AtomicLong _lappedCount = new AtomicLong(); /// - /// Construct a new broadcast receiver based on an underlying . - /// The underlying buffer must a power of 2 in size plus sufficient space - /// for the . + /// Construct a new broadcast receiver based on an underlying . The underlying + /// buffer must a power of 2 in size plus sufficient space for the + /// . /// /// via which messages will be exchanged. /// if the buffer capacity is not a power of 2 @@ -65,7 +65,7 @@ public BroadcastReceiver(IAtomicBuffer buffer) _latestCounterIndex = _capacity + BroadcastBufferDescriptor.LatestCounterOffset; _cursor = _nextRecord = buffer.GetLongVolatile(_latestCounterIndex); - _recordOffset = (int) _cursor & (_capacity - 1); + _recordOffset = (int)_cursor & (_capacity - 1); } /// @@ -78,11 +78,11 @@ public int Capacity() } /// - /// Get the number of times the transmitter has lapped this receiver around the buffer. On each lap - /// as least a buffer's worth of loss will be experienced. + /// Get the number of times the transmitter has lapped this receiver around the buffer. On each lap as least a + /// buffer's worth of loss will be experienced. /// /// Note: This method is threadsafe for calling from an external monitoring thread. - /// + /// /// /// /// the capacity of the underlying broadcast buffer. @@ -131,10 +131,11 @@ public IMutableDirectBuffer Buffer() /// Non-blocking receive of next message from the transmission stream. /// /// If loss has occurred then will be incremented. - /// + /// /// /// - /// true if transmission is available with , and + /// true if transmission is available with , and + /// /// set for the next message to be consumed. If no transmission is available then false. public bool ReceiveNext() { @@ -145,24 +146,32 @@ public bool ReceiveNext() if (tail > cursor) { - var recordOffset = (int) cursor & (_capacity - 1); + var recordOffset = (int)cursor & (_capacity - 1); if (!Validate(cursor)) { _lappedCount.LazySet(_lappedCount.Get() + 1); cursor = buffer.GetLong(_latestCounterIndex); - recordOffset = (int) cursor & (_capacity - 1); + recordOffset = (int)cursor & (_capacity - 1); } _cursor = cursor; - _nextRecord = cursor + BitUtil.Align(buffer.GetInt(RecordDescriptor.GetLengthOffset(recordOffset)), RecordDescriptor.RecordAlignment); + _nextRecord = + cursor + + BitUtil.Align( + buffer.GetInt(RecordDescriptor.GetLengthOffset(recordOffset)), + RecordDescriptor.RecordAlignment + ); if (RecordDescriptor.PaddingMsgTypeID == buffer.GetInt(RecordDescriptor.GetTypeOffset(recordOffset))) { recordOffset = 0; _cursor = _nextRecord; - _nextRecord += BitUtil.Align(buffer.GetInt(RecordDescriptor.GetLengthOffset(recordOffset)), RecordDescriptor.RecordAlignment); + _nextRecord += BitUtil.Align( + buffer.GetInt(RecordDescriptor.GetLengthOffset(recordOffset)), + RecordDescriptor.RecordAlignment + ); } _recordOffset = recordOffset; @@ -175,16 +184,17 @@ public bool ReceiveNext() /// /// Validate that the current received record is still valid and has not been overwritten. /// - /// If the receiver is not consuming messages fast enough to keep up with the transmitter then loss - /// can be experienced resulting in messages being overwritten thus making them no longer valid. - /// + /// If the receiver is not consuming messages fast enough to keep up with the transmitter then loss can be + /// experienced resulting in messages being overwritten thus making them no longer valid. + /// /// /// /// true if still valid otherwise false. public bool Validate() { // TODO check equivalent semantics - // Replaces UNSAFE.loadFence(); Needed to prevent older loads being moved ahead of the validate, see j.u.c.StampedLock. + // Replaces UNSAFE.loadFence(); needed to prevent older loads being moved ahead of + // the validate, see j.u.c.StampedLock. Thread.MemoryBarrier(); return Validate(_cursor); @@ -195,4 +205,4 @@ private bool Validate(long cursor) return cursor + _capacity > _buffer.GetLongVolatile(_tailIntentCounterIndex); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/Broadcast/CopyBroadcastReceiver.cs b/src/Adaptive.Agrona/Concurrent/Broadcast/CopyBroadcastReceiver.cs index cd96e3a8..936b0c1f 100644 --- a/src/Adaptive.Agrona/Concurrent/Broadcast/CopyBroadcastReceiver.cs +++ b/src/Adaptive.Agrona/Concurrent/Broadcast/CopyBroadcastReceiver.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,10 +31,7 @@ public class CopyBroadcastReceiver private readonly BroadcastReceiver _receiver; private readonly IMutableDirectBuffer _scratchBuffer; - public CopyBroadcastReceiver() - { - - } + public CopyBroadcastReceiver() { } /// /// Wrap a to simplify the API for receiving messages. @@ -46,7 +43,7 @@ public CopyBroadcastReceiver(BroadcastReceiver receiver, IMutableDirectBuffer sc _receiver = receiver; _scratchBuffer = scratchBuffer; } - + /// /// Wrap a to simplify the API for receiving messages. /// @@ -90,7 +87,9 @@ public int Receive(MessageHandler handler) var capacity = _scratchBuffer.Capacity; if (length > capacity) { - throw new InvalidOperationException($"Buffer required length of {length:D} but only has {capacity:D}"); + throw new InvalidOperationException( + $"Buffer required length of {length:D} but only has {capacity:D}" + ); } var msgTypeId = receiver.TypeId(); @@ -109,4 +108,4 @@ public int Receive(MessageHandler handler) return messagesReceived; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/Broadcast/RecordDescriptor.cs b/src/Adaptive.Agrona/Concurrent/Broadcast/RecordDescriptor.cs index 42a9aa32..6e389480 100644 --- a/src/Adaptive.Agrona/Concurrent/Broadcast/RecordDescriptor.cs +++ b/src/Adaptive.Agrona/Concurrent/Broadcast/RecordDescriptor.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,9 +19,9 @@ namespace Adaptive.Agrona.Concurrent.Broadcast { /// - /// Description of the structure for a record in the broadcast buffer. - /// All messages are stored in records with the following format. - /// + /// Description of the structure for a record in the broadcast buffer. All messages are stored in records with the + /// following format. + /// ///
     ///   0                   1                   2                   3
     ///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
@@ -34,9 +34,14 @@ namespace Adaptive.Agrona.Concurrent.Broadcast
     /// ...                                                              |
     ///  +---------------------------------------------------------------+
     /// 
- /// + /// /// (R) bits are reserved. ///
+ [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class RecordDescriptor { /// @@ -53,7 +58,7 @@ public class RecordDescriptor /// /// Length of the record header in bytes. - public const int HeaderLength = BitUtil.SIZE_OF_INT*2; + public const int HeaderLength = BitUtil.SIZE_OF_INT * 2; /// /// Alignment as a multiple of bytes for each record. @@ -66,7 +71,7 @@ public class RecordDescriptor /// the maximum supported size for a message. public static int CalculateMaxMessageLength(int capacity) { - return capacity/8; + return capacity / 8; } /// @@ -113,4 +118,4 @@ public static void CheckTypeId(int msgTypeId) } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/BusySpinIdleStrategy.cs b/src/Adaptive.Agrona/Concurrent/BusySpinIdleStrategy.cs index 710f9344..aac28e5f 100644 --- a/src/Adaptive.Agrona/Concurrent/BusySpinIdleStrategy.cs +++ b/src/Adaptive.Agrona/Concurrent/BusySpinIdleStrategy.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,14 +19,14 @@ namespace Adaptive.Agrona.Concurrent { /// - /// Busy spin strategy targeted at lowest possible latency. This strategy will monopolise a thread to achieve the lowest - /// possible latency. Useful for creating bubbles in the execution pipeline of tight busy spin loops with no other logic - /// than status checks on progress. + /// Busy spin strategy targeted at lowest possible latency. This strategy will monopolise a thread to achieve the + /// lowest possible latency. Useful for creating bubbles in the execution pipeline of tight busy spin loops with no + /// other logic than status checks on progress. /// public sealed class BusySpinIdleStrategy : IIdleStrategy { /// - /// Note: this implementation will result in no safepoint poll once inlined. + /// Note : this implementation will result in no safepoint poll once inlined. /// public void Idle(int workCount) { @@ -43,8 +43,6 @@ public void Idle() Thread.SpinWait(0); } - public void Reset() - { - } + public void Reset() { } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/CachedEpochClock.cs b/src/Adaptive.Agrona/Concurrent/CachedEpochClock.cs index 43e343c8..361b1323 100644 --- a/src/Adaptive.Agrona/Concurrent/CachedEpochClock.cs +++ b/src/Adaptive.Agrona/Concurrent/CachedEpochClock.cs @@ -1,17 +1,33 @@ -namespace Adaptive.Agrona.Concurrent +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.Concurrent { public class CachedEpochClock : IEpochClock { - private long timeMs; - + private long _timeMs; + public long Time() { - return timeMs; + return _timeMs; } public void Update(long timeMs) { - this.timeMs = timeMs; + _timeMs = timeMs; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/CompositeAgent.cs b/src/Adaptive.Agrona/Concurrent/CompositeAgent.cs index 0302e29f..1c5171c6 100644 --- a/src/Adaptive.Agrona/Concurrent/CompositeAgent.cs +++ b/src/Adaptive.Agrona/Concurrent/CompositeAgent.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Collections.Generic; using System.Text; @@ -16,7 +32,8 @@ public class CompositeAgent : IAgent /// the parts of this composite, at least one agent and no null agents allowed /// if an empty array of agents is provided /// if the array or any element is null - public CompositeAgent(List agents) : this(agents.ToArray()) + public CompositeAgent(List agents) + : this(agents.ToArray()) { } @@ -51,11 +68,11 @@ public string RoleName() return _roleName; } - - /// - /// Note that one agent throwing an exception on start may result in other agents not being started. - /// - /// if any sub-agent throws an exception onClose. The first agent exception is collected as the inner exception of the thrown exception. + /// Note that one agent throwing an exception on start may result in other agents not being + /// started. + /// + /// if any sub-agent throws an exception onClose. The first agent exception is + /// collected as the inner exception of the thrown exception. public void OnStart() { Exception ce = null; @@ -98,10 +115,11 @@ public int DoWork() return workCount; } - /// - /// Note that one agent throwing an exception on close will not prevent other agents from being closed. - /// - /// if any sub-agent throws an exception onClose. The first agent exception is collected as the inner exception of the thrown exception. + /// Note that one agent throwing an exception on close will not prevent other agents from being + /// closed. + /// + /// if any sub-agent throws an exception onClose. The first agent exception is + /// collected as the inner exception of the thrown exception. public void OnClose() { Exception ce = null; @@ -126,4 +144,4 @@ public void OnClose() } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/Configuration.cs b/src/Adaptive.Agrona/Concurrent/Configuration.cs index c3fdb2c5..dba984e2 100644 --- a/src/Adaptive.Agrona/Concurrent/Configuration.cs +++ b/src/Adaptive.Agrona/Concurrent/Configuration.cs @@ -1,5 +1,26 @@ -namespace Adaptive.Agrona.Concurrent +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.Concurrent { + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class Configuration { /// @@ -24,4 +45,4 @@ public class Configuration /// public static readonly long IDLE_MAX_PARK_MS = 16; } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/ControllableIdleStrategy.cs b/src/Adaptive.Agrona/Concurrent/ControllableIdleStrategy.cs index 2186614a..7e418685 100644 --- a/src/Adaptive.Agrona/Concurrent/ControllableIdleStrategy.cs +++ b/src/Adaptive.Agrona/Concurrent/ControllableIdleStrategy.cs @@ -1,4 +1,20 @@ -using System.Threading; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System.Threading; using Adaptive.Agrona.Util; namespace Adaptive.Agrona.Concurrent @@ -11,13 +27,13 @@ public class ControllableIdleStrategy : IIdleStrategy public const int YIELD = 3; public const int PARK = 4; - private const long PARK_PERIOD_NANOSECONDS = 1000; + private const long ParkPeriodNanoseconds = 1000; - private readonly StatusIndicatorReader statusIndicatorReader; + private readonly StatusIndicatorReader _statusIndicatorReader; public ControllableIdleStrategy(StatusIndicatorReader statusIndicatorReader) { - this.statusIndicatorReader = statusIndicatorReader; + _statusIndicatorReader = statusIndicatorReader; } /// @@ -40,7 +56,7 @@ public void Idle(int workCount) /// public void Idle() { - int status = (int)statusIndicatorReader.GetVolatile(); + int status = (int)_statusIndicatorReader.GetVolatile(); switch (status) { @@ -56,7 +72,7 @@ public void Idle() break; default: - LockSupport.ParkNanos(PARK_PERIOD_NANOSECONDS); + LockSupport.ParkNanos(ParkPeriodNanoseconds); break; } } @@ -70,9 +86,7 @@ public void Reset() public override string ToString() { - return "ControllableIdleStrategy{" + - "statusIndicatorReader=" + statusIndicatorReader + - '}'; + return "ControllableIdleStrategy{" + "statusIndicatorReader=" + _statusIndicatorReader + '}'; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/CounterErrorHandler.cs b/src/Adaptive.Agrona/Concurrent/CounterErrorHandler.cs index cc397a0c..65ae366d 100644 --- a/src/Adaptive.Agrona/Concurrent/CounterErrorHandler.cs +++ b/src/Adaptive.Agrona/Concurrent/CounterErrorHandler.cs @@ -1,11 +1,28 @@ -using Adaptive.Agrona.Concurrent.Status; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona.Concurrent.Status; namespace Adaptive.Agrona.Concurrent { using System; /// - /// An which calls before delegating the exception. + /// An which calls before delegating the + /// exception. /// public class CountedErrorHandler : IErrorHandler { @@ -36,4 +53,4 @@ public void OnError(Exception throwable) _errorHandler.OnError(throwable); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/DefaultThreadFactory.cs b/src/Adaptive.Agrona/Concurrent/DefaultThreadFactory.cs index cf60d371..9872a330 100644 --- a/src/Adaptive.Agrona/Concurrent/DefaultThreadFactory.cs +++ b/src/Adaptive.Agrona/Concurrent/DefaultThreadFactory.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,4 +25,4 @@ public Thread NewThread(ThreadStart runner) return new Thread(runner); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/Errors/DistinctErrorLog.cs b/src/Adaptive.Agrona/Concurrent/Errors/DistinctErrorLog.cs index 9e5106bf..81a4d0da 100644 --- a/src/Adaptive.Agrona/Concurrent/Errors/DistinctErrorLog.cs +++ b/src/Adaptive.Agrona/Concurrent/Errors/DistinctErrorLog.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,14 +23,15 @@ namespace Adaptive.Agrona.Concurrent.Errors /// Distinct record of error observations. Rather than grow a record indefinitely when many errors of the same type /// are logged, this log takes the approach of only recording distinct errors of the same type type and stack trace /// and keeping a count and time of observation so that the record only grows with new distinct observations. - /// - /// The provided can wrap a memory-mapped file so logging can be out of process. This provides - /// the benefit that if a crash or lockup occurs then the log can be read externally without loss of data. - /// + /// + /// The provided can wrap a memory-mapped file so logging can be out of process. + /// This provides the benefit that if a crash or lockup occurs then the log can be read externally without loss of + /// data. + /// /// This class is threadsafe to be used from multiple logging threads. - /// + /// /// The error records are recorded to the memory mapped buffer in the following format. - /// + /// ///
     ///   0                   1                   2                   3
     ///   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
@@ -70,7 +71,8 @@ public class DistinctErrorLog
         /// 
         /// Offset within a record at which the first observation timestamp field begins.
         /// 
-        public static readonly int FirstObservationTimestampOffset = LastObservationTimestampOffset + BitUtil.SIZE_OF_LONG;
+        public static readonly int FirstObservationTimestampOffset =
+            LastObservationTimestampOffset + BitUtil.SIZE_OF_LONG;
 
         /// 
         /// Offset within a record at which the encoded exception field begins.
@@ -87,7 +89,7 @@ public class DistinctErrorLog
         private int _nextOffset = 0;
         private readonly IEpochClock _clock;
         private readonly IAtomicBuffer _buffer;
-        private volatile DistinctObservation[] _distinctObservations = new DistinctObservation[0];
+        private volatile DistinctObservation[] _distinctObservations = Array.Empty();
         private readonly object _newObservationLock = new object();
 
         /// 
@@ -103,9 +105,9 @@ public DistinctErrorLog(IAtomicBuffer buffer, IEpochClock clock)
         }
 
         /// 
-        /// Record an observation of an error. If it is the first observation of this error type for a stack trace
-        /// then a new entry will be created. For subsequent observations of the same error type and stack trace a
-        /// counter and time of last observation will be updated.
+        /// Record an observation of an error. If it is the first observation of this error type for a stack trace then
+        /// a new entry will be created. For subsequent observations of the same error type and stack trace a counter
+        /// and time of last observation will be updated.
         /// 
         ///  to be logged as an error observation. 
         ///  true if successfully logged otherwise false if insufficient space remaining in the log. 
@@ -159,9 +161,7 @@ private static bool ExceptionEquals(Exception lhs, Exception rhs)
                     return true;
                 }
 
-                if (lhs.Message != rhs.Message 
-                    || lhs.GetType() != rhs.GetType()
-                    || lhs.StackTrace != rhs.StackTrace)
+                if (lhs.Message != rhs.Message || lhs.GetType() != rhs.GetType() || lhs.StackTrace != rhs.StackTrace)
                 {
                     return false;
                 }
@@ -182,7 +182,11 @@ private static bool ExceptionEquals(Exception lhs, Exception rhs)
             }
         }
 
-        private DistinctObservation NewObservation(long timestamp, DistinctObservation[] existingObservations, Exception observation)
+        private DistinctObservation NewObservation(
+            long timestamp,
+            DistinctObservation[] existingObservations,
+            Exception observation
+        )
         {
             DistinctObservation existingObservation = null;
 
@@ -216,7 +220,10 @@ private DistinctObservation NewObservation(long timestamp, DistinctObservation[]
             return existingObservation;
         }
 
-        private static DistinctObservation[] Prepend(DistinctObservation[] observations, DistinctObservation observation)
+        private static DistinctObservation[] Prepend(
+            DistinctObservation[] observations,
+            DistinctObservation observation
+        )
         {
             int length = observations.Length;
             var newObservations = new DistinctObservation[length + 1];
@@ -238,6 +245,5 @@ public DistinctObservation(Exception throwable, int offset)
                 Offset = offset;
             }
         }
-
     }
-}
\ No newline at end of file
+}
diff --git a/src/Adaptive.Agrona/Concurrent/Errors/ErrorReader.cs b/src/Adaptive.Agrona/Concurrent/Errors/ErrorReader.cs
index ff7d9888..448ed5b4 100644
--- a/src/Adaptive.Agrona/Concurrent/Errors/ErrorReader.cs
+++ b/src/Adaptive.Agrona/Concurrent/Errors/ErrorReader.cs
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd
+ * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,10 +17,15 @@
 namespace Adaptive.Agrona.Concurrent.Errors
 {
     /// 
-    /// Reader for the log created by a .
-    /// 
+    /// Reader for the log created by a  .
+    ///
     /// The read methods are thread safe.
     /// 
+    [System.Diagnostics.CodeAnalysis.SuppressMessage(
+        "Major Code Smell",
+        "S1118:Utility classes should not have public constructors",
+        Justification = "Public ctor in shipped API surface; marking static would break consumers."
+    )]
     public class ErrorLogReader
     {
         /// 
@@ -32,7 +37,7 @@ public static bool HasErrors(IAtomicBuffer buffer)
         {
             return buffer.Capacity >= BitUtil.SIZE_OF_INT && 0 != buffer.GetIntVolatile(DistinctErrorLog.LengthOffset);
         }
-        
+
         /// 
         /// Read all the errors in a log since the creation of the log.
         /// 
@@ -65,7 +70,9 @@ public static int Read(IAtomicBuffer buffer, ErrorConsumer consumer, long sinceT
                     break;
                 }
 
-                long lastObservationTimestamp = buffer.GetLongVolatile(offset + DistinctErrorLog.LastObservationTimestampOffset);
+                long lastObservationTimestamp = buffer.GetLongVolatile(
+                    offset + DistinctErrorLog.LastObservationTimestampOffset
+                );
                 if (lastObservationTimestamp >= sinceTimestamp)
                 {
                     ++entries;
@@ -74,7 +81,11 @@ public static int Read(IAtomicBuffer buffer, ErrorConsumer consumer, long sinceT
                         buffer.GetInt(offset + DistinctErrorLog.ObservationCountOffset),
                         buffer.GetLong(offset + DistinctErrorLog.FirstObservationTimestampOffset),
                         lastObservationTimestamp,
-                        buffer.GetStringWithoutLengthUtf8(offset + DistinctErrorLog.EncodedErrorOffset, length - DistinctErrorLog.EncodedErrorOffset));
+                        buffer.GetStringWithoutLengthUtf8(
+                            offset + DistinctErrorLog.EncodedErrorOffset,
+                            length - DistinctErrorLog.EncodedErrorOffset
+                        )
+                    );
                 }
 
                 offset += BitUtil.Align(length, DistinctErrorLog.RecordAlignment);
@@ -83,4 +94,4 @@ public static int Read(IAtomicBuffer buffer, ErrorConsumer consumer, long sinceT
             return entries;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Adaptive.Agrona/Concurrent/Errors/IErrorConsumer.cs b/src/Adaptive.Agrona/Concurrent/Errors/IErrorConsumer.cs
index 476d44bb..75a1b0ad 100644
--- a/src/Adaptive.Agrona/Concurrent/Errors/IErrorConsumer.cs
+++ b/src/Adaptive.Agrona/Concurrent/Errors/IErrorConsumer.cs
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd
+ * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,5 +23,10 @@ namespace Adaptive.Agrona.Concurrent.Errors
     ///  time the first observation was recorded.
     ///  time the last observation was recorded.
     ///  String encoding of the exception and stack trace in UTF-8 format.
-    public delegate void ErrorConsumer(int observationCount, long firstObservationTimestamp, long lastObservationTimestamp, string encodedException);
-}
\ No newline at end of file
+    public delegate void ErrorConsumer(
+        int observationCount,
+        long firstObservationTimestamp,
+        long lastObservationTimestamp,
+        string encodedException
+    );
+}
diff --git a/src/Adaptive.Agrona/Concurrent/Errors/LoggingErrorHandler.cs b/src/Adaptive.Agrona/Concurrent/Errors/LoggingErrorHandler.cs
index 2eceac42..56b494ca 100644
--- a/src/Adaptive.Agrona/Concurrent/Errors/LoggingErrorHandler.cs
+++ b/src/Adaptive.Agrona/Concurrent/Errors/LoggingErrorHandler.cs
@@ -1,11 +1,27 @@
-using System;
+/*
+ * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
 using System.IO;
 
 namespace Adaptive.Agrona.Concurrent.Errors
 {
     /// 
-    /// A logging  that records to a  and if the log is full then overflows
-    /// to a .
+    /// A logging  that records to a  and if the log is
+    /// full then overflows to a  .
     /// 
     public class LoggingErrorHandler : IErrorHandler, IDisposable
     {
@@ -13,16 +29,19 @@ public class LoggingErrorHandler : IErrorHandler, IDisposable
         private readonly TextWriter _errorOverflow;
 
         /// 
-        /// Construct error handler wrapping a  with a default of  for the
+        /// Construct error handler wrapping a  with a default of
+        ///  for the
         /// .
         /// 
         ///  to wrap. 
-        public LoggingErrorHandler(DistinctErrorLog log) : this(log, Console.Error)
+        public LoggingErrorHandler(DistinctErrorLog log)
+            : this(log, Console.Error)
         {
         }
 
         /// 
-        /// Construct error handler wrapping a  and  for error overflow.
+        /// Construct error handler wrapping a  and  for
+        /// error overflow.
         /// 
         ///            to wrap. 
         ///  to be used if the log fills. 
@@ -74,4 +93,4 @@ public void Dispose()
 
         public bool IsDiposed { get; private set; }
     }
-}
\ No newline at end of file
+}
diff --git a/src/Adaptive.Agrona/Concurrent/IAgent.cs b/src/Adaptive.Agrona/Concurrent/IAgent.cs
index 174c78d6..fc90cbbf 100644
--- a/src/Adaptive.Agrona/Concurrent/IAgent.cs
+++ b/src/Adaptive.Agrona/Concurrent/IAgent.cs
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd
+ * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,30 +20,30 @@ namespace Adaptive.Agrona.Concurrent
 {
     /// 
     /// An Agent is scheduled to do work on a thread on a duty cycle. Each Agent should have a defined role in a system.
-    /// 
-    /// , , and  will all be called by the same thread and in a
-    /// threadsafe manner.
-    /// 
+    ///
+    ///  ,  , and  will all be called by the same thread
+    /// and in a threadsafe manner.
+    ///
     /// 
     public interface IAgent
     {
         /// 
         /// To be overridden by Agents that need to do resource init on start.
-        /// 
+        ///
         /// This method will be called by the agent thread. It will only be called once.
-        /// 
+        ///
         /// Note: Implementations of this method must be idempotent.
-        /// 
+        ///
         /// In Java this is optional to implement (default method) C# doesn't have the same construct for interfaces.
         /// 
         void OnStart();
 
         /// 
         /// An agent should implement this method to do its work.
-        /// 
-        /// The return value is used for implementing a backoff strategy that can be employed when no work is
-        /// currently available for the agent to process.
-        /// 
+        ///
+        /// The return value is used for implementing a backoff strategy that can be employed when no work is currently
+        /// available for the agent to process.
+        ///
         /// If the Agent should terminate and close then a  can be thrown.
         /// 
         ///  0 to indicate no work was currently available, a positive value otherwise. 
@@ -52,9 +52,10 @@ public interface IAgent
 
         /// 
         /// To be overridden by Agents that need to do resource cleanup on close.
-        /// 
-        /// This method will be called after the agent thread has terminated. It will only be called once by a single thread.
-        /// 
+        ///
+        /// This method will be called after the agent thread has terminated. It will only be called once by a single
+        /// thread.
+        ///
         /// Note: Implementations of this method must be idempotent.
         /// 
         void OnClose(); // default to do nothing unless you want to handle the notification.
@@ -65,4 +66,4 @@ public interface IAgent
         ///  the name of this agent's role. 
         string RoleName();
     }
-}
\ No newline at end of file
+}
diff --git a/src/Adaptive.Agrona/Concurrent/IAtomicBuffer.cs b/src/Adaptive.Agrona/Concurrent/IAtomicBuffer.cs
index 61c60ff2..c3493ab7 100644
--- a/src/Adaptive.Agrona/Concurrent/IAtomicBuffer.cs
+++ b/src/Adaptive.Agrona/Concurrent/IAtomicBuffer.cs
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd
+ * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -49,7 +49,7 @@ public interface IAtomicBuffer : IMutableDirectBuffer
         ///  in bytes for where to put. 
         ///  for at a given index 
         void PutLongOrdered(int index, long value);
-        
+
         /// 
         /// Put a value to a given index with release semantics.
         /// 
@@ -74,8 +74,8 @@ public interface IAtomicBuffer : IMutableDirectBuffer
         bool CompareAndSetLong(int index, long expectedValue, long updateValue);
 
         /// 
-        /// Atomically add a delta to a value at a location returning the previous contents.
-        /// To decrement a negative delta can be provided.
+        /// Atomically add a delta to a value at a location returning the previous contents. To decrement a negative
+        /// delta can be provided.
         /// 
         ///  in bytes for where to put. 
         ///  to be added to the value at the index 
@@ -102,7 +102,7 @@ public interface IAtomicBuffer : IMutableDirectBuffer
         ///  in bytes for where to put. 
         ///  for at a given index 
         void PutIntOrdered(int index, int value);
-        
+
         /// 
         /// Put a value to a given index with release semantics.
         /// 
@@ -127,8 +127,8 @@ public interface IAtomicBuffer : IMutableDirectBuffer
         bool CompareAndSetInt(int index, int expectedValue, int updateValue);
 
         /// 
-        /// Atomically add a delta to a value at a location returning the previous contents.
-        /// To decrement a negative delta can be provided.
+        /// Atomically add a delta to a value at a location returning the previous contents. To decrement a negative
+        /// delta can be provided.
         /// 
         ///  in bytes for where to put. 
         ///  to be added to the value at the index 
@@ -162,6 +162,5 @@ public interface IAtomicBuffer : IMutableDirectBuffer
         ///  in bytes for where to put. 
         ///  for at a given index 
         void PutByteVolatile(int index, byte value);
-
     }
-}
\ No newline at end of file
+}
diff --git a/src/Adaptive.Agrona/Concurrent/IEpochClock.cs b/src/Adaptive.Agrona/Concurrent/IEpochClock.cs
index 25860174..6430ff58 100644
--- a/src/Adaptive.Agrona/Concurrent/IEpochClock.cs
+++ b/src/Adaptive.Agrona/Concurrent/IEpochClock.cs
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd
+ * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,4 +27,4 @@ public interface IEpochClock
         ///  the number of milliseconds since the 1 Jan 1970 UTC.
         long Time();
     }
-}
\ No newline at end of file
+}
diff --git a/src/Adaptive.Agrona/Concurrent/IIdleStrategy.cs b/src/Adaptive.Agrona/Concurrent/IIdleStrategy.cs
index 586418c1..7885594c 100644
--- a/src/Adaptive.Agrona/Concurrent/IIdleStrategy.cs
+++ b/src/Adaptive.Agrona/Concurrent/IIdleStrategy.cs
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd
+ * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,36 +16,35 @@
 
 namespace Adaptive.Agrona.Concurrent
 {
-
     /// 
     /// Idle strategy for use by threads when they do not have work to do.
-    /// 
+    ///
     /// 

Note regarding implementor state

- /// - /// Some implementations are known to be stateful, please note that you cannot safely assume implementations to be stateless. - /// Where implementations are stateful it is recommended that implementation state is padded to avoid false sharing. - /// + /// + /// Some implementations are known to be stateful, please note that you cannot safely assume implementations to be + /// stateless. Where implementations are stateful it is recommended that implementation state is padded to avoid + /// false sharing. + /// ///

Note regarding potential for TTSP(Time To Safe Point) issues

- /// - /// If the caller spins in a 'counted' loop, and the implementation does not include a a safepoint poll this may cause a no - /// (Time To SafePoint) problem. If this is the case for your application you can solve it by preventing the idle method from - /// being inlined by setting the compilation symbol IDLESTRATEGY_NOINLINE. - /// + /// + /// If the caller spins in a 'counted' loop, and the implementation does not include a a safepoint poll this may + /// cause a no (Time To SafePoint) problem. If this is the case for your application you can solve it by preventing + /// the idle method from being inlined by setting the compilation symbol IDLESTRATEGY_NOINLINE. + /// ///
public interface IIdleStrategy - { + { /// - /// Perform current idle action (e.g. nothing/yield/sleep). This method signature expects users to call into it on every work - /// 'cycle'. The implementations may use the indication "workCount > 0" to reset internal backoff state. This method works - /// well with 'work' APIs which follow the following rules: - ///
    + /// Perform current idle action (e.g. nothing/yield/sleep). This method signature expects users to call into it + /// on every work 'cycle'. The implementations may use the indication "workCount > 0" to reset internal + /// backoff state. This method works well with 'work' APIs which follow the following rules:
      ///
    • 'work' returns a value larger than 0 when some work has been done
    • ///
    • 'work' returns 0 when no work has been done
    • ///
    • 'work' may return error codes which are less than 0, but which amount to no work has been done
    • ///
    - /// + /// /// Callers are expected to follow this pattern: - /// + /// ///
             /// 
             /// while (isRunning)
    @@ -54,15 +53,17 @@ public interface IIdleStrategy
             /// }
             /// 
             /// 
    - /// + /// ///
/// performed in last duty cycle. void Idle(int workCount); /// - /// Perform current idle action (e.g. nothing/yield/sleep). To be used in conjunction with - /// to clear internal state when idle period is over (or before it begins). Callers are expected to follow this pattern: - /// + /// Perform current idle action (e.g. nothing/yield/sleep). To be used in conjunction with + /// + /// to clear internal state when idle period is over (or before it begins). Callers are expected to follow this + /// pattern: + /// ///
         /// 
         /// while (isRunning)
@@ -86,10 +87,9 @@ public interface IIdleStrategy
         /// 
void Idle(); - /// - /// Reset the internal state in preparation for entering an idle state again. - /// - void Reset(); - } - -} \ No newline at end of file + /// + /// Reset the internal state in preparation for entering an idle state again. + /// + void Reset(); + } +} diff --git a/src/Adaptive.Agrona/Concurrent/ILock.cs b/src/Adaptive.Agrona/Concurrent/ILock.cs index a0b14c39..642d4cde 100644 --- a/src/Adaptive.Agrona/Concurrent/ILock.cs +++ b/src/Adaptive.Agrona/Concurrent/ILock.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + namespace Adaptive.Agrona.Concurrent { public interface ILock @@ -6,4 +22,4 @@ public interface ILock void Unlock(); bool TryLock(); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/INanoClock.cs b/src/Adaptive.Agrona/Concurrent/INanoClock.cs index 396ac684..aea783e4 100644 --- a/src/Adaptive.Agrona/Concurrent/INanoClock.cs +++ b/src/Adaptive.Agrona/Concurrent/INanoClock.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,7 +16,6 @@ namespace Adaptive.Agrona.Concurrent { - /// /// Functional interface for return the current time as system wide monotonic tick of 1 nanosecond precision. /// @@ -28,5 +27,4 @@ public interface INanoClock /// number of ticks in nanoseconds the clock has advanced since starting. long NanoTime(); } - -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/IThreadFactory.cs b/src/Adaptive.Agrona/Concurrent/IThreadFactory.cs index a3746687..f0d495a3 100644 --- a/src/Adaptive.Agrona/Concurrent/IThreadFactory.cs +++ b/src/Adaptive.Agrona/Concurrent/IThreadFactory.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,4 +22,4 @@ public interface IThreadFactory { Thread NewThread(ThreadStart runner); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/IdleStrategyFactory.cs b/src/Adaptive.Agrona/Concurrent/IdleStrategyFactory.cs index da743ba7..0ba5775e 100644 --- a/src/Adaptive.Agrona/Concurrent/IdleStrategyFactory.cs +++ b/src/Adaptive.Agrona/Concurrent/IdleStrategyFactory.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Agrona.Concurrent +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.Concurrent { public static class IdleStrategyFactory { @@ -13,23 +29,24 @@ public static IIdleStrategy Create(string strategyName, StatusIndicator controll case "YieldingIdleStrategy": return new YieldingIdleStrategy(); - + case "SleepingIdleStrategy": return new SleepingIdleStrategy(1); - + case "BusySpinIdleStrategy": return new BusySpinIdleStrategy(); - + case "NoOpIdleStrategy": return new NoOpIdleStrategy(); - + default: return new BackoffIdleStrategy( Configuration.IDLE_MAX_SPINS, Configuration.IDLE_MAX_YIELDS, Configuration.IDLE_MIN_PARK_MS, - Configuration.IDLE_MAX_PARK_MS); + Configuration.IDLE_MAX_PARK_MS + ); } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/MessageHandler.cs b/src/Adaptive.Agrona/Concurrent/MessageHandler.cs index 7b964d81..a908e421 100644 --- a/src/Adaptive.Agrona/Concurrent/MessageHandler.cs +++ b/src/Adaptive.Agrona/Concurrent/MessageHandler.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,12 +17,12 @@ namespace Adaptive.Agrona.Concurrent { /// - /// Callback interface for processing of messages that are read from a buffer. - /// Called for the processing of each message read from a buffer in turn. + /// Callback interface for processing of messages that are read from a buffer. Called for the processing of each + /// message read from a buffer in turn. /// /// type of the encoded message. /// containing the encoded message. /// at which the encoded message begins. /// in bytes of the encoded message. public delegate void MessageHandler(int msgTypeId, IMutableDirectBuffer buffer, int index, int length); -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/NoOpIdleStrategy.cs b/src/Adaptive.Agrona/Concurrent/NoOpIdleStrategy.cs index 3f0feec6..af585549 100644 --- a/src/Adaptive.Agrona/Concurrent/NoOpIdleStrategy.cs +++ b/src/Adaptive.Agrona/Concurrent/NoOpIdleStrategy.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,13 +17,13 @@ namespace Adaptive.Agrona.Concurrent { /// - /// Low-latency idle strategy to be employed in loops that do significant work on each iteration such that any - /// work in the idle strategy would be wasteful. + /// Low-latency idle strategy to be employed in loops that do significant work on each iteration such that any work + /// in the idle strategy would be wasteful. /// public sealed class NoOpIdleStrategy : IIdleStrategy { /// - /// Note: this implementation will result in no safepoint poll once inlined. + /// Note : this implementation will result in no safepoint poll once inlined. /// /// public void Idle(int workCount) @@ -31,7 +31,7 @@ public void Idle(int workCount) } /// - /// Note: this implementation will result in no safepoint poll once inlined. + /// Note : this implementation will result in no safepoint poll once inlined. /// /// public void Idle() @@ -42,4 +42,4 @@ public void Reset() { } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/NoOpLock.cs b/src/Adaptive.Agrona/Concurrent/NoOpLock.cs index aad8f3e7..100b2e59 100644 --- a/src/Adaptive.Agrona/Concurrent/NoOpLock.cs +++ b/src/Adaptive.Agrona/Concurrent/NoOpLock.cs @@ -1,9 +1,25 @@ -namespace Adaptive.Agrona.Concurrent +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.Concurrent { public class NoOpLock : ILock { public static readonly NoOpLock Instance = new NoOpLock(); - + public void Lock() { } diff --git a/src/Adaptive.Agrona/Concurrent/NullEpochClock.cs b/src/Adaptive.Agrona/Concurrent/NullEpochClock.cs index d97034db..1872ef90 100644 --- a/src/Adaptive.Agrona/Concurrent/NullEpochClock.cs +++ b/src/Adaptive.Agrona/Concurrent/NullEpochClock.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Agrona.Concurrent +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.Concurrent { /// public class NullEpochClock : IEpochClock @@ -9,4 +25,4 @@ public long Time() return 0; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/ReentrantLock.cs b/src/Adaptive.Agrona/Concurrent/ReentrantLock.cs index a00c2f3e..fa5ff490 100644 --- a/src/Adaptive.Agrona/Concurrent/ReentrantLock.cs +++ b/src/Adaptive.Agrona/Concurrent/ReentrantLock.cs @@ -1,4 +1,20 @@ -using System.Threading; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System.Threading; namespace Adaptive.Agrona.Concurrent { @@ -21,4 +37,4 @@ public bool TryLock() return Monitor.TryEnter(_lockObj); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/RingBuffer/IRingBuffer.cs b/src/Adaptive.Agrona/Concurrent/RingBuffer/IRingBuffer.cs index b84de6df..fe41385a 100644 --- a/src/Adaptive.Agrona/Concurrent/RingBuffer/IRingBuffer.cs +++ b/src/Adaptive.Agrona/Concurrent/RingBuffer/IRingBuffer.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,7 +37,8 @@ public interface IRingBuffer /// at which the encoded message begins. /// of the encoded message in bytes. /// true if written to the ring-buffer, or false if insufficient space exists. - /// if the length is greater than + /// if the length is greater than + /// bool Write(int msgTypeId, IDirectBuffer srcBuffer, int srcIndex, int length); /// @@ -62,8 +63,9 @@ public interface IRingBuffer int MaxMsgLength(); /// - /// Get the next value that can be used for a correlation id on an message when a response needs to be correlated. - /// + /// Get the next value that can be used for a correlation id on an message when a response needs to be + /// correlated. + /// /// This method should be thread safe. /// /// the next value in the correlation sequence. @@ -77,7 +79,7 @@ public interface IRingBuffer /// /// Set the time of the last consumer heartbeat. - /// + /// /// Note: The value for time must be valid across processes. /// /// of the last consumer heartbeat. @@ -90,48 +92,48 @@ public interface IRingBuffer long ConsumerHeartbeatTime(); /// - /// The position in bytes from start up of the producers. The figure includes the headers. - /// This is the range they are working with but could still be in the act of working with. + /// The position in bytes from start up of the producers. The figure includes the headers. This is the range + /// they are working with but could still be in the act of working with. /// /// number of bytes produced by the producers in claimed space. long ProducerPosition(); /// - /// The position in bytes from start up for the consumers. The figure includes the headers. + /// The position in bytes from start up for the consumers. The figure includes the headers. /// /// the count of bytes consumed by the consumers. long ConsumerPosition(); /// - /// Size of the buffer backlog in bytes between producers and consumers. The figure includes the size of headers. + /// Size of the buffer backlog in bytes between producers and consumers. The figure includes the size of + /// headers. /// /// size of the backlog of bytes in the buffer between producers and consumers. int Size(); /// - /// Unblock a multi-producer ring buffer where a producer has died during the act of offering. The operation will - /// scan from the consumer position up to the producer position. - /// + /// Unblock a multi-producer ring buffer where a producer has died during the act of offering. The operation + /// will scan from the consumer position up to the producer position. + /// /// If no action is required at the position then none will be taken. /// /// true of an unblocking action was taken otherwise false. bool Unblock(); /// - /// Try to claim a space in the underlying ring-buffer into which a message can be written with zero copy semantics. - /// Once the message has been written then should be called thus making it available to be - /// consumed. Alternatively a claim can be aborted using method. + /// Try to claim a space in the underlying ring-buffer into which a message can be written with zero copy + /// semantics. Once the message has been written then should be called thus making + /// it available to be consumed. Alternatively a claim can be aborted using method. /// /// Claiming a space in the ring-buffer means that the consumer will not be able to consume past the claim until - /// the claimed space is either committed or aborted. Producers will be able to write message even when outstanding - /// claims exist. + /// the claimed space is either committed or aborted. Producers will be able to write message even when + /// outstanding claims exist. /// /// - /// An example of using {@code TryClaim}: - ///
+        /// An example of using {@code TryClaim} : 
         /// 
         ///     final IRingBuffer ringBuffer = ...;
-        /// 
+        ///
         ///     final int index = ringBuffer.TryClaim(msgTypeId, messageLength);
         ///     if (index > 0)
         ///     {
@@ -150,11 +152,10 @@ public interface IRingBuffer
         /// 
/// /// - /// Ensure that claimed space is released even in case of an exception: - ///
+        /// Ensure that claimed space is released even in case of an exception: 
         /// 
         ///     final IRingBuffer ringBuffer = ...;
-        /// 
+        ///
         ///     final int index = ringBuffer.TryClaim(msgTypeId, messageLength);
         ///     if (index > 0)
         ///     {
@@ -173,15 +174,20 @@ public interface IRingBuffer
         ///     }
         /// 
         /// 
- /// + /// /// ///
- /// type of the message encoding. Will be written into the header upon successful claim. - /// of the claim in bytes. A claim length cannot be greater than . - /// a non-zero index into the underlying ring-buffer at which encoded message begins, otherwise returns - /// indicating that there is not enough free space in the buffer. + /// type of the message encoding. Will be written into the header upon successful + /// claim. + /// of the claim in bytes. A claim length cannot be greater than + /// . + /// a non-zero index into the underlying ring-buffer at which encoded message begins, otherwise + /// returns + /// indicating that there is not enough free space in + /// the buffer. /// if the {@code msgTypeId} is less than {@code 1}. - /// if the {@code length} is negative or is greater than . + /// if the {@code length} is negative or is greater than + /// . /// /// int TryClaim(int msgTypeId, int length); @@ -189,22 +195,26 @@ public interface IRingBuffer /// /// Commit message that was written in the previously claimed space thus making it available to the consumer. /// - /// at which the encoded message begins, i.e. value returned from the call. + /// at which the encoded message begins, i.e. value returned from the + /// call. /// if the {@code index} is out of bounds. - /// if this method is called after or was - /// already invoked for the given {@code index}. + /// if this method is called after or + /// was + /// already invoked for the given {@code index} . /// void Commit(int index); /// - /// Abort claim and allow consumer to proceed after the claimed length. Aborting turns unused space into padding, - /// i.e. changes type of the message to . + /// Abort claim and allow consumer to proceed after the claimed length. Aborting turns unused space into + /// padding, i.e. changes type of the message to . /// - /// at which the encoded message begins, i.e. value returned from the call. + /// at which the encoded message begins, i.e. value returned from the + /// call. /// if the {@code index} is out of bounds. - /// if this method is called after or was - /// already invoked for the given {@code index}. + /// if this method is called after or + /// was + /// already invoked for the given {@code index} . /// void Abort(int index); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/RingBuffer/ManyToOneRingBuffer.cs b/src/Adaptive.Agrona/Concurrent/RingBuffer/ManyToOneRingBuffer.cs index 32917fba..e19b5c3f 100644 --- a/src/Adaptive.Agrona/Concurrent/RingBuffer/ManyToOneRingBuffer.cs +++ b/src/Adaptive.Agrona/Concurrent/RingBuffer/ManyToOneRingBuffer.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,9 +44,9 @@ public class ManyToOneRingBuffer : IRingBuffer private readonly IAtomicBuffer _buffer; /// - /// Construct a new based on an underlying . - /// The underlying buffer must a power of 2 in size plus sufficient space - /// for the . + /// Construct a new based on an underlying . The + /// underlying buffer must a power of 2 in size plus sufficient space for the + /// . /// /// via which events will be exchanged. /// if the buffer capacity is not a power of 2 @@ -101,7 +101,6 @@ public bool Write(int msgTypeId, IDirectBuffer srcBuffer, int offset, int length return true; } - /// /// Read as many messages as are available from the ring buffer. /// @@ -151,8 +150,12 @@ public virtual int Read(MessageHandler handler, int messageCountLimit) } ++messagesRead; - handler(messageTypeId, buffer, recordIndex + RecordDescriptor.HeaderLength, - recordLength - RecordDescriptor.HeaderLength); + handler( + messageTypeId, + buffer, + recordIndex + RecordDescriptor.HeaderLength, + recordLength - RecordDescriptor.HeaderLength + ); } } finally @@ -167,7 +170,6 @@ public virtual int Read(MessageHandler handler, int messageCountLimit) return messagesRead; } - /// /// The maximum message length in bytes supported by the underlying ring buffer. /// @@ -178,8 +180,9 @@ public int MaxMsgLength() } /// - /// Get the next value that can be used for a correlation id on an message when a response needs to be correlated. - /// + /// Get the next value that can be used for a correlation id on an message when a response needs to be + /// correlated. + /// /// This method should be thread safe. /// /// the next value in the correlation sequence. @@ -199,7 +202,7 @@ public IAtomicBuffer Buffer() /// /// Set the time of the last consumer heartbeat. - /// + /// /// Note: The value for time must be valid across processes. /// /// of the last consumer heartbeat. @@ -218,8 +221,8 @@ public long ConsumerHeartbeatTime() } /// - /// The position in bytes from start up of the producers. The figure includes the headers. - /// This is the range they are working with but could still be in the act of working with. + /// The position in bytes from start up of the producers. The figure includes the headers. This is the range + /// they are working with but could still be in the act of working with. /// /// number of bytes produced by the producers in claimed space. public long ProducerPosition() @@ -228,7 +231,7 @@ public long ProducerPosition() } /// - /// The position in bytes from start up for the consumers. The figure includes the headers. + /// The position in bytes from start up for the consumers. The figure includes the headers. /// /// the count of bytes consumed by the consumers. public long ConsumerPosition() @@ -237,7 +240,8 @@ public long ConsumerPosition() } /// - /// Size of the backlog of bytes in the buffer between producers and consumers. The figure includes the size of headers. + /// Size of the backlog of bytes in the buffer between producers and consumers. The figure includes the size of + /// headers. /// /// size of the backlog of bytes in the buffer between producers and consumers. public int Size() @@ -464,11 +468,8 @@ private int VerifyClaimedSpaceNotReleased(IAtomicBuffer buffer, int recordIndex) return recordLength; } - throw new InvalidOperationException("claimed space previously " + - (PaddingMsgTypeId == - buffer.GetInt(RecordDescriptor.TypeOffset(recordIndex)) - ? "aborted" - : "committed")); + var isPending = PaddingMsgTypeId == buffer.GetInt(RecordDescriptor.TypeOffset(recordIndex)); + throw new InvalidOperationException("claimed space previously " + (isPending ? "aborted" : "committed")); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/RingBuffer/RecordDescriptor.cs b/src/Adaptive.Agrona/Concurrent/RingBuffer/RecordDescriptor.cs index 924c7f1f..6a638635 100644 --- a/src/Adaptive.Agrona/Concurrent/RingBuffer/RecordDescriptor.cs +++ b/src/Adaptive.Agrona/Concurrent/RingBuffer/RecordDescriptor.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,11 @@ namespace Adaptive.Agrona.Concurrent.RingBuffer /// /// Description of the record structure for message framing in the a . /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class RecordDescriptor { /// @@ -41,7 +46,7 @@ public class RecordDescriptor ///
/// ///
- public const int HeaderLength = BitUtil.SIZE_OF_INT*2; + public const int HeaderLength = BitUtil.SIZE_OF_INT * 2; /// /// Alignment as a multiple of bytes for each record. @@ -85,12 +90,12 @@ public static int EncodedMsgOffset(int recordOffset) /// the length field from the header. public static int RecordLength(long header) { - return (int) header; + return (int)header; } public static int MessageTypeId(long header) { - return (int) (long) ((ulong) header >> 32); + return (int)(long)((ulong)header >> 32); } /// @@ -107,4 +112,4 @@ public static void CheckTypeId(int msgTypeId) } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/RingBuffer/RingBufferDescriptor.cs b/src/Adaptive.Agrona/Concurrent/RingBuffer/RingBufferDescriptor.cs index 714a4a56..98e6cae8 100644 --- a/src/Adaptive.Agrona/Concurrent/RingBuffer/RingBufferDescriptor.cs +++ b/src/Adaptive.Agrona/Concurrent/RingBuffer/RingBufferDescriptor.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,66 +20,71 @@ namespace Adaptive.Agrona.Concurrent.RingBuffer { /// - /// Layout description for the underlying buffer used by a . The buffer consists - /// of a ring of messages which is a power of 2 in size, followed by a trailer section containing state - /// information for the producers and consumers of the ring. + /// Layout description for the underlying buffer used by a . The buffer consists of a + /// ring of messages which is a power of 2 in size, followed by a trailer section containing state information for + /// the producers and consumers of the ring. /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class RingBufferDescriptor { /// - /// Offset within the trailer for where the tail value is stored. + /// Offset within the trailer for where the tail value is stored. /// public static readonly int TailPositionOffset; /// - /// Offset within the trailer for where the head cache value is stored. + /// Offset within the trailer for where the head cache value is stored. /// public static readonly int HeadCachePositionOffset; /// - /// Offset within the trailer for where the head value is stored. + /// Offset within the trailer for where the head value is stored. /// public static readonly int HeadPositionOffset; /// - /// Offset within the trailer for where the correlation counter value is stored. + /// Offset within the trailer for where the correlation counter value is stored. /// public static readonly int CorrelationCounterOffset; /// - /// Offset within the trailer for where the consumer heartbeat time value is stored. + /// Offset within the trailer for where the consumer heartbeat time value is stored. /// public static readonly int ConsumerHeartbeatOffset; /// - /// Total length of the trailer in bytes. + /// Total length of the trailer in bytes. /// public static readonly int TrailerLength; static RingBufferDescriptor() { var offset = 0; - offset += BitUtil.CACHE_LINE_LENGTH*2; + offset += BitUtil.CACHE_LINE_LENGTH * 2; TailPositionOffset = offset; - offset += BitUtil.CACHE_LINE_LENGTH*2; + offset += BitUtil.CACHE_LINE_LENGTH * 2; HeadCachePositionOffset = offset; - offset += BitUtil.CACHE_LINE_LENGTH*2; + offset += BitUtil.CACHE_LINE_LENGTH * 2; HeadPositionOffset = offset; - offset += BitUtil.CACHE_LINE_LENGTH*2; + offset += BitUtil.CACHE_LINE_LENGTH * 2; CorrelationCounterOffset = offset; - offset += BitUtil.CACHE_LINE_LENGTH*2; + offset += BitUtil.CACHE_LINE_LENGTH * 2; ConsumerHeartbeatOffset = offset; - offset += BitUtil.CACHE_LINE_LENGTH*2; + offset += BitUtil.CACHE_LINE_LENGTH * 2; TrailerLength = offset; } /// - /// Check the the buffer capacity is the correct size (a power of 2 + ). + /// Check the the buffer capacity is the correct size (a power of 2 + ). /// /// to be checked. /// if the buffer capacity is incorrect. @@ -92,4 +97,4 @@ public static void CheckCapacity(int capacity) } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/ShutdownSignalBarrier.cs b/src/Adaptive.Agrona/Concurrent/ShutdownSignalBarrier.cs index 743f4a5c..207a4c2d 100644 --- a/src/Adaptive.Agrona/Concurrent/ShutdownSignalBarrier.cs +++ b/src/Adaptive.Agrona/Concurrent/ShutdownSignalBarrier.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; @@ -7,18 +23,18 @@ namespace Adaptive.Agrona.Concurrent { /// - /// One time barrier for blocking one or more threads until a SIGINT or SIGTERM signal is received from the operating - /// system or by programmatically calling . Useful for shutting down a service. + /// One time barrier for blocking one or more threads until a SIGINT or SIGTERM signal is received from the + /// operating system or by programmatically calling . Useful for shutting down a service. /// public sealed class ShutdownSignalBarrier : IDisposable { /// Delegate notified when the barrier is signaled. public delegate void SignalHandler(); - private static readonly SignalHandler NO_OP_SIGNAL_HANDLER = () => { }; + private static readonly SignalHandler NoOpSignalHandler = () => { }; // Registry of all active barriers (value is unused). - private static readonly ConcurrentDictionary BARRIERS = + private static readonly ConcurrentDictionary Barriers = new ConcurrentDictionary(); // Static ctor: hook process termination and Ctrl+C, like Java's shutdown hook. @@ -48,16 +64,21 @@ static ShutdownSignalBarrier() private readonly SignalHandler _signalHandler; /// Construct and register the barrier ready for use. - public ShutdownSignalBarrier() : this(NO_OP_SIGNAL_HANDLER) + public ShutdownSignalBarrier() + : this(NoOpSignalHandler) { } /// Construct and register the barrier with a signal handler. public ShutdownSignalBarrier(SignalHandler signalHandler) { - if (signalHandler == null) throw new ArgumentNullException(nameof(signalHandler)); + if (signalHandler == null) + { + throw new ArgumentNullException(nameof(signalHandler)); + } + _signalHandler = signalHandler; - BARRIERS.TryAdd(this, 0); + Barriers.TryAdd(this, 0); } /// Programmatically signal awaiting thread on this barrier. @@ -65,7 +86,7 @@ public void Signal() { if (Interlocked.CompareExchange(ref _signaled, 1, 0) == 0) { - BARRIERS.TryRemove(this, out _); + Barriers.TryRemove(this, out _); _waitEvent.Set(); _signalHandler(); } @@ -80,7 +101,7 @@ public void SignalAll() /// Remove this barrier from global shutdown handling. public void Remove() { - BARRIERS.TryRemove(this, out _); + Barriers.TryRemove(this, out _); } /// Await the reception of the shutdown signal. @@ -125,11 +146,12 @@ public void Dispose() public override string ToString() { - return "ShutdownSignalBarrier{" + - "waitEvent=" + _waitEvent.IsSet + - ", closeEvent=" + _closeEvent.IsSet + - ", signaled=" + (_signaled == 1) + - "}"; + return + "ShutdownSignalBarrier{" + + "waitEvent=" + _waitEvent.IsSet + + ", closeEvent=" + _closeEvent.IsSet + + ", signaled=" + (_signaled == 1) + + "}"; } // --------- Static helpers (Java's private static methods) --------- @@ -137,9 +159,9 @@ public override string ToString() private static ShutdownSignalBarrier[] SignalAndClearAll() { // Snapshot then clear, like CopyOnWriteArrayList semantics. - var snapshot = new ShutdownSignalBarrier[BARRIERS.Count]; - BARRIERS.Keys.CopyTo(snapshot, 0); - BARRIERS.Clear(); + var snapshot = new ShutdownSignalBarrier[Barriers.Count]; + Barriers.Keys.CopyTo(snapshot, 0); + Barriers.Clear(); List exceptions = null; @@ -151,7 +173,11 @@ private static ShutdownSignalBarrier[] SignalAndClearAll() } catch (Exception ex) { - if (exceptions == null) exceptions = new List(4); + if (exceptions == null) + { + exceptions = new List(4); + } + exceptions.Add(ex); } } @@ -168,9 +194,13 @@ private static ShutdownSignalBarrier[] SignalAndClearAll() private static void AwaitTermination( ShutdownSignalBarrier[] barriers, TimeSpan timeoutPerBarrier, - TextWriter output) + TextWriter output + ) { - if (barriers == null || barriers.Length == 0) return; + if (barriers == null || barriers.Length == 0) + { + return; + } bool wasInterrupted = false; @@ -184,7 +214,10 @@ private static void AwaitTermination( for (int i = 0; i < remaining.Length; i++) { var barrier = remaining[i]; - if (barrier == null) continue; + if (barrier == null) + { + continue; + } try { @@ -196,9 +229,10 @@ private static void AwaitTermination( else { output.WriteLine( - "WARN: ShutdownSignalBarrier hasn't terminated in " + - timeoutPerBarrier.TotalSeconds.ToString("N0") + - " seconds! Did you forget to call Close()/Dispose() on it?"); + "WARN: ShutdownSignalBarrier hasn't terminated in " + + timeoutPerBarrier.TotalSeconds.ToString("N0") + + " seconds! Did you forget to call Close()/Dispose() on it?" + ); } } catch (ThreadInterruptedException) @@ -218,4 +252,4 @@ private static void AwaitTermination( } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/SleepingIdleStrategy.cs b/src/Adaptive.Agrona/Concurrent/SleepingIdleStrategy.cs index f201eb15..30467d76 100644 --- a/src/Adaptive.Agrona/Concurrent/SleepingIdleStrategy.cs +++ b/src/Adaptive.Agrona/Concurrent/SleepingIdleStrategy.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,8 +28,8 @@ public sealed class SleepingIdleStrategy : IIdleStrategy /// /// Constructed a new strategy that will sleep for a given period when idle. /// - /// period in millisecond for which the strategy will sleep when work count is 0. - + /// period in millisecond for which the strategy will sleep when work count is 0. + /// public SleepingIdleStrategy(int sleepPeriodMs) { _sleepPeriodMs = sleepPeriodMs; @@ -54,5 +54,4 @@ public void Reset() { } } - -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/SpinWaitIdleStrategy.cs b/src/Adaptive.Agrona/Concurrent/SpinWaitIdleStrategy.cs index 36daab1e..d3353138 100644 --- a/src/Adaptive.Agrona/Concurrent/SpinWaitIdleStrategy.cs +++ b/src/Adaptive.Agrona/Concurrent/SpinWaitIdleStrategy.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ namespace Adaptive.Agrona.Concurrent { /// - /// which uses a . + /// which uses a . /// public class SpinWaitIdleStrategy : IIdleStrategy { @@ -47,4 +47,4 @@ public void Reset() _spinWait.Reset(); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/Status/AtomicCounter.cs b/src/Adaptive.Agrona/Concurrent/Status/AtomicCounter.cs index a6b90adb..aa0a7b60 100644 --- a/src/Adaptive.Agrona/Concurrent/Status/AtomicCounter.cs +++ b/src/Adaptive.Agrona/Concurrent/Status/AtomicCounter.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,8 @@ namespace Adaptive.Agrona.Concurrent.Status { /// - /// Atomic counter that is backed by an that can be read across threads and processes. + /// Atomic counter that is backed by an that can be read across threads and + /// processes. /// public class AtomicCounter : IDisposable { @@ -32,7 +33,8 @@ public class AtomicCounter : IDisposable /// /// containing the counter. /// identifier of the counter. - public AtomicCounter(IAtomicBuffer buffer, int counterId) : this(buffer, counterId, null) + public AtomicCounter(IAtomicBuffer buffer, int counterId) + : this(buffer, counterId, null) { } @@ -52,7 +54,7 @@ public AtomicCounter(IAtomicBuffer buffer, int counterId, CountersManager counte } /// - /// Identity for the counter within the . + /// Identity for the counter within the . /// /// identity for the counter within the . public int Id { get; } @@ -206,4 +208,4 @@ public virtual void Dispose() } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/Status/AtomicLongPosition.cs b/src/Adaptive.Agrona/Concurrent/Status/AtomicLongPosition.cs index e53904f3..36e4f3c0 100644 --- a/src/Adaptive.Agrona/Concurrent/Status/AtomicLongPosition.cs +++ b/src/Adaptive.Agrona/Concurrent/Status/AtomicLongPosition.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -84,4 +84,4 @@ public bool ProposeMaxOrdered(long proposedValue) return updated; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/Status/CountersManager.cs b/src/Adaptive.Agrona/Concurrent/Status/CountersManager.cs index 73c40cd3..b3a7aeb1 100644 --- a/src/Adaptive.Agrona/Concurrent/Status/CountersManager.cs +++ b/src/Adaptive.Agrona/Concurrent/Status/CountersManager.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,9 +22,9 @@ namespace Adaptive.Agrona.Concurrent.Status { /// /// Manages the allocation and freeing of counters that are normally stored in a memory-mapped file. - /// + /// /// This class in not threadsafe. Counters should be centrally managed. - /// + /// /// Values Buffer ///
     ///   0                   1                   2                   3
@@ -41,7 +41,7 @@ namespace Adaptive.Agrona.Concurrent.Status
     /// ...                                                              |
     ///  +---------------------------------------------------------------+
     /// 
- /// + /// /// Meta Data Buffer ///
     ///   0                   1                   2                   3
@@ -81,9 +81,18 @@ public class CountersManager : CountersReader
         ///        containing the types, keys, and labels for the counters. 
         ///          containing the values of the counters themselves. 
         ///          for the label encoding. 
-        ///            to use for determining time for keep counter from being reused after being freed. 
-        ///  timeout (in milliseconds) to keep counter from being reused after being freed. 
-        public CountersManager(IAtomicBuffer metaDataBuffer, IAtomicBuffer valuesBuffer, Encoding labelCharset, IEpochClock epochClock, long freeToReuseTimeoutMs) : base(metaDataBuffer, valuesBuffer, labelCharset)
+        ///  to use for determining time for keep counter from being reused after being freed.
+        /// 
+        ///  timeout (in milliseconds) to keep counter from being reused after being
+        /// freed. 
+        public CountersManager(
+            IAtomicBuffer metaDataBuffer,
+            IAtomicBuffer valuesBuffer,
+            Encoding labelCharset,
+            IEpochClock epochClock,
+            long freeToReuseTimeoutMs
+        )
+            : base(metaDataBuffer, valuesBuffer, labelCharset)
         {
             valuesBuffer.VerifyAlignment();
             _epochClock = epochClock;
@@ -100,12 +109,12 @@ public CountersManager(IAtomicBuffer metaDataBuffer, IAtomicBuffer valuesBuffer,
         /// 
/// containing the types, keys, and labels for the counters. /// containing the values of the counters themselves. - public CountersManager(IAtomicBuffer metaDataBuffer, IAtomicBuffer valuesBuffer) : base(metaDataBuffer, valuesBuffer) + public CountersManager(IAtomicBuffer metaDataBuffer, IAtomicBuffer valuesBuffer) + : base(metaDataBuffer, valuesBuffer) { valuesBuffer.VerifyAlignment(); _epochClock = new NullEpochClock(); - if (metaDataBuffer.Capacity < valuesBuffer.Capacity * 2) { throw new ArgumentException("Meta data buffer not sufficiently large"); @@ -118,7 +127,8 @@ public CountersManager(IAtomicBuffer metaDataBuffer, IAtomicBuffer valuesBuffer) /// containing the types, keys, and labels for the counters. /// containing the values of the counters themselves. /// for the label encoding. - public CountersManager(IAtomicBuffer metaDataBuffer, IAtomicBuffer valuesBuffer, Encoding labelCharset) : this(metaDataBuffer, valuesBuffer, labelCharset, new NullEpochClock(), 0) + public CountersManager(IAtomicBuffer metaDataBuffer, IAtomicBuffer valuesBuffer, Encoding labelCharset) + : this(metaDataBuffer, valuesBuffer, labelCharset, new NullEpochClock(), 0) { valuesBuffer.VerifyAlignment(); @@ -160,9 +170,9 @@ public int Allocate(string label, int typeId = DEFAULT_TYPE_ID) /// /// Allocate a new counter with a given label. - /// - /// The key function will be called with a buffer with the exact length of available key space - /// in the record for the user to store what they want for the key. No offset is required. + /// + /// The key function will be called with a buffer with the exact length of available key space in the record for + /// the user to store what they want for the key. No offset is required. /// /// to describe the counter. /// for the type of counter. @@ -198,7 +208,7 @@ public int Allocate(string label, int typeId, Action keyFu /// Allocate a counter with the minimum of allocation by allowing the label an key to be provided and copied. /// /// If the keyBuffer is null then a copy of the key is not attempted. - /// + /// /// ///
/// for the counter. @@ -209,7 +219,15 @@ public int Allocate(string label, int typeId, Action keyFu /// within the labelBuffer at which the label begins. /// of the label in the labelBuffer. /// the id allocated for the counter. - public int Allocate(int typeId, IDirectBuffer keyBuffer, int keyOffset, int keyLength, IDirectBuffer labelBuffer, int labelOffset, int labelLength) + public int Allocate( + int typeId, + IDirectBuffer keyBuffer, + int keyOffset, + int keyLength, + IDirectBuffer labelBuffer, + int labelOffset, + int labelLength + ) { int counterId = NextCounterId(); CheckCountersCapacity(counterId); @@ -232,7 +250,12 @@ public int Allocate(int typeId, IDirectBuffer keyBuffer, int keyOffset, int keyL length = Math.Min(labelLength, MAX_LABEL_LENGTH); MetaDataBuffer.PutInt(recordOffset + LABEL_OFFSET, length); - MetaDataBuffer.PutBytes(recordOffset + LABEL_OFFSET + BitUtil.SIZE_OF_INT, labelBuffer, labelOffset, length); + MetaDataBuffer.PutBytes( + recordOffset + LABEL_OFFSET + BitUtil.SIZE_OF_INT, + labelBuffer, + labelOffset, + length + ); MetaDataBuffer.PutIntOrdered(recordOffset, RECORD_ALLOCATED); } @@ -245,7 +268,6 @@ public int Allocate(int typeId, IDirectBuffer keyBuffer, int keyOffset, int keyL return counterId; } - /// /// Allocate a counter record and wrap it with a new for use with a default type /// of @@ -284,7 +306,7 @@ public AtomicCounter NewCounter(string label, int typeId, Action for use. /// /// If the keyBuffer is null then a copy of the key is not attempted. - /// + /// /// /// /// for the counter. @@ -302,12 +324,16 @@ public AtomicCounter NewCounter( int keyLength, IDirectBuffer labelBuffer, int labelOffset, - int labelLength) + int labelLength + ) { - return new AtomicCounter(ValuesBuffer, Allocate(typeId, keyBuffer, keyOffset, keyLength, labelBuffer, labelOffset, labelLength), this); + return new AtomicCounter( + ValuesBuffer, + Allocate(typeId, keyBuffer, keyOffset, keyLength, labelBuffer, labelOffset, labelLength), + this + ); } - /// /// Free the counter identified by counterId. /// @@ -322,7 +348,10 @@ public void Free(int counterId) throw new System.InvalidOperationException("counter not allocated: id=" + counterId); } - MetaDataBuffer.PutLong(recordOffset + FREE_FOR_REUSE_DEADLINE_OFFSET, _epochClock.Time() + _freeToReuseTimeoutMs); + MetaDataBuffer.PutLong( + recordOffset + FREE_FOR_REUSE_DEADLINE_OFFSET, + _epochClock.Time() + _freeToReuseTimeoutMs + ); MetaDataBuffer.SetMemory(recordOffset + KEY_OFFSET, MAX_KEY_LENGTH, 0); MetaDataBuffer.PutIntOrdered(recordOffset, RECORD_RECLAIMED); _freeList.Add(counterId); @@ -346,7 +375,9 @@ private int NextCounterId() { int counterId = _freeList[i]; - long deadlineMs = MetaDataBuffer.GetLongVolatile(MetaDataOffset(counterId) + FREE_FOR_REUSE_DEADLINE_OFFSET); + long deadlineMs = MetaDataBuffer.GetLongVolatile( + MetaDataOffset(counterId) + FREE_FOR_REUSE_DEADLINE_OFFSET + ); if (nowMs >= deadlineMs) { @@ -364,7 +395,12 @@ private void PutLabel(int recordOffset, string label) { if (Encoding.ASCII.Equals(LabelCharset)) { - int length = MetaDataBuffer.PutStringWithoutLengthAscii(recordOffset + LABEL_OFFSET + BitUtil.SIZE_OF_INT, label, 0, MAX_LABEL_LENGTH); + int length = MetaDataBuffer.PutStringWithoutLengthAscii( + recordOffset + LABEL_OFFSET + BitUtil.SIZE_OF_INT, + label, + 0, + MAX_LABEL_LENGTH + ); MetaDataBuffer.PutInt(recordOffset + LABEL_OFFSET, length); } else @@ -393,4 +429,4 @@ private void CheckMetaDataCapacity(int recordOffset) } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/Status/CountersReader.cs b/src/Adaptive.Agrona/Concurrent/Status/CountersReader.cs index e05b9f8f..d08a2901 100644 --- a/src/Adaptive.Agrona/Concurrent/Status/CountersReader.cs +++ b/src/Adaptive.Agrona/Concurrent/Status/CountersReader.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,9 +21,9 @@ namespace Adaptive.Agrona.Concurrent.Status { /// /// Reads the counters metadata and values buffers. - /// + /// /// This class is threadsafe and can be used across threads. - /// + /// /// Values Buffer ///
     ///   0                   1                   2                   3
@@ -40,7 +40,7 @@ namespace Adaptive.Agrona.Concurrent.Status
     /// ...                                                              |
     ///  +---------------------------------------------------------------+
     /// 
- /// + /// /// Meta Data Buffer ///
     ///   0                   1                   2                   3
@@ -77,7 +77,7 @@ public class CountersReader
         ///  for the counter.
         ///  for the counter.
         public delegate void MetaData(int counterId, int typeId, IDirectBuffer keyBuffer, string label);
-        
+
         /// 
         /// Callback function for consuming basic counter details and value.
         /// 
@@ -100,12 +100,12 @@ public class CountersReader
         /// Default owner id of a counter when none is set.
         /// 
public const long DEFAULT_OWNER_ID = 0; - + /// /// Can be used to representing a null counter id when passed as a argument. /// public const int NULL_COUNTER_ID = -1; - + /// /// Record has not been used. /// @@ -125,7 +125,7 @@ public class CountersReader /// Deadline to indicate counter is not free to be reused. ///
public static readonly long NOT_FREE_TO_REUSE = long.MaxValue; - + /// /// Offset in the record at which the registration id field is stored. When a counter is allocated the action /// can be given a registration id to indicate a specific term of use. This can be useful to differentiate the @@ -178,7 +178,8 @@ public class CountersReader /// /// Maximum length a key can be. /// - public static readonly int MAX_KEY_LENGTH = (BitUtil.CACHE_LINE_LENGTH * 2) - (BitUtil.SIZE_OF_INT * 2) - BitUtil.SIZE_OF_LONG; + public static readonly int MAX_KEY_LENGTH = + (BitUtil.CACHE_LINE_LENGTH * 2) - (BitUtil.SIZE_OF_INT * 2) - BitUtil.SIZE_OF_LONG; /// /// Length of a meta data record in bytes. @@ -192,9 +193,9 @@ public class CountersReader /// /// Construct a reader over buffers containing the values and associated metadata. - /// + /// /// Counter labels default to - /// + /// /// /// containing the counter metadata. /// containing the counter values. @@ -205,7 +206,7 @@ public CountersReader(IAtomicBuffer metaDataBuffer, IAtomicBuffer valuesBuffer) /// /// Construct a reader over buffers containing the values and associated metadata. - /// + /// /// /// containing the counter metadata. /// containing the counter values. @@ -223,7 +224,7 @@ public CountersReader(IAtomicBuffer metaDataBuffer, IAtomicBuffer valuesBuffer, /// /// the maximum counter id which can be supported given the length of the values buffer. public int MaxCounterId { get; protected set; } - + /// /// Get the buffer containing the metadata for the counters. /// @@ -286,7 +287,7 @@ public void ForEach(IntObjConsumer consumer) counterId++; } } - + /// /// Iterate over the counters and provide the value and basic metadata. /// @@ -357,8 +358,10 @@ public int FindByTypeIdAndRegistrationId(int typeId, long registrationId) int recordStatus = metaDataBuffer.GetIntVolatile(offset); if (RECORD_ALLOCATED == recordStatus) { - if (typeId == metaDataBuffer.GetInt(offset + TYPE_ID_OFFSET) && registrationId == - ValuesBuffer.GetLongVolatile(CounterOffset(i) + REGISTRATION_ID_OFFSET)) + if ( + typeId == metaDataBuffer.GetInt(offset + TYPE_ID_OFFSET) + && registrationId == ValuesBuffer.GetLongVolatile(CounterOffset(i) + REGISTRATION_ID_OFFSET) + ) { counterId = i; break; @@ -381,10 +384,10 @@ public int FindByTypeIdAndRegistrationId(int typeId, long registrationId) public long GetCounterValue(int counterId) { ValidateCounterId(counterId); - + return ValuesBuffer.GetLongVolatile(CounterOffset(counterId)); } - + /// /// Get the registration id for a given counter id as a volatile read. The registration identity may be assigned /// when the counter is allocated to help avoid ABA issues if the counter id is reused. @@ -398,7 +401,6 @@ public long GetCounterRegistrationId(int counterId) return ValuesBuffer.GetLongVolatile(CounterOffset(counterId) + REGISTRATION_ID_OFFSET); } - /// /// Get the state for a given counter id as a volatile read. /// @@ -413,7 +415,7 @@ public int GetCounterState(int counterId) return MetaDataBuffer.GetIntVolatile(MetaDataOffset(counterId)); } - + /// /// Get the type id for a given counter id. /// @@ -430,7 +432,8 @@ public int GetCounterTypeId(int counterId) /// Get the deadline (in milliseconds) for when a given counter id may be reused. /// /// to be read. - /// deadline (in milliseconds) for when a given counter id may be reused or if + /// deadline (in milliseconds) for when a given counter id may be reused or + /// if /// currently in use. public long GetFreeForReuseDeadline(int counterId) { @@ -455,7 +458,9 @@ protected void ValidateCounterId(int counterId) { if (counterId < 0 || counterId > MaxCounterId) { - throw new System.ArgumentException("Counter id " + counterId + " out of range: maxCounterId=" + MaxCounterId); + throw new System.ArgumentException( + "Counter id " + counterId + " out of range: maxCounterId=" + MaxCounterId + ); } } @@ -468,4 +473,4 @@ private string LabelValue(int recordOffset) return LabelCharset.GetString(stringInBytes); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/Status/IPosition.cs b/src/Adaptive.Agrona/Concurrent/Status/IPosition.cs index 5c62f5c3..04c30410 100644 --- a/src/Adaptive.Agrona/Concurrent/Status/IPosition.cs +++ b/src/Adaptive.Agrona/Concurrent/Status/IPosition.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,7 @@ namespace Adaptive.Agrona.Concurrent.Status { /// /// Reports on how far through a buffer some component has progressed. - /// + /// /// Threadsafe to write to from a single writer. /// public interface IPosition : IReadablePosition @@ -40,7 +40,7 @@ public interface IPosition : IReadablePosition /// /// the current position of the component. void SetOrdered(long value); - + /// /// Sets the current position of the component with release memory semantics. /// @@ -52,7 +52,7 @@ public interface IPosition : IReadablePosition ///
/// the current position of the component. void SetVolatile(long value); - + /// /// Set the position to a new proposedValue if greater than the current value with memory ordering semantics. /// @@ -67,4 +67,4 @@ public interface IPosition : IReadablePosition /// true if a new max as been set otherwise false. bool ProposeMaxOrdered(long proposedValue); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/Status/IReadablePosition.cs b/src/Adaptive.Agrona/Concurrent/Status/IReadablePosition.cs index a286f0b9..3ff16baa 100644 --- a/src/Adaptive.Agrona/Concurrent/Status/IReadablePosition.cs +++ b/src/Adaptive.Agrona/Concurrent/Status/IReadablePosition.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,4 +35,4 @@ public interface IReadablePosition : IDisposable /// the current position of a component with volatile semantics long GetVolatile(); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/Status/UnsafeBufferPosition.cs b/src/Adaptive.Agrona/Concurrent/Status/UnsafeBufferPosition.cs index 39d3b7df..78b9dc4f 100644 --- a/src/Adaptive.Agrona/Concurrent/Status/UnsafeBufferPosition.cs +++ b/src/Adaptive.Agrona/Concurrent/Status/UnsafeBufferPosition.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ namespace Adaptive.Agrona.Concurrent.Status { /// - /// Reports a position by recording it in an . + /// Reports a position by recording it in an . /// public class UnsafeBufferPosition : IPosition { @@ -33,7 +33,8 @@ public class UnsafeBufferPosition : IPosition ///
/// containing the counter. /// identifier of the counter. - public UnsafeBufferPosition(UnsafeBuffer buffer, int counterId) : this(buffer, counterId, null) + public UnsafeBufferPosition(UnsafeBuffer buffer, int counterId) + : this(buffer, counterId, null) { } @@ -131,4 +132,4 @@ public void Dispose() } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/StatusIndicator.cs b/src/Adaptive.Agrona/Concurrent/StatusIndicator.cs index dad7d4ce..c87d2763 100644 --- a/src/Adaptive.Agrona/Concurrent/StatusIndicator.cs +++ b/src/Adaptive.Agrona/Concurrent/StatusIndicator.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Agrona.Concurrent +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.Concurrent { public abstract class StatusIndicator : StatusIndicatorReader { @@ -8,4 +24,4 @@ public abstract class StatusIndicator : StatusIndicatorReader /// the current status indication of the component. public abstract void SetOrdered(long value); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/StatusIndicatorReader.cs b/src/Adaptive.Agrona/Concurrent/StatusIndicatorReader.cs index 7fd53a3f..6be5614b 100644 --- a/src/Adaptive.Agrona/Concurrent/StatusIndicatorReader.cs +++ b/src/Adaptive.Agrona/Concurrent/StatusIndicatorReader.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Agrona.Concurrent +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.Concurrent { public abstract class StatusIndicatorReader { @@ -14,4 +30,4 @@ public abstract class StatusIndicatorReader /// the current status indication of a component with volatile semantics. public abstract long GetVolatile(); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/StopwatchClock.cs b/src/Adaptive.Agrona/Concurrent/StopwatchClock.cs index 590ef63d..400c326a 100644 --- a/src/Adaptive.Agrona/Concurrent/StopwatchClock.cs +++ b/src/Adaptive.Agrona/Concurrent/StopwatchClock.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,7 +29,7 @@ public StopwatchClock() public long NanoTime() { - return _stopwatch.ElapsedTicks/Stopwatch.Frequency*1000000000; + return _stopwatch.ElapsedTicks / Stopwatch.Frequency * 1000000000; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/SystemEpochClock.cs b/src/Adaptive.Agrona/Concurrent/SystemEpochClock.cs index 3974e4e8..b67c7ace 100644 --- a/src/Adaptive.Agrona/Concurrent/SystemEpochClock.cs +++ b/src/Adaptive.Agrona/Concurrent/SystemEpochClock.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,6 @@ * limitations under the License. */ -using System; using System.Runtime.CompilerServices; using Adaptive.Agrona.Util; @@ -23,11 +22,11 @@ namespace Adaptive.Agrona.Concurrent public class SystemEpochClock : IEpochClock { public static readonly SystemEpochClock INSTANCE = new SystemEpochClock(); - + [MethodImpl(MethodImplOptions.AggressiveInlining)] public long Time() { return UnixTimeConverter.CurrentUnixTimeMillis(); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/SystemNanoClock.cs b/src/Adaptive.Agrona/Concurrent/SystemNanoClock.cs index a2331c3b..f751b094 100644 --- a/src/Adaptive.Agrona/Concurrent/SystemNanoClock.cs +++ b/src/Adaptive.Agrona/Concurrent/SystemNanoClock.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ namespace Adaptive.Agrona.Concurrent public class SystemNanoClock : INanoClock { public static readonly SystemNanoClock INSTANCE = new SystemNanoClock(); - + private readonly Stopwatch _stopwatch; public SystemNanoClock() @@ -31,7 +31,7 @@ public SystemNanoClock() public long NanoTime() { - return _stopwatch.ElapsedMilliseconds*1000*1000; + return _stopwatch.ElapsedMilliseconds * 1000 * 1000; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/UnsafeBuffer.cs b/src/Adaptive.Agrona/Concurrent/UnsafeBuffer.cs index 7cb298d7..c1581ab7 100644 --- a/src/Adaptive.Agrona/Concurrent/UnsafeBuffer.cs +++ b/src/Adaptive.Agrona/Concurrent/UnsafeBuffer.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,17 +24,19 @@ namespace Adaptive.Agrona.Concurrent { /// - /// Supports regular, byte ordered, and atomic (memory ordered) access to an underlying buffer. - /// The buffer can be a byte[] or an unmanaged buffer. - /// - /// of a wrapped buffer is not applied to the ; s are - /// stateless and can be used concurrently. To control use the appropriate accessor method - /// with the overload. - /// - /// Note: This class has a natural ordering that is inconsistent with equals. - /// Types my be different but equal on buffer contents. - /// - /// Note: The wrap methods on this class are not thread safe. Concurrent access should only happen after a successful wrap. + /// Supports regular, byte ordered, and atomic (memory ordered) access to an underlying buffer. The buffer can be a + /// byte[] or an unmanaged buffer. + /// + /// of a wrapped buffer is not applied to the ; + /// s are + /// stateless and can be used concurrently. To control use the appropriate accessor + /// method with the overload. + /// + /// Note: This class has a natural ordering that is inconsistent with equals. Types my be different but equal on + /// buffer contents. + /// + /// Note: The wrap methods on this class are not thread safe. Concurrent access should only happen after a + /// successful wrap. /// public unsafe class UnsafeBuffer : IAtomicBuffer, IDisposable { @@ -44,7 +46,9 @@ public unsafe class UnsafeBuffer : IAtomicBuffer, IDisposable public const int ALIGNMENT = BitUtil.SIZE_OF_LONG; public static readonly string DISABLE_BOUNDS_CHECKS_PROP_NAME = "AGRONA_DISABLE_BOUNDS_CHECKS"; - private static readonly bool SHOULD_BOUNDS_CHECK = !bool.Parse(Environment.GetEnvironmentVariable(DISABLE_BOUNDS_CHECKS_PROP_NAME) ?? "false"); + private static readonly bool ShouldBoundsCheck = !bool.Parse( + Environment.GetEnvironmentVariable(DISABLE_BOUNDS_CHECKS_PROP_NAME) ?? "false" + ); private byte* _pBuffer; private bool _disposed; @@ -128,9 +132,9 @@ public UnsafeBuffer(IntPtr address, int offset, int length) public UnsafeBuffer(MappedByteBuffer buffer) { - Wrap(buffer.Pointer, 0, (int) buffer.Capacity); + Wrap(buffer.Pointer, 0, (int)buffer.Capacity); } - + public UnsafeBuffer(MappedByteBuffer buffer, int offset, int length) { Wrap(buffer.Pointer, offset, length); @@ -149,13 +153,13 @@ public void Wrap(byte[] buffer) _pinnedGcHandle = GCHandle.Alloc(buffer, GCHandleType.Pinned); _needToFreeGcHandle = true; - _pBuffer = (byte*) _pinnedGcHandle.AddrOfPinnedObject().ToPointer(); + _pBuffer = (byte*)_pinnedGcHandle.AddrOfPinnedObject().ToPointer(); Capacity = buffer.Length; ByteArray = buffer; ByteBuffer = null; } - + public void Wrap(byte[] buffer, int offset, int length) { if (buffer == null) @@ -163,7 +167,7 @@ public void Wrap(byte[] buffer, int offset, int length) ThrowHelper.ThrowArgumentException(nameof(buffer)); } - if (SHOULD_BOUNDS_CHECK) + if (ShouldBoundsCheck) { int bufferLength = buffer.Length; if (offset != 0 && (offset < 0 || offset > bufferLength - 1)) @@ -173,8 +177,9 @@ public void Wrap(byte[] buffer, int offset, int length) if (length < 0 || length > bufferLength - offset) { - ThrowHelper.ThrowArgumentException("offset=" + offset + " length=" + length + - " not valid for capacity=" + bufferLength); + ThrowHelper.ThrowArgumentException( + "offset=" + offset + " length=" + length + " not valid for capacity=" + bufferLength + ); } } @@ -184,59 +189,61 @@ public void Wrap(byte[] buffer, int offset, int length) _pinnedGcHandle = GCHandle.Alloc(buffer, GCHandleType.Pinned); _needToFreeGcHandle = true; - _pBuffer = (byte*) _pinnedGcHandle.AddrOfPinnedObject().ToPointer() + offset; + _pBuffer = (byte*)_pinnedGcHandle.AddrOfPinnedObject().ToPointer() + offset; Capacity = length; ByteArray = buffer; ByteBuffer = null; } - + public void Wrap(IDirectBuffer buffer) { FreeGcHandle(); _needToFreeGcHandle = false; - _pBuffer = (byte*) buffer.BufferPointer.ToPointer(); + _pBuffer = (byte*)buffer.BufferPointer.ToPointer(); Capacity = buffer.Capacity; ByteArray = buffer.ByteArray; ByteBuffer = buffer.ByteBuffer; } - + public void Wrap(ByteBuffer buffer) { FreeGcHandle(); _needToFreeGcHandle = false; - _pBuffer = (byte*) buffer.BufferPointer.ToPointer(); + _pBuffer = (byte*)buffer.BufferPointer.ToPointer(); Capacity = buffer.Capacity; ByteArray = null; ByteBuffer = buffer; } - + public void Wrap(IDirectBuffer buffer, int offset, int length) { - if (SHOULD_BOUNDS_CHECK) + if (ShouldBoundsCheck) { int bufferCapacity = buffer.Capacity; if (offset != 0 && (offset < 0 || offset > bufferCapacity - 1)) { - ThrowHelper.ThrowArgumentException("offset=" + offset + " not valid for capacity=" + - bufferCapacity); + ThrowHelper.ThrowArgumentException( + "offset=" + offset + " not valid for capacity=" + bufferCapacity + ); } if (length < 0 || length > bufferCapacity - offset) { - ThrowHelper.ThrowArgumentException("offset=" + offset + " length=" + length + - " not valid for capacity=" + bufferCapacity); + ThrowHelper.ThrowArgumentException( + "offset=" + offset + " length=" + length + " not valid for capacity=" + bufferCapacity + ); } } FreeGcHandle(); _needToFreeGcHandle = false; - _pBuffer = (byte*) buffer.BufferPointer.ToPointer() + offset; + _pBuffer = (byte*)buffer.BufferPointer.ToPointer() + offset; Capacity = length; ByteArray = buffer.ByteArray; @@ -249,7 +256,7 @@ public void Wrap(IntPtr pointer, int length) _needToFreeGcHandle = false; - _pBuffer = (byte*) pointer.ToPointer(); + _pBuffer = (byte*)pointer.ToPointer(); Capacity = length; ByteBuffer = null; @@ -260,21 +267,21 @@ public void Wrap(int memoryAddress, int length) { // JW TODO wrap a memory address that will cause the program to exit. } - + public void Wrap(IntPtr pointer, int offset, int length) { FreeGcHandle(); _needToFreeGcHandle = false; - _pBuffer = (byte*) pointer.ToPointer() + offset; + _pBuffer = (byte*)pointer.ToPointer() + offset; Capacity = length; ByteBuffer = null; ByteArray = null; } - public unsafe void Wrap(byte* pointer, int length) + public void Wrap(byte* pointer, int length) { FreeGcHandle(); @@ -287,7 +294,7 @@ public unsafe void Wrap(byte* pointer, int length) ByteArray = null; } - public unsafe void Wrap(byte* pointer, int offset, int length) + public void Wrap(byte* pointer, int offset, int length) { FreeGcHandle(); @@ -297,7 +304,7 @@ public unsafe void Wrap(byte* pointer, int offset, int length) Capacity = length; ByteBuffer = null; - ByteArray = null; + ByteArray = null; } public IntPtr BufferPointer @@ -309,14 +316,14 @@ public IntPtr BufferPointer public byte[] ByteArray { get; private set; } public ByteBuffer ByteBuffer { get; private set; } - + public int Capacity { get; private set; } [MethodImpl(MethodImplOptions.AggressiveInlining)] public void SetMemory(int index, int length, byte value) { BoundsCheck0(index, length); - Unsafe.InitBlock(_pBuffer + index, value, (uint) length); + Unsafe.InitBlock(_pBuffer + index, value, (uint)length); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -337,7 +344,9 @@ public void VerifyAlignment() if (0 != (address & (ALIGNMENT - 1))) { ThrowHelper.ThrowInvalidOperationException( - $"AtomicBuffer is not correctly aligned: addressOffset={address:D} in not divisible by {ALIGNMENT:D}"); + $"AtomicBuffer is not correctly aligned: addressOffset={address:D} " + + $"in not divisible by {ALIGNMENT:D}" + ); } } @@ -347,7 +356,7 @@ public long GetLong(int index, ByteOrder byteOrder) { BoundsCheck0(index, BitUtil.SIZE_OF_LONG); - var value = *(long*) (_pBuffer + index); + var value = *(long*)(_pBuffer + index); return EndianessConverter.ApplyInt64(byteOrder, value); } @@ -356,14 +365,14 @@ public long GetLong(int index) { BoundsCheck0(index, BitUtil.SIZE_OF_LONG); - return *(long*) (_pBuffer + index); + return *(long*)(_pBuffer + index); } [MethodImpl(MethodImplOptions.AggressiveInlining)] public void PutLong(int index, long value) { BoundsCheck0(index, BitUtil.SIZE_OF_LONG); - *(long*) (_pBuffer + index) = value; + *(long*)(_pBuffer + index) = value; } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -372,7 +381,7 @@ public void PutLong(int index, long value, ByteOrder byteOrder) BoundsCheck0(index, BitUtil.SIZE_OF_LONG); value = EndianessConverter.ApplyInt64(byteOrder, value); - *(long*) (_pBuffer + index) = value; + *(long*)(_pBuffer + index) = value; } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -380,7 +389,7 @@ public long GetLongVolatile(int index) { BoundsCheck0(index, BitUtil.SIZE_OF_LONG); - return Volatile.Read(ref *(long*) (_pBuffer + index)); + return Volatile.Read(ref *(long*)(_pBuffer + index)); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -388,7 +397,7 @@ public void PutLongVolatile(int index, long value) { BoundsCheck0(index, BitUtil.SIZE_OF_LONG); - Interlocked.Exchange(ref *(long*) (_pBuffer + index), value); + Interlocked.Exchange(ref *(long*)(_pBuffer + index), value); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -396,15 +405,15 @@ public void PutLongOrdered(int index, long value) { BoundsCheck0(index, BitUtil.SIZE_OF_LONG); - Volatile.Write(ref *(long*) (_pBuffer + index), value); + Volatile.Write(ref *(long*)(_pBuffer + index), value); } - + [MethodImpl(MethodImplOptions.AggressiveInlining)] public void PutLongRelease(int index, long value) { BoundsCheck0(index, BitUtil.SIZE_OF_LONG); - Volatile.Write(ref *(long*) (_pBuffer + index), value); + Volatile.Write(ref *(long*)(_pBuffer + index), value); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -423,7 +432,7 @@ public bool CompareAndSetLong(int index, long expectedValue, long updateValue) { BoundsCheck0(index, BitUtil.SIZE_OF_LONG); - var original = Interlocked.CompareExchange(ref *(long*) (_pBuffer + index), updateValue, expectedValue); + var original = Interlocked.CompareExchange(ref *(long*)(_pBuffer + index), updateValue, expectedValue); return original == expectedValue; } @@ -433,7 +442,7 @@ public long GetAndAddLong(int index, long delta) { BoundsCheck0(index, BitUtil.SIZE_OF_LONG); - return Interlocked.Add(ref *(long*) (_pBuffer + index), delta) - delta; + return Interlocked.Add(ref *(long*)(_pBuffer + index), delta) - delta; } public void PutInt(int index, int value, ByteOrder byteOrder) @@ -441,7 +450,7 @@ public void PutInt(int index, int value, ByteOrder byteOrder) BoundsCheck0(index, BitUtil.SIZE_OF_INT); value = EndianessConverter.ApplyInt32(byteOrder, value); - *(int*) (_pBuffer + index) = value; + *(int*)(_pBuffer + index) = value; } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -449,7 +458,7 @@ public int GetInt(int index) { BoundsCheck0(index, BitUtil.SIZE_OF_INT); - return *(int*) (_pBuffer + index); + return *(int*)(_pBuffer + index); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -457,7 +466,7 @@ public int GetInt(int index, ByteOrder byteOrder) { BoundsCheck0(index, BitUtil.SIZE_OF_INT); - var value = *(int*) (_pBuffer + index); + var value = *(int*)(_pBuffer + index); return EndianessConverter.ApplyInt32(byteOrder, value); } @@ -465,7 +474,7 @@ public int GetInt(int index, ByteOrder byteOrder) public void PutInt(int index, int value) { BoundsCheck0(index, BitUtil.SIZE_OF_INT); - *(int*) (_pBuffer + index) = value; + *(int*)(_pBuffer + index) = value; } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -473,7 +482,7 @@ public int GetIntVolatile(int index) { BoundsCheck0(index, BitUtil.SIZE_OF_INT); - return Volatile.Read(ref *(int*) (_pBuffer + index)); + return Volatile.Read(ref *(int*)(_pBuffer + index)); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -481,7 +490,7 @@ public void PutIntVolatile(int index, int value) { BoundsCheck0(index, BitUtil.SIZE_OF_INT); - Interlocked.Exchange(ref *(int*) (_pBuffer + index), value); + Interlocked.Exchange(ref *(int*)(_pBuffer + index), value); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -489,15 +498,15 @@ public void PutIntOrdered(int index, int value) { BoundsCheck0(index, BitUtil.SIZE_OF_INT); - Volatile.Write(ref *(int*) (_pBuffer + index), value); + Volatile.Write(ref *(int*)(_pBuffer + index), value); } - + [MethodImpl(MethodImplOptions.AggressiveInlining)] public void PutIntRelease(int index, int value) { BoundsCheck0(index, BitUtil.SIZE_OF_INT); - Volatile.Write(ref *(int*) (_pBuffer + index), value); + Volatile.Write(ref *(int*)(_pBuffer + index), value); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -516,7 +525,7 @@ public bool CompareAndSetInt(int index, int expectedValue, int updateValue) { BoundsCheck0(index, BitUtil.SIZE_OF_INT); - var original = Interlocked.CompareExchange(ref *(int*) (_pBuffer + index), updateValue, expectedValue); + var original = Interlocked.CompareExchange(ref *(int*)(_pBuffer + index), updateValue, expectedValue); return original == expectedValue; } @@ -526,7 +535,7 @@ public int GetAndAddInt(int index, int delta) { BoundsCheck0(index, BitUtil.SIZE_OF_INT); - return Interlocked.Add(ref *(int*) (_pBuffer + index), delta) - delta; + return Interlocked.Add(ref *(int*)(_pBuffer + index), delta) - delta; } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -549,7 +558,7 @@ public double GetDouble(int index) { BoundsCheck0(index, BitUtil.SIZE_OF_DOUBLE); - return *(double*) (_pBuffer + index); + return *(double*)(_pBuffer + index); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -557,7 +566,7 @@ public void PutDouble(int index, double value) { BoundsCheck0(index, BitUtil.SIZE_OF_DOUBLE); - *(double*) (_pBuffer + index) = value; + *(double*)(_pBuffer + index) = value; } /////////////////////////////////////////////////////////////////////////// @@ -583,7 +592,7 @@ public float GetFloat(int index) { BoundsCheck0(index, BitUtil.SIZE_OF_FLOAT); - return *(float*) (_pBuffer + index); + return *(float*)(_pBuffer + index); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -591,7 +600,7 @@ public void PutFloat(int index, float value) { BoundsCheck0(index, BitUtil.SIZE_OF_FLOAT); - *(float*) (_pBuffer + index) = value; + *(float*)(_pBuffer + index) = value; } /////////////////////////////////////////////////////////////////////////// @@ -601,7 +610,7 @@ public short GetShort(int index) { BoundsCheck0(index, BitUtil.SIZE_OF_SHORT); - return *(short*) (_pBuffer + index); + return *(short*)(_pBuffer + index); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -618,7 +627,7 @@ public void PutShort(int index, short value) { BoundsCheck0(index, BitUtil.SIZE_OF_SHORT); - *(short*) (_pBuffer + index) = value; + *(short*)(_pBuffer + index) = value; } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -627,7 +636,7 @@ public void PutShort(int index, short value, ByteOrder byteOrder) BoundsCheck0(index, BitUtil.SIZE_OF_SHORT); value = EndianessConverter.ApplyInt16(byteOrder, value); - *(short*) (_pBuffer + index) = value; + *(short*)(_pBuffer + index) = value; } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -635,7 +644,7 @@ public short GetShortVolatile(int index) { BoundsCheck0(index, BitUtil.SIZE_OF_SHORT); - return Volatile.Read(ref *(short*) (_pBuffer + index)); + return Volatile.Read(ref *(short*)(_pBuffer + index)); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -643,7 +652,7 @@ public void PutShortVolatile(int index, short value) { BoundsCheck0(index, BitUtil.SIZE_OF_SHORT); - Volatile.Write(ref (*(short*) (_pBuffer + index)), value); + Volatile.Write(ref (*(short*)(_pBuffer + index)), value); } /////////////////////////////////////////////////////////////////////////// @@ -691,10 +700,13 @@ public void GetBytes(int index, byte[] dst) [MethodImpl(MethodImplOptions.AggressiveInlining)] public void GetBytes(int index, byte[] dst, int offset, int length) { - if (length == 0) return; - + if (length == 0) + { + return; + } + BoundsCheck0(index, length); - if (SHOULD_BOUNDS_CHECK) + if (ShouldBoundsCheck) { BufferUtil.BoundsCheck(dst, offset, length); } @@ -702,7 +714,7 @@ public void GetBytes(int index, byte[] dst, int offset, int length) byte* source = _pBuffer + index; fixed (byte* destination = &dst[offset]) { - ByteUtil.MemoryCopy(destination, source, (uint) length); + ByteUtil.MemoryCopy(destination, source, (uint)length); } } @@ -727,15 +739,15 @@ public void PutBytes(int index, byte[] src, int offset, int length) } BoundsCheck0(index, length); - if (SHOULD_BOUNDS_CHECK) + if (ShouldBoundsCheck) { BufferUtil.BoundsCheck(src, offset, length); - } + } byte* destination = _pBuffer + index; fixed (byte* source = &src[offset]) { - ByteUtil.MemoryCopy(destination, source, (uint) length); + ByteUtil.MemoryCopy(destination, source, (uint)length); } } @@ -751,8 +763,8 @@ public void PutBytes(int index, IDirectBuffer srcBuffer, int srcIndex, int lengt srcBuffer.BoundsCheck(srcIndex, length); byte* destination = _pBuffer + index; - byte* source = (byte*) srcBuffer.BufferPointer.ToPointer() + srcIndex; - ByteUtil.MemoryCopy(destination, source, (uint) length); + byte* source = (byte*)srcBuffer.BufferPointer.ToPointer() + srcIndex; + ByteUtil.MemoryCopy(destination, source, (uint)length); } /////////////////////////////////////////////////////////////////////////// @@ -762,7 +774,7 @@ public char GetChar(int index) { BoundsCheck0(index, BitUtil.SIZE_OF_CHAR); - return *(char*) (_pBuffer + index); + return *(char*)(_pBuffer + index); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -770,7 +782,7 @@ public void PutChar(int index, char value) { BoundsCheck0(index, BitUtil.SIZE_OF_CHAR); - *(char*) (_pBuffer + index) = value; + *(char*)(_pBuffer + index) = value; } //public char GetCharVolatile(int index) @@ -808,7 +820,7 @@ public string GetStringAscii(int index) public int GetStringAscii(int index, StringBuilder appendable) { var length = GetInt(index); - + return GetStringAscii(index, length, appendable); } @@ -816,8 +828,8 @@ public int GetStringAscii(int index, int length, StringBuilder appendable) { for (int i = index + BitUtil.SIZE_OF_INT, limit = index + BitUtil.SIZE_OF_INT + length; i < limit; i++) { - char c = *(char*) (_pBuffer + index); - appendable.Append(c > (char) 127 ? '?' : c); + char c = *(char*)(_pBuffer + index); + appendable.Append(c > (char)127 ? '?' : c); } return length; @@ -856,18 +868,18 @@ public int PutStringAscii(int index, string value) public int PutStringWithoutLengthAscii(int index, string value) { int length = value?.Length ?? 0; - + BoundsCheck0(index, length); for (int i = 0; i < length; i++) { var c = value[i]; - if (c > (char) 127) + if (c > (char)127) { c = '?'; } - *(char*) (_pBuffer + index + i) = c; + *(char*)(_pBuffer + index + i) = c; } return length; @@ -882,12 +894,12 @@ public int PutStringWithoutLengthAscii(int index, string value, int valueOffset, for (int i = 0; i < len; i++) { char c = value[valueOffset + i]; - if (c > (char) 127) + if (c > (char)127) { c = '?'; } - *(char*) (_pBuffer + index + i) = c; + *(char*)(_pBuffer + index + i) = c; } return len; @@ -896,9 +908,7 @@ public int PutStringWithoutLengthAscii(int index, string value, int valueOffset, [MethodImpl(MethodImplOptions.AggressiveInlining)] public int PutStringUtf8(int index, string value, int maxEncodedSize) { - var bytes = value == null - ? BufferUtil.NullBytes - : Encoding.UTF8.GetBytes(value); + var bytes = value == null ? BufferUtil.NullBytes : Encoding.UTF8.GetBytes(value); if (bytes.Length > maxEncodedSize) { ThrowHelper.ThrowArgumentException("Encoded string larger than maximum size: " + maxEncodedSize); @@ -913,9 +923,7 @@ public int PutStringUtf8(int index, string value, int maxEncodedSize) [MethodImpl(MethodImplOptions.AggressiveInlining)] public int PutStringAscii(int index, string value, int maxEncodedSize) { - var bytes = value == null - ? BufferUtil.NullBytes - : Encoding.ASCII.GetBytes(value); + var bytes = value == null ? BufferUtil.NullBytes : Encoding.ASCII.GetBytes(value); if (bytes.Length > maxEncodedSize) { ThrowHelper.ThrowArgumentException("Encoded string larger than maximum size: " + maxEncodedSize); @@ -948,9 +956,7 @@ public string GetStringWithoutLengthAscii(int index, int length) [MethodImpl(MethodImplOptions.AggressiveInlining)] public int PutStringWithoutLengthUtf8(int index, string value) { - var bytes = value == null - ? BufferUtil.NullBytes - : Encoding.UTF8.GetBytes(value); + var bytes = value == null ? BufferUtil.NullBytes : Encoding.UTF8.GetBytes(value); PutBytes(index, bytes); return bytes.Length; @@ -961,25 +967,23 @@ public int PutStringWithoutLengthUtf8(int index, string value) [MethodImpl(MethodImplOptions.AggressiveInlining)] private void BoundsCheck(int index) { - if (SHOULD_BOUNDS_CHECK) + if (ShouldBoundsCheck && (index < 0 || index >= Capacity)) { - if (index < 0 || index >= Capacity) - { - ThrowHelper.ThrowIndexOutOfRangeException($"index={index:D}, capacity={Capacity:D}"); - } + ThrowHelper.ThrowIndexOutOfRangeException($"index={index:D}, capacity={Capacity:D}"); } } [MethodImpl(MethodImplOptions.AggressiveInlining)] private void BoundsCheck0(int index, int length) { - if (SHOULD_BOUNDS_CHECK) + if (ShouldBoundsCheck) { - long resultingPosition = index + (long) length; + long resultingPosition = index + (long)length; if (index < 0 || resultingPosition > Capacity) { ThrowHelper.ThrowIndexOutOfRangeException( - $"index={index:D}, length={length:D}, capacity={Capacity:D}"); + $"index={index:D}, length={length:D}, capacity={Capacity:D}" + ); } } } @@ -999,7 +1003,7 @@ public int CompareTo(IDirectBuffer that) var thatCapacity = that.Capacity; var thisPointer = this._pBuffer; - var thatPointer = (byte*) that.BufferPointer.ToPointer(); + var thatPointer = (byte*)that.BufferPointer.ToPointer(); for (int i = 0, length = Math.Min(thisCapacity, thatCapacity); i < length; i++) { @@ -1040,7 +1044,9 @@ public void Dispose() private void Dispose(bool disposing) { if (_disposed) + { return; + } FreeGcHandle(); @@ -1059,4 +1065,4 @@ private void FreeGcHandle() } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Concurrent/YieldingIdleStrategy.cs b/src/Adaptive.Agrona/Concurrent/YieldingIdleStrategy.cs index befd2c17..52aa3aae 100644 --- a/src/Adaptive.Agrona/Concurrent/YieldingIdleStrategy.cs +++ b/src/Adaptive.Agrona/Concurrent/YieldingIdleStrategy.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,4 +44,4 @@ public void Reset() { } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/DelegatingErrorHandler.cs b/src/Adaptive.Agrona/DelegatingErrorHandler.cs index a44ba732..b06447a2 100644 --- a/src/Adaptive.Agrona/DelegatingErrorHandler.cs +++ b/src/Adaptive.Agrona/DelegatingErrorHandler.cs @@ -1,14 +1,30 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ namespace Adaptive.Agrona { /// - /// that can insert into a chain of responsibility so it handles an error and then delegates - /// on to the next in the chain. This allows for taking action pre or post invocation of the next delegate. + /// that can insert into a chain of responsibility so it handles an error and then + /// delegates on to the next in the chain. This allows for taking action pre or post invocation of the next + /// delegate. /// /// Implementations are responsible for calling the next in the chain. /// /// + // ReSharper disable once InconsistentNaming -- Java parity: no I-prefix on this interface public interface DelegatingErrorHandler : IErrorHandler { /// @@ -17,4 +33,4 @@ public interface DelegatingErrorHandler : IErrorHandler /// the next to be called in a chain. void Next(IErrorHandler errorHandler); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/EndianessConverter.cs b/src/Adaptive.Agrona/EndianessConverter.cs index 30cfdb6d..17cc3a4a 100644 --- a/src/Adaptive.Agrona/EndianessConverter.cs +++ b/src/Adaptive.Agrona/EndianessConverter.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ namespace Adaptive.Agrona { /// - /// Utility class to manipulate endianess + /// Utility class to manipulate endianess /// public static class EndianessConverter { @@ -30,7 +30,8 @@ public static class EndianessConverter : ByteOrder.BigEndian; /// - /// Applies the specified endianess to an int16 (reverse bytes if input endianess is different from system's endianess) + /// Applies the specified endianess to an int16 (reverse bytes if input endianess is different from system's + /// endianess) /// /// the endianess to apply /// the value to be converted @@ -38,13 +39,17 @@ public static class EndianessConverter [MethodImpl(MethodImplOptions.AggressiveInlining)] public static short ApplyInt16(ByteOrder byteOrder, short value) { - if (byteOrder == NativeByteOrder) return value; + if (byteOrder == NativeByteOrder) + { + return value; + } return (short)((value & 0xFFU) << 8 | (value & 0xFF00U) >> 8); } /// - /// Applies the specified endianess to an uint16 (reverse bytes if input endianess is different from system's endianess) + /// Applies the specified endianess to an uint16 (reverse bytes if input endianess is different from system's + /// endianess) /// /// the endianess to apply /// the value to be converted @@ -52,13 +57,17 @@ public static short ApplyInt16(ByteOrder byteOrder, short value) [MethodImpl(MethodImplOptions.AggressiveInlining)] public static ushort ApplyUint16(ByteOrder byteOrder, ushort value) { - if (byteOrder == NativeByteOrder) return value; + if (byteOrder == NativeByteOrder) + { + return value; + } return (ushort)((value & 0xFFU) << 8 | (value & 0xFF00U) >> 8); } /// - /// Applies the specified endianess to an int32 (reverse bytes if input endianess is different from system's endianess) + /// Applies the specified endianess to an int32 (reverse bytes if input endianess is different from system's + /// endianess) /// /// the endianess to apply /// the value to be converted @@ -66,14 +75,22 @@ public static ushort ApplyUint16(ByteOrder byteOrder, ushort value) [MethodImpl(MethodImplOptions.AggressiveInlining)] public static int ApplyInt32(ByteOrder byteOrder, int value) { - if (byteOrder == NativeByteOrder) return value; - - return (int)((value & 0x000000FFU) << 24 | (value & 0x0000FF00U) << 8 | - (value & 0x00FF0000U) >> 8 | (value & 0xFF000000U) >> 24); + if (byteOrder == NativeByteOrder) + { + return value; + } + + return (int)( + (value & 0x000000FFU) << 24 + | (value & 0x0000FF00U) << 8 + | (value & 0x00FF0000U) >> 8 + | (value & 0xFF000000U) >> 24 + ); } /// - /// Applies the specified endianess to an uint32 (reverse bytes if input endianess is different from system's endianess) + /// Applies the specified endianess to an uint32 (reverse bytes if input endianess is different from system's + /// endianess) /// /// the endianess to apply /// the value to be converted @@ -81,14 +98,20 @@ public static int ApplyInt32(ByteOrder byteOrder, int value) [MethodImpl(MethodImplOptions.AggressiveInlining)] public static uint ApplyUint32(ByteOrder byteOrder, uint value) { - if (byteOrder == NativeByteOrder) return value; - - return (value & 0x000000FFU) << 24 | (value & 0x0000FF00U) << 8 | - (value & 0x00FF0000U) >> 8 | (value & 0xFF000000U) >> 24; + if (byteOrder == NativeByteOrder) + { + return value; + } + + return (value & 0x000000FFU) << 24 + | (value & 0x0000FF00U) << 8 + | (value & 0x00FF0000U) >> 8 + | (value & 0xFF000000U) >> 24; } /// - /// Applies the specified endianess to an uint64 (reverse bytes if input endianess is different from system's endianess) + /// Applies the specified endianess to an uint64 (reverse bytes if input endianess is different from system's + /// endianess) /// /// the endianess to apply /// the value to be converted @@ -96,16 +119,24 @@ public static uint ApplyUint32(ByteOrder byteOrder, uint value) [MethodImpl(MethodImplOptions.AggressiveInlining)] public static ulong ApplyUint64(ByteOrder byteOrder, ulong value) { - if (byteOrder == NativeByteOrder) return value; - - return (value & 0x00000000000000FFUL) << 56 | (value & 0x000000000000FF00UL) << 40 | - (value & 0x0000000000FF0000UL) << 24 | (value & 0x00000000FF000000UL) << 8 | - (value & 0x000000FF00000000UL) >> 8 | (value & 0x0000FF0000000000UL) >> 24 | - (value & 0x00FF000000000000UL) >> 40 | (value & 0xFF00000000000000UL) >> 56; + if (byteOrder == NativeByteOrder) + { + return value; + } + + return (value & 0x00000000000000FFUL) << 56 + | (value & 0x000000000000FF00UL) << 40 + | (value & 0x0000000000FF0000UL) << 24 + | (value & 0x00000000FF000000UL) << 8 + | (value & 0x000000FF00000000UL) >> 8 + | (value & 0x0000FF0000000000UL) >> 24 + | (value & 0x00FF000000000000UL) >> 40 + | (value & 0xFF00000000000000UL) >> 56; } /// - /// Applies the specified endianess to an int64 (reverse bytes if input endianess is different from system's endianess) + /// Applies the specified endianess to an int64 (reverse bytes if input endianess is different from system's + /// endianess) /// /// the endianess to apply /// the value to be converted @@ -113,13 +144,17 @@ public static ulong ApplyUint64(ByteOrder byteOrder, ulong value) [MethodImpl(MethodImplOptions.AggressiveInlining)] public static long ApplyInt64(ByteOrder byteOrder, long value) { - if (byteOrder == NativeByteOrder) return value; + if (byteOrder == NativeByteOrder) + { + return value; + } return IPAddress.HostToNetworkOrder(value); } /// - /// Applies the specified endianess to a double (reverse bytes if input endianess is different from system's endianess) + /// Applies the specified endianess to a double (reverse bytes if input endianess is different from system's + /// endianess) /// /// the endianess to apply /// the value to be converted @@ -127,26 +162,33 @@ public static long ApplyInt64(ByteOrder byteOrder, long value) [MethodImpl(MethodImplOptions.AggressiveInlining)] public static double ApplyDouble(ByteOrder byteOrder, double value) { - if (byteOrder == NativeByteOrder) return value; + if (byteOrder == NativeByteOrder) + { + return value; + } return BitConverter.Int64BitsToDouble(IPAddress.HostToNetworkOrder(BitConverter.DoubleToInt64Bits(value))); } /// - /// Applies the specified endianess to an float (reverse bytes if input endianess is different from system's endianess) + /// Applies the specified endianess to an float (reverse bytes if input endianess is different from system's + /// endianess) /// /// the endianess to apply /// the value to be converted /// The value with applied endianess [MethodImpl(MethodImplOptions.AggressiveInlining)] - public unsafe static float ApplyFloat(ByteOrder byteOrder, float value) + public static unsafe float ApplyFloat(ByteOrder byteOrder, float value) { - if (byteOrder == NativeByteOrder) return value; + if (byteOrder == NativeByteOrder) + { + return value; + } - int valueInt = *(int*) &value; + int valueInt = *(int*)&value; int applied = ApplyInt32(byteOrder, valueInt); - return *(float*) &applied; + return *(float*)&applied; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/ErrorHandler.cs b/src/Adaptive.Agrona/ErrorHandler.cs index 5132b0d2..8bbce1a9 100644 --- a/src/Adaptive.Agrona/ErrorHandler.cs +++ b/src/Adaptive.Agrona/ErrorHandler.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,10 +20,11 @@ namespace Adaptive.Agrona { /// /// Callback to notify of an error that has occurred when processing an operation or event. - /// - /// This method is assumed non-throwing, so rethrowing the exception or triggering further exceptions would be a bug. - /// + /// + /// This method is assumed non-throwing, so rethrowing the exception or triggering further exceptions would be a + /// bug. + /// /// exception that occurred while processing an operation or event. /// public delegate void ErrorHandler(Exception exception); -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/ExpandableArrayBuffer.cs b/src/Adaptive.Agrona/ExpandableArrayBuffer.cs index 1319defe..8ff6a115 100644 --- a/src/Adaptive.Agrona/ExpandableArrayBuffer.cs +++ b/src/Adaptive.Agrona/ExpandableArrayBuffer.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -7,15 +23,15 @@ namespace Adaptive.Agrona { /// - /// Expandable that is backed by an array. When values are put into the buffer beyond its - /// current length, then it will be expanded to accommodate the resulting position for the value. + /// Expandable that is backed by an array. When values are put into the + /// buffer beyond its current length, then it will be expanded to accommodate the resulting position for the value. /// - /// Put operations will expand the capacity as necessary up to . Get operations will throw - /// a if past current capacity. + /// Put operations will expand the capacity as necessary up to . Get operations + /// will throw a if past current capacity. /// /// - /// Note: this class has a natural ordering that is inconsistent with equals. - /// Types may be different but equal on buffer contents. + /// Note: this class has a natural ordering that is inconsistent with equals. Types may be different but + /// equal on buffer contents. /// /// public unsafe class ExpandableArrayBuffer : IMutableDirectBuffer @@ -35,11 +51,11 @@ public unsafe class ExpandableArrayBuffer : IMutableDirectBuffer private byte* _pBuffer; /// - /// Create an with an initial length of . + /// Create an with an initial length of + /// . /// - public ExpandableArrayBuffer() : this(INITIAL_CAPACITY) - { - } + public ExpandableArrayBuffer() + : this(INITIAL_CAPACITY) { } /// /// Create an with a provided initial length. @@ -427,9 +443,7 @@ public int PutStringAscii(int index, string value) public int PutStringAscii(int index, string value, int maxEncodedSize) { - var bytes = value == null - ? BufferUtil.NullBytes - : Encoding.ASCII.GetBytes(value); + var bytes = value == null ? BufferUtil.NullBytes : Encoding.ASCII.GetBytes(value); if (bytes.Length > maxEncodedSize) { ThrowHelper.ThrowArgumentException("Encoded string larger than maximum size: " + maxEncodedSize); @@ -443,7 +457,6 @@ public int PutStringAscii(int index, string value, int maxEncodedSize) return BitUtil.SIZE_OF_INT + bytes.Length; } - /// public int PutStringWithoutLengthAscii(int index, string value) { @@ -489,9 +502,7 @@ public int PutStringWithoutLengthAscii(int index, string value, int valueOffset, /// public int PutStringUtf8(int index, string value, int maxEncodedSize) { - var bytes = value == null - ? BufferUtil.NullBytes - : Encoding.UTF8.GetBytes(value); + var bytes = value == null ? BufferUtil.NullBytes : Encoding.UTF8.GetBytes(value); if (bytes.Length > maxEncodedSize) { ThrowHelper.ThrowArgumentException("Encoded string larger than maximum size: " + maxEncodedSize); @@ -508,9 +519,7 @@ public int PutStringUtf8(int index, string value, int maxEncodedSize) /// public int PutStringWithoutLengthUtf8(int index, string value) { - var bytes = value == null - ? BufferUtil.NullBytes - : Encoding.UTF8.GetBytes(value); + var bytes = value == null ? BufferUtil.NullBytes : Encoding.UTF8.GetBytes(value); EnsureCapacity(index, bytes.Length); PutBytes(index, bytes); @@ -531,8 +540,9 @@ private void EnsureCapacity(int index, int length) { if (resultingPosition > MAX_ARRAY_LENGTH) { - throw new IndexOutOfRangeException("index=" + index + " length=" + length + " maxCapacity=" + - MAX_ARRAY_LENGTH); + throw new IndexOutOfRangeException( + "index=" + index + " length=" + length + " maxCapacity=" + MAX_ARRAY_LENGTH + ); } int newLength = CalculateExpansion(currentArrayLength, resultingPosition); @@ -567,9 +577,8 @@ private void BoundsCheck0(int index, int length) long resultingPosition = index + (long)length; if (index < 0 || length < 0 || resultingPosition > currentArrayLength) { - ThrowHelper.ThrowIndexOutOfRangeException( - $"index={index:D}, length={length:D}, capacity={Capacity:D}"); + ThrowHelper.ThrowIndexOutOfRangeException($"index={index:D}, length={length:D}, capacity={Capacity:D}"); } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/FodyWeavers.xml b/src/Adaptive.Agrona/FodyWeavers.xml index 42637c5c..63250218 100644 --- a/src/Adaptive.Agrona/FodyWeavers.xml +++ b/src/Adaptive.Agrona/FodyWeavers.xml @@ -1,4 +1,4 @@  - - \ No newline at end of file + + diff --git a/src/Adaptive.Agrona/IDirectBuffer.cs b/src/Adaptive.Agrona/IDirectBuffer.cs index f8436357..e5763861 100644 --- a/src/Adaptive.Agrona/IDirectBuffer.cs +++ b/src/Adaptive.Agrona/IDirectBuffer.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -81,7 +81,7 @@ public interface IDirectBuffer : IComparable /// Get the underlying if one exists /// ByteBuffer ByteBuffer { get; } - + /// /// Get the capacity of the underlying buffer. /// @@ -92,7 +92,7 @@ public interface IDirectBuffer : IComparable /// Check that a given limit is not greater than the capacity of a buffer from a given offset. /// /// Can be overridden in a DirectBuffer subclass to enable an extensible buffer or handle retry after a flush. - /// + /// /// /// /// up to which access is required. @@ -157,7 +157,7 @@ public interface IDirectBuffer : IComparable /// in bytes from which to get. /// the value at a given index. short GetShort(int index); - + /// /// Get the value at a given index. /// @@ -173,8 +173,8 @@ public interface IDirectBuffer : IComparable byte GetByte(int index); /// - /// Get from the underlying buffer into a supplied byte array. - /// This method will try to fill the supplied byte array. + /// Get from the underlying buffer into a supplied byte array. This method will try to fill the supplied byte + /// array. /// /// in the underlying buffer to start from. /// into which the dst will be copied. @@ -190,7 +190,8 @@ public interface IDirectBuffer : IComparable void GetBytes(int index, byte[] dst, int offset, int length); /// - /// Get bytes from this into the provided at given indices. + /// Get bytes from this into the provided + /// at given indices.
/// in this buffer to begin getting the bytes. /// to which the bytes will be copied. /// in the channel buffer to which the byte copy will begin. @@ -212,13 +213,14 @@ public interface IDirectBuffer : IComparable string GetStringAscii(int index); /// - /// Get a String from bytes encoded in ASCII format that is length prefixed and append to an . + /// Get a String from bytes encoded in ASCII format that is length prefixed and append to an + /// . /// /// at which the String begins. /// to append the chars to. /// the number of bytes copied. int GetStringAscii(int index, StringBuilder appendable); - + /// /// Get part of a String from bytes encoded in ASCII format that is length prefixed and append to an /// . @@ -252,7 +254,7 @@ public interface IDirectBuffer : IComparable /// of the String in bytes to decode. /// the String as represented by the UTF-8 encoded bytes. string GetStringWithoutLengthUtf8(int index, int length); - + /// /// Get an encoded ASCII String from the buffer that does not have a length prefix. /// @@ -260,7 +262,7 @@ public interface IDirectBuffer : IComparable /// of the String in bytes to decode. /// the String as represented by the Ascii encoded bytes. string GetStringWithoutLengthAscii(int index, int length); - + /// /// Check that a given length of bytes is within the bounds from a given index. /// @@ -269,4 +271,4 @@ public interface IDirectBuffer : IComparable /// if the length goes outside of the capacity range. void BoundsCheck(int index, int length); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/IErrorHandler.cs b/src/Adaptive.Agrona/IErrorHandler.cs index decafdfe..e4757af0 100644 --- a/src/Adaptive.Agrona/IErrorHandler.cs +++ b/src/Adaptive.Agrona/IErrorHandler.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; namespace Adaptive.Agrona { @@ -6,11 +22,12 @@ public interface IErrorHandler { /// /// Callback to notify of an error that has occurred when processing an operation or event. - /// - /// This method is assumed non-throwing, so rethrowing the exception or triggering further exceptions would be a bug. - /// + /// + /// This method is assumed non-throwing, so rethrowing the exception or triggering further exceptions would be a + /// bug. + /// /// exception that occurred while processing an operation or event. /// void OnError(Exception exception); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/IManagedResource.cs b/src/Adaptive.Agrona/IManagedResource.cs index 536830af..6e6890dd 100644 --- a/src/Adaptive.Agrona/IManagedResource.cs +++ b/src/Adaptive.Agrona/IManagedResource.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,26 +16,26 @@ namespace Adaptive.Agrona { - /// - /// Implementations of this interface can a resource that need to have external state tracked for deletion. - /// - public interface IManagedResource - { - /// - /// Set the time of the last state change. - /// - /// of the last state change. - void TimeOfLastStateChange(long time); + /// + /// Implementations of this interface can a resource that need to have external state tracked for deletion. + /// + public interface IManagedResource + { + /// + /// Set the time of the last state change. + /// + /// of the last state change. + void TimeOfLastStateChange(long time); - /// - /// Get the time of the last state change. - /// - /// the time of the last state change. - long TimeOfLastStateChange(); + /// + /// Get the time of the last state change. + /// + /// the time of the last state change. + long TimeOfLastStateChange(); - /// - /// Delete any resources held. This method should be idempotent. - /// - void Delete(); - } -} \ No newline at end of file + /// + /// Delete any resources held. This method should be idempotent. + /// + void Delete(); + } +} diff --git a/src/Adaptive.Agrona/IMutableDirectBuffer.cs b/src/Adaptive.Agrona/IMutableDirectBuffer.cs index af35e193..365b648e 100644 --- a/src/Adaptive.Agrona/IMutableDirectBuffer.cs +++ b/src/Adaptive.Agrona/IMutableDirectBuffer.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -127,7 +127,8 @@ public interface IMutableDirectBuffer : IDirectBuffer void PutBytes(int index, byte[] src, int offset, int length); /// - /// Put bytes from a source into this at given indices. + /// Put bytes from a source into this at + /// given indices. /// /// in this buffer to begin putting the bytes. /// from which the bytes will be copied. @@ -158,18 +159,18 @@ public interface IMutableDirectBuffer : IDirectBuffer /// of the String to be encoded. /// the number of bytes encoded. int PutStringWithoutLengthAscii(int index, string value); - + /// /// Encode a String as ASCII bytes in the buffer without a length prefix taking a range of the value. /// /// at which the String begins. /// of the String to be encoded. /// in the value String to begin. - /// of the value String to encode. If this is greater than valueOffset - value length then the - /// lesser will be used. + /// of the value String to encode. If this is greater than valueOffset - value length then + /// the lesser will be used. /// the number of bytes encoded. int PutStringWithoutLengthAscii(int index, string value, int valueOffset, int length); - + /// /// Encode a String as UTF-8 bytes the buffer with a length prefix with a maximum encoded size check. /// @@ -188,4 +189,4 @@ public interface IMutableDirectBuffer : IDirectBuffer /// the number of bytes encoded. int PutStringWithoutLengthUtf8(int index, string value); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/IoUtil.cs b/src/Adaptive.Agrona/IoUtil.cs index 55891d88..5b686d7f 100644 --- a/src/Adaptive.Agrona/IoUtil.cs +++ b/src/Adaptive.Agrona/IoUtil.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,9 +24,14 @@ namespace Adaptive.Agrona public enum MapMode { ReadOnly, - ReadWrite + ReadWrite, } + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class IoUtil { /// @@ -58,7 +63,14 @@ public static MappedByteBuffer MapNewFile(FileInfo cncFile, long length, bool fi var fileShare = FileShare.ReadWrite | FileShare.Delete; var memoryMappedFileAccess = MemoryMappedFileAccess.ReadWrite; var f = new FileStream(cncFile.FullName, FileMode.CreateNew, fileAccess, fileShare); - var mmFile = MemoryMappedFile.CreateFromFile(f, null, length, memoryMappedFileAccess, HandleInheritability.None, false); + var mmFile = MemoryMappedFile.CreateFromFile( + f, + null, + length, + memoryMappedFileAccess, + HandleInheritability.None, + false + ); var mappedByteBuffer = new MappedByteBuffer(mmFile, 0, length); if (fillWithZeros) @@ -69,21 +81,26 @@ public static MappedByteBuffer MapNewFile(FileInfo cncFile, long length, bool fi return mappedByteBuffer; } - public static MappedByteBuffer MapNewOrExistingFile(FileInfo cncFile, long length) { var fileAccess = FileAccess.ReadWrite; var fileShare = FileShare.ReadWrite | FileShare.Delete; var memoryMappedFileAccess = MemoryMappedFileAccess.ReadWrite; - + var f = new FileStream(cncFile.FullName, FileMode.OpenOrCreate, fileAccess, fileShare); - var mmFile = MemoryMappedFile.CreateFromFile(f, null, length, memoryMappedFileAccess, HandleInheritability.None, false); + var mmFile = MemoryMappedFile.CreateFromFile( + f, + null, + length, + memoryMappedFileAccess, + HandleInheritability.None, + false + ); var mappedByteBuffer = new MappedByteBuffer(mmFile, 0, length); return mappedByteBuffer; } - /// /// Check that file exists and open file /// @@ -91,7 +108,9 @@ public static MappedByteBuffer MapNewOrExistingFile(FileInfo cncFile, long lengt /// the file public static MemoryMappedFile OpenMemoryMappedFile(string path) { - // mapMode == MapMode.ReadOnly -> here for parity with the Java version but no affect, UnauthorisedAccessExceptions/IOExceptions thrown when trying to open file in Read mode, all files are opened ReadWrite + // mapMode == MapMode.ReadOnly -> here for parity with the Java version but no affect; + // UnauthorisedAccessExceptions/IOExceptions thrown when trying to open file in Read + // mode, all files are opened ReadWrite CheckFileExists(path); @@ -106,15 +125,21 @@ public static MemoryMappedFile OpenMemoryMappedFile(string path) private static MemoryMappedFile OpenMemoryMappedFile(FileStream f) { var memoryMappedFileAccess = MemoryMappedFileAccess.ReadWrite; - return MemoryMappedFile.CreateFromFile(f, null, 0, memoryMappedFileAccess, HandleInheritability.None, - false); + return MemoryMappedFile.CreateFromFile( + f, + null, + 0, + memoryMappedFileAccess, + HandleInheritability.None, + false + ); } /// /// Return MappedByteBuffer for entire file /// /// The file itself will be closed, but the mapping will persist. - /// + /// /// /// /// of the file to map @@ -124,12 +149,11 @@ public static MappedByteBuffer MapExistingFile(FileStream fileStream) return new MappedByteBuffer(OpenMemoryMappedFile(fileStream)); } - /// /// Check that file exists, open file, and return MappedByteBuffer for entire file /// /// The file itself will be closed, but the mapping will persist. - /// + /// /// /// /// of the file to map @@ -142,7 +166,6 @@ public static MappedByteBuffer MapExistingFile(FileInfo location, string descrip return new MappedByteBuffer(OpenMemoryMappedFile(location.FullName)); } - /// /// Unmap a without waiting for the next GC cycle. /// @@ -195,10 +218,11 @@ public static void EnsureDirectoryExists(DirectoryInfo directory, string descrip if (!directory.Exists) { - throw new ArgumentException("could not create " + descriptionLabel + " directory: " + - directory.FullName); + throw new ArgumentException( + "could not create " + descriptionLabel + " directory: " + directory.FullName + ); } } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/MarkFile.cs b/src/Adaptive.Agrona/MarkFile.cs index 0f7f710e..ae706110 100644 --- a/src/Adaptive.Agrona/MarkFile.cs +++ b/src/Adaptive.Agrona/MarkFile.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.IO; using System.Text; using System.Threading; @@ -9,26 +25,26 @@ namespace Adaptive.Agrona { /// /// Interface for managing Command-n-Control files. - /// - /// The assumptions are: (1) the version field is an int in size, (2) the timestamp field is a long in size, - /// and (3) the version field comes before the timestamp field. + /// + /// The assumptions are: (1) the version field is an int in size, (2) the timestamp field is a long in size, and (3) + /// the version field comes before the timestamp field. /// public class MarkFile : IDisposable { - private readonly int versionFieldOffset; - private readonly int timestampFieldOffset; + private readonly int _versionFieldOffset; + private readonly int _timestampFieldOffset; - private readonly DirectoryInfo parentDir; - private readonly FileInfo markFile; - private readonly MappedByteBuffer mappedBuffer; - private readonly UnsafeBuffer buffer; + private readonly DirectoryInfo _parentDir; + private readonly FileInfo _markFile; + private readonly MappedByteBuffer _mappedBuffer; + private readonly UnsafeBuffer _buffer; - private volatile bool isClosed = false; + private volatile bool _isClosed = false; /// - /// Create a CnC directory and file if none present. Checking if an active CnC file exists and is active. Old CnC - /// file is deleted and recreated if not active. - /// + /// Create a CnC directory and file if none present. Checking if an active CnC file exists and is active. Old + /// CnC file is deleted and recreated if not active. + /// /// Total length of CnC file will be mapped until is called. /// /// for the CnC file @@ -42,27 +58,47 @@ public class MarkFile : IDisposable /// to use for time checks /// to use for existing CnC file and version field /// to use to signal progress or null - public MarkFile(DirectoryInfo directory, string filename, bool warnIfDirectoryExists, bool dirDeleteOnStart, - int versionFieldOffset, int timestampFieldOffset, int totalFileLength, long timeoutMs, - IEpochClock epochClock, Action versionCheck, Action logger) + public MarkFile( + DirectoryInfo directory, + string filename, + bool warnIfDirectoryExists, + bool dirDeleteOnStart, + int versionFieldOffset, + int timestampFieldOffset, + int totalFileLength, + long timeoutMs, + IEpochClock epochClock, + Action versionCheck, + Action logger + ) { ValidateOffsets(versionFieldOffset, timestampFieldOffset); - EnsureDirectoryExists(directory, filename, warnIfDirectoryExists, dirDeleteOnStart, versionFieldOffset, - timestampFieldOffset, timeoutMs, epochClock, versionCheck, logger); - - this.parentDir = directory; - this.markFile = new FileInfo(Path.Combine(directory.Name, filename)); - this.mappedBuffer = MapNewFile(markFile, totalFileLength); - this.buffer = new UnsafeBuffer(mappedBuffer.Pointer, totalFileLength); - this.versionFieldOffset = versionFieldOffset; - this.timestampFieldOffset = timestampFieldOffset; + EnsureDirectoryExists( + directory, + filename, + warnIfDirectoryExists, + dirDeleteOnStart, + versionFieldOffset, + timestampFieldOffset, + timeoutMs, + epochClock, + versionCheck, + logger + ); + + _parentDir = directory; + _markFile = new FileInfo(Path.Combine(directory.Name, filename)); + _mappedBuffer = MapNewFile(_markFile, totalFileLength); + _buffer = new UnsafeBuffer(_mappedBuffer.Pointer, totalFileLength); + _versionFieldOffset = versionFieldOffset; + _timestampFieldOffset = timestampFieldOffset; } /// - /// Create a CnC file if none present. Checking if an active CnC file exists and is active. Existing CnC file - /// is used if not active. - /// + /// Create a CnC file if none present. Checking if an active CnC file exists and is active. Existing CnC file is + /// used if not active. + /// /// Total length of CnC file will be mapped until is called. /// /// to use @@ -74,53 +110,86 @@ public MarkFile(DirectoryInfo directory, string filename, bool warnIfDirectoryEx /// to use for time checks /// to use for existing CnC file and version field /// to use to signal progress or null - public MarkFile(FileInfo markFile, bool shouldPreExist, int versionFieldOffset, int timestampFieldOffset, - int totalFileLength, long timeoutMs, IEpochClock epochClock, Action versionCheck, - Action logger) + public MarkFile( + FileInfo markFile, + bool shouldPreExist, + int versionFieldOffset, + int timestampFieldOffset, + int totalFileLength, + long timeoutMs, + IEpochClock epochClock, + Action versionCheck, + Action logger + ) { ValidateOffsets(versionFieldOffset, timestampFieldOffset); - this.parentDir = markFile.Directory; - this.markFile = markFile; - this.mappedBuffer = mapNewOrExistingMarkFile(markFile, shouldPreExist, versionFieldOffset, - timestampFieldOffset, totalFileLength, timeoutMs, epochClock, versionCheck, logger); - - this.buffer = new UnsafeBuffer(mappedBuffer.Pointer, totalFileLength); - this.versionFieldOffset = versionFieldOffset; - this.timestampFieldOffset = timestampFieldOffset; + _parentDir = markFile.Directory; + _markFile = markFile; + _mappedBuffer = mapNewOrExistingMarkFile( + markFile, + shouldPreExist, + versionFieldOffset, + timestampFieldOffset, + totalFileLength, + timeoutMs, + epochClock, + versionCheck, + logger + ); + + _buffer = new UnsafeBuffer(_mappedBuffer.Pointer, totalFileLength); + _versionFieldOffset = versionFieldOffset; + _timestampFieldOffset = timestampFieldOffset; } /// /// Map a pre-existing CnC file if one present and is active. - /// + /// /// Total length of CnC file will be mapped until is called. /// /// for the CnC file /// of the CnC file /// to use for version field access /// to use for timestamp field access - /// for the activity check (in milliseconds) and for how long to wait for file to exist + /// for the activity check (in milliseconds) and for how long to wait for file to exist + /// /// to use for time checks /// to use for existing CnC file and version field /// to use to signal progress or null - public MarkFile(DirectoryInfo directory, string filename, int versionFieldOffset, int timestampFieldOffset, - long timeoutMs, IEpochClock epochClock, Action versionCheck, Action logger) + public MarkFile( + DirectoryInfo directory, + string filename, + int versionFieldOffset, + int timestampFieldOffset, + long timeoutMs, + IEpochClock epochClock, + Action versionCheck, + Action logger + ) { ValidateOffsets(versionFieldOffset, timestampFieldOffset); - this.parentDir = directory; - this.markFile = new FileInfo(Path.Combine(directory.FullName, filename)); - this.mappedBuffer = MapExistingMarkFile(markFile, versionFieldOffset, timestampFieldOffset, timeoutMs, - epochClock, versionCheck, logger); - this.buffer = new UnsafeBuffer(mappedBuffer); - this.versionFieldOffset = versionFieldOffset; - this.timestampFieldOffset = timestampFieldOffset; + _parentDir = directory; + _markFile = new FileInfo(Path.Combine(directory.FullName, filename)); + _mappedBuffer = MapExistingMarkFile( + _markFile, + versionFieldOffset, + timestampFieldOffset, + timeoutMs, + epochClock, + versionCheck, + logger + ); + _buffer = new UnsafeBuffer(_mappedBuffer); + _versionFieldOffset = versionFieldOffset; + _timestampFieldOffset = timestampFieldOffset; } /// /// Manage a CnC file given a mapped file and offsets of version and timestamp. - /// - /// If mappedCncBuffer is not null, then it will be unmapped upon . + /// + /// If mappedCncBuffer is not null, then it will be unmapped upon . /// /// for the CnC fields /// for the version field @@ -129,12 +198,12 @@ public MarkFile(MappedByteBuffer mappedBuffer, int versionFieldOffset, int times { ValidateOffsets(versionFieldOffset, timestampFieldOffset); - this.parentDir = null; - this.markFile = null; - this.mappedBuffer = mappedBuffer; - this.buffer = new UnsafeBuffer(mappedBuffer); - this.versionFieldOffset = versionFieldOffset; - this.timestampFieldOffset = timestampFieldOffset; + _parentDir = null; + _markFile = null; + _mappedBuffer = mappedBuffer; + _buffer = new UnsafeBuffer(mappedBuffer); + _versionFieldOffset = versionFieldOffset; + _timestampFieldOffset = timestampFieldOffset; } /// @@ -147,95 +216,104 @@ public MarkFile(UnsafeBuffer buffer, int versionFieldOffset, int timestampFieldO { ValidateOffsets(versionFieldOffset, timestampFieldOffset); - this.parentDir = null; - this.markFile = null; - this.mappedBuffer = null; - this.buffer = buffer; - this.versionFieldOffset = versionFieldOffset; - this.timestampFieldOffset = timestampFieldOffset; + _parentDir = null; + _markFile = null; + _mappedBuffer = null; + _buffer = buffer; + _versionFieldOffset = versionFieldOffset; + _timestampFieldOffset = timestampFieldOffset; } public bool IsClosed() { - return isClosed; + return _isClosed; } public void Dispose() { - if (!isClosed) + if (!_isClosed) { - if (null != mappedBuffer) + if (null != _mappedBuffer) { - IoUtil.Unmap(mappedBuffer); + IoUtil.Unmap(_mappedBuffer); } - isClosed = true; + _isClosed = true; } } public void SignalReady(int version) { - buffer.PutIntOrdered(versionFieldOffset, version); + _buffer.PutIntOrdered(_versionFieldOffset, version); } public int VersionVolatile() { - return buffer.GetIntVolatile(versionFieldOffset); + return _buffer.GetIntVolatile(_versionFieldOffset); } public int VersionWeak() { - return buffer.GetInt(versionFieldOffset); + return _buffer.GetInt(_versionFieldOffset); } public void TimestampOrdered(long timestamp) { - buffer.PutLongOrdered(timestampFieldOffset, timestamp); + _buffer.PutLongOrdered(_timestampFieldOffset, timestamp); } - + public void TimestampRelease(long timestamp) { - buffer.PutLongRelease(timestampFieldOffset, timestamp); + _buffer.PutLongRelease(_timestampFieldOffset, timestamp); } public long TimestampVolatile() { - return buffer.GetLongVolatile(timestampFieldOffset); + return _buffer.GetLongVolatile(_timestampFieldOffset); } public long TimestampWeak() { - return buffer.GetLong(timestampFieldOffset); + return _buffer.GetLong(_timestampFieldOffset); } public void DeleteDirectory(bool ignoreFailures) { - IoUtil.Delete(parentDir, ignoreFailures); + IoUtil.Delete(_parentDir, ignoreFailures); } public DirectoryInfo ParentDirectory() { - return parentDir; + return _parentDir; } public FileInfo FileName() { - return markFile; + return _markFile; } public MappedByteBuffer MappedByteBuffer() { - return mappedBuffer; + return _mappedBuffer; } public UnsafeBuffer Buffer() { - return buffer; + return _buffer; } - public static void EnsureDirectoryExists(DirectoryInfo directory, string filename, bool warnIfDirectoryExists, - bool dirDeleteOnStart, int versionFieldOffset, int timestampFieldOffset, long timeoutMs, - IEpochClock epochClock, Action versionCheck, Action logger) + public static void EnsureDirectoryExists( + DirectoryInfo directory, + string filename, + bool warnIfDirectoryExists, + bool dirDeleteOnStart, + int versionFieldOffset, + int timestampFieldOffset, + long timeoutMs, + IEpochClock epochClock, + Action versionCheck, + Action logger + ) { FileInfo cncFile = new FileInfo(Path.Combine(directory.FullName, filename)); @@ -254,10 +332,17 @@ public static void EnsureDirectoryExists(DirectoryInfo directory, string filenam try { - if (IsActive(cncByteBuffer, epochClock, timeoutMs, versionFieldOffset, timestampFieldOffset, - versionCheck, logger)) + if (IsActive( + cncByteBuffer, + epochClock, + timeoutMs, + versionFieldOffset, + timestampFieldOffset, + versionCheck, + logger + )) { - throw new System.InvalidOperationException("active mark file detected"); + throw new InvalidOperationException("active mark file detected"); } } finally @@ -272,9 +357,15 @@ public static void EnsureDirectoryExists(DirectoryInfo directory, string filenam IoUtil.EnsureDirectoryExists(directory, directory.ToString()); } - public static MappedByteBuffer MapExistingMarkFile(FileInfo markFile, int versionFieldOffset, - int timestampFieldOffset, long timeoutMs, IEpochClock epochClock, Action versionCheck, - Action logger) + public static MappedByteBuffer MapExistingMarkFile( + FileInfo markFile, + int versionFieldOffset, + int timestampFieldOffset, + long timeoutMs, + IEpochClock epochClock, + Action versionCheck, + Action logger + ) { long startTimeMs = epochClock.Time(); @@ -320,9 +411,17 @@ public static MappedByteBuffer MapExistingMarkFile(FileInfo markFile, int versio } } - public static MappedByteBuffer mapNewOrExistingMarkFile(FileInfo markFile, bool shouldPreExist, - int versionFieldOffset, int timestampFieldOffset, long totalFileLength, long timeoutMs, - IEpochClock epochClock, Action versionCheck, Action logger) + public static MappedByteBuffer mapNewOrExistingMarkFile( + FileInfo markFile, + bool shouldPreExist, + int versionFieldOffset, + int timestampFieldOffset, + long totalFileLength, + long timeoutMs, + IEpochClock epochClock, + Action versionCheck, + Action logger + ) { MappedByteBuffer cncByteBuffer = null; @@ -371,8 +470,12 @@ public static MappedByteBuffer mapNewOrExistingMarkFile(FileInfo markFile, bool return cncByteBuffer; } - public static MappedByteBuffer MapExistingFile(FileInfo cncFile, Action logger, long offset, - long length) + public static MappedByteBuffer MapExistingFile( + FileInfo cncFile, + Action logger, + long offset, + long length + ) { if (cncFile.Exists) { @@ -407,8 +510,15 @@ public static MappedByteBuffer MapNewFile(FileInfo cncFile, long length) return IoUtil.MapNewFile(cncFile, length); } - public static bool IsActive(MappedByteBuffer cncByteBuffer, IEpochClock epochClock, long timeoutMs, - int versionFieldOffset, int timestampFieldOffset, Action versionCheck, Action logger) + public static bool IsActive( + MappedByteBuffer cncByteBuffer, + IEpochClock epochClock, + long timeoutMs, + int versionFieldOffset, + int timestampFieldOffset, + Action versionCheck, + Action logger + ) { if (null == cncByteBuffer) { @@ -454,12 +564,14 @@ private static void ValidateOffsets(int versionFieldOffset, int timestampFieldOf /// /// Ensure a link file exists if required for the actual mark file. A link file will contain the pathname of the /// actual mark file's parent directory. This is useful if the mark file should be stored on a different storage - /// medium to the directory of the service. This will create a file with name of in the . - /// If is an immediate child of then any file with the name of - /// will be deleted from the (so that links won't be present if not - /// required). + /// medium to the directory of the service. This will create a file with name of + /// in the . If is an immediate child of + /// then any file with the name of + /// will be deleted from the (so that links won't + /// be present if not required). /// - /// Directory where the mark file would normally be stored (e.g. archiveDir, clusterDir). + /// Directory where the mark file would normally be stored (e.g. archiveDir, + /// clusterDir). /// Location of actual mark file, e.g. /dev/shm/service/node0/archive-mark.dat /// Short name that should be used for the link file, e.g. archive-mark.lnk public static void EnsureMarkFileLink(DirectoryInfo serviceDir, FileInfo actualFile, string linkFilename) @@ -482,8 +594,9 @@ public static void EnsureMarkFileLink(DirectoryInfo serviceDir, FileInfo actualF } catch (Exception) { - throw new ArgumentException("Failed to resolve canonical path for markFile parent dir of " + - actualFile); + throw new ArgumentException( + "Failed to resolve canonical path for markFile parent dir of " + actualFile + ); } string linkFilePath = Path.Combine(serviceDirPath, linkFilename); @@ -526,4 +639,4 @@ internal static void Sleep(int durationMs) } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Objects.cs b/src/Adaptive.Agrona/Objects.cs index 02b0ea9b..f1489ecd 100644 --- a/src/Adaptive.Agrona/Objects.cs +++ b/src/Adaptive.Agrona/Objects.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; namespace Adaptive.Agrona { @@ -13,7 +29,7 @@ public static T RequireNonNull(T obj, string name) return obj; } - + public static T RequireNonNull(T obj) { if (obj == null) diff --git a/src/Adaptive.Agrona/PublicAPI.Shipped.txt b/src/Adaptive.Agrona/PublicAPI.Shipped.txt new file mode 100644 index 00000000..684e9658 --- /dev/null +++ b/src/Adaptive.Agrona/PublicAPI.Shipped.txt @@ -0,0 +1,874 @@ +abstract Adaptive.Agrona.Concurrent.StatusIndicator.SetOrdered(long value) -> void +abstract Adaptive.Agrona.Concurrent.StatusIndicatorReader.GetVolatile() -> long +abstract Adaptive.Agrona.Concurrent.StatusIndicatorReader.Id.get -> int +Adaptive.Agrona.BitUtil +Adaptive.Agrona.BitUtil.BitUtil() -> void +Adaptive.Agrona.BufferUtil +Adaptive.Agrona.BufferUtil.BufferUtil() -> void +Adaptive.Agrona.ByteBuffer +Adaptive.Agrona.ByteBuffer.~ByteBuffer() -> void +Adaptive.Agrona.ByteBuffer.BufferPointer.get -> System.IntPtr +Adaptive.Agrona.ByteBuffer.ByteBuffer(int capacity, int byteAlignment) -> void +Adaptive.Agrona.ByteBuffer.Capacity.get -> int +Adaptive.Agrona.ByteBuffer.Dispose() -> void +Adaptive.Agrona.ByteBuffer.Get(int index) -> byte +Adaptive.Agrona.ByteOrder +Adaptive.Agrona.ByteOrder.BigEndian = 0 -> Adaptive.Agrona.ByteOrder +Adaptive.Agrona.ByteOrder.LittleEndian = 1 -> Adaptive.Agrona.ByteOrder +Adaptive.Agrona.CacheLinePadding +Adaptive.Agrona.CacheLinePadding.CacheLinePadding() -> void +Adaptive.Agrona.CloseHelper +Adaptive.Agrona.Collections.ArrayUtil +Adaptive.Agrona.Collections.ArrayUtil.ArrayUtil() -> void +Adaptive.Agrona.Collections.CollectionUtil +Adaptive.Agrona.Collections.CollectionUtil.CollectionUtil() -> void +Adaptive.Agrona.Collections.DictionaryExtensions +Adaptive.Agrona.Collections.IntObjConsumer +Adaptive.Agrona.Collections.ListUtil +Adaptive.Agrona.Collections.Map +Adaptive.Agrona.Collections.Map.Clear() -> void +Adaptive.Agrona.Collections.Map.ContainsKey(TKey key) -> bool +Adaptive.Agrona.Collections.Map.Count.get -> int +Adaptive.Agrona.Collections.Map.ForEach(System.Action consumer) -> void +Adaptive.Agrona.Collections.Map.Get(TKey key) -> TValue +Adaptive.Agrona.Collections.Map.GetEnumerator() -> System.Collections.Generic.IEnumerator> +Adaptive.Agrona.Collections.Map.KeyValuePairs.get -> System.Collections.Generic.ICollection> +Adaptive.Agrona.Collections.Map.Map(TValue defaultValue = default(TValue)) -> void +Adaptive.Agrona.Collections.Map.Put(TKey key, TValue value) -> TValue +Adaptive.Agrona.Collections.Map.Remove(TKey key) -> TValue +Adaptive.Agrona.Collections.Map.Values.get -> System.Collections.Generic.ICollection +Adaptive.Agrona.Concurrent.AgentInvoker +Adaptive.Agrona.Concurrent.AgentInvoker.Agent() -> Adaptive.Agrona.Concurrent.IAgent +Adaptive.Agrona.Concurrent.AgentInvoker.AgentInvoker(Adaptive.Agrona.IErrorHandler errorHandler, Adaptive.Agrona.Concurrent.Status.AtomicCounter errorCounter, Adaptive.Agrona.Concurrent.IAgent agent) -> void +Adaptive.Agrona.Concurrent.AgentInvoker.Dispose() -> void +Adaptive.Agrona.Concurrent.AgentInvoker.Invoke() -> int +Adaptive.Agrona.Concurrent.AgentInvoker.IsClosed.get -> bool +Adaptive.Agrona.Concurrent.AgentInvoker.IsRunning.get -> bool +Adaptive.Agrona.Concurrent.AgentInvoker.IsStarted.get -> bool +Adaptive.Agrona.Concurrent.AgentInvoker.Start() -> void +Adaptive.Agrona.Concurrent.AgentRunner +Adaptive.Agrona.Concurrent.AgentRunner.Agent() -> Adaptive.Agrona.Concurrent.IAgent +Adaptive.Agrona.Concurrent.AgentRunner.AgentRunner(Adaptive.Agrona.Concurrent.IIdleStrategy idleStrategy, Adaptive.Agrona.IErrorHandler errorHandler, Adaptive.Agrona.Concurrent.Status.AtomicCounter errorCounter, Adaptive.Agrona.Concurrent.IAgent agent) -> void +Adaptive.Agrona.Concurrent.AgentRunner.Dispose() -> void +Adaptive.Agrona.Concurrent.AgentRunner.IsClosed.get -> bool +Adaptive.Agrona.Concurrent.AgentRunner.Run() -> void +Adaptive.Agrona.Concurrent.AgentRunner.Thread() -> System.Threading.Thread +Adaptive.Agrona.Concurrent.AgentTerminationException +Adaptive.Agrona.Concurrent.AgentTerminationException.AgentTerminationException() -> void +Adaptive.Agrona.Concurrent.AgentTerminationException.AgentTerminationException(string message) -> void +Adaptive.Agrona.Concurrent.AgentTerminationException.AgentTerminationException(System.Exception innerException) -> void +Adaptive.Agrona.Concurrent.AtomicBoolean +Adaptive.Agrona.Concurrent.AtomicBoolean.AtomicBoolean(bool initialValue) -> void +Adaptive.Agrona.Concurrent.AtomicBoolean.CompareAndSet(bool comparand, bool newValue) -> bool +Adaptive.Agrona.Concurrent.AtomicBoolean.Get() -> bool +Adaptive.Agrona.Concurrent.AtomicBoolean.Set(bool value) -> void +Adaptive.Agrona.Concurrent.AtomicLong +Adaptive.Agrona.Concurrent.AtomicLong.Add(long add) -> void +Adaptive.Agrona.Concurrent.AtomicLong.AtomicLong() -> void +Adaptive.Agrona.Concurrent.AtomicLong.Get() -> long +Adaptive.Agrona.Concurrent.AtomicLong.IncrementAndGet() -> long +Adaptive.Agrona.Concurrent.AtomicLong.LazySet(long newValue) -> void +Adaptive.Agrona.Concurrent.AtomicLong.Set(long value) -> void +Adaptive.Agrona.Concurrent.AtomicReference +Adaptive.Agrona.Concurrent.AtomicReference.AtomicReference() -> void +Adaptive.Agrona.Concurrent.AtomicReference.CompareAndSet(T compareValue, T newValue) -> bool +Adaptive.Agrona.Concurrent.AtomicReference.Get() -> T +Adaptive.Agrona.Concurrent.AtomicReference.GetAndSet(T value) -> T +Adaptive.Agrona.Concurrent.AtomicReference.LazySet(T newValue) -> void +Adaptive.Agrona.Concurrent.BackgroundThreadFactory +Adaptive.Agrona.Concurrent.BackgroundThreadFactory.BackgroundThreadFactory() -> void +Adaptive.Agrona.Concurrent.BackgroundThreadFactory.NewThread(System.Threading.ThreadStart runner) -> System.Threading.Thread +Adaptive.Agrona.Concurrent.BackoffIdleStrategy +Adaptive.Agrona.Concurrent.BackoffIdleStrategy.BackoffIdleStrategy(long maxSpins, long maxYields, long minParkPeriodMs, long maxParkPeriodMs) -> void +Adaptive.Agrona.Concurrent.BackoffIdleStrategy.Idle() -> void +Adaptive.Agrona.Concurrent.BackoffIdleStrategy.Idle(int workCount) -> void +Adaptive.Agrona.Concurrent.BackoffIdleStrategy.Reset() -> void +Adaptive.Agrona.Concurrent.Broadcast.BroadcastBufferDescriptor +Adaptive.Agrona.Concurrent.Broadcast.BroadcastBufferDescriptor.BroadcastBufferDescriptor() -> void +Adaptive.Agrona.Concurrent.Broadcast.BroadcastReceiver +Adaptive.Agrona.Concurrent.Broadcast.BroadcastReceiver.BroadcastReceiver(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer) -> void +Adaptive.Agrona.Concurrent.Broadcast.BroadcastReceiver.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Agrona.Concurrent.Broadcast.BroadcastReceiver.Capacity() -> int +Adaptive.Agrona.Concurrent.Broadcast.BroadcastReceiver.LappedCount() -> long +Adaptive.Agrona.Concurrent.Broadcast.BroadcastReceiver.Length() -> int +Adaptive.Agrona.Concurrent.Broadcast.BroadcastReceiver.Offset() -> int +Adaptive.Agrona.Concurrent.Broadcast.BroadcastReceiver.ReceiveNext() -> bool +Adaptive.Agrona.Concurrent.Broadcast.BroadcastReceiver.TypeId() -> int +Adaptive.Agrona.Concurrent.Broadcast.BroadcastReceiver.Validate() -> bool +Adaptive.Agrona.Concurrent.Broadcast.CopyBroadcastReceiver +Adaptive.Agrona.Concurrent.Broadcast.CopyBroadcastReceiver.CopyBroadcastReceiver() -> void +Adaptive.Agrona.Concurrent.Broadcast.CopyBroadcastReceiver.CopyBroadcastReceiver(Adaptive.Agrona.Concurrent.Broadcast.BroadcastReceiver receiver, Adaptive.Agrona.IMutableDirectBuffer scratchBuffer) -> void +Adaptive.Agrona.Concurrent.Broadcast.CopyBroadcastReceiver.CopyBroadcastReceiver(Adaptive.Agrona.Concurrent.Broadcast.BroadcastReceiver receiver, int scratchBufferLength) -> void +Adaptive.Agrona.Concurrent.Broadcast.CopyBroadcastReceiver.CopyBroadcastReceiver(Adaptive.Agrona.Concurrent.Broadcast.BroadcastReceiver receiver) -> void +Adaptive.Agrona.Concurrent.Broadcast.CopyBroadcastReceiver.Receive(Adaptive.Agrona.Concurrent.MessageHandler handler) -> int +Adaptive.Agrona.Concurrent.Broadcast.RecordDescriptor +Adaptive.Agrona.Concurrent.Broadcast.RecordDescriptor.RecordDescriptor() -> void +Adaptive.Agrona.Concurrent.BusySpinIdleStrategy +Adaptive.Agrona.Concurrent.BusySpinIdleStrategy.BusySpinIdleStrategy() -> void +Adaptive.Agrona.Concurrent.BusySpinIdleStrategy.Idle() -> void +Adaptive.Agrona.Concurrent.BusySpinIdleStrategy.Idle(int workCount) -> void +Adaptive.Agrona.Concurrent.BusySpinIdleStrategy.Reset() -> void +Adaptive.Agrona.Concurrent.CachedEpochClock +Adaptive.Agrona.Concurrent.CachedEpochClock.CachedEpochClock() -> void +Adaptive.Agrona.Concurrent.CachedEpochClock.Time() -> long +Adaptive.Agrona.Concurrent.CachedEpochClock.Update(long timeMs) -> void +Adaptive.Agrona.Concurrent.CompositeAgent +Adaptive.Agrona.Concurrent.CompositeAgent.CompositeAgent(params Adaptive.Agrona.Concurrent.IAgent[] agents) -> void +Adaptive.Agrona.Concurrent.CompositeAgent.CompositeAgent(System.Collections.Generic.List agents) -> void +Adaptive.Agrona.Concurrent.CompositeAgent.DoWork() -> int +Adaptive.Agrona.Concurrent.CompositeAgent.OnClose() -> void +Adaptive.Agrona.Concurrent.CompositeAgent.OnStart() -> void +Adaptive.Agrona.Concurrent.CompositeAgent.RoleName() -> string +Adaptive.Agrona.Concurrent.Configuration +Adaptive.Agrona.Concurrent.Configuration.Configuration() -> void +Adaptive.Agrona.Concurrent.ControllableIdleStrategy +Adaptive.Agrona.Concurrent.ControllableIdleStrategy.ControllableIdleStrategy(Adaptive.Agrona.Concurrent.StatusIndicatorReader statusIndicatorReader) -> void +Adaptive.Agrona.Concurrent.ControllableIdleStrategy.Idle() -> void +Adaptive.Agrona.Concurrent.ControllableIdleStrategy.Idle(int workCount) -> void +Adaptive.Agrona.Concurrent.ControllableIdleStrategy.Reset() -> void +Adaptive.Agrona.Concurrent.CountedErrorHandler +Adaptive.Agrona.Concurrent.CountedErrorHandler.CountedErrorHandler(Adaptive.Agrona.IErrorHandler errorHandler, Adaptive.Agrona.Concurrent.Status.AtomicCounter errorCounter) -> void +Adaptive.Agrona.Concurrent.CountedErrorHandler.OnError(System.Exception throwable) -> void +Adaptive.Agrona.Concurrent.DefaultThreadFactory +Adaptive.Agrona.Concurrent.DefaultThreadFactory.DefaultThreadFactory() -> void +Adaptive.Agrona.Concurrent.DefaultThreadFactory.NewThread(System.Threading.ThreadStart runner) -> System.Threading.Thread +Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog +Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog.DistinctErrorLog(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, Adaptive.Agrona.Concurrent.IEpochClock clock) -> void +Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog.DistinctObservation +Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog.DistinctObservation.DistinctObservation(System.Exception throwable, int offset) -> void +Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog.Record(System.Exception observation) -> bool +Adaptive.Agrona.Concurrent.Errors.ErrorConsumer +Adaptive.Agrona.Concurrent.Errors.ErrorLogReader +Adaptive.Agrona.Concurrent.Errors.ErrorLogReader.ErrorLogReader() -> void +Adaptive.Agrona.Concurrent.Errors.LoggingErrorHandler +Adaptive.Agrona.Concurrent.Errors.LoggingErrorHandler.Dispose() -> void +Adaptive.Agrona.Concurrent.Errors.LoggingErrorHandler.DistinctErrorLog() -> Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog +Adaptive.Agrona.Concurrent.Errors.LoggingErrorHandler.ErrorOverflow() -> System.IO.TextWriter +Adaptive.Agrona.Concurrent.Errors.LoggingErrorHandler.IsDiposed.get -> bool +Adaptive.Agrona.Concurrent.Errors.LoggingErrorHandler.LoggingErrorHandler(Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog log, System.IO.TextWriter errorOverflow) -> void +Adaptive.Agrona.Concurrent.Errors.LoggingErrorHandler.LoggingErrorHandler(Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog log) -> void +Adaptive.Agrona.Concurrent.Errors.LoggingErrorHandler.OnError(System.Exception exception) -> void +Adaptive.Agrona.Concurrent.IAgent +Adaptive.Agrona.Concurrent.IAgent.DoWork() -> int +Adaptive.Agrona.Concurrent.IAgent.OnClose() -> void +Adaptive.Agrona.Concurrent.IAgent.OnStart() -> void +Adaptive.Agrona.Concurrent.IAgent.RoleName() -> string +Adaptive.Agrona.Concurrent.IAtomicBuffer +Adaptive.Agrona.Concurrent.IAtomicBuffer.AddIntOrdered(int index, int increment) -> int +Adaptive.Agrona.Concurrent.IAtomicBuffer.AddLongOrdered(int index, long increment) -> long +Adaptive.Agrona.Concurrent.IAtomicBuffer.CompareAndSetInt(int index, int expectedValue, int updateValue) -> bool +Adaptive.Agrona.Concurrent.IAtomicBuffer.CompareAndSetLong(int index, long expectedValue, long updateValue) -> bool +Adaptive.Agrona.Concurrent.IAtomicBuffer.GetAndAddInt(int index, int delta) -> int +Adaptive.Agrona.Concurrent.IAtomicBuffer.GetAndAddLong(int index, long delta) -> long +Adaptive.Agrona.Concurrent.IAtomicBuffer.GetByteVolatile(int index) -> byte +Adaptive.Agrona.Concurrent.IAtomicBuffer.GetIntVolatile(int index) -> int +Adaptive.Agrona.Concurrent.IAtomicBuffer.GetLongVolatile(int index) -> long +Adaptive.Agrona.Concurrent.IAtomicBuffer.GetShortVolatile(int index) -> short +Adaptive.Agrona.Concurrent.IAtomicBuffer.PutByteVolatile(int index, byte value) -> void +Adaptive.Agrona.Concurrent.IAtomicBuffer.PutIntOrdered(int index, int value) -> void +Adaptive.Agrona.Concurrent.IAtomicBuffer.PutIntRelease(int index, int value) -> void +Adaptive.Agrona.Concurrent.IAtomicBuffer.PutIntVolatile(int index, int value) -> void +Adaptive.Agrona.Concurrent.IAtomicBuffer.PutLongOrdered(int index, long value) -> void +Adaptive.Agrona.Concurrent.IAtomicBuffer.PutLongRelease(int index, long value) -> void +Adaptive.Agrona.Concurrent.IAtomicBuffer.PutLongVolatile(int index, long value) -> void +Adaptive.Agrona.Concurrent.IAtomicBuffer.PutShortVolatile(int index, short value) -> void +Adaptive.Agrona.Concurrent.IAtomicBuffer.VerifyAlignment() -> void +Adaptive.Agrona.Concurrent.IdleStrategyFactory +Adaptive.Agrona.Concurrent.IEpochClock +Adaptive.Agrona.Concurrent.IEpochClock.Time() -> long +Adaptive.Agrona.Concurrent.IIdleStrategy +Adaptive.Agrona.Concurrent.IIdleStrategy.Idle() -> void +Adaptive.Agrona.Concurrent.IIdleStrategy.Idle(int workCount) -> void +Adaptive.Agrona.Concurrent.IIdleStrategy.Reset() -> void +Adaptive.Agrona.Concurrent.ILock +Adaptive.Agrona.Concurrent.ILock.Lock() -> void +Adaptive.Agrona.Concurrent.ILock.TryLock() -> bool +Adaptive.Agrona.Concurrent.ILock.Unlock() -> void +Adaptive.Agrona.Concurrent.INanoClock +Adaptive.Agrona.Concurrent.INanoClock.NanoTime() -> long +Adaptive.Agrona.Concurrent.IThreadFactory +Adaptive.Agrona.Concurrent.IThreadFactory.NewThread(System.Threading.ThreadStart runner) -> System.Threading.Thread +Adaptive.Agrona.Concurrent.MessageHandler +Adaptive.Agrona.Concurrent.NoOpIdleStrategy +Adaptive.Agrona.Concurrent.NoOpIdleStrategy.Idle() -> void +Adaptive.Agrona.Concurrent.NoOpIdleStrategy.Idle(int workCount) -> void +Adaptive.Agrona.Concurrent.NoOpIdleStrategy.NoOpIdleStrategy() -> void +Adaptive.Agrona.Concurrent.NoOpIdleStrategy.Reset() -> void +Adaptive.Agrona.Concurrent.NoOpLock +Adaptive.Agrona.Concurrent.NoOpLock.Lock() -> void +Adaptive.Agrona.Concurrent.NoOpLock.NoOpLock() -> void +Adaptive.Agrona.Concurrent.NoOpLock.TryLock() -> bool +Adaptive.Agrona.Concurrent.NoOpLock.Unlock() -> void +Adaptive.Agrona.Concurrent.NullEpochClock +Adaptive.Agrona.Concurrent.NullEpochClock.NullEpochClock() -> void +Adaptive.Agrona.Concurrent.NullEpochClock.Time() -> long +Adaptive.Agrona.Concurrent.ReentrantLock +Adaptive.Agrona.Concurrent.ReentrantLock.Lock() -> void +Adaptive.Agrona.Concurrent.ReentrantLock.ReentrantLock() -> void +Adaptive.Agrona.Concurrent.ReentrantLock.TryLock() -> bool +Adaptive.Agrona.Concurrent.ReentrantLock.Unlock() -> void +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.Abort(int index) -> void +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.Buffer() -> Adaptive.Agrona.Concurrent.IAtomicBuffer +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.Capacity() -> int +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.Commit(int index) -> void +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.ConsumerHeartbeatTime() -> long +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.ConsumerHeartbeatTime(long time) -> void +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.ConsumerPosition() -> long +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.MaxMsgLength() -> int +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.NextCorrelationId() -> long +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.ProducerPosition() -> long +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.Read(Adaptive.Agrona.Concurrent.MessageHandler handler, int messageCountLimit) -> int +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.Read(Adaptive.Agrona.Concurrent.MessageHandler handler) -> int +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.Size() -> int +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.TryClaim(int msgTypeId, int length) -> int +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.Unblock() -> bool +Adaptive.Agrona.Concurrent.RingBuffer.IRingBuffer.Write(int msgTypeId, Adaptive.Agrona.IDirectBuffer srcBuffer, int srcIndex, int length) -> bool +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.Abort(int index) -> void +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.Buffer() -> Adaptive.Agrona.Concurrent.IAtomicBuffer +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.Capacity() -> int +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.Commit(int index) -> void +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.ConsumerHeartbeatTime() -> long +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.ConsumerHeartbeatTime(long time) -> void +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.ConsumerPosition() -> long +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.ManyToOneRingBuffer(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer) -> void +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.MaxMsgLength() -> int +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.NextCorrelationId() -> long +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.ProducerPosition() -> long +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.Read(Adaptive.Agrona.Concurrent.MessageHandler handler) -> int +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.Size() -> int +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.TryClaim(int msgTypeId, int length) -> int +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.Unblock() -> bool +Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.Write(int msgTypeId, Adaptive.Agrona.IDirectBuffer srcBuffer, int offset, int length) -> bool +Adaptive.Agrona.Concurrent.RingBuffer.RecordDescriptor +Adaptive.Agrona.Concurrent.RingBuffer.RecordDescriptor.RecordDescriptor() -> void +Adaptive.Agrona.Concurrent.RingBuffer.RingBufferDescriptor +Adaptive.Agrona.Concurrent.RingBuffer.RingBufferDescriptor.RingBufferDescriptor() -> void +Adaptive.Agrona.Concurrent.ShutdownSignalBarrier +Adaptive.Agrona.Concurrent.ShutdownSignalBarrier.Await() -> void +Adaptive.Agrona.Concurrent.ShutdownSignalBarrier.Close() -> void +Adaptive.Agrona.Concurrent.ShutdownSignalBarrier.Dispose() -> void +Adaptive.Agrona.Concurrent.ShutdownSignalBarrier.Remove() -> void +Adaptive.Agrona.Concurrent.ShutdownSignalBarrier.ShutdownSignalBarrier() -> void +Adaptive.Agrona.Concurrent.ShutdownSignalBarrier.ShutdownSignalBarrier(Adaptive.Agrona.Concurrent.ShutdownSignalBarrier.SignalHandler signalHandler) -> void +Adaptive.Agrona.Concurrent.ShutdownSignalBarrier.Signal() -> void +Adaptive.Agrona.Concurrent.ShutdownSignalBarrier.SignalAll() -> void +Adaptive.Agrona.Concurrent.ShutdownSignalBarrier.SignalHandler +Adaptive.Agrona.Concurrent.SleepingIdleStrategy +Adaptive.Agrona.Concurrent.SleepingIdleStrategy.Idle() -> void +Adaptive.Agrona.Concurrent.SleepingIdleStrategy.Idle(int workCount) -> void +Adaptive.Agrona.Concurrent.SleepingIdleStrategy.Reset() -> void +Adaptive.Agrona.Concurrent.SleepingIdleStrategy.SleepingIdleStrategy(int sleepPeriodMs) -> void +Adaptive.Agrona.Concurrent.SpinWaitIdleStrategy +Adaptive.Agrona.Concurrent.SpinWaitIdleStrategy.Idle() -> void +Adaptive.Agrona.Concurrent.SpinWaitIdleStrategy.Idle(int workCount) -> void +Adaptive.Agrona.Concurrent.SpinWaitIdleStrategy.Reset() -> void +Adaptive.Agrona.Concurrent.SpinWaitIdleStrategy.SpinWaitIdleStrategy() -> void +Adaptive.Agrona.Concurrent.Status.AtomicCounter +Adaptive.Agrona.Concurrent.Status.AtomicCounter.AtomicCounter(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, int counterId, Adaptive.Agrona.Concurrent.Status.CountersManager countersManager) -> void +Adaptive.Agrona.Concurrent.Status.AtomicCounter.AtomicCounter(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, int counterId) -> void +Adaptive.Agrona.Concurrent.Status.AtomicCounter.CompareAndSet(long expectedValue, long updateValue) -> bool +Adaptive.Agrona.Concurrent.Status.AtomicCounter.Get() -> long +Adaptive.Agrona.Concurrent.Status.AtomicCounter.GetAndAdd(long increment) -> long +Adaptive.Agrona.Concurrent.Status.AtomicCounter.GetAndAddOrdered(long increment) -> long +Adaptive.Agrona.Concurrent.Status.AtomicCounter.GetWeak() -> long +Adaptive.Agrona.Concurrent.Status.AtomicCounter.Id.get -> int +Adaptive.Agrona.Concurrent.Status.AtomicCounter.Increment() -> long +Adaptive.Agrona.Concurrent.Status.AtomicCounter.IncrementOrdered() -> long +Adaptive.Agrona.Concurrent.Status.AtomicCounter.ProposeMax(long proposedValue) -> bool +Adaptive.Agrona.Concurrent.Status.AtomicCounter.ProposeMaxOrdered(long proposedValue) -> bool +Adaptive.Agrona.Concurrent.Status.AtomicCounter.Set(long value) -> void +Adaptive.Agrona.Concurrent.Status.AtomicCounter.SetOrdered(long value) -> void +Adaptive.Agrona.Concurrent.Status.AtomicCounter.SetRelease(long value) -> void +Adaptive.Agrona.Concurrent.Status.AtomicLongPosition +Adaptive.Agrona.Concurrent.Status.AtomicLongPosition.AtomicLongPosition() -> void +Adaptive.Agrona.Concurrent.Status.AtomicLongPosition.Dispose() -> void +Adaptive.Agrona.Concurrent.Status.AtomicLongPosition.Get() -> long +Adaptive.Agrona.Concurrent.Status.AtomicLongPosition.GetVolatile() -> long +Adaptive.Agrona.Concurrent.Status.AtomicLongPosition.Id.get -> int +Adaptive.Agrona.Concurrent.Status.AtomicLongPosition.ProposeMax(long proposedValue) -> bool +Adaptive.Agrona.Concurrent.Status.AtomicLongPosition.ProposeMaxOrdered(long proposedValue) -> bool +Adaptive.Agrona.Concurrent.Status.AtomicLongPosition.Set(long value) -> void +Adaptive.Agrona.Concurrent.Status.AtomicLongPosition.SetOrdered(long value) -> void +Adaptive.Agrona.Concurrent.Status.AtomicLongPosition.SetRelease(long value) -> void +Adaptive.Agrona.Concurrent.Status.AtomicLongPosition.SetVolatile(long value) -> void +Adaptive.Agrona.Concurrent.Status.CountersManager +Adaptive.Agrona.Concurrent.Status.CountersManager.Allocate(int typeId, Adaptive.Agrona.IDirectBuffer keyBuffer, int keyOffset, int keyLength, Adaptive.Agrona.IDirectBuffer labelBuffer, int labelOffset, int labelLength) -> int +Adaptive.Agrona.Concurrent.Status.CountersManager.Allocate(string label, int typeId = 0) -> int +Adaptive.Agrona.Concurrent.Status.CountersManager.Allocate(string label, int typeId, System.Action keyFunc) -> int +Adaptive.Agrona.Concurrent.Status.CountersManager.CountersManager(Adaptive.Agrona.Concurrent.IAtomicBuffer metaDataBuffer, Adaptive.Agrona.Concurrent.IAtomicBuffer valuesBuffer, System.Text.Encoding labelCharset, Adaptive.Agrona.Concurrent.IEpochClock epochClock, long freeToReuseTimeoutMs) -> void +Adaptive.Agrona.Concurrent.Status.CountersManager.CountersManager(Adaptive.Agrona.Concurrent.IAtomicBuffer metaDataBuffer, Adaptive.Agrona.Concurrent.IAtomicBuffer valuesBuffer, System.Text.Encoding labelCharset) -> void +Adaptive.Agrona.Concurrent.Status.CountersManager.CountersManager(Adaptive.Agrona.Concurrent.IAtomicBuffer metaDataBuffer, Adaptive.Agrona.Concurrent.IAtomicBuffer valuesBuffer) -> void +Adaptive.Agrona.Concurrent.Status.CountersManager.Free(int counterId) -> void +Adaptive.Agrona.Concurrent.Status.CountersManager.NewCounter(int typeId, Adaptive.Agrona.IDirectBuffer keyBuffer, int keyOffset, int keyLength, Adaptive.Agrona.IDirectBuffer labelBuffer, int labelOffset, int labelLength) -> Adaptive.Agrona.Concurrent.Status.AtomicCounter +Adaptive.Agrona.Concurrent.Status.CountersManager.NewCounter(string label, int typeId, System.Action keyFunc) -> Adaptive.Agrona.Concurrent.Status.AtomicCounter +Adaptive.Agrona.Concurrent.Status.CountersManager.NewCounter(string label, int typeId) -> Adaptive.Agrona.Concurrent.Status.AtomicCounter +Adaptive.Agrona.Concurrent.Status.CountersManager.NewCounter(string label) -> Adaptive.Agrona.Concurrent.Status.AtomicCounter +Adaptive.Agrona.Concurrent.Status.CountersManager.SetCounterValue(int counterId, long value) -> void +Adaptive.Agrona.Concurrent.Status.CountersReader +Adaptive.Agrona.Concurrent.Status.CountersReader.CounterConsumer +Adaptive.Agrona.Concurrent.Status.CountersReader.CountersReader(Adaptive.Agrona.Concurrent.IAtomicBuffer metaDataBuffer, Adaptive.Agrona.Concurrent.IAtomicBuffer valuesBuffer, System.Text.Encoding encoding) -> void +Adaptive.Agrona.Concurrent.Status.CountersReader.CountersReader(Adaptive.Agrona.Concurrent.IAtomicBuffer metaDataBuffer, Adaptive.Agrona.Concurrent.IAtomicBuffer valuesBuffer) -> void +Adaptive.Agrona.Concurrent.Status.CountersReader.FindByTypeIdAndRegistrationId(int typeId, long registrationId) -> int +Adaptive.Agrona.Concurrent.Status.CountersReader.ForEach(Adaptive.Agrona.Collections.IntObjConsumer consumer) -> void +Adaptive.Agrona.Concurrent.Status.CountersReader.ForEach(Adaptive.Agrona.Concurrent.Status.CountersReader.CounterConsumer consumer) -> void +Adaptive.Agrona.Concurrent.Status.CountersReader.ForEach(Adaptive.Agrona.Concurrent.Status.CountersReader.MetaData metaData) -> void +Adaptive.Agrona.Concurrent.Status.CountersReader.GetCounterLabel(int counterId) -> string +Adaptive.Agrona.Concurrent.Status.CountersReader.GetCounterRegistrationId(int counterId) -> long +Adaptive.Agrona.Concurrent.Status.CountersReader.GetCounterState(int counterId) -> int +Adaptive.Agrona.Concurrent.Status.CountersReader.GetCounterTypeId(int counterId) -> int +Adaptive.Agrona.Concurrent.Status.CountersReader.GetCounterValue(int counterId) -> long +Adaptive.Agrona.Concurrent.Status.CountersReader.GetFreeForReuseDeadline(int counterId) -> long +Adaptive.Agrona.Concurrent.Status.CountersReader.LabelCharset.get -> System.Text.Encoding +Adaptive.Agrona.Concurrent.Status.CountersReader.MaxCounterId.get -> int +Adaptive.Agrona.Concurrent.Status.CountersReader.MaxCounterId.set -> void +Adaptive.Agrona.Concurrent.Status.CountersReader.MetaData +Adaptive.Agrona.Concurrent.Status.CountersReader.MetaDataBuffer.get -> Adaptive.Agrona.Concurrent.IAtomicBuffer +Adaptive.Agrona.Concurrent.Status.CountersReader.ValidateCounterId(int counterId) -> void +Adaptive.Agrona.Concurrent.Status.CountersReader.ValuesBuffer.get -> Adaptive.Agrona.Concurrent.IAtomicBuffer +Adaptive.Agrona.Concurrent.Status.IPosition +Adaptive.Agrona.Concurrent.Status.IPosition.Get() -> long +Adaptive.Agrona.Concurrent.Status.IPosition.ProposeMax(long proposedValue) -> bool +Adaptive.Agrona.Concurrent.Status.IPosition.ProposeMaxOrdered(long proposedValue) -> bool +Adaptive.Agrona.Concurrent.Status.IPosition.Set(long value) -> void +Adaptive.Agrona.Concurrent.Status.IPosition.SetOrdered(long value) -> void +Adaptive.Agrona.Concurrent.Status.IPosition.SetRelease(long value) -> void +Adaptive.Agrona.Concurrent.Status.IPosition.SetVolatile(long value) -> void +Adaptive.Agrona.Concurrent.Status.IReadablePosition +Adaptive.Agrona.Concurrent.Status.IReadablePosition.GetVolatile() -> long +Adaptive.Agrona.Concurrent.Status.IReadablePosition.Id.get -> int +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition.Dispose() -> void +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition.Get() -> long +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition.GetVolatile() -> long +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition.Id.get -> int +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition.IsClosed.get -> bool +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition.ProposeMax(long proposedValue) -> bool +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition.ProposeMaxOrdered(long proposedValue) -> bool +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition.Set(long value) -> void +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition.SetOrdered(long value) -> void +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition.SetRelease(long value) -> void +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition.SetVolatile(long value) -> void +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition.UnsafeBufferPosition(Adaptive.Agrona.Concurrent.UnsafeBuffer buffer, int counterId, Adaptive.Agrona.Concurrent.Status.CountersManager countersManager) -> void +Adaptive.Agrona.Concurrent.Status.UnsafeBufferPosition.UnsafeBufferPosition(Adaptive.Agrona.Concurrent.UnsafeBuffer buffer, int counterId) -> void +Adaptive.Agrona.Concurrent.StatusIndicator +Adaptive.Agrona.Concurrent.StatusIndicator.StatusIndicator() -> void +Adaptive.Agrona.Concurrent.StatusIndicatorReader +Adaptive.Agrona.Concurrent.StatusIndicatorReader.StatusIndicatorReader() -> void +Adaptive.Agrona.Concurrent.StopwatchClock +Adaptive.Agrona.Concurrent.StopwatchClock.NanoTime() -> long +Adaptive.Agrona.Concurrent.StopwatchClock.StopwatchClock() -> void +Adaptive.Agrona.Concurrent.SystemEpochClock +Adaptive.Agrona.Concurrent.SystemEpochClock.SystemEpochClock() -> void +Adaptive.Agrona.Concurrent.SystemEpochClock.Time() -> long +Adaptive.Agrona.Concurrent.SystemNanoClock +Adaptive.Agrona.Concurrent.SystemNanoClock.NanoTime() -> long +Adaptive.Agrona.Concurrent.SystemNanoClock.SystemNanoClock() -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer +Adaptive.Agrona.Concurrent.UnsafeBuffer.~UnsafeBuffer() -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.AddIntOrdered(int index, int increment) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.AddLongOrdered(int index, long increment) -> long +Adaptive.Agrona.Concurrent.UnsafeBuffer.BoundsCheck(int index, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.BufferPointer.get -> System.IntPtr +Adaptive.Agrona.Concurrent.UnsafeBuffer.ByteArray.get -> byte[] +Adaptive.Agrona.Concurrent.UnsafeBuffer.ByteBuffer.get -> Adaptive.Agrona.ByteBuffer +Adaptive.Agrona.Concurrent.UnsafeBuffer.Capacity.get -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.CheckLimit(int limit) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.CompareAndSetInt(int index, int expectedValue, int updateValue) -> bool +Adaptive.Agrona.Concurrent.UnsafeBuffer.CompareAndSetLong(int index, long expectedValue, long updateValue) -> bool +Adaptive.Agrona.Concurrent.UnsafeBuffer.CompareTo(Adaptive.Agrona.IDirectBuffer that) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.Dispose() -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetAndAddInt(int index, int delta) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetAndAddLong(int index, long delta) -> long +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetByte(int index) -> byte +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetBytes(int index, Adaptive.Agrona.IMutableDirectBuffer dstBuffer, int dstIndex, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetBytes(int index, byte[] dst, int offset, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetBytes(int index, byte[] dst) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetByteVolatile(int index) -> byte +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetChar(int index) -> char +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetDouble(int index, Adaptive.Agrona.ByteOrder byteOrder) -> double +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetDouble(int index) -> double +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetFloat(int index, Adaptive.Agrona.ByteOrder byteOrder) -> float +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetFloat(int index) -> float +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetInt(int index, Adaptive.Agrona.ByteOrder byteOrder) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetInt(int index) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetIntVolatile(int index) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetLong(int index, Adaptive.Agrona.ByteOrder byteOrder) -> long +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetLong(int index) -> long +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetLongVolatile(int index) -> long +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetShort(int index, Adaptive.Agrona.ByteOrder byteOrder) -> short +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetShort(int index) -> short +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetShortVolatile(int index) -> short +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetStringAscii(int index, int length, System.Text.StringBuilder appendable) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetStringAscii(int index, int length) -> string +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetStringAscii(int index, System.Text.StringBuilder appendable) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetStringAscii(int index) -> string +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetStringUtf8(int index, int length) -> string +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetStringUtf8(int index) -> string +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetStringWithoutLengthAscii(int index, int length) -> string +Adaptive.Agrona.Concurrent.UnsafeBuffer.GetStringWithoutLengthUtf8(int index, int length) -> string +Adaptive.Agrona.Concurrent.UnsafeBuffer.IsExpandable.get -> bool +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutByte(int index, byte value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutBytes(int index, Adaptive.Agrona.IDirectBuffer srcBuffer, int srcIndex, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutBytes(int index, byte[] src, int offset, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutBytes(int index, byte[] src) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutByteVolatile(int index, byte value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutChar(int index, char value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutDouble(int index, double value, Adaptive.Agrona.ByteOrder byteOrder) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutDouble(int index, double value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutFloat(int index, float value, Adaptive.Agrona.ByteOrder byteOrder) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutFloat(int index, float value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutInt(int index, int value, Adaptive.Agrona.ByteOrder byteOrder) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutInt(int index, int value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutIntOrdered(int index, int value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutIntRelease(int index, int value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutIntVolatile(int index, int value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutLong(int index, long value, Adaptive.Agrona.ByteOrder byteOrder) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutLong(int index, long value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutLongOrdered(int index, long value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutLongRelease(int index, long value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutLongVolatile(int index, long value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutShort(int index, short value, Adaptive.Agrona.ByteOrder byteOrder) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutShort(int index, short value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutShortVolatile(int index, short value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutStringAscii(int index, string value, int maxEncodedSize) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutStringAscii(int index, string value) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutStringUtf8(int index, string value, int maxEncodedSize) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutStringUtf8(int index, string value) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutStringWithoutLengthAscii(int index, string value, int valueOffset, int length) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutStringWithoutLengthAscii(int index, string value) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.PutStringWithoutLengthUtf8(int index, string value) -> int +Adaptive.Agrona.Concurrent.UnsafeBuffer.SetMemory(int index, int length, byte value) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.UnsafeBuffer() -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.UnsafeBuffer(Adaptive.Agrona.ByteBuffer buffer) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.UnsafeBuffer(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.UnsafeBuffer(Adaptive.Agrona.IDirectBuffer buffer) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.UnsafeBuffer(Adaptive.Agrona.Util.MappedByteBuffer buffer, int offset, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.UnsafeBuffer(Adaptive.Agrona.Util.MappedByteBuffer buffer) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.UnsafeBuffer(byte[] buffer, int offset, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.UnsafeBuffer(byte[] buffer) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.UnsafeBuffer(System.IntPtr address, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.UnsafeBuffer(System.IntPtr address, int offset, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.VerifyAlignment() -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.Wrap(Adaptive.Agrona.ByteBuffer buffer) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.Wrap(Adaptive.Agrona.IDirectBuffer buffer) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.Wrap(byte[] buffer, int offset, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.Wrap(byte[] buffer) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.Wrap(byte* pointer, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.Wrap(byte* pointer, int offset, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.Wrap(int memoryAddress, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.Wrap(System.IntPtr pointer, int length) -> void +Adaptive.Agrona.Concurrent.UnsafeBuffer.Wrap(System.IntPtr pointer, int offset, int length) -> void +Adaptive.Agrona.Concurrent.YieldingIdleStrategy +Adaptive.Agrona.Concurrent.YieldingIdleStrategy.Idle() -> void +Adaptive.Agrona.Concurrent.YieldingIdleStrategy.Idle(int workCount) -> void +Adaptive.Agrona.Concurrent.YieldingIdleStrategy.Reset() -> void +Adaptive.Agrona.Concurrent.YieldingIdleStrategy.YieldingIdleStrategy() -> void +Adaptive.Agrona.DelegatingErrorHandler +Adaptive.Agrona.DelegatingErrorHandler.Next(Adaptive.Agrona.IErrorHandler errorHandler) -> void +Adaptive.Agrona.EndianessConverter +Adaptive.Agrona.ErrorHandler +Adaptive.Agrona.ExpandableArrayBuffer +Adaptive.Agrona.ExpandableArrayBuffer.~ExpandableArrayBuffer() -> void +Adaptive.Agrona.ExpandableArrayBuffer.BoundsCheck(int index, int length) -> void +Adaptive.Agrona.ExpandableArrayBuffer.BufferPointer.get -> System.IntPtr +Adaptive.Agrona.ExpandableArrayBuffer.ByteArray.get -> byte[] +Adaptive.Agrona.ExpandableArrayBuffer.ByteBuffer.get -> Adaptive.Agrona.ByteBuffer +Adaptive.Agrona.ExpandableArrayBuffer.Capacity.get -> int +Adaptive.Agrona.ExpandableArrayBuffer.CheckLimit(int limit) -> void +Adaptive.Agrona.ExpandableArrayBuffer.CompareTo(Adaptive.Agrona.IDirectBuffer other) -> int +Adaptive.Agrona.ExpandableArrayBuffer.ExpandableArrayBuffer() -> void +Adaptive.Agrona.ExpandableArrayBuffer.ExpandableArrayBuffer(int initialCapacity) -> void +Adaptive.Agrona.ExpandableArrayBuffer.GetByte(int index) -> byte +Adaptive.Agrona.ExpandableArrayBuffer.GetBytes(int index, Adaptive.Agrona.IMutableDirectBuffer dstBuffer, int dstIndex, int length) -> void +Adaptive.Agrona.ExpandableArrayBuffer.GetBytes(int index, byte[] dst, int offset, int length) -> void +Adaptive.Agrona.ExpandableArrayBuffer.GetBytes(int index, byte[] dst) -> void +Adaptive.Agrona.ExpandableArrayBuffer.GetChar(int index) -> char +Adaptive.Agrona.ExpandableArrayBuffer.GetDouble(int index) -> double +Adaptive.Agrona.ExpandableArrayBuffer.GetFloat(int index) -> float +Adaptive.Agrona.ExpandableArrayBuffer.GetInt(int index, Adaptive.Agrona.ByteOrder byteOrder) -> int +Adaptive.Agrona.ExpandableArrayBuffer.GetInt(int index) -> int +Adaptive.Agrona.ExpandableArrayBuffer.GetLong(int index, Adaptive.Agrona.ByteOrder byteOrder) -> long +Adaptive.Agrona.ExpandableArrayBuffer.GetLong(int index) -> long +Adaptive.Agrona.ExpandableArrayBuffer.GetShort(int index, Adaptive.Agrona.ByteOrder byteOrder) -> short +Adaptive.Agrona.ExpandableArrayBuffer.GetShort(int index) -> short +Adaptive.Agrona.ExpandableArrayBuffer.GetStringAscii(int index, int length, System.Text.StringBuilder appendable) -> int +Adaptive.Agrona.ExpandableArrayBuffer.GetStringAscii(int index, int length) -> string +Adaptive.Agrona.ExpandableArrayBuffer.GetStringAscii(int index, System.Text.StringBuilder appendable) -> int +Adaptive.Agrona.ExpandableArrayBuffer.GetStringAscii(int index) -> string +Adaptive.Agrona.ExpandableArrayBuffer.GetStringUtf8(int index, int length) -> string +Adaptive.Agrona.ExpandableArrayBuffer.GetStringUtf8(int index) -> string +Adaptive.Agrona.ExpandableArrayBuffer.GetStringWithoutLengthAscii(int index, int length) -> string +Adaptive.Agrona.ExpandableArrayBuffer.GetStringWithoutLengthUtf8(int index, int length) -> string +Adaptive.Agrona.ExpandableArrayBuffer.IsExpandable.get -> bool +Adaptive.Agrona.ExpandableArrayBuffer.PutByte(int index, byte value) -> void +Adaptive.Agrona.ExpandableArrayBuffer.PutBytes(int index, Adaptive.Agrona.IDirectBuffer srcBuffer, int srcIndex, int length) -> void +Adaptive.Agrona.ExpandableArrayBuffer.PutBytes(int index, byte[] src, int offset, int length) -> void +Adaptive.Agrona.ExpandableArrayBuffer.PutBytes(int index, byte[] src) -> void +Adaptive.Agrona.ExpandableArrayBuffer.PutChar(int index, char value) -> void +Adaptive.Agrona.ExpandableArrayBuffer.PutDouble(int index, double value) -> void +Adaptive.Agrona.ExpandableArrayBuffer.PutFloat(int index, float value) -> void +Adaptive.Agrona.ExpandableArrayBuffer.PutInt(int index, int value, Adaptive.Agrona.ByteOrder byteOrder) -> void +Adaptive.Agrona.ExpandableArrayBuffer.PutInt(int index, int value) -> void +Adaptive.Agrona.ExpandableArrayBuffer.PutLong(int index, long value, Adaptive.Agrona.ByteOrder byteOrder) -> void +Adaptive.Agrona.ExpandableArrayBuffer.PutLong(int index, long value) -> void +Adaptive.Agrona.ExpandableArrayBuffer.PutShort(int index, short value, Adaptive.Agrona.ByteOrder byteOrder) -> void +Adaptive.Agrona.ExpandableArrayBuffer.PutShort(int index, short value) -> void +Adaptive.Agrona.ExpandableArrayBuffer.PutStringAscii(int index, string value, int maxEncodedSize) -> int +Adaptive.Agrona.ExpandableArrayBuffer.PutStringAscii(int index, string value) -> int +Adaptive.Agrona.ExpandableArrayBuffer.PutStringUtf8(int index, string value, int maxEncodedSize) -> int +Adaptive.Agrona.ExpandableArrayBuffer.PutStringUtf8(int index, string value) -> int +Adaptive.Agrona.ExpandableArrayBuffer.PutStringWithoutLengthAscii(int index, string value, int valueOffset, int length) -> int +Adaptive.Agrona.ExpandableArrayBuffer.PutStringWithoutLengthAscii(int index, string value) -> int +Adaptive.Agrona.ExpandableArrayBuffer.PutStringWithoutLengthUtf8(int index, string value) -> int +Adaptive.Agrona.ExpandableArrayBuffer.SetMemory(int index, int length, byte value) -> void +Adaptive.Agrona.ExpandableArrayBuffer.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> void +Adaptive.Agrona.ExpandableArrayBuffer.Wrap(Adaptive.Agrona.IDirectBuffer buffer) -> void +Adaptive.Agrona.ExpandableArrayBuffer.Wrap(byte[] buffer, int offset, int length) -> void +Adaptive.Agrona.ExpandableArrayBuffer.Wrap(byte[] buffer) -> void +Adaptive.Agrona.ExpandableArrayBuffer.Wrap(System.IntPtr pointer, int length) -> void +Adaptive.Agrona.ExpandableArrayBuffer.Wrap(System.IntPtr pointer, int offset, int length) -> void +Adaptive.Agrona.IDirectBuffer +Adaptive.Agrona.IDirectBuffer.BoundsCheck(int index, int length) -> void +Adaptive.Agrona.IDirectBuffer.BufferPointer.get -> System.IntPtr +Adaptive.Agrona.IDirectBuffer.ByteArray.get -> byte[] +Adaptive.Agrona.IDirectBuffer.ByteBuffer.get -> Adaptive.Agrona.ByteBuffer +Adaptive.Agrona.IDirectBuffer.Capacity.get -> int +Adaptive.Agrona.IDirectBuffer.CheckLimit(int limit) -> void +Adaptive.Agrona.IDirectBuffer.GetByte(int index) -> byte +Adaptive.Agrona.IDirectBuffer.GetBytes(int index, Adaptive.Agrona.IMutableDirectBuffer dstBuffer, int dstIndex, int length) -> void +Adaptive.Agrona.IDirectBuffer.GetBytes(int index, byte[] dst, int offset, int length) -> void +Adaptive.Agrona.IDirectBuffer.GetBytes(int index, byte[] dst) -> void +Adaptive.Agrona.IDirectBuffer.GetChar(int index) -> char +Adaptive.Agrona.IDirectBuffer.GetDouble(int index) -> double +Adaptive.Agrona.IDirectBuffer.GetFloat(int index) -> float +Adaptive.Agrona.IDirectBuffer.GetInt(int index, Adaptive.Agrona.ByteOrder byteOrder) -> int +Adaptive.Agrona.IDirectBuffer.GetInt(int index) -> int +Adaptive.Agrona.IDirectBuffer.GetLong(int index, Adaptive.Agrona.ByteOrder byteOrder) -> long +Adaptive.Agrona.IDirectBuffer.GetLong(int index) -> long +Adaptive.Agrona.IDirectBuffer.GetShort(int index, Adaptive.Agrona.ByteOrder byteOrder) -> short +Adaptive.Agrona.IDirectBuffer.GetShort(int index) -> short +Adaptive.Agrona.IDirectBuffer.GetStringAscii(int index, int length, System.Text.StringBuilder appendable) -> int +Adaptive.Agrona.IDirectBuffer.GetStringAscii(int index, int length) -> string +Adaptive.Agrona.IDirectBuffer.GetStringAscii(int index, System.Text.StringBuilder appendable) -> int +Adaptive.Agrona.IDirectBuffer.GetStringAscii(int index) -> string +Adaptive.Agrona.IDirectBuffer.GetStringUtf8(int index, int length) -> string +Adaptive.Agrona.IDirectBuffer.GetStringUtf8(int index) -> string +Adaptive.Agrona.IDirectBuffer.GetStringWithoutLengthAscii(int index, int length) -> string +Adaptive.Agrona.IDirectBuffer.GetStringWithoutLengthUtf8(int index, int length) -> string +Adaptive.Agrona.IDirectBuffer.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> void +Adaptive.Agrona.IDirectBuffer.Wrap(Adaptive.Agrona.IDirectBuffer buffer) -> void +Adaptive.Agrona.IDirectBuffer.Wrap(byte[] buffer, int offset, int length) -> void +Adaptive.Agrona.IDirectBuffer.Wrap(byte[] buffer) -> void +Adaptive.Agrona.IDirectBuffer.Wrap(System.IntPtr pointer, int length) -> void +Adaptive.Agrona.IDirectBuffer.Wrap(System.IntPtr pointer, int offset, int length) -> void +Adaptive.Agrona.IErrorHandler +Adaptive.Agrona.IErrorHandler.OnError(System.Exception exception) -> void +Adaptive.Agrona.IManagedResource +Adaptive.Agrona.IManagedResource.Delete() -> void +Adaptive.Agrona.IManagedResource.TimeOfLastStateChange() -> long +Adaptive.Agrona.IManagedResource.TimeOfLastStateChange(long time) -> void +Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Agrona.IMutableDirectBuffer.IsExpandable.get -> bool +Adaptive.Agrona.IMutableDirectBuffer.PutByte(int index, byte value) -> void +Adaptive.Agrona.IMutableDirectBuffer.PutBytes(int index, Adaptive.Agrona.IDirectBuffer srcBuffer, int srcIndex, int length) -> void +Adaptive.Agrona.IMutableDirectBuffer.PutBytes(int index, byte[] src, int offset, int length) -> void +Adaptive.Agrona.IMutableDirectBuffer.PutBytes(int index, byte[] src) -> void +Adaptive.Agrona.IMutableDirectBuffer.PutChar(int index, char value) -> void +Adaptive.Agrona.IMutableDirectBuffer.PutDouble(int index, double value) -> void +Adaptive.Agrona.IMutableDirectBuffer.PutFloat(int index, float value) -> void +Adaptive.Agrona.IMutableDirectBuffer.PutInt(int index, int value, Adaptive.Agrona.ByteOrder byteOrder) -> void +Adaptive.Agrona.IMutableDirectBuffer.PutInt(int index, int value) -> void +Adaptive.Agrona.IMutableDirectBuffer.PutLong(int index, long value, Adaptive.Agrona.ByteOrder byteOrder) -> void +Adaptive.Agrona.IMutableDirectBuffer.PutLong(int index, long value) -> void +Adaptive.Agrona.IMutableDirectBuffer.PutShort(int index, short value, Adaptive.Agrona.ByteOrder byteOrder) -> void +Adaptive.Agrona.IMutableDirectBuffer.PutShort(int index, short value) -> void +Adaptive.Agrona.IMutableDirectBuffer.PutStringAscii(int index, string value) -> int +Adaptive.Agrona.IMutableDirectBuffer.PutStringUtf8(int index, string value, int maxEncodedSize) -> int +Adaptive.Agrona.IMutableDirectBuffer.PutStringUtf8(int index, string value) -> int +Adaptive.Agrona.IMutableDirectBuffer.PutStringWithoutLengthAscii(int index, string value, int valueOffset, int length) -> int +Adaptive.Agrona.IMutableDirectBuffer.PutStringWithoutLengthAscii(int index, string value) -> int +Adaptive.Agrona.IMutableDirectBuffer.PutStringWithoutLengthUtf8(int index, string value) -> int +Adaptive.Agrona.IMutableDirectBuffer.SetMemory(int index, int length, byte value) -> void +Adaptive.Agrona.IoUtil +Adaptive.Agrona.IoUtil.IoUtil() -> void +Adaptive.Agrona.MapMode +Adaptive.Agrona.MapMode.ReadOnly = 0 -> Adaptive.Agrona.MapMode +Adaptive.Agrona.MapMode.ReadWrite = 1 -> Adaptive.Agrona.MapMode +Adaptive.Agrona.MarkFile +Adaptive.Agrona.MarkFile.Buffer() -> Adaptive.Agrona.Concurrent.UnsafeBuffer +Adaptive.Agrona.MarkFile.DeleteDirectory(bool ignoreFailures) -> void +Adaptive.Agrona.MarkFile.Dispose() -> void +Adaptive.Agrona.MarkFile.FileName() -> System.IO.FileInfo +Adaptive.Agrona.MarkFile.IsClosed() -> bool +Adaptive.Agrona.MarkFile.MappedByteBuffer() -> Adaptive.Agrona.Util.MappedByteBuffer +Adaptive.Agrona.MarkFile.MarkFile(Adaptive.Agrona.Concurrent.UnsafeBuffer buffer, int versionFieldOffset, int timestampFieldOffset) -> void +Adaptive.Agrona.MarkFile.MarkFile(Adaptive.Agrona.Util.MappedByteBuffer mappedBuffer, int versionFieldOffset, int timestampFieldOffset) -> void +Adaptive.Agrona.MarkFile.MarkFile(System.IO.DirectoryInfo directory, string filename, bool warnIfDirectoryExists, bool dirDeleteOnStart, int versionFieldOffset, int timestampFieldOffset, int totalFileLength, long timeoutMs, Adaptive.Agrona.Concurrent.IEpochClock epochClock, System.Action versionCheck, System.Action logger) -> void +Adaptive.Agrona.MarkFile.MarkFile(System.IO.DirectoryInfo directory, string filename, int versionFieldOffset, int timestampFieldOffset, long timeoutMs, Adaptive.Agrona.Concurrent.IEpochClock epochClock, System.Action versionCheck, System.Action logger) -> void +Adaptive.Agrona.MarkFile.MarkFile(System.IO.FileInfo markFile, bool shouldPreExist, int versionFieldOffset, int timestampFieldOffset, int totalFileLength, long timeoutMs, Adaptive.Agrona.Concurrent.IEpochClock epochClock, System.Action versionCheck, System.Action logger) -> void +Adaptive.Agrona.MarkFile.ParentDirectory() -> System.IO.DirectoryInfo +Adaptive.Agrona.MarkFile.SignalReady(int version) -> void +Adaptive.Agrona.MarkFile.TimestampOrdered(long timestamp) -> void +Adaptive.Agrona.MarkFile.TimestampRelease(long timestamp) -> void +Adaptive.Agrona.MarkFile.TimestampVolatile() -> long +Adaptive.Agrona.MarkFile.TimestampWeak() -> long +Adaptive.Agrona.MarkFile.VersionVolatile() -> int +Adaptive.Agrona.MarkFile.VersionWeak() -> int +Adaptive.Agrona.Objects +Adaptive.Agrona.SBE.ICompositeDecoderFlyweight +Adaptive.Agrona.SBE.ICompositeDecoderFlyweight.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset) -> Adaptive.Agrona.SBE.ICompositeDecoderFlyweight +Adaptive.Agrona.SBE.ICompositeEncoderFlyweight +Adaptive.Agrona.SBE.IDecoderFlyweight +Adaptive.Agrona.SBE.IEncoderFlyweight +Adaptive.Agrona.SBE.IEncoderFlyweight.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Agrona.SBE.IEncoderFlyweight +Adaptive.Agrona.SBE.IFlyweight +Adaptive.Agrona.SBE.IFlyweight.EncodedLength() -> int +Adaptive.Agrona.SBE.IMessageDecoderFlyweight +Adaptive.Agrona.SBE.IMessageDecoderFlyweight.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Agrona.SBE.IMessageDecoderFlyweight +Adaptive.Agrona.SBE.IMessageEncoderFlyweight +Adaptive.Agrona.SBE.IMessageFlyweight +Adaptive.Agrona.SBE.IMessageFlyweight.Offset() -> int +Adaptive.Agrona.SBE.IMessageFlyweight.SbeBlockLength() -> int +Adaptive.Agrona.SBE.IMessageFlyweight.SbeSchemaId() -> int +Adaptive.Agrona.SBE.IMessageFlyweight.SbeSchemaVersion() -> int +Adaptive.Agrona.SBE.IMessageFlyweight.SbeSemanticType() -> string +Adaptive.Agrona.SBE.IMessageFlyweight.SbeTemplateId() -> int +Adaptive.Agrona.SemanticVersion +Adaptive.Agrona.SemanticVersion.SemanticVersion() -> void +Adaptive.Agrona.SystemUtil +Adaptive.Agrona.SystemUtil.SystemUtil() -> void +Adaptive.Agrona.TimeUnit +Adaptive.Agrona.TimeUnit.Convert(long sourceValue, Adaptive.Agrona.TimeUnit destinationTimeUnit) -> long +Adaptive.Agrona.TimeUnit.ToMillis(long value) -> long +Adaptive.Agrona.TimeUnit.ToNanos(long value) -> long +Adaptive.Agrona.Util.ByteUtil +Adaptive.Agrona.Util.ByteUtil.ByteUtil() -> void +Adaptive.Agrona.Util.IntUtil +Adaptive.Agrona.Util.LockSupport +Adaptive.Agrona.Util.MappedByteBuffer +Adaptive.Agrona.Util.MappedByteBuffer.~MappedByteBuffer() -> void +Adaptive.Agrona.Util.MappedByteBuffer.Capacity.get -> long +Adaptive.Agrona.Util.MappedByteBuffer.Dispose() -> void +Adaptive.Agrona.Util.MappedByteBuffer.FillWithZeros() -> void +Adaptive.Agrona.Util.MappedByteBuffer.Force() -> void +Adaptive.Agrona.Util.MappedByteBuffer.MappedByteBuffer(System.IO.MemoryMappedFiles.MemoryMappedFile memoryMappedFile, long offset, long length) -> void +Adaptive.Agrona.Util.MappedByteBuffer.MappedByteBuffer(System.IO.MemoryMappedFiles.MemoryMappedFile memoryMappedFile) -> void +Adaptive.Agrona.Util.MappedByteBuffer.Pointer.get -> System.IntPtr +Adaptive.Agrona.Util.NanoUtil +Adaptive.Agrona.Util.ThrowHelper +Adaptive.Agrona.Util.UnixTimeConverter +const Adaptive.Agrona.BitUtil.CACHE_LINE_LENGTH = 64 -> int +const Adaptive.Agrona.BitUtil.SIZE_OF_BOOLEAN = 1 -> int +const Adaptive.Agrona.BitUtil.SIZE_OF_BYTE = 1 -> int +const Adaptive.Agrona.BitUtil.SIZE_OF_CHAR = 2 -> int +const Adaptive.Agrona.BitUtil.SIZE_OF_DOUBLE = 8 -> int +const Adaptive.Agrona.BitUtil.SIZE_OF_FLOAT = 4 -> int +const Adaptive.Agrona.BitUtil.SIZE_OF_INT = 4 -> int +const Adaptive.Agrona.BitUtil.SIZE_OF_LONG = 8 -> int +const Adaptive.Agrona.BitUtil.SIZE_OF_SHORT = 2 -> int +const Adaptive.Agrona.Collections.ArrayUtil.UNKNOWN_INDEX = -1 -> int +const Adaptive.Agrona.Concurrent.Broadcast.CopyBroadcastReceiver.ScratchBufferSize = 4096 -> int +const Adaptive.Agrona.Concurrent.Broadcast.RecordDescriptor.HeaderLength = 8 -> int +const Adaptive.Agrona.Concurrent.Broadcast.RecordDescriptor.LengthOffset = 0 -> int +const Adaptive.Agrona.Concurrent.Broadcast.RecordDescriptor.PaddingMsgTypeID = -1 -> int +const Adaptive.Agrona.Concurrent.Broadcast.RecordDescriptor.RecordAlignment = 8 -> int +const Adaptive.Agrona.Concurrent.Broadcast.RecordDescriptor.TypeOffset = 4 -> int +const Adaptive.Agrona.Concurrent.Configuration.IDLE_MAX_SPINS = 10 -> long +const Adaptive.Agrona.Concurrent.Configuration.IDLE_MAX_YIELDS = 40 -> long +const Adaptive.Agrona.Concurrent.Configuration.IDLE_MIN_PARK_MS = 1 -> long +const Adaptive.Agrona.Concurrent.ControllableIdleStrategy.BUSY_SPIN = 2 -> int +const Adaptive.Agrona.Concurrent.ControllableIdleStrategy.NOOP = 1 -> int +const Adaptive.Agrona.Concurrent.ControllableIdleStrategy.NOT_CONTROLLED = 0 -> int +const Adaptive.Agrona.Concurrent.ControllableIdleStrategy.PARK = 4 -> int +const Adaptive.Agrona.Concurrent.ControllableIdleStrategy.YIELD = 3 -> int +const Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog.LengthOffset = 0 -> int +const Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.PaddingMsgTypeId = -1 -> int +const Adaptive.Agrona.Concurrent.RingBuffer.RecordDescriptor.Alignment = 8 -> int +const Adaptive.Agrona.Concurrent.RingBuffer.RecordDescriptor.HeaderLength = 8 -> int +const Adaptive.Agrona.Concurrent.Status.CountersReader.DEFAULT_OWNER_ID = 0 -> long +const Adaptive.Agrona.Concurrent.Status.CountersReader.DEFAULT_REGISTRATION_ID = 0 -> long +const Adaptive.Agrona.Concurrent.Status.CountersReader.DEFAULT_TYPE_ID = 0 -> int +const Adaptive.Agrona.Concurrent.Status.CountersReader.NULL_COUNTER_ID = -1 -> int +const Adaptive.Agrona.Concurrent.Status.CountersReader.RECORD_ALLOCATED = 1 -> int +const Adaptive.Agrona.Concurrent.Status.CountersReader.RECORD_RECLAIMED = -1 -> int +const Adaptive.Agrona.Concurrent.Status.CountersReader.RECORD_UNUSED = 0 -> int +const Adaptive.Agrona.Concurrent.UnsafeBuffer.ALIGNMENT = 8 -> int +const Adaptive.Agrona.ExpandableArrayBuffer.INITIAL_CAPACITY = 128 -> int +override Adaptive.Agrona.CacheLinePadding.ToString() -> string +override Adaptive.Agrona.Concurrent.ControllableIdleStrategy.ToString() -> string +override Adaptive.Agrona.Concurrent.ShutdownSignalBarrier.ToString() -> string +readonly Adaptive.Agrona.Concurrent.CountedErrorHandler.AsErrorHandler -> Adaptive.Agrona.ErrorHandler +readonly Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog.DistinctObservation.Offset -> int +readonly Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog.DistinctObservation.Throwable -> System.Exception +static Adaptive.Agrona.BitUtil.Align(int value, int alignment) -> int +static Adaptive.Agrona.BitUtil.Align(long value, long alignment) -> long +static Adaptive.Agrona.BitUtil.FindNextPositivePowerOfTwo(int value) -> int +static Adaptive.Agrona.BitUtil.FromHex(string value) -> byte[] +static Adaptive.Agrona.BitUtil.FromHexByteArray(byte[] buffer) -> byte[] +static Adaptive.Agrona.BitUtil.GenerateRandomisedId() -> int +static Adaptive.Agrona.BitUtil.IsAligned(long address, int alignment) -> bool +static Adaptive.Agrona.BitUtil.IsEven(int value) -> bool +static Adaptive.Agrona.BitUtil.IsPowerOfTwo(int value) -> bool +static Adaptive.Agrona.BitUtil.Next(int current, int max) -> int +static Adaptive.Agrona.BitUtil.Previous(int current, int max) -> int +static Adaptive.Agrona.BitUtil.ToHex(byte[] buffer, int offset, int length) -> string +static Adaptive.Agrona.BitUtil.ToHex(byte[] buffer) -> string +static Adaptive.Agrona.BitUtil.ToHexByteArray(byte[] buffer, int offset, int length) -> byte[] +static Adaptive.Agrona.BitUtil.ToHexByteArray(byte[] buffer) -> byte[] +static Adaptive.Agrona.BufferUtil.Allocate(int capacity) -> Adaptive.Agrona.ByteBuffer +static Adaptive.Agrona.BufferUtil.AllocateDirect(int capacity) -> Adaptive.Agrona.ByteBuffer +static Adaptive.Agrona.BufferUtil.AllocateDirectAligned(int capacity, int alignment) -> Adaptive.Agrona.ByteBuffer +static Adaptive.Agrona.BufferUtil.BoundsCheck(byte[] buffer, long index, int length) -> void +static Adaptive.Agrona.CloseHelper.CloseAll(System.Collections.Generic.IEnumerable disposables) -> void +static Adaptive.Agrona.CloseHelper.CloseAll(Adaptive.Agrona.IErrorHandler errorHandler, System.Collections.Generic.ICollection disposables) -> void +static Adaptive.Agrona.CloseHelper.Dispose(Adaptive.Agrona.ErrorHandler errorHandler, System.Action disposable) -> void +static Adaptive.Agrona.CloseHelper.Dispose(Adaptive.Agrona.ErrorHandler errorHandler, System.IDisposable disposable) -> void +static Adaptive.Agrona.CloseHelper.Dispose(Adaptive.Agrona.IErrorHandler errorHandler, System.IDisposable disposable) -> void +static Adaptive.Agrona.CloseHelper.Dispose(System.IDisposable disposable) -> void +static Adaptive.Agrona.CloseHelper.QuietDispose(System.Action disposable) -> void +static Adaptive.Agrona.CloseHelper.QuietDispose(System.IDisposable disposable) -> void +static Adaptive.Agrona.Collections.ArrayUtil.Add(T[] oldElements, T elementToAdd) -> T[] +static Adaptive.Agrona.Collections.ArrayUtil.EnsureCapacity(T[] oldElements, int requiredLength) -> T[] +static Adaptive.Agrona.Collections.ArrayUtil.NewArray(T[] oldElements, int length) -> T[] +static Adaptive.Agrona.Collections.ArrayUtil.Remove(T[] oldElements, int index) -> T[] +static Adaptive.Agrona.Collections.ArrayUtil.Remove(T[] oldElements, T elementToRemove) -> T[] +static Adaptive.Agrona.Collections.CollectionUtil.GetOrDefault(System.Collections.Generic.IDictionary map, TKey key, System.Func supplier) -> TValue +static Adaptive.Agrona.Collections.DictionaryExtensions.GetOrDefault(this System.Collections.Generic.IDictionary dictionary, TKey key, TValue default = default(TValue)) -> TValue +static Adaptive.Agrona.Collections.ListUtil.FastUnorderedRemove(System.Collections.Generic.List list, int i, int lastIndex) -> void +static Adaptive.Agrona.Collections.ListUtil.FastUnorderedRemove(System.Collections.Generic.List list, T e) -> bool +static Adaptive.Agrona.Concurrent.AgentRunner.StartOnThread(Adaptive.Agrona.Concurrent.AgentRunner runner, Adaptive.Agrona.Concurrent.IThreadFactory threadFactory) -> System.Threading.Thread +static Adaptive.Agrona.Concurrent.AgentRunner.StartOnThread(Adaptive.Agrona.Concurrent.AgentRunner runner) -> System.Threading.Thread +static Adaptive.Agrona.Concurrent.AtomicBoolean.implicit operator bool(Adaptive.Agrona.Concurrent.AtomicBoolean value) -> bool +static Adaptive.Agrona.Concurrent.Broadcast.BroadcastBufferDescriptor.CheckCapacity(int capacity) -> void +static Adaptive.Agrona.Concurrent.Broadcast.RecordDescriptor.CalculateMaxMessageLength(int capacity) -> int +static Adaptive.Agrona.Concurrent.Broadcast.RecordDescriptor.CheckTypeId(int msgTypeId) -> void +static Adaptive.Agrona.Concurrent.Broadcast.RecordDescriptor.GetLengthOffset(int recordOffset) -> int +static Adaptive.Agrona.Concurrent.Broadcast.RecordDescriptor.GetMsgOffset(int recordOffset) -> int +static Adaptive.Agrona.Concurrent.Broadcast.RecordDescriptor.GetTypeOffset(int recordOffset) -> int +static Adaptive.Agrona.Concurrent.Errors.ErrorLogReader.HasErrors(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer) -> bool +static Adaptive.Agrona.Concurrent.Errors.ErrorLogReader.Read(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, Adaptive.Agrona.Concurrent.Errors.ErrorConsumer consumer, long sinceTimestamp) -> int +static Adaptive.Agrona.Concurrent.Errors.ErrorLogReader.Read(Adaptive.Agrona.Concurrent.IAtomicBuffer buffer, Adaptive.Agrona.Concurrent.Errors.ErrorConsumer consumer) -> int +static Adaptive.Agrona.Concurrent.IdleStrategyFactory.Create(string strategyName, Adaptive.Agrona.Concurrent.StatusIndicator controllableStatus) -> Adaptive.Agrona.Concurrent.IIdleStrategy +static Adaptive.Agrona.Concurrent.RingBuffer.RecordDescriptor.CheckTypeId(int msgTypeId) -> void +static Adaptive.Agrona.Concurrent.RingBuffer.RecordDescriptor.EncodedMsgOffset(int recordOffset) -> int +static Adaptive.Agrona.Concurrent.RingBuffer.RecordDescriptor.LengthOffset(int recordOffset) -> int +static Adaptive.Agrona.Concurrent.RingBuffer.RecordDescriptor.MessageTypeId(long header) -> int +static Adaptive.Agrona.Concurrent.RingBuffer.RecordDescriptor.RecordLength(long header) -> int +static Adaptive.Agrona.Concurrent.RingBuffer.RecordDescriptor.TypeOffset(int recordOffset) -> int +static Adaptive.Agrona.Concurrent.RingBuffer.RingBufferDescriptor.CheckCapacity(int capacity) -> void +static Adaptive.Agrona.Concurrent.Status.CountersReader.CounterOffset(int counterId) -> int +static Adaptive.Agrona.Concurrent.Status.CountersReader.MetaDataOffset(int counterId) -> int +static Adaptive.Agrona.EndianessConverter.ApplyDouble(Adaptive.Agrona.ByteOrder byteOrder, double value) -> double +static Adaptive.Agrona.EndianessConverter.ApplyFloat(Adaptive.Agrona.ByteOrder byteOrder, float value) -> float +static Adaptive.Agrona.EndianessConverter.ApplyInt16(Adaptive.Agrona.ByteOrder byteOrder, short value) -> short +static Adaptive.Agrona.EndianessConverter.ApplyInt32(Adaptive.Agrona.ByteOrder byteOrder, int value) -> int +static Adaptive.Agrona.EndianessConverter.ApplyInt64(Adaptive.Agrona.ByteOrder byteOrder, long value) -> long +static Adaptive.Agrona.EndianessConverter.ApplyUint16(Adaptive.Agrona.ByteOrder byteOrder, ushort value) -> ushort +static Adaptive.Agrona.EndianessConverter.ApplyUint32(Adaptive.Agrona.ByteOrder byteOrder, uint value) -> uint +static Adaptive.Agrona.EndianessConverter.ApplyUint64(Adaptive.Agrona.ByteOrder byteOrder, ulong value) -> ulong +static Adaptive.Agrona.IoUtil.CheckFileExists(string path) -> void +static Adaptive.Agrona.IoUtil.CheckFileExists(System.IO.FileInfo file, string name) -> void +static Adaptive.Agrona.IoUtil.Delete(System.IO.DirectoryInfo directory, bool b) -> void +static Adaptive.Agrona.IoUtil.EnsureDirectoryExists(System.IO.DirectoryInfo directory, string descriptionLabel) -> void +static Adaptive.Agrona.IoUtil.MapExistingFile(string path, Adaptive.Agrona.MapMode mapMode) -> Adaptive.Agrona.Util.MappedByteBuffer +static Adaptive.Agrona.IoUtil.MapExistingFile(System.IO.FileInfo location, string descriptionLabel) -> Adaptive.Agrona.Util.MappedByteBuffer +static Adaptive.Agrona.IoUtil.MapExistingFile(System.IO.FileInfo path, long offset, long length) -> Adaptive.Agrona.Util.MappedByteBuffer +static Adaptive.Agrona.IoUtil.MapExistingFile(System.IO.FileStream fileStream) -> Adaptive.Agrona.Util.MappedByteBuffer +static Adaptive.Agrona.IoUtil.MapNewFile(System.IO.FileInfo cncFile, long length, bool fillWithZeros = true) -> Adaptive.Agrona.Util.MappedByteBuffer +static Adaptive.Agrona.IoUtil.MapNewOrExistingFile(System.IO.FileInfo cncFile, long length) -> Adaptive.Agrona.Util.MappedByteBuffer +static Adaptive.Agrona.IoUtil.OpenMemoryMappedFile(string path) -> System.IO.MemoryMappedFiles.MemoryMappedFile +static Adaptive.Agrona.IoUtil.Unmap(Adaptive.Agrona.Util.MappedByteBuffer wrapper) -> void +static Adaptive.Agrona.MarkFile.EnsureDirectoryExists(System.IO.DirectoryInfo directory, string filename, bool warnIfDirectoryExists, bool dirDeleteOnStart, int versionFieldOffset, int timestampFieldOffset, long timeoutMs, Adaptive.Agrona.Concurrent.IEpochClock epochClock, System.Action versionCheck, System.Action logger) -> void +static Adaptive.Agrona.MarkFile.EnsureMarkFileLink(System.IO.DirectoryInfo serviceDir, System.IO.FileInfo actualFile, string linkFilename) -> void +static Adaptive.Agrona.MarkFile.IsActive(Adaptive.Agrona.Util.MappedByteBuffer cncByteBuffer, Adaptive.Agrona.Concurrent.IEpochClock epochClock, long timeoutMs, int versionFieldOffset, int timestampFieldOffset, System.Action versionCheck, System.Action logger) -> bool +static Adaptive.Agrona.MarkFile.MapExistingFile(System.IO.FileInfo cncFile, System.Action logger, long offset, long length) -> Adaptive.Agrona.Util.MappedByteBuffer +static Adaptive.Agrona.MarkFile.MapExistingFile(System.IO.FileInfo cncFile, System.Action logger) -> Adaptive.Agrona.Util.MappedByteBuffer +static Adaptive.Agrona.MarkFile.MapExistingMarkFile(System.IO.FileInfo markFile, int versionFieldOffset, int timestampFieldOffset, long timeoutMs, Adaptive.Agrona.Concurrent.IEpochClock epochClock, System.Action versionCheck, System.Action logger) -> Adaptive.Agrona.Util.MappedByteBuffer +static Adaptive.Agrona.MarkFile.MapNewFile(System.IO.FileInfo cncFile, long length) -> Adaptive.Agrona.Util.MappedByteBuffer +static Adaptive.Agrona.MarkFile.mapNewOrExistingMarkFile(System.IO.FileInfo markFile, bool shouldPreExist, int versionFieldOffset, int timestampFieldOffset, long totalFileLength, long timeoutMs, Adaptive.Agrona.Concurrent.IEpochClock epochClock, System.Action versionCheck, System.Action logger) -> Adaptive.Agrona.Util.MappedByteBuffer +static Adaptive.Agrona.Objects.RequireNonNull(T obj, string name) -> T +static Adaptive.Agrona.Objects.RequireNonNull(T obj) -> T +static Adaptive.Agrona.SemanticVersion.Compose(int major, int minor, int patch) -> int +static Adaptive.Agrona.SemanticVersion.Major(int version) -> int +static Adaptive.Agrona.SemanticVersion.Minor(int version) -> int +static Adaptive.Agrona.SemanticVersion.Patch(int version) -> int +static Adaptive.Agrona.SemanticVersion.ToString(int version) -> string +static Adaptive.Agrona.SystemUtil.ParseDuration(string propertyName, string propertyValue) -> long +static Adaptive.Agrona.SystemUtil.ParseSize(string propertyName, string propertyValue) -> long +static Adaptive.Agrona.Util.ByteUtil.MemoryCopy(byte* destination, byte* source, uint length) -> void +static Adaptive.Agrona.Util.IntUtil.NumberOfLeadingZeros(int i) -> int +static Adaptive.Agrona.Util.IntUtil.NumberOfTrailingZeros(int i) -> int +static Adaptive.Agrona.Util.LockSupport.ParkNanos(long nanos) -> void +static Adaptive.Agrona.Util.NanoUtil.FromMilliseconds(long milliseconds) -> long +static Adaptive.Agrona.Util.NanoUtil.FromSeconds(long seconds) -> long +static Adaptive.Agrona.Util.NanoUtil.ToMillis(long resourceLingerDurationNs) -> int +static Adaptive.Agrona.Util.ThrowHelper.ThrowArgumentException() -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowArgumentException(string message) -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowArgumentNullException(string argument) -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowArgumentOutOfRangeException() -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowArgumentOutOfRangeException(string argument) -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowIndexOutOfRangeException(string message) -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowInvalidCastException() -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowInvalidOperationException_ForVariantTypeMissmatch() -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowInvalidOperationException() -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowInvalidOperationException(string message) -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowKeyNotFoundException(string message) -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowNotImplementedException() -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowNotImplementedException(string message) -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowNotSupportedException() -> void +static Adaptive.Agrona.Util.ThrowHelper.ThrowObjectDisposedException(string objectName) -> void +static Adaptive.Agrona.Util.UnixTimeConverter.CurrentUnixTimeMillis() -> long +static Adaptive.Agrona.Util.UnixTimeConverter.FromUnixTimeMillis(long epoch) -> System.DateTime +static readonly Adaptive.Agrona.BufferUtil.NullBytes -> byte[] +static readonly Adaptive.Agrona.Collections.ArrayUtil.EMPTY_STRING_ARRAY -> string[] +static readonly Adaptive.Agrona.Concurrent.AgentRunner.RETRY_CLOSE_TIMEOUT_MS -> int +static readonly Adaptive.Agrona.Concurrent.BackgroundThreadFactory.Instance -> Adaptive.Agrona.Concurrent.BackgroundThreadFactory +static readonly Adaptive.Agrona.Concurrent.Broadcast.BroadcastBufferDescriptor.LatestCounterOffset -> int +static readonly Adaptive.Agrona.Concurrent.Broadcast.BroadcastBufferDescriptor.TailCounterOffset -> int +static readonly Adaptive.Agrona.Concurrent.Broadcast.BroadcastBufferDescriptor.TailIntentCounterOffset -> int +static readonly Adaptive.Agrona.Concurrent.Broadcast.BroadcastBufferDescriptor.TrailerLength -> int +static readonly Adaptive.Agrona.Concurrent.Configuration.IDLE_MAX_PARK_MS -> long +static readonly Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog.EncodedErrorOffset -> int +static readonly Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog.FirstObservationTimestampOffset -> int +static readonly Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog.LastObservationTimestampOffset -> int +static readonly Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog.ObservationCountOffset -> int +static readonly Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog.RecordAlignment -> int +static readonly Adaptive.Agrona.Concurrent.NoOpLock.Instance -> Adaptive.Agrona.Concurrent.NoOpLock +static readonly Adaptive.Agrona.Concurrent.RingBuffer.RingBufferDescriptor.ConsumerHeartbeatOffset -> int +static readonly Adaptive.Agrona.Concurrent.RingBuffer.RingBufferDescriptor.CorrelationCounterOffset -> int +static readonly Adaptive.Agrona.Concurrent.RingBuffer.RingBufferDescriptor.HeadCachePositionOffset -> int +static readonly Adaptive.Agrona.Concurrent.RingBuffer.RingBufferDescriptor.HeadPositionOffset -> int +static readonly Adaptive.Agrona.Concurrent.RingBuffer.RingBufferDescriptor.TailPositionOffset -> int +static readonly Adaptive.Agrona.Concurrent.RingBuffer.RingBufferDescriptor.TrailerLength -> int +static readonly Adaptive.Agrona.Concurrent.Status.CountersReader.COUNTER_LENGTH -> int +static readonly Adaptive.Agrona.Concurrent.Status.CountersReader.FREE_FOR_REUSE_DEADLINE_OFFSET -> int +static readonly Adaptive.Agrona.Concurrent.Status.CountersReader.FULL_LABEL_LENGTH -> int +static readonly Adaptive.Agrona.Concurrent.Status.CountersReader.KEY_OFFSET -> int +static readonly Adaptive.Agrona.Concurrent.Status.CountersReader.LABEL_OFFSET -> int +static readonly Adaptive.Agrona.Concurrent.Status.CountersReader.MAX_KEY_LENGTH -> int +static readonly Adaptive.Agrona.Concurrent.Status.CountersReader.MAX_LABEL_LENGTH -> int +static readonly Adaptive.Agrona.Concurrent.Status.CountersReader.METADATA_LENGTH -> int +static readonly Adaptive.Agrona.Concurrent.Status.CountersReader.NOT_FREE_TO_REUSE -> long +static readonly Adaptive.Agrona.Concurrent.Status.CountersReader.OWNER_ID_OFFSET -> int +static readonly Adaptive.Agrona.Concurrent.Status.CountersReader.REGISTRATION_ID_OFFSET -> int +static readonly Adaptive.Agrona.Concurrent.Status.CountersReader.TYPE_ID_OFFSET -> int +static readonly Adaptive.Agrona.Concurrent.SystemEpochClock.INSTANCE -> Adaptive.Agrona.Concurrent.SystemEpochClock +static readonly Adaptive.Agrona.Concurrent.SystemNanoClock.INSTANCE -> Adaptive.Agrona.Concurrent.SystemNanoClock +static readonly Adaptive.Agrona.Concurrent.UnsafeBuffer.DISABLE_BOUNDS_CHECKS_PROP_NAME -> string +static readonly Adaptive.Agrona.Concurrent.YieldingIdleStrategy.INSTANCE -> Adaptive.Agrona.Concurrent.YieldingIdleStrategy +static readonly Adaptive.Agrona.ExpandableArrayBuffer.MAX_ARRAY_LENGTH -> int +static readonly Adaptive.Agrona.TimeUnit.MILLIS -> Adaptive.Agrona.TimeUnit +static readonly Adaptive.Agrona.TimeUnit.NANOSECONDS -> Adaptive.Agrona.TimeUnit +virtual Adaptive.Agrona.Collections.IntObjConsumer.Invoke(int i, T v) -> void +virtual Adaptive.Agrona.Concurrent.Errors.ErrorConsumer.Invoke(int observationCount, long firstObservationTimestamp, long lastObservationTimestamp, string encodedException) -> void +virtual Adaptive.Agrona.Concurrent.MessageHandler.Invoke(int msgTypeId, Adaptive.Agrona.IMutableDirectBuffer buffer, int index, int length) -> void +virtual Adaptive.Agrona.Concurrent.RingBuffer.ManyToOneRingBuffer.Read(Adaptive.Agrona.Concurrent.MessageHandler handler, int messageCountLimit) -> int +virtual Adaptive.Agrona.Concurrent.ShutdownSignalBarrier.SignalHandler.Invoke() -> void +virtual Adaptive.Agrona.Concurrent.Status.AtomicCounter.Dispose() -> void +virtual Adaptive.Agrona.Concurrent.Status.AtomicCounter.IsClosed.get -> bool +virtual Adaptive.Agrona.Concurrent.Status.CountersReader.CounterConsumer.Invoke(long value, int counterId, string label) -> void +virtual Adaptive.Agrona.Concurrent.Status.CountersReader.MetaData.Invoke(int counterId, int typeId, Adaptive.Agrona.IDirectBuffer keyBuffer, string label) -> void +virtual Adaptive.Agrona.ErrorHandler.Invoke(System.Exception exception) -> void diff --git a/src/Adaptive.Agrona/PublicAPI.Unshipped.txt b/src/Adaptive.Agrona/PublicAPI.Unshipped.txt new file mode 100644 index 00000000..bbd2ceff --- /dev/null +++ b/src/Adaptive.Agrona/PublicAPI.Unshipped.txt @@ -0,0 +1,6 @@ +Adaptive.Agrona.SuppressedExceptions +static Adaptive.Agrona.SuppressedExceptions.AddSuppressed(this System.Exception primary, System.Exception suppressed) -> void +static Adaptive.Agrona.SuppressedExceptions.GetSuppressed(this System.Exception primary) -> System.Collections.Generic.IReadOnlyList +static Adaptive.Agrona.SystemUtil.FormatDuration(long durationNs) -> string +static Adaptive.Agrona.SystemUtil.FormatSize(long size) -> string +static readonly Adaptive.Agrona.Concurrent.Status.CountersReader.REFERENCE_ID_OFFSET -> int diff --git a/src/Adaptive.Agrona/SBE/ICompositeDecoderFlyweight.cs b/src/Adaptive.Agrona/SBE/ICompositeDecoderFlyweight.cs index e1d20fd4..bfdacee7 100644 --- a/src/Adaptive.Agrona/SBE/ICompositeDecoderFlyweight.cs +++ b/src/Adaptive.Agrona/SBE/ICompositeDecoderFlyweight.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Agrona.SBE +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.SBE { /// /// A flyweight for decoding an SBE Composite type. diff --git a/src/Adaptive.Agrona/SBE/ICompositeEncoderFlyweight.cs b/src/Adaptive.Agrona/SBE/ICompositeEncoderFlyweight.cs index fc3392ca..748a470f 100644 --- a/src/Adaptive.Agrona/SBE/ICompositeEncoderFlyweight.cs +++ b/src/Adaptive.Agrona/SBE/ICompositeEncoderFlyweight.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Agrona.SBE +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.SBE { /// /// A flyweight for encoding an SBE Composite type. @@ -6,4 +22,4 @@ public interface ICompositeEncoderFlyweight : IEncoderFlyweight { } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/SBE/IDecoderFlyweight.cs b/src/Adaptive.Agrona/SBE/IDecoderFlyweight.cs index 8e18bdc4..34266e69 100644 --- a/src/Adaptive.Agrona/SBE/IDecoderFlyweight.cs +++ b/src/Adaptive.Agrona/SBE/IDecoderFlyweight.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Agrona.SBE +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.SBE { /// /// A flyweight for decoding an SBE type. @@ -6,4 +22,4 @@ public interface IDecoderFlyweight : IFlyweight { } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/SBE/IEncoderFlyweight.cs b/src/Adaptive.Agrona/SBE/IEncoderFlyweight.cs index 1b4269e0..b9bb41e4 100644 --- a/src/Adaptive.Agrona/SBE/IEncoderFlyweight.cs +++ b/src/Adaptive.Agrona/SBE/IEncoderFlyweight.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Agrona.SBE +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.SBE { /// /// A flyweight for encoding an SBE type. @@ -13,4 +29,4 @@ public interface IEncoderFlyweight : IFlyweight /// the for fluent API design. IEncoderFlyweight Wrap(IMutableDirectBuffer buffer, int offset); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/SBE/IFlyweight.cs b/src/Adaptive.Agrona/SBE/IFlyweight.cs index 755ef47d..5fc7a778 100644 --- a/src/Adaptive.Agrona/SBE/IFlyweight.cs +++ b/src/Adaptive.Agrona/SBE/IFlyweight.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Agrona.SBE +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.SBE { /// /// An SBE (Simple Binary Encoding) flyweight object. @@ -11,4 +27,4 @@ public interface IFlyweight /// the length of the encoded type in bytes. int EncodedLength(); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/SBE/IMessageDecoderFlyweight.cs b/src/Adaptive.Agrona/SBE/IMessageDecoderFlyweight.cs index e7502bbd..b20f7a32 100644 --- a/src/Adaptive.Agrona/SBE/IMessageDecoderFlyweight.cs +++ b/src/Adaptive.Agrona/SBE/IMessageDecoderFlyweight.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Agrona.SBE +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.SBE { /// /// A flyweight for decoding an SBE message from a buffer. @@ -15,4 +31,4 @@ public interface IMessageDecoderFlyweight : IMessageFlyweight, IDecoderFlyweight /// the for fluent API design. IMessageDecoderFlyweight Wrap(IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/SBE/IMessageEncoderFlyweight.cs b/src/Adaptive.Agrona/SBE/IMessageEncoderFlyweight.cs index 6770ac73..302ed5f0 100644 --- a/src/Adaptive.Agrona/SBE/IMessageEncoderFlyweight.cs +++ b/src/Adaptive.Agrona/SBE/IMessageEncoderFlyweight.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Agrona.SBE +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.SBE { /// /// A flyweight for encoding SBE messages. @@ -6,4 +22,4 @@ public interface IMessageEncoderFlyweight : IMessageFlyweight, IEncoderFlyweight { } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/SBE/IMessageFlyweight.cs b/src/Adaptive.Agrona/SBE/IMessageFlyweight.cs index c181bf82..8896f1cd 100644 --- a/src/Adaptive.Agrona/SBE/IMessageFlyweight.cs +++ b/src/Adaptive.Agrona/SBE/IMessageFlyweight.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Agrona.SBE +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Agrona.SBE { /// /// Common behaviour to SBE Message encoder and decoder flyweights. @@ -32,7 +48,8 @@ public interface IMessageFlyweight : IFlyweight /// /// The semantic type of the message which is typically the semantic equivalent in the FIX repository. /// - /// the semantic type of the message which is typically the semantic equivalent in the FIX repository. + /// the semantic type of the message which is typically the semantic equivalent in the FIX repository. + /// string SbeSemanticType(); /// @@ -41,4 +58,4 @@ public interface IMessageFlyweight : IFlyweight /// the current offset in the buffer from which the message is being encoded or decoded. int Offset(); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/SemanticVersion.cs b/src/Adaptive.Agrona/SemanticVersion.cs index af241342..64ecb8ed 100644 --- a/src/Adaptive.Agrona/SemanticVersion.cs +++ b/src/Adaptive.Agrona/SemanticVersion.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; namespace Adaptive.Agrona @@ -5,11 +21,16 @@ namespace Adaptive.Agrona /// /// Store and extract a semantic version in a 4 byte integer. /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class SemanticVersion { /// - /// Compose a 4-byte integer with major, minor, and patch version stored in the least significant 3 bytes. - /// The sum of the components must be greater than zero. + /// Compose a 4-byte integer with major, minor, and patch version stored in the least significant 3 bytes. The + /// sum of the components must be greater than zero. /// /// version in the range 0-255. /// version in the range 0-255 @@ -72,13 +93,15 @@ public static int Patch(int version) } /// - /// Generate a representation of the semantic version in the format {@code major.minor.patch}. + /// Generate a representation of the semantic version in the format + /// {@code major.minor.patch}. /// /// to be converted to a string. - /// the representation of the semantic version in the format {@code major.minor.patch}. + /// the representation of the semantic version in the format {@code + /// major.minor.patch}. public static string ToString(int version) { return Major(version) + "." + Minor(version) + "." + Patch(version); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/SuppressedExceptions.cs b/src/Adaptive.Agrona/SuppressedExceptions.cs index 9907c3e5..42ac2db9 100644 --- a/src/Adaptive.Agrona/SuppressedExceptions.cs +++ b/src/Adaptive.Agrona/SuppressedExceptions.cs @@ -1,11 +1,27 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using System.Collections.Generic; namespace Adaptive.Agrona { /// - /// Extension methods that emulate Java's Throwable.addSuppressed / getSuppressed - /// on .NET's type via the dictionary. + /// Extension methods that emulate Java's Throwable.addSuppressed / getSuppressed on .NET's + /// type via the dictionary. /// public static class SuppressedExceptions { diff --git a/src/Adaptive.Agrona/SystemUtil.cs b/src/Adaptive.Agrona/SystemUtil.cs index 2c9b5a36..c0da720e 100644 --- a/src/Adaptive.Agrona/SystemUtil.cs +++ b/src/Adaptive.Agrona/SystemUtil.cs @@ -1,16 +1,37 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; namespace Adaptive.Agrona { + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class SystemUtil { - private const long MAX_G_VALUE = 8589934591L; - private const long MAX_M_VALUE = 8796093022207L; - private const long MAX_K_VALUE = 9007199254739968L; - - private const long SECONDS_TO_NANOS = 1000000000; - private const long MILLS_TO_NANOS = 1000000; - private const long MICROS_TO_NANOS = 1000; + private const long MaxGValue = 8589934591L; + private const long MaxMValue = 8796093022207L; + private const long MaxKValue = 9007199254739968L; + + private const long SecondsToNanos = 1000000000; + private const long MillsToNanos = 1000000; + private const long MicrosToNanos = 1000; /// /// Parse a string representation of a value with optional suffix of 'g', 'm', and 'k' suffix to indicate @@ -35,7 +56,7 @@ public static long ParseSize(string propertyName, string propertyValue) { case 'k': case 'K': - if (value > MAX_K_VALUE) + if (value > MaxKValue) { throw new FormatException(propertyName + " would overflow long: " + propertyValue); } @@ -44,7 +65,7 @@ public static long ParseSize(string propertyName, string propertyValue) case 'm': case 'M': - if (value > MAX_M_VALUE) + if (value > MaxMValue) { throw new FormatException(propertyName + " would overflow long: " + propertyValue); } @@ -53,7 +74,7 @@ public static long ParseSize(string propertyName, string propertyValue) case 'g': case 'G': - if (value > MAX_G_VALUE) + if (value > MaxGValue) { throw new FormatException(propertyName + " would overflow long: " + propertyValue); } @@ -69,8 +90,9 @@ public static long ParseSize(string propertyName, string propertyValue) /// Parse a string representation of a time duration with an optional suffix of 's', 'ms', 'us', or 'ns' to /// indicate seconds, milliseconds, microseconds, or nanoseconds respectively. /// - /// If the resulting duration is greater than then is used. - /// + /// If the resulting duration is greater than then + /// is used. + /// /// /// /// associated with the duration value. @@ -94,7 +116,7 @@ public static long ParseDuration(string propertyName, string propertyValue) if (char.IsDigit(secondLastCharacter)) { long value = Convert.ToInt64(propertyValue.Substring(0, propertyValue.Length - 1)); - return SECONDS_TO_NANOS * value; + return SecondsToNanos * value; } else { @@ -108,26 +130,27 @@ public static long ParseDuration(string propertyName, string propertyValue) case 'u': case 'U': - return MICROS_TO_NANOS * value; + return MicrosToNanos * value; case 'm': case 'M': - return MILLS_TO_NANOS * value; + return MillsToNanos * value; default: - throw new FormatException(propertyName + ": " + propertyValue + - " should end with: s, ms, us, or ns."); + throw new FormatException( + propertyName + ": " + propertyValue + " should end with: s, ms, us, or ns." + ); } } } - private const long ONE_KILOBYTE = 1024; - private const long ONE_MEGABYTE = 1024 * 1024; - private const long ONE_GIGABYTE = 1024 * 1024 * 1024; + private const long OneKilobyte = 1024; + private const long OneMegabyte = 1024 * 1024; + private const long OneGigabyte = 1024 * 1024 * 1024; /// - /// Format size value as the shortest possible string with a 'k', 'm', or 'g' suffix when the value is - /// an exact multiple of the corresponding power-of-two. Returns the bare integer otherwise. + /// Format size value as the shortest possible string with a 'k', 'm', or 'g' suffix when the value is an exact + /// multiple of the corresponding power-of-two. Returns the bare integer otherwise. /// /// to format. Must be non-negative. /// formatted value. @@ -139,28 +162,28 @@ public static string FormatSize(long size) throw new ArgumentException("size must be positive: " + size); } - if (size >= ONE_GIGABYTE) + if (size >= OneGigabyte) { - long value = size / ONE_GIGABYTE; - if (size == value * ONE_GIGABYTE) + long value = size / OneGigabyte; + if (size == value * OneGigabyte) { return value + "g"; } } - if (size >= ONE_MEGABYTE) + if (size >= OneMegabyte) { - long value = size / ONE_MEGABYTE; - if (size == value * ONE_MEGABYTE) + long value = size / OneMegabyte; + if (size == value * OneMegabyte) { return value + "m"; } } - if (size >= ONE_KILOBYTE) + if (size >= OneKilobyte) { - long value = size / ONE_KILOBYTE; - if (size == value * ONE_KILOBYTE) + long value = size / OneKilobyte; + if (size == value * OneKilobyte) { return value + "k"; } @@ -170,8 +193,8 @@ public static string FormatSize(long size) } /// - /// Format duration value as the shortest possible string with a 'ns', 'us', 'ms', or 's' suffix. - /// Returns the bare integer with 'ns' suffix otherwise. + /// Format duration value as the shortest possible string with a 'ns', 'us', 'ms', or 's' suffix. Returns the + /// bare integer with 'ns' suffix otherwise. /// /// value in nanoseconds. Must be non-negative. /// formatted value. @@ -183,28 +206,28 @@ public static string FormatDuration(long durationNs) throw new ArgumentException("duration must be positive: " + durationNs); } - if (durationNs >= SECONDS_TO_NANOS) + if (durationNs >= SecondsToNanos) { - long value = durationNs / SECONDS_TO_NANOS; - if (durationNs == value * SECONDS_TO_NANOS) + long value = durationNs / SecondsToNanos; + if (durationNs == value * SecondsToNanos) { return value + "s"; } } - if (durationNs >= MILLS_TO_NANOS) + if (durationNs >= MillsToNanos) { - long value = durationNs / MILLS_TO_NANOS; - if (durationNs == value * MILLS_TO_NANOS) + long value = durationNs / MillsToNanos; + if (durationNs == value * MillsToNanos) { return value + "ms"; } } - if (durationNs >= MICROS_TO_NANOS) + if (durationNs >= MicrosToNanos) { - long value = durationNs / MICROS_TO_NANOS; - if (durationNs == value * MICROS_TO_NANOS) + long value = durationNs / MicrosToNanos; + if (durationNs == value * MicrosToNanos) { return value + "us"; } @@ -213,4 +236,4 @@ public static string FormatDuration(long durationNs) return durationNs + "ns"; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/TimeUnit.cs b/src/Adaptive.Agrona/TimeUnit.cs index c7e9c601..6a1ff437 100644 --- a/src/Adaptive.Agrona/TimeUnit.cs +++ b/src/Adaptive.Agrona/TimeUnit.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; namespace Adaptive.Agrona @@ -7,9 +23,7 @@ public class TimeUnit public static readonly TimeUnit NANOSECONDS = new TimeUnit(); public static readonly TimeUnit MILLIS = new TimeUnit(); - private TimeUnit() - { - } + private TimeUnit() { } public long Convert(long sourceValue, TimeUnit destinationTimeUnit) { @@ -38,18 +52,21 @@ public long Convert(long sourceValue, TimeUnit destinationTimeUnit) return sourceValue / 1000000; } } - - throw new ArgumentException(); + + throw new ArgumentException( + $"Unsupported conversion from {this} to {destinationTimeUnit}", + nameof(destinationTimeUnit) + ); } public long ToMillis(long value) { return Convert(value, MILLIS); } - + public long ToNanos(long value) { return Convert(value, NANOSECONDS); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Util/ByteUtil.cs b/src/Adaptive.Agrona/Util/ByteUtil.cs index babe205d..15734720 100644 --- a/src/Adaptive.Agrona/Util/ByteUtil.cs +++ b/src/Adaptive.Agrona/Util/ByteUtil.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,13 +16,14 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -namespace Adaptive.Agrona.Util { +namespace Adaptive.Agrona.Util +{ /// /// Utility to copy blocks of memory /// - public unsafe class ByteUtil { - + public unsafe class ByteUtil + { // frames are 32-bytes aligned, without CopyChunk64 throughput is better //[StructLayout(LayoutKind.Sequential, Pack = 64, Size = 64)] @@ -40,7 +41,8 @@ internal struct CopyChunk32 } [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void MemoryCopy(byte* destination, byte* source, uint length) { + public static void MemoryCopy(byte* destination, byte* source, uint length) + { var pos = 0; int nextPos; // whithout this perf is better @@ -51,13 +53,15 @@ public static void MemoryCopy(byte* destination, byte* source, uint length) { // nextPos += 64; //} nextPos = pos + 32; - while (nextPos <= length) { + while (nextPos <= length) + { *(CopyChunk32*)(destination + pos) = *(CopyChunk32*)(source + pos); pos = nextPos; nextPos += 32; } nextPos = pos + 8; - while (nextPos <= length) { + while (nextPos <= length) + { *(long*)(destination + pos) = *(long*)(source + pos); pos = nextPos; nextPos += 8; @@ -69,11 +73,11 @@ public static void MemoryCopy(byte* destination, byte* source, uint length) { // pos = nextPos; // nextPos += 4; //} - while (pos < length) { + while (pos < length) + { *(byte*)(destination + pos) = *(byte*)(source + pos); pos++; } } - } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Util/IntUtil.cs b/src/Adaptive.Agrona/Util/IntUtil.cs index f51bd3e1..7bdfa627 100644 --- a/src/Adaptive.Agrona/Util/IntUtil.cs +++ b/src/Adaptive.Agrona/Util/IntUtil.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,18 +21,14 @@ namespace Adaptive.Agrona.Util public static class IntUtil { /// - /// Returns the number of zero bits following the lowest-order ("rightmost") - /// one-bit in the two's complement binary representation of the specified - /// {@code int} value. Returns 32 if the specified value has no - /// one-bits in its two's complement representation, in other words if it is - /// equal to zero. + /// Returns the number of zero bits following the lowest-order ("rightmost") one-bit in the two's complement + /// binary representation of the specified {@code int} value. Returns 32 if the specified value has no one-bits + /// in its two's complement representation, in other words if it is equal to zero. /// /// the value whose number of trailing zeros is to be computed /// the number of zero bits following the lowest-order ("rightmost") - /// one-bit in the two's complement binary representation of the - /// specified {@code int} value, or 32 if the value is equal - /// to zero. - /// @since 1.5 + /// one-bit in the two's complement binary representation of the specified {@code int} value, or 32 if the value + /// is equal to zero. @since 1.5 [MethodImpl(MethodImplOptions.AggressiveInlining)] public static int NumberOfTrailingZeros(int i) { @@ -46,54 +42,48 @@ public static int NumberOfTrailingZeros(int i) y = i << 16; if (y != 0) { - n = n - 16; + n -= 16; i = y; } y = i << 8; if (y != 0) { - n = n - 8; + n -= 8; i = y; } y = i << 4; if (y != 0) { - n = n - 4; + n -= 4; i = y; } y = i << 2; if (y != 0) { - n = n - 2; + n -= 2; i = y; } return n - ((int)((uint)(i << 1) >> 31)); } - /// /// Note Olivier: Direct port of the Java method Integer.NumberOfLeadingZeros - /// - /// Returns the number of zero bits preceding the highest-order - /// ("leftmost") one-bit in the two's complement binary representation - /// of the specified {@code int} value. Returns 32 if the - /// specified value has no one-bits in its two's complement representation, - /// in other words if it is equal to zero. - /// + /// + /// Returns the number of zero bits preceding the highest-order ("leftmost") one-bit in the two's complement + /// binary representation of the specified {@code int} value. Returns 32 if the specified value has no one-bits + /// in its two's complement representation, in other words if it is equal to zero. + /// /// Note that this method is closely related to the logarithm base 2. - /// For all positive {@code int} values x: - ///
    - ///
  • floor(log2(x)) = {@code 31 - numberOfLeadingZeros(x)}
  • - ///
  • ceil(log2(x)) = {@code 32 - numberOfLeadingZeros(x - 1)}
  • - ///
- /// + /// For all positive {@code int} values x:
  • floor(log2(x)) = + /// {@code 31 - numberOfLeadingZeros(x)}
  • ceil(log2(x)) = + /// {@code 32 - numberOfLeadingZeros(x - 1)}
+ /// ///
///
/// the value whose number of leading zeros is to be computed /// the number of zero bits preceding the highest-order - /// ("leftmost") one-bit in the two's complement binary representation - /// of the specified {@code int} value, or 32 if the value - /// is equal to zero. + /// ("leftmost") one-bit in the two's complement binary representation of the specified {@code int} value, or 32 + /// if the value is equal to zero. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static int NumberOfLeadingZeros(int i) @@ -128,4 +118,4 @@ public static int NumberOfLeadingZeros(int i) return n; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Util/LockSupport.cs b/src/Adaptive.Agrona/Util/LockSupport.cs index 35768054..ee36788f 100644 --- a/src/Adaptive.Agrona/Util/LockSupport.cs +++ b/src/Adaptive.Agrona/Util/LockSupport.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,8 +27,8 @@ public static class LockSupport [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void ParkNanos(long nanos) { - var iterations = (int) (15 * nanos / 1000); + var iterations = (int)(15 * nanos / 1000); Thread.SpinWait(iterations); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Util/MappedByteBuffer.cs b/src/Adaptive.Agrona/Util/MappedByteBuffer.cs index c1be14aa..3971a0ef 100644 --- a/src/Adaptive.Agrona/Util/MappedByteBuffer.cs +++ b/src/Adaptive.Agrona/Util/MappedByteBuffer.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,7 +28,7 @@ public unsafe class MappedByteBuffer : IDisposable public MappedByteBuffer(MemoryMappedFile memoryMappedFile) { _memoryMappedFile = memoryMappedFile; - byte* ptr = (byte*) 0; + byte* ptr = (byte*)0; _view = memoryMappedFile.CreateViewAccessor(); _view.SafeMemoryMappedViewHandle.AcquirePointer(ref ptr); @@ -39,7 +39,7 @@ public MappedByteBuffer(MemoryMappedFile memoryMappedFile) public MappedByteBuffer(MemoryMappedFile memoryMappedFile, long offset, long length) { _memoryMappedFile = memoryMappedFile; - byte* ptr = (byte*) 0; + byte* ptr = (byte*)0; _view = memoryMappedFile.CreateViewAccessor(offset, length); _view.SafeMemoryMappedViewHandle.AcquirePointer(ref ptr); @@ -51,7 +51,7 @@ public void FillWithZeros() { for (int i = 0; i < Capacity; i++) { - _view.Write(i, (byte) 0); + _view.Write(i, (byte)0); } } @@ -63,7 +63,7 @@ public void Force() { _view.Flush(); } - + public void Dispose() { Dispose(true); @@ -78,7 +78,10 @@ public void Dispose() private void Dispose(bool disposing) { if (_disposed) + { return; + } + if (_view != null) { _view.SafeMemoryMappedViewHandle.ReleasePointer(); @@ -90,4 +93,4 @@ private void Dispose(bool disposing) _disposed = true; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Util/NanoUtil.cs b/src/Adaptive.Agrona/Util/NanoUtil.cs index 928281da..1eb9e45b 100644 --- a/src/Adaptive.Agrona/Util/NanoUtil.cs +++ b/src/Adaptive.Agrona/Util/NanoUtil.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ public static class NanoUtil { public static long FromSeconds(long seconds) { - return seconds*1000*1000*1000; + return seconds * 1000 * 1000 * 1000; } public static long FromMilliseconds(long milliseconds) @@ -33,4 +33,4 @@ public static int ToMillis(long resourceLingerDurationNs) return (int)(resourceLingerDurationNs / (1000 * 1000)); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Util/ThrowHelper.cs b/src/Adaptive.Agrona/Util/ThrowHelper.cs index 6153aac6..6dd8b1c0 100644 --- a/src/Adaptive.Agrona/Util/ThrowHelper.cs +++ b/src/Adaptive.Agrona/Util/ThrowHelper.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Collections.Generic; using System.Runtime.CompilerServices; @@ -47,7 +63,7 @@ public static void ThrowInvalidCastException() { throw GetInvalidCastException(); } - + [MethodImpl(MethodImplOptions.NoInlining)] public static void ThrowInvalidOperationException(string message) { @@ -145,7 +161,7 @@ private static InvalidOperationException GetInvalidOperationException(string mes { return new InvalidOperationException(message); } - + [MethodImpl(MethodImplOptions.NoInlining)] private static InvalidOperationException GetInvalidOperationException_ForVariantTypeMissmatch() { @@ -182,4 +198,4 @@ private static ObjectDisposedException GetObjectDisposedException(string objectN return new ObjectDisposedException(objectName); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Agrona/Util/UnixTimeConverter.cs b/src/Adaptive.Agrona/Util/UnixTimeConverter.cs index baf1200f..b85b89ad 100644 --- a/src/Adaptive.Agrona/Util/UnixTimeConverter.cs +++ b/src/Adaptive.Agrona/Util/UnixTimeConverter.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ namespace Adaptive.Agrona.Util { public static class UnixTimeConverter { + // ReSharper disable once InconsistentNaming -- "1st" is the correct English ordinal private static readonly DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -35,4 +36,4 @@ public static DateTime FromUnixTimeMillis(long epoch) return Jan1st1970.AddMilliseconds(epoch); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver.IntegrationTests/.editorconfig b/src/Adaptive.Archiver.IntegrationTests/.editorconfig new file mode 100644 index 00000000..9a4d3fce --- /dev/null +++ b/src/Adaptive.Archiver.IntegrationTests/.editorconfig @@ -0,0 +1,6 @@ +# Test method names follow the Method_Scenario_Result convention by design. +# Disable the non-API method PascalCase rule for this project; locals/params/ +# fields still follow the root .editorconfig rules. + +[*.cs] +dotnet_naming_rule.non_api_methods_must_be_pascal.severity = none diff --git a/src/Adaptive.Archiver.Tests/.editorconfig b/src/Adaptive.Archiver.Tests/.editorconfig new file mode 100644 index 00000000..9a4d3fce --- /dev/null +++ b/src/Adaptive.Archiver.Tests/.editorconfig @@ -0,0 +1,6 @@ +# Test method names follow the Method_Scenario_Result convention by design. +# Disable the non-API method PascalCase rule for this project; locals/params/ +# fields still follow the root .editorconfig rules. + +[*.cs] +dotnet_naming_rule.non_api_methods_must_be_pascal.severity = none diff --git a/src/Adaptive.Archiver.Tests/AeronArchiveTest.cs b/src/Adaptive.Archiver.Tests/AeronArchiveTest.cs index 20c6ca7f..a7b85eea 100644 --- a/src/Adaptive.Archiver.Tests/AeronArchiveTest.cs +++ b/src/Adaptive.Archiver.Tests/AeronArchiveTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using System.Threading; using Adaptive.Aeron; @@ -13,10 +29,10 @@ namespace Adaptive.Archiver.Tests { public class AeronArchiveTest { - private const string SESSION_ID_PARAM_NAME = "session-id"; - private const string MTU_LENGTH_PARAM_NAME = "mtu"; - private const string TERM_LENGTH_PARAM_NAME = "term-length"; - private const string SPARSE_PARAM_NAME = "sparse"; + private const string SessionIdParamName = "session-id"; + private const string MtuLengthParamName = "mtu"; + private const string TermLengthParamName = "term-length"; + private const string SparseParamName = "sparse"; private AeronType _aeron; private ControlResponsePoller _controlResponsePoller; @@ -56,23 +72,35 @@ public void AsyncConnectShouldCloseContext() A.CallTo(() => ctx.ControlResponseChannel()).Returns(responseChannel); A.CallTo(() => ctx.ControlResponseStreamId()).Returns(responseStreamId); var error = new InvalidOperationException("subscription"); - A.CallTo(() => _aeron.AsyncAddSubscription( - responseChannel, - responseStreamId, - A._, - A._)) + A.CallTo(() => + _aeron.AsyncAddSubscription( + responseChannel, + responseStreamId, + A._, + A._ + ) + ) .Throws(error); var actualException = Assert.Throws(() => AeronArchive.ConnectAsync(ctx)); Assert.AreSame(error, actualException); - A.CallTo(() => ctx.Conclude()).MustHaveHappened() + A.CallTo(() => ctx.Conclude()) + .MustHaveHappened() .Then(A.CallTo(() => ctx.AeronClient()).MustHaveHappened()) .Then(A.CallTo(() => ctx.ControlResponseChannel()).MustHaveHappened()) .Then(A.CallTo(() => ctx.ControlResponseStreamId()).MustHaveHappened()) - .Then(A.CallTo(() => _aeron.AsyncAddSubscription( - responseChannel, responseStreamId, A._, A._)) - .MustHaveHappened()) + .Then( + A.CallTo(() => + _aeron.AsyncAddSubscription( + responseChannel, + responseStreamId, + A._, + A._ + ) + ) + .MustHaveHappened() + ) .Then(A.CallTo(() => ctx.Dispose()).MustHaveHappened()); } @@ -91,11 +119,14 @@ public void AsyncConnectShouldCloseResourceInCaseOfExceptionUponStartup() A.CallTo(() => ctx.ControlResponseStreamId()).Returns(responseStreamId); A.CallTo(() => ctx.ControlRequestChannel()).Returns(requestChannel); A.CallTo(() => ctx.ControlRequestStreamId()).Returns(requestStreamId); - A.CallTo(() => _aeron.AsyncAddSubscription( - responseChannel, - responseStreamId, - A._, - A._)) + A.CallTo(() => + _aeron.AsyncAddSubscription( + responseChannel, + responseStreamId, + A._, + A._ + ) + ) .Returns(subscriptionId); var error = new IndexOutOfRangeException("exception"); A.CallTo(() => _aeron.Ctx).Throws(error); @@ -103,13 +134,22 @@ public void AsyncConnectShouldCloseResourceInCaseOfExceptionUponStartup() var actualException = Assert.Throws(() => AeronArchive.ConnectAsync(ctx)); Assert.AreSame(error, actualException); - A.CallTo(() => ctx.Conclude()).MustHaveHappened() + A.CallTo(() => ctx.Conclude()) + .MustHaveHappened() .Then(A.CallTo(() => ctx.AeronClient()).MustHaveHappened()) .Then(A.CallTo(() => ctx.ControlResponseChannel()).MustHaveHappened()) .Then(A.CallTo(() => ctx.ControlResponseStreamId()).MustHaveHappened()) - .Then(A.CallTo(() => _aeron.AsyncAddSubscription( - responseChannel, responseStreamId, A._, A._)) - .MustHaveHappened()) + .Then( + A.CallTo(() => + _aeron.AsyncAddSubscription( + responseChannel, + responseStreamId, + A._, + A._ + ) + ) + .MustHaveHappened() + ) .Then(A.CallTo(() => _aeron.AsyncRemoveSubscription(subscriptionId)).MustHaveHappened()) .Then(A.CallTo(() => ctx.Dispose()).MustHaveHappened()); } @@ -149,25 +189,31 @@ public void ShouldReturnAssignedArchiveId(long archiveId) .ErrorHandler(_errorHandler) .OwnsAeronClient(true); - var aeronArchive = new AeronArchive(context, _controlResponsePoller, _archiveProxy, controlSessionId, archiveId); + var aeronArchive = new AeronArchive( + context, + _controlResponsePoller, + _archiveProxy, + controlSessionId, + archiveId + ); Assert.AreEqual(archiveId, aeronArchive.ArchiveId()); } [TestCase( "aeron:udp?endpoint=localhost:3388|mtu=2048", - "aeron:udp?session-id=5|endpoint=localhost:0|sparse=true|mtu=1024")] - [TestCase( - "aeron:udp?endpoint=localhost:3388", - "aeron:udp?control=localhost:10000|control-mode=dynamic")] - [TestCase( - "aeron:udp?endpoint=localhost:3388", - "aeron:udp?control-mode=manual")] + "aeron:udp?session-id=5|endpoint=localhost:0|sparse=true|mtu=1024" + )] + [TestCase("aeron:udp?endpoint=localhost:3388", "aeron:udp?control=localhost:10000|control-mode=dynamic")] + [TestCase("aeron:udp?endpoint=localhost:3388", "aeron:udp?control-mode=manual")] [TestCase( "aeron:ipc?alias=request|ssc=false|linger=0|session-id=42|sparse=false", - "aeron:ipc?term-length=64k|alias=response")] + "aeron:ipc?term-length=64k|alias=response" + )] public void ShouldAddAUniqueSessionIdParameterToBothRequestAndResponseChannels( - string requestChannel, string responseChannel) + string requestChannel, + string responseChannel + ) { const int requestStreamId = 42; const int responseStreamId = -19; @@ -199,25 +245,33 @@ public void ShouldAddAUniqueSessionIdParameterToBothRequestAndResponseChannels( var actualRequestChannel = ChannelUri.Parse(context.ControlRequestChannel()); var actualResponseChannel = ChannelUri.Parse(context.ControlResponseChannel()); - Assert.IsTrue(actualRequestChannel.ContainsKey(SESSION_ID_PARAM_NAME), "session-id was not added"); - Assert.AreEqual(sessionId.ToString(), actualRequestChannel.Get(SESSION_ID_PARAM_NAME)); - Assert.AreEqual(sessionId.ToString(), actualResponseChannel.Get(SESSION_ID_PARAM_NAME)); - - ChannelUri.Parse(requestChannel).ForEachParameter((key, value) => - { - if (!SESSION_ID_PARAM_NAME.Equals(key)) - { - Assert.AreEqual(value, actualRequestChannel.Get(key)); - } - }); - - ChannelUri.Parse(responseChannel).ForEachParameter((key, value) => - { - if (!SESSION_ID_PARAM_NAME.Equals(key)) - { - Assert.AreEqual(value, actualResponseChannel.Get(key)); - } - }); + Assert.IsTrue(actualRequestChannel.ContainsKey(SessionIdParamName), "session-id was not added"); + Assert.AreEqual(sessionId.ToString(), actualRequestChannel.Get(SessionIdParamName)); + Assert.AreEqual(sessionId.ToString(), actualResponseChannel.Get(SessionIdParamName)); + + ChannelUri + .Parse(requestChannel) + .ForEachParameter( + (key, value) => + { + if (!SessionIdParamName.Equals(key)) + { + Assert.AreEqual(value, actualRequestChannel.Get(key)); + } + } + ); + + ChannelUri + .Parse(responseChannel) + .ForEachParameter( + (key, value) => + { + if (!SessionIdParamName.Equals(key)) + { + Assert.AreEqual(value, actualResponseChannel.Get(key)); + } + } + ); } [Test] @@ -248,14 +302,19 @@ public void ShouldNotAddASessionIdIfControlModeResponseIsSpecifiedOnTheResponseC var actualRequestChannel = ChannelUri.Parse(context.ControlRequestChannel()); var actualResponseChannel = ChannelUri.Parse(context.ControlResponseChannel()); - Assert.IsNull(actualRequestChannel.Get(SESSION_ID_PARAM_NAME), "unexpected session-id on request channel"); - Assert.IsNull(actualResponseChannel.Get(SESSION_ID_PARAM_NAME), "unexpected session-id on response channel"); - - ChannelUri.Parse(requestChannel).ForEachParameter( - (key, value) => Assert.AreEqual(value, actualRequestChannel.Get(key))); - - ChannelUri.Parse(responseChannel).ForEachParameter( - (key, value) => Assert.AreEqual(value, actualResponseChannel.Get(key))); + Assert.IsNull(actualRequestChannel.Get(SessionIdParamName), "unexpected session-id on request channel"); + Assert.IsNull( + actualResponseChannel.Get(SessionIdParamName), + "unexpected session-id on response channel" + ); + + ChannelUri + .Parse(requestChannel) + .ForEachParameter((key, value) => Assert.AreEqual(value, actualRequestChannel.Get(key))); + + ChannelUri + .Parse(responseChannel) + .ForEachParameter((key, value) => Assert.AreEqual(value, actualResponseChannel.Get(key))); } [Test] @@ -289,17 +348,19 @@ public void ShouldAddDefaultUriParametersIfNotSpecified() var actualRequestChannel = ChannelUri.Parse(context.ControlRequestChannel()); var actualResponseChannel = ChannelUri.Parse(context.ControlResponseChannel()); - Assert.AreEqual(context.ControlMtuLength().ToString(), actualRequestChannel.Get(MTU_LENGTH_PARAM_NAME)); - Assert.AreEqual(context.ControlMtuLength().ToString(), actualResponseChannel.Get(MTU_LENGTH_PARAM_NAME)); + Assert.AreEqual(context.ControlMtuLength().ToString(), actualRequestChannel.Get(MtuLengthParamName)); + Assert.AreEqual(context.ControlMtuLength().ToString(), actualResponseChannel.Get(MtuLengthParamName)); Assert.AreEqual( context.ControlTermBufferLength().ToString(), - actualRequestChannel.Get(TERM_LENGTH_PARAM_NAME)); + actualRequestChannel.Get(TermLengthParamName) + ); Assert.AreEqual( context.ControlTermBufferLength().ToString(), - actualResponseChannel.Get(TERM_LENGTH_PARAM_NAME)); + actualResponseChannel.Get(TermLengthParamName) + ); string sparseStr = context.ControlTermBufferSparse() ? "true" : "false"; - Assert.AreEqual(sparseStr, actualRequestChannel.Get(SPARSE_PARAM_NAME)); - Assert.AreEqual(sparseStr, actualResponseChannel.Get(SPARSE_PARAM_NAME)); + Assert.AreEqual(sparseStr, actualRequestChannel.Get(SparseParamName)); + Assert.AreEqual(sparseStr, actualResponseChannel.Get(SparseParamName)); } [TestCase(int.MinValue)] @@ -317,7 +378,8 @@ public void ShouldRejectInvalidRetryAttempts(int retryAttempts) var exception = Assert.Throws(() => context.Conclude()); Assert.AreEqual( "AeronArchive.Context.messageRetryAttempts must be > 0, got: " + retryAttempts, - exception.Message); + exception.Message + ); } [Test] @@ -343,6 +405,7 @@ public void MaxRetryAttemptsSystemProperty() } [Test] +#pragma warning disable CA1506 public void CloseNotOwningAeronClient() { const long controlSessionId = 42L; @@ -375,21 +438,35 @@ public void CloseNotOwningAeronClient() .Lock(new NoOpLock()) .ErrorHandler(_errorHandler) .OwnsAeronClient(false); - var aeronArchive = new AeronArchive(context, _controlResponsePoller, _archiveProxy, controlSessionId, archiveId); + var aeronArchive = new AeronArchive( + context, + _controlResponsePoller, + _archiveProxy, + controlSessionId, + archiveId + ); aeronArchive.Dispose(); - A.CallTo(() => _errorHandler.OnError(A.That.Matches(ex => - ReferenceEquals(closeSessionException, ex) && - ex.GetSuppressed().Count >= 2 && - ReferenceEquals(publicationException, ex.GetSuppressed()[0]) && - ReferenceEquals(subscriptionException, ex.GetSuppressed()[1])))).MustHaveHappened(); + A.CallTo(() => + _errorHandler.OnError( + A.That.Matches(ex => + ReferenceEquals(closeSessionException, ex) + && ex.GetSuppressed().Count >= 2 + && ReferenceEquals(publicationException, ex.GetSuppressed()[0]) + && ReferenceEquals(subscriptionException, ex.GetSuppressed()[1]) + ) + ) + ) + .MustHaveHappened(); A.CallTo(_errorHandler).MustHaveHappenedOnceExactly(); A.CallTo(() => publication.Dispose()).MustHaveHappened(); A.CallTo(() => subscription.Dispose()).MustHaveHappened(); } +#pragma warning restore CA1506 [Test] +#pragma warning disable CA1506 public void CloseOwningAeronClient() { const long controlSessionId = 42L; @@ -420,7 +497,13 @@ public void CloseOwningAeronClient() .Lock(new NoOpLock()) .ErrorHandler(_errorHandler) .OwnsAeronClient(true); - var aeronArchive = new AeronArchive(context, _controlResponsePoller, _archiveProxy, controlSessionId, archiveId); + var aeronArchive = new AeronArchive( + context, + _controlResponsePoller, + _archiveProxy, + controlSessionId, + archiveId + ); var ex = Assert.Throws(() => aeronArchive.Dispose()); @@ -429,5 +512,6 @@ public void CloseOwningAeronClient() A.CallTo(_errorHandler).MustHaveHappenedOnceExactly(); Assert.AreEqual(aeronException, ex.GetSuppressed()[0]); } +#pragma warning restore CA1506 } } diff --git a/src/Adaptive.Archiver.Tests/ArchiveExceptionTest.cs b/src/Adaptive.Archiver.Tests/ArchiveExceptionTest.cs index 5747249a..e568675e 100644 --- a/src/Adaptive.Archiver.Tests/ArchiveExceptionTest.cs +++ b/src/Adaptive.Archiver.Tests/ArchiveExceptionTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using NUnit.Framework; namespace Adaptive.Archiver.Tests diff --git a/src/Adaptive.Archiver/Adaptive.Archiver.csproj b/src/Adaptive.Archiver/Adaptive.Archiver.csproj index e5c80eb7..c898c94c 100644 --- a/src/Adaptive.Archiver/Adaptive.Archiver.csproj +++ b/src/Adaptive.Archiver/Adaptive.Archiver.csproj @@ -20,6 +20,16 @@ + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + diff --git a/src/Adaptive.Archiver/AeronArchive.cs b/src/Adaptive.Archiver/AeronArchive.cs index f25fe6c8..bc5b68a8 100644 --- a/src/Adaptive.Archiver/AeronArchive.cs +++ b/src/Adaptive.Archiver/AeronArchive.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Runtime.ExceptionServices; using System.Threading; using Adaptive.Aeron; @@ -14,12 +30,14 @@ namespace Adaptive.Archiver /// /// Client for interacting with a local or remote Aeron Archive that records and replays message streams. /// - /// This client provides a simple interaction model which is mostly synchronous and may not be optimal. - /// The underlying components such as the and the or + /// This client provides a simple interaction model which is mostly synchronous and may not be optimal. The + /// underlying components such as the and the + /// or /// may be used directly if a more asynchronous interaction is required. /// /// - /// Note: This class is threadsafe but the lock can be elided for single threaded access via + /// Note: This class is threadsafe but the lock can be elided for single threaded access via + /// /// being set to . /// /// @@ -55,7 +73,7 @@ public class AeronArchive : IDisposable /// When replaying a live recording, replay up to the current limit then stop the replay and end the stream. ///
public const long REPLAY_ALL_AND_STOP = -2; - + /// /// Describes state of the client instance. /// @@ -67,8 +85,8 @@ public enum ArchiveState CONNECTED, /// - /// Connection to the archive was lost. It is only possible to close this client instance. A new client instance - /// must be created in order to establish connection with archive again. + /// Connection to the archive was lost. It is only possible to close this client instance. A new client + /// instance must be created in order to establish connection with archive again. /// DISCONNECTED, @@ -76,63 +94,67 @@ public enum ArchiveState /// Client was closed and can no longer be used. A new client instance must be created in order to establish /// connection with archive again. ///
- CLOSED + CLOSED, } - - private const int FRAGMENT_LIMIT = 10; - - private volatile ArchiveState state; - private bool isInCallback = false; - private long lastCorrelationId = Aeron.Aeron.NULL_VALUE; - private readonly long controlSessionId; - private readonly long archiveId; - private readonly long messageTimeoutNs; - private readonly Context context; - private readonly Aeron.Aeron aeron; - private readonly ArchiveProxy archiveProxy; - private readonly IIdleStrategy idleStrategy; - private readonly ControlResponsePoller controlResponsePoller; + private const int FragmentLimit = 10; + + private volatile ArchiveState _state; + private bool _isInCallback = false; + private long _lastCorrelationId = Aeron.Aeron.NULL_VALUE; + private readonly long _controlSessionId; + private readonly long _archiveId; + private readonly long _messageTimeoutNs; + private readonly Context _context; + private readonly Aeron.Aeron _aeron; + private readonly ArchiveProxy _archiveProxy; + private readonly IIdleStrategy _idleStrategy; + private readonly ControlResponsePoller _controlResponsePoller; private readonly ILock _lock; - private readonly INanoClock nanoClock; - private readonly AgentInvoker agentInvoker; - private readonly AgentInvoker aeronClientInvoker; - private RecordingDescriptorPoller recordingDescriptorPoller; - private RecordingSubscriptionDescriptorPoller recordingSubscriptionDescriptorPoller; + private readonly INanoClock _nanoClock; + private readonly AgentInvoker _agentInvoker; + private readonly AgentInvoker _aeronClientInvoker; + private RecordingDescriptorPoller _recordingDescriptorPoller; + private RecordingSubscriptionDescriptorPoller _recordingSubscriptionDescriptorPoller; internal AeronArchive( Context context, ControlResponsePoller controlResponsePoller, ArchiveProxy archiveProxy, long controlSessionId, - long archiveId) + long archiveId + ) { - this.context = context; - aeron = context.AeronClient(); - aeronClientInvoker = aeron.ConductorAgentInvoker; - agentInvoker = context.AgentInvoker(); - idleStrategy = context.IdleStrategy(); - messageTimeoutNs = context.MessageTimeoutNs(); + _context = context; + _aeron = context.AeronClient(); + _aeronClientInvoker = _aeron.ConductorAgentInvoker; + _agentInvoker = context.AgentInvoker(); + _idleStrategy = context.IdleStrategy(); + _messageTimeoutNs = context.MessageTimeoutNs(); _lock = context.Lock(); - nanoClock = aeron.Ctx.NanoClock(); - this.controlResponsePoller = controlResponsePoller; - this.archiveProxy = archiveProxy; - this.controlSessionId = controlSessionId; - this.archiveId = archiveId; - state = ArchiveState.CONNECTED; + _nanoClock = _aeron.Ctx.NanoClock(); + _controlResponsePoller = controlResponsePoller; + _archiveProxy = archiveProxy; + _controlSessionId = controlSessionId; + _archiveId = archiveId; + _state = ArchiveState.CONNECTED; } /// - /// Position of the recorded stream at the base of a segment file. If a recording starts within a term - /// then the base position can be before the recording started. + /// Position of the recorded stream at the base of a segment file. If a recording starts within a term then the + /// base position can be before the recording started. /// /// of the stream. /// of the stream to calculate the segment base position from. /// of the stream. /// which is a multiple of term length. /// the position of the recorded stream at the beginning of a segment file. - public static long SegmentFileBasePosition(long startPosition, long position, int termBufferLength, - int segmentFileLength) + public static long SegmentFileBasePosition( + long startPosition, + long position, + int termBufferLength, + int segmentFileLength + ) { long startTermBasePosition = startPosition - (startPosition & (termBufferLength - 1)); long lengthFromBasePosition = position - startTermBasePosition; @@ -147,7 +169,7 @@ public static long SegmentFileBasePosition(long startPosition, long position, in /// client state. public ArchiveState State() { - return state; + return _state; } /// @@ -159,28 +181,30 @@ public void Dispose() _lock.Lock(); try { - if (ArchiveState.CLOSED != state) + if (ArchiveState.CLOSED != _state) { State(ArchiveState.CLOSED); - IErrorHandler errorHandler = context.ErrorHandler(); + IErrorHandler errorHandler = _context.ErrorHandler(); Exception resultEx = null; - if (archiveProxy.Pub().IsConnected) + if (_archiveProxy.Pub().IsConnected) { - resultEx = QuietClose(resultEx, - Disposable.Of(() => archiveProxy.CloseSession(controlSessionId))); + resultEx = QuietClose( + resultEx, + Disposable.Of(() => _archiveProxy.CloseSession(_controlSessionId)) + ); } - if (!context.OwnsAeronClient()) + if (!_context.OwnsAeronClient()) { - resultEx = QuietClose(resultEx, archiveProxy.Pub()); - resultEx = QuietClose(resultEx, controlResponsePoller.Subscription()); + resultEx = QuietClose(resultEx, _archiveProxy.Pub()); + resultEx = QuietClose(resultEx, _controlResponsePoller.Subscription()); } bool rethrow = false; try { - context.Dispose(); + _context.Dispose(); } catch (Exception ex) { @@ -216,7 +240,8 @@ public void Dispose() } /// - /// Connect to an Aeron archive using a default . This will create a control session. + /// Connect to an Aeron archive using a default . This will create + /// a control session. /// /// the newly created Aeron Archive client. public static AeronArchive Connect() @@ -225,11 +250,12 @@ public static AeronArchive Connect() } /// - /// Connect to an Aeron archive by providing a . This will create a control session. + /// Connect to an Aeron archive by providing a . This will create + /// a control session. /// - /// Before connecting will be called. - /// If an exception occurs then will be called. - /// + /// Before connecting will be called. If an exception + /// occurs then will be called. + /// /// /// /// for connection configuration. @@ -277,9 +303,9 @@ public static AeronArchive Connect(Context ctx) } } - /// - /// Begin an attempt at creating a connection which can be completed by calling until + /// Begin an attempt at creating a connection which can be completed by calling + /// until /// it returns the client, before complete it will return null. /// /// the that can be polled for completion. @@ -289,7 +315,8 @@ public static AsyncConnect ConnectAsync() } /// - /// Begin an attempt at creating a connection which can be completed by calling until + /// Begin an attempt at creating a connection which can be completed by calling + /// until /// it returns the client, before complete it will return null. /// /// for the archive connection. @@ -300,14 +327,13 @@ public static AsyncConnect ConnectAsync(Context ctx) return new AsyncConnect(ctx); } - /// /// Get the used to connect this archive client. /// /// the used to connect this archive client. public Context Ctx() { - return context; + return _context; } /// @@ -316,7 +342,7 @@ public Context Ctx() /// last correlation id used for sending a request to the archive. public long LastCorrelationId() { - return lastCorrelationId; + return _lastCorrelationId; } /// @@ -325,69 +351,76 @@ public long LastCorrelationId() /// control session id allocated for this connection to the archive. public long ControlSessionId() { - return controlSessionId; + return _controlSessionId; } /// /// The for send asynchronous messages to the connected archive. /// - /// the for send asynchronous messages to the connected archive. + /// the for send asynchronous messages to the connected archive. + /// public ArchiveProxy Proxy() { - return archiveProxy; + return _archiveProxy; } /// /// Get the for polling additional events on the control channel. /// - /// the for polling additional events on the control channel. + /// the for polling additional events on the control channel. + /// public ControlResponsePoller ControlResponsePoller() { - return controlResponsePoller; + return _controlResponsePoller; } /// - /// Get the for polling recording descriptors on the control channel. + /// Get the for polling recording descriptors on the control + /// channel. /// - /// the for polling recording descriptors on the control channel. + /// the for polling recording descriptors on the control + /// channel. public RecordingDescriptorPoller RecordingDescriptorPoller() { - if (null == recordingDescriptorPoller) + if (null == _recordingDescriptorPoller) { - recordingDescriptorPoller = new RecordingDescriptorPoller( - controlResponsePoller.Subscription(), - context.ErrorHandler(), - context.RecordingSignalConsumer(), - controlSessionId, - FRAGMENT_LIMIT); + _recordingDescriptorPoller = new RecordingDescriptorPoller( + _controlResponsePoller.Subscription(), + _context.ErrorHandler(), + _context.RecordingSignalConsumer(), + _controlSessionId, + FragmentLimit + ); } - return recordingDescriptorPoller; + return _recordingDescriptorPoller; } /// - /// The for polling subscription descriptors on the control channel. + /// The for polling subscription descriptors on the + /// control channel. /// - /// the for polling subscription descriptors on the control - /// channel. + /// the for polling subscription descriptors + /// on the control channel. public RecordingSubscriptionDescriptorPoller RecordingSubscriptionDescriptorPoller() { - if (null == recordingSubscriptionDescriptorPoller) + if (null == _recordingSubscriptionDescriptorPoller) { - recordingSubscriptionDescriptorPoller = new RecordingSubscriptionDescriptorPoller( - controlResponsePoller.Subscription(), - context.ErrorHandler(), - context.RecordingSignalConsumer(), - controlSessionId, - FRAGMENT_LIMIT); + _recordingSubscriptionDescriptorPoller = new RecordingSubscriptionDescriptorPoller( + _controlResponsePoller.Subscription(), + _context.ErrorHandler(), + _context.RecordingSignalConsumer(), + _controlSessionId, + FragmentLimit + ); } - return recordingSubscriptionDescriptorPoller; + return _recordingSubscriptionDescriptorPoller; } /// - /// Poll the response stream once for an error. If another message is present then it will be skipped over - /// so only call when not expecting another response. If not connected then return . + /// Poll the response stream once for an error. If another message is present then it will be skipped over so + /// only call when not expecting another response. If not connected then return . /// /// the error String otherwise null if no error is found. public string PollForErrorResponse() @@ -397,31 +430,27 @@ public string PollForErrorResponse() { EnsureConnected(); - ControlResponsePoller poller = controlResponsePoller; + ControlResponsePoller poller = _controlResponsePoller; if (!poller.Subscription().IsConnected) { State(ArchiveState.DISCONNECTED); return NOT_CONNECTED_MSG; } - if (poller.Poll() != 0 && poller.PollComplete) + if (poller.Poll() != 0 && poller.PollComplete && poller.ControlSessionId() == _controlSessionId) { - if (poller.ControlSessionId() == controlSessionId) + if (poller.Code() == ControlResponseCode.ERROR) { - if (poller.Code() == ControlResponseCode.ERROR) - { - return poller.ErrorMessage(); - } - else if (poller.TemplateId() == RecordingSignalEventDecoder.TEMPLATE_ID) - { - DispatchRecordingSignal(poller); - } + return poller.ErrorMessage(); + } + else if (poller.TemplateId() == RecordingSignalEventDecoder.TEMPLATE_ID) + { + DispatchRecordingSignal(poller); } } return null; } - finally { _lock.Unlock(); @@ -432,8 +461,9 @@ public string PollForErrorResponse() /// Check if an error has been returned for the control session, or if it is no longer connected, and then throw /// a if is not set. /// - /// To check for an error response without raising an exception then try . - /// + /// To check for an error response without raising an exception then try + /// . + /// /// /// /// @@ -444,42 +474,42 @@ public void CheckForErrorResponse() { EnsureConnected(); - ControlResponsePoller poller = controlResponsePoller; + ControlResponsePoller poller = _controlResponsePoller; if (!poller.Subscription().IsConnected) { State(ArchiveState.DISCONNECTED); - if (null != context.ErrorHandler()) + if (null != _context.ErrorHandler()) { - context.ErrorHandler().OnError(new ArchiveException(NOT_CONNECTED_MSG)); + _context.ErrorHandler().OnError(new ArchiveException(NOT_CONNECTED_MSG)); } else { throw new ArchiveException(NOT_CONNECTED_MSG); } } - else if (poller.Poll() != 0 && poller.PollComplete) + else if (poller.Poll() != 0 && poller.PollComplete && poller.ControlSessionId() == _controlSessionId) { - if (poller.ControlSessionId() == controlSessionId) + if (poller.Code() == ControlResponseCode.ERROR) { - if (poller.Code() == ControlResponseCode.ERROR) - { - ArchiveException ex = new ArchiveException(poller.ErrorMessage(), (int)poller.RelevantId(), - poller.CorrelationId()); + ArchiveException ex = new ArchiveException( + poller.ErrorMessage(), + (int)poller.RelevantId(), + poller.CorrelationId() + ); - if (null != context.ErrorHandler()) - { - context.ErrorHandler().OnError(ex); - } - else - { - throw ex; - } + if (null != _context.ErrorHandler()) + { + _context.ErrorHandler().OnError(ex); } - else if (poller.TemplateId() == RecordingSignalEventDecoder.TEMPLATE_ID) + else { - DispatchRecordingSignal(poller); + throw ex; } } + else if (poller.TemplateId() == RecordingSignalEventDecoder.TEMPLATE_ID) + { + DispatchRecordingSignal(poller); + } } } finally @@ -500,31 +530,31 @@ public int PollForRecordingSignals() { EnsureConnected(); - ControlResponsePoller poller = controlResponsePoller; - if (poller.Poll() != 0 && poller.PollComplete) + ControlResponsePoller poller = _controlResponsePoller; + if (poller.Poll() != 0 && poller.PollComplete && poller.ControlSessionId() == _controlSessionId) { - if (poller.ControlSessionId() == controlSessionId) + if (poller.Code() == ControlResponseCode.ERROR) { - if (poller.Code() == ControlResponseCode.ERROR) - { - ArchiveException ex = new ArchiveException(poller.ErrorMessage(), (int)poller.RelevantId(), - poller.CorrelationId()); + ArchiveException ex = new ArchiveException( + poller.ErrorMessage(), + (int)poller.RelevantId(), + poller.CorrelationId() + ); - if (null != context.ErrorHandler()) - { - context.ErrorHandler().OnError(ex); - } - else - { - throw ex; - } + if (null != _context.ErrorHandler()) + { + _context.ErrorHandler().OnError(ex); } - else if (poller.TemplateId() == RecordingSignalEventDecoder.TEMPLATE_ID) + else { - DispatchRecordingSignal(poller); - return 1; + throw ex; } } + else if (poller.TemplateId() == RecordingSignalEventDecoder.TEMPLATE_ID) + { + DispatchRecordingSignal(poller); + return 1; + } } return 0; @@ -536,12 +566,12 @@ public int PollForRecordingSignals() } /// - /// Add a and set it up to be recorded. If this is not the first, - /// i.e. is true, then an - /// will be thrown and the recording not initiated. + /// Add a and set it up to be recorded. If this is not the first, i.e. + /// is true, then an will be thrown + /// and the recording not initiated. /// /// This is a sessionId specific recording. - /// + /// /// /// /// for the publication. @@ -556,13 +586,14 @@ public Publication AddRecordedPublication(string channel, int streamId) EnsureConnected(); EnsureNotReentrant(); - publication = aeron.AddPublication(channel, streamId); + publication = _aeron.AddPublication(channel, streamId); if (!publication.IsOriginal) { publication.Dispose(); throw new ArchiveException( - "publication already added for channel=" + channel + " streamId=" + streamId); + "publication already added for channel=" + channel + " streamId=" + streamId + ); } StartRecording(ChannelUri.AddSessionId(channel, publication.SessionId), streamId, SourceLocation.LOCAL); @@ -584,7 +615,7 @@ public Publication AddRecordedPublication(string channel, int streamId) /// Add an and set it up to be recorded. /// /// This is a sessionId specific recording. - /// + /// /// /// /// for the publication. @@ -599,7 +630,7 @@ public ExclusivePublication AddRecordedExclusivePublication(string channel, int EnsureConnected(); EnsureNotReentrant(); - publication = aeron.AddExclusivePublication(channel, streamId); + publication = _aeron.AddExclusivePublication(channel, streamId); StartRecording(ChannelUri.AddSessionId(channel, publication.SessionId), streamId, SourceLocation.LOCAL); } catch (Exception) @@ -619,16 +650,16 @@ public ExclusivePublication AddRecordedExclusivePublication(string channel, int /// Start recording a channel and stream pairing. /// /// Channels that include sessionId parameters are considered different from channels without sessionIds. If a - /// publication matches both a sessionId specific channel recording and a non-sessionId specific recording, - /// it will be recorded twice. - /// + /// publication matches both a sessionId specific channel recording and a non-sessionId specific recording, it + /// will be recorded twice. + /// /// /// /// to be recorded. /// to be recorded. /// of the publication to be recorded. - /// the subscriptionId, i.e. , of the recording. This can be - /// passed to . + /// the subscriptionId, i.e. , of the recording. This can + /// be passed to . public long StartRecording(string channel, int streamId, SourceLocation sourceLocation) { _lock.Lock(); @@ -637,15 +668,22 @@ public long StartRecording(string channel, int streamId, SourceLocation sourceLo EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); - - if (!archiveProxy.StartRecording(channel, streamId, sourceLocation, lastCorrelationId, - controlSessionId)) + _lastCorrelationId = _aeron.NextCorrelationId(); + + if ( + !_archiveProxy.StartRecording( + channel, + streamId, + sourceLocation, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send start recording request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -657,18 +695,18 @@ public long StartRecording(string channel, int streamId, SourceLocation sourceLo /// Start recording a channel and stream pairing. /// /// Channels that include sessionId parameters are considered different fom channels without sessionIds. If a - /// publication matches both a sessionId specific channel recording and a non-sessionId specific recording, - /// it will be recorded twice. - /// + /// publication matches both a sessionId specific channel recording and a non-sessionId specific recording, it + /// will be recorded twice. + /// /// ///
/// to be recorded. /// to be recorded. /// of the publication to be recorded. /// if the recording should be automatically stopped when complete. - /// the subscriptionId, i.e. , of the recording. This can be - /// passed to . However, if is autoStop is true then no need to stop the recording - /// unless you want to abort early. + /// the subscriptionId, i.e. , of the recording. This can + /// be passed to . However, if is autoStop is true then no need to stop the + /// recording unless you want to abort early. public long StartRecording(string channel, int streamId, SourceLocation sourceLocation, bool autoStop) { _lock.Lock(); @@ -677,15 +715,23 @@ public long StartRecording(string channel, int streamId, SourceLocation sourceLo EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); - - if (!archiveProxy.StartRecording(channel, streamId, sourceLocation, autoStop, lastCorrelationId, - controlSessionId)) + _lastCorrelationId = _aeron.NextCorrelationId(); + + if ( + !_archiveProxy.StartRecording( + channel, + streamId, + sourceLocation, + autoStop, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send start recording request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -697,17 +743,17 @@ public long StartRecording(string channel, int streamId, SourceLocation sourceLo /// Extend an existing, non-active recording of a channel and stream pairing. /// /// The channel must be configured for the initial position from which it will be extended. This can be done - /// with . The details required to initialise can - /// be found by calling . - /// + /// with . The details required to + /// initialise can be found by calling . + /// /// ///
/// of the existing recording. /// to be recorded. /// to be recorded. /// of the publication to be recorded. - /// the subscriptionId, i.e. , of the recording. This can be - /// passed to . + /// the subscriptionId, i.e. , of the recording. This can + /// be passed to . public long ExtendRecording(long recordingId, string channel, int streamId, SourceLocation sourceLocation) { _lock.Lock(); @@ -716,15 +762,23 @@ public long ExtendRecording(long recordingId, string channel, int streamId, Sour EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); - - if (!archiveProxy.ExtendRecording(channel, streamId, sourceLocation, recordingId, lastCorrelationId, - controlSessionId)) + _lastCorrelationId = _aeron.NextCorrelationId(); + + if ( + !_archiveProxy.ExtendRecording( + channel, + streamId, + sourceLocation, + recordingId, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send extend recording request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -736,9 +790,9 @@ public long ExtendRecording(long recordingId, string channel, int streamId, Sour /// Extend an existing, non-active recording of a channel and stream pairing. /// /// The channel must be configured for the initial position from which it will be extended. This can be done - /// with . The details required to initialise can - /// be found by calling . - /// + /// with . The details required to + /// initialise can be found by calling . + /// /// ///
/// of the existing recording. @@ -746,11 +800,16 @@ public long ExtendRecording(long recordingId, string channel, int streamId, Sour /// to be recorded. /// of the publication to be recorded. /// if the recording should be automatically stopped when complete. - /// the subscriptionId, i.e. , of the recording. This can be - /// passed to . However, if is autoStop is true then no need to stop the recording - /// unless you want to abort early. - public long ExtendRecording(long recordingId, string channel, int streamId, SourceLocation sourceLocation, - bool autoStop) + /// the subscriptionId, i.e. , of the recording. This + /// can be passed to . However, if is autoStop is true then no need to stop + /// the recording unless you want to abort early. + public long ExtendRecording( + long recordingId, + string channel, + int streamId, + SourceLocation sourceLocation, + bool autoStop + ) { _lock.Lock(); try @@ -758,15 +817,24 @@ public long ExtendRecording(long recordingId, string channel, int streamId, Sour EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); - - if (!archiveProxy.ExtendRecording(channel, streamId, sourceLocation, autoStop, recordingId, - lastCorrelationId, controlSessionId)) + _lastCorrelationId = _aeron.NextCorrelationId(); + + if ( + !_archiveProxy.ExtendRecording( + channel, + streamId, + sourceLocation, + autoStop, + recordingId, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send extend recording request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -777,10 +845,10 @@ public long ExtendRecording(long recordingId, string channel, int streamId, Sour /// /// Stop recording for a channel and stream pairing. /// - /// Channels that include sessionId parameters are considered different from channels without sessionIds. Stopping - /// a recording on a channel without a sessionId parameter will not stop the recording of any sessionId specific - /// recordings that use the same channel and streamId. - /// + /// Channels that include sessionId parameters are considered different from channels without sessionIds. + /// Stopping a recording on a channel without a sessionId parameter will not stop the recording of any sessionId + /// specific recordings that use the same channel and streamId. + /// /// /// /// to stop recording for. @@ -793,14 +861,14 @@ public void StopRecording(string channel, int streamId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.StopRecording(channel, streamId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.StopRecording(channel, streamId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send stop recording request"); } - PollForResponseAllowingError(lastCorrelationId, ArchiveException.UNKNOWN_SUBSCRIPTION); + PollForResponseAllowingError(_lastCorrelationId, ArchiveException.UNKNOWN_SUBSCRIPTION); } finally { @@ -808,19 +876,19 @@ public void StopRecording(string channel, int streamId) } } - /// /// Try to stop a recording for a channel and stream pairing. /// - /// Channels that include sessionId parameters are considered different than channels without sessionIds. Stopping - /// a recording on a channel without a sessionId parameter will not stop the recording of any sessionId specific - /// recordings that use the same channel and streamId. - /// + /// Channels that include sessionId parameters are considered different than channels without sessionIds. + /// Stopping a recording on a channel without a sessionId parameter will not stop the recording of any sessionId + /// specific recordings that use the same channel and streamId. + /// /// /// /// to stop recording for. /// to stop recording for. - /// true if the recording was stopped or false if the subscription is not currently active. + /// true if the recording was stopped or false if the subscription is not currently + /// active. public bool TryStopRecording(string channel, int streamId) { _lock.Lock(); @@ -829,14 +897,14 @@ public bool TryStopRecording(string channel, int streamId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.StopRecording(channel, streamId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.StopRecording(channel, streamId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send stop recording request"); } - return PollForResponseAllowingError(lastCorrelationId, ArchiveException.UNKNOWN_SUBSCRIPTION); + return PollForResponseAllowingError(_lastCorrelationId, ArchiveException.UNKNOWN_SUBSCRIPTION); } finally { @@ -849,7 +917,8 @@ public bool TryStopRecording(string channel, int streamId) /// or /// . ///
- /// is the was registered with for the recording. + /// is the was registered with for the + /// recording. public void StopRecording(long subscriptionId) { _lock.Lock(); @@ -858,14 +927,14 @@ public void StopRecording(long subscriptionId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.StopRecording(subscriptionId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.StopRecording(subscriptionId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send stop recording request"); } - PollForResponse(lastCorrelationId); + PollForResponse(_lastCorrelationId); } finally { @@ -878,8 +947,10 @@ public void StopRecording(long subscriptionId) /// or /// . ///
- /// is the for the recording in the archive. - /// true if the recording was stopped or false if the subscription is not currently active. + /// is the for the recording in + /// the archive. + /// true if the recording was stopped or false if the subscription is not currently + /// active. public bool TryStopRecording(long subscriptionId) { _lock.Lock(); @@ -888,14 +959,14 @@ public bool TryStopRecording(long subscriptionId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.StopRecording(subscriptionId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.StopRecording(subscriptionId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send stop recording request"); } - return PollForResponseAllowingError(lastCorrelationId, ArchiveException.UNKNOWN_SUBSCRIPTION); + return PollForResponseAllowingError(_lastCorrelationId, ArchiveException.UNKNOWN_SUBSCRIPTION); } finally { @@ -907,7 +978,8 @@ public bool TryStopRecording(long subscriptionId) /// Try stop an active recording by its recording id. ///
/// for which active recording should be stopped. - /// true if the recording was stopped or false if the recording is not currently active. + /// true if the recording was stopped or false if the recording is not currently active. + /// public bool TryStopRecordingByIdentity(long recordingId) { _lock.Lock(); @@ -916,14 +988,14 @@ public bool TryStopRecordingByIdentity(long recordingId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.StopRecordingByIdentity(recordingId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.StopRecordingByIdentity(recordingId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send stop recording request"); } - return PollForResponse(lastCorrelationId) != 0; + return PollForResponse(_lastCorrelationId) != 0; } finally { @@ -940,25 +1012,27 @@ public void StopRecording(Publication publication) StopRecording(ChannelUri.AddSessionId(publication.Channel, publication.SessionId), publication.StreamId); } - /// - /// Start a replay for a length in bytes of a recording from a position. If the position is + /// Start a replay for a length in bytes of a recording from a position. If the position is + /// /// then the stream will be replayed from the start. /// - /// The lower 32-bits of the returned value contains the of the received replay. All - /// 64-bits are required to uniquely identify the replay when calling . The lower 32-bits - /// can be obtained by casting the value to an . - /// + /// The lower 32-bits of the returned value contains the of the received replay. + /// All 64-bits are required to uniquely identify the replay when calling . The + /// lower 32-bits can be obtained by casting the value to an . + /// /// /// to be replayed. - /// from which the replay should begin or if from the start. - /// of the stream to be replayed or to follow a live recording. Use to read up the available limit and stop the replay. can also be used to follow a live stream. + /// from which the replay should begin or if from + /// the start. + /// of the stream to be replayed or to + /// follow a live recording. Use to read up the available limit and stop + /// the replay. can also be used to follow a live stream. /// to which the replay should be sent. /// to which the replay should be sent. - /// the id of the replay session which will be the same as the of the received - /// replay for correlation with the matching channel and stream id in the lower 32 bits. - public long StartReplay(long recordingId, long position, long length, string replayChannel, - int replayStreamId) + /// the id of the replay session which will be the same as the of + /// the received replay for correlation with the matching channel and stream id in the lower 32 bits. + public long StartReplay(long recordingId, long position, long length, string replayChannel, int replayStreamId) { _lock.Lock(); try @@ -966,16 +1040,24 @@ public long StartReplay(long recordingId, long position, long length, string rep EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); - - if (!archiveProxy.Replay(recordingId, position, length, replayChannel, replayStreamId, - lastCorrelationId, - controlSessionId)) + _lastCorrelationId = _aeron.NextCorrelationId(); + + if ( + !_archiveProxy.Replay( + recordingId, + position, + length, + replayChannel, + replayStreamId, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send replay request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -984,25 +1066,35 @@ public long StartReplay(long recordingId, long position, long length, string rep } /// - /// Start a replay for a length in bytes of a recording from a position bounded by a position counter. - /// If the position is then the stream will be replayed from the start. + /// Start a replay for a length in bytes of a recording from a position bounded by a position counter. If the + /// position is then the stream will be replayed from the start. /// - /// The lower 32-bits of the returned value contains the of the received replay. All - /// 64-bits are required to uniquely identify the replay when calling . The lower 32-bits - /// can be obtained by casting the {@code long} value to an {@code int}. - /// + /// The lower 32-bits of the returned value contains the of the received + /// replay. All 64-bits are required to uniquely identify the replay when calling + /// . The lower 32-bits can be obtained by casting the {@code long} value to + /// an {@code int}. + /// /// /// /// to be replayed. - /// from which the replay should begin or if from the start. - /// of the stream to be replayed or to follow a live recording. Use to read up the available limit and stop the replay. can also be used to follow a live stream. + /// from which the replay should begin or if + /// from the start. + /// of the stream to be replayed or to + /// follow a live recording. Use to read up the available limit and stop + /// the replay. can also be used to follow a live stream. /// to use to bound replay. /// to which the replay should be sent. /// to which the replay should be sent. - /// the id of the replay session which will be the same as the of the received - /// replay for correlation with the matching channel and stream id in the lower 32 bits. - public long StartBoundedReplay(long recordingId, long position, long length, int limitCounterId, - string replayChannel, int replayStreamId) + /// the id of the replay session which will be the same as the of + /// the received replay for correlation with the matching channel and stream id in the lower 32 bits. + public long StartBoundedReplay( + long recordingId, + long position, + long length, + int limitCounterId, + string replayChannel, + int replayStreamId + ) { _lock.Lock(); try @@ -1010,15 +1102,25 @@ public long StartBoundedReplay(long recordingId, long position, long length, int EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); - - if (!archiveProxy.BoundedReplay(recordingId, position, length, limitCounterId, replayChannel, - replayStreamId, lastCorrelationId, controlSessionId)) + _lastCorrelationId = _aeron.NextCorrelationId(); + + if ( + !_archiveProxy.BoundedReplay( + recordingId, + position, + length, + limitCounterId, + replayChannel, + replayStreamId, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send bounded replay request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1027,15 +1129,15 @@ public long StartBoundedReplay(long recordingId, long position, long length, int } /// - /// Start a replay for a recording based upon the parameters set in ReplayParams. By default, it will replay - /// all the recording from the start. The ReplayParams is free to be reused when this call completes. + /// Start a replay for a recording based upon the parameters set in ReplayParams. By default, it will replay all + /// the recording from the start. The ReplayParams is free to be reused when this call completes. /// /// to be replayed. /// to which the replay should be sent. /// to which the replay should be sent. /// optional parameters for the replay - /// the id of the replay session which will be the same as the of the received - /// replay for correlation with the matching channel and stream id in the lower 32 bits. + /// the id of the replay session which will be the same as the of + /// the received replay for correlation with the matching channel and stream id in the lower 32 bits. /// public long StartReplay(long recordingId, string replayChannel, int replayStreamId, ReplayParams replayParams) { @@ -1051,15 +1153,23 @@ public long StartReplay(long recordingId, string replayChannel, int replayStream return StartReplayViaResponseChannel(recordingId, replayChannel, replayStreamId, replayParams); } - lastCorrelationId = aeron.NextCorrelationId(); - - if (!archiveProxy.Replay(recordingId, replayChannel, replayStreamId, replayParams, lastCorrelationId, - controlSessionId)) + _lastCorrelationId = _aeron.NextCorrelationId(); + + if ( + !_archiveProxy.Replay( + recordingId, + replayChannel, + replayStreamId, + replayParams, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send bounded replay request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1079,14 +1189,14 @@ public void StopReplay(long replaySessionId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.StopReplay(replaySessionId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.StopReplay(replaySessionId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send stop recording request"); } - PollForResponse(lastCorrelationId); + PollForResponse(_lastCorrelationId); } finally { @@ -1097,7 +1207,8 @@ public void StopReplay(long replaySessionId) /// /// Stop all replay sessions for a given recording id or all replays in general. /// - /// to stop replay for or for all replays. + /// to stop replay for or for all + /// replays. public void StopAllReplays(long recordingId) { _lock.Lock(); @@ -1106,14 +1217,14 @@ public void StopAllReplays(long recordingId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.StopAllReplays(recordingId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.StopAllReplays(recordingId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send stop all replays request"); } - PollForResponse(lastCorrelationId); + PollForResponse(_lastCorrelationId); } finally { @@ -1122,17 +1233,27 @@ public void StopAllReplays(long recordingId) } /// - /// Replay a length in bytes of a recording from a position and for convenience create a - /// to receive the replay. If the position is then the stream will be replayed from the start. + /// Replay a length in bytes of a recording from a position and for convenience create a + /// + /// to receive the replay. If the position is then the stream will be replayed + /// from the start. /// /// to be replayed. - /// from which the replay should begin or if from the start. - /// of the stream to be replayed or to follow a live recording. Use to read up the available limit and stop the replay. can also be used to follow a live stream. + /// from which the replay should begin or if from + /// the start. + /// of the stream to be replayed or to + /// follow a live recording. Use to read up the available limit and stop + /// the replay. can also be used to follow a live stream. /// to which the replay should be sent. /// to which the replay should be sent. /// the for consuming the replay. - public Subscription Replay(long recordingId, long position, long length, string replayChannel, - int replayStreamId) + public Subscription Replay( + long recordingId, + long position, + long length, + string replayChannel, + int replayStreamId + ) { _lock.Lock(); try @@ -1141,19 +1262,27 @@ public Subscription Replay(long recordingId, long position, long length, string EnsureNotReentrant(); ChannelUri replayChannelUri = ChannelUri.Parse(replayChannel); - lastCorrelationId = aeron.NextCorrelationId(); - - if (!archiveProxy.Replay(recordingId, position, length, replayChannel, replayStreamId, - lastCorrelationId, - controlSessionId)) + _lastCorrelationId = _aeron.NextCorrelationId(); + + if ( + !_archiveProxy.Replay( + recordingId, + position, + length, + replayChannel, + replayStreamId, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send replay request"); } - int replaySessionId = (int)PollForResponse(lastCorrelationId); + int replaySessionId = (int)PollForResponse(_lastCorrelationId); replayChannelUri.Put(SESSION_ID_PARAM_NAME, Convert.ToString(replaySessionId)); - return aeron.AddSubscription(replayChannelUri.ToString(), replayStreamId); + return _aeron.AddSubscription(replayChannelUri.ToString(), replayStreamId); } finally { @@ -1162,20 +1291,32 @@ public Subscription Replay(long recordingId, long position, long length, string } /// - /// Replay a length in bytes of a recording from a position and for convenience create a - /// to receive the replay. If the position is then the stream will be replayed from the start. + /// Replay a length in bytes of a recording from a position and for convenience create a + /// + /// to receive the replay. If the position is then the stream will be replayed + /// from the start. /// /// to be replayed. - /// from which the replay should begin or if from the start. - /// of the stream to be replayed or to follow a live recording. Use to read up the available limit and stop the replay. can also be used to follow a live stream. + /// from which the replay should begin or + /// if from the start. + /// of the stream to be replayed or + /// to follow a live recording. Use + /// to read up the available limit and stop the replay. + /// can also be used to follow a live stream. /// to which the replay should be sent. /// to which the replay should be sent. /// to be called when the replay image becomes available. /// to be called when the replay image goes unavailable. /// the for consuming the replay. - public Subscription Replay(long recordingId, long position, long length, string replayChannel, - int replayStreamId, AvailableImageHandler availableImageHandler, - UnavailableImageHandler unavailableImageHandler) + public Subscription Replay( + long recordingId, + long position, + long length, + string replayChannel, + int replayStreamId, + AvailableImageHandler availableImageHandler, + UnavailableImageHandler unavailableImageHandler + ) { _lock.Lock(); try @@ -1184,20 +1325,32 @@ public Subscription Replay(long recordingId, long position, long length, string EnsureNotReentrant(); ChannelUri replayChannelUri = ChannelUri.Parse(replayChannel); - lastCorrelationId = aeron.NextCorrelationId(); - - if (!archiveProxy.Replay(recordingId, position, length, replayChannel, replayStreamId, - lastCorrelationId, - controlSessionId)) + _lastCorrelationId = _aeron.NextCorrelationId(); + + if ( + !_archiveProxy.Replay( + recordingId, + position, + length, + replayChannel, + replayStreamId, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send replay request"); } - int replaySessionId = (int)PollForResponse(lastCorrelationId); + int replaySessionId = (int)PollForResponse(_lastCorrelationId); replayChannelUri.Put(SESSION_ID_PARAM_NAME, Convert.ToString(replaySessionId)); - return aeron.AddSubscription(replayChannelUri.ToString(), replayStreamId, availableImageHandler, - unavailableImageHandler); + return _aeron.AddSubscription( + replayChannelUri.ToString(), + replayStreamId, + availableImageHandler, + unavailableImageHandler + ); } finally { @@ -1206,8 +1359,8 @@ public Subscription Replay(long recordingId, long position, long length, string } /// - /// Replay a recording based upon the parameters set in ReplayParams. By default, it will replay all the recording - /// from the start. The ReplayParams is free to be reused when this call completes. + /// Replay a recording based upon the parameters set in ReplayParams. By default, it will replay all the + /// recording from the start. The ReplayParams is free to be reused when this call completes. /// /// to be replayed. /// to which the replay should be sent. @@ -1215,8 +1368,12 @@ public Subscription Replay(long recordingId, long position, long length, string /// optional parameters for the replay /// the for consuming the replay. /// - public Subscription Replay(long recordingId, string replayChannel, int replayStreamId, - ReplayParams replayParams) + public Subscription Replay( + long recordingId, + string replayChannel, + int replayStreamId, + ReplayParams replayParams + ) { _lock.Lock(); try @@ -1230,18 +1387,26 @@ public Subscription Replay(long recordingId, string replayChannel, int replayStr return ReplayViaResponseChannel(recordingId, replayChannel, replayStreamId, replayParams); } - lastCorrelationId = aeron.NextCorrelationId(); - - if (!archiveProxy.Replay(recordingId, replayChannel, replayStreamId, replayParams, lastCorrelationId, - controlSessionId)) + _lastCorrelationId = _aeron.NextCorrelationId(); + + if ( + !_archiveProxy.Replay( + recordingId, + replayChannel, + replayStreamId, + replayParams, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send replay request"); } - int replaySessionId = (int)PollForResponse(lastCorrelationId); + int replaySessionId = (int)PollForResponse(_lastCorrelationId); replayChannelUri.Put(SESSION_ID_PARAM_NAME, Convert.ToString(replaySessionId)); - return aeron.AddSubscription(replayChannelUri.ToString(), replayStreamId); + return _aeron.AddSubscription(replayChannelUri.ToString(), replayStreamId); } finally { @@ -1253,7 +1418,7 @@ public Subscription Replay(long recordingId, string replayChannel, int replayStr /// List all recording descriptors from a recording id with a limit of record count. /// /// If the recording id is greater than the largest known id then nothing is returned. - /// + /// /// ///
/// at which to begin the listing. @@ -1268,33 +1433,35 @@ public int ListRecordings(long fromRecordingId, int recordCount, IRecordingDescr EnsureConnected(); EnsureNotReentrant(); - isInCallback = true; - lastCorrelationId = aeron.NextCorrelationId(); + _isInCallback = true; + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.ListRecordings(fromRecordingId, recordCount, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.ListRecordings(fromRecordingId, recordCount, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send list recordings request"); } - return PollForDescriptors(lastCorrelationId, recordCount, consumer); + return PollForDescriptors(_lastCorrelationId, recordCount, consumer); } finally { - isInCallback = false; + _isInCallback = false; _lock.Unlock(); } } /// - /// List recording descriptors from a recording id with a limit of record count for a given channelFragment and stream id. + /// List recording descriptors from a recording id with a limit of record count for a given channelFragment and + /// stream id. /// /// If the recording id is greater than the largest known id then nothing is returned. - /// + /// /// /// /// at which to begin the listing. /// to limit for each query. - /// for a contains match on the original channel stored with the archive descriptor. + /// for a contains match on the original channel stored with the archive + /// descriptor. /// to match. /// to which the descriptors are dispatched. /// the number of descriptors found and consumed. @@ -1303,7 +1470,8 @@ public int ListRecordingsForUri( int recordCount, string channelFragment, int streamId, - IRecordingDescriptorConsumer consumer) + IRecordingDescriptorConsumer consumer + ) { _lock.Lock(); try @@ -1311,21 +1479,28 @@ public int ListRecordingsForUri( EnsureConnected(); EnsureNotReentrant(); - isInCallback = true; - lastCorrelationId = aeron.NextCorrelationId(); - - if (!archiveProxy.ListRecordingsForUri(fromRecordingId, recordCount, channelFragment, streamId, - lastCorrelationId, - controlSessionId)) + _isInCallback = true; + _lastCorrelationId = _aeron.NextCorrelationId(); + + if ( + !_archiveProxy.ListRecordingsForUri( + fromRecordingId, + recordCount, + channelFragment, + streamId, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send list recordings request"); } - return PollForDescriptors(lastCorrelationId, recordCount, consumer); + return PollForDescriptors(_lastCorrelationId, recordCount, consumer); } finally { - isInCallback = false; + _isInCallback = false; _lock.Unlock(); } } @@ -1334,7 +1509,7 @@ public int ListRecordingsForUri( /// List a recording descriptor for a single recording id. /// /// If the recording id is greater than the largest known id then nothing is returned. - /// + /// /// ///
/// at which to begin the listing. @@ -1348,19 +1523,19 @@ public int ListRecording(long recordingId, IRecordingDescriptorConsumer consumer EnsureConnected(); EnsureNotReentrant(); - isInCallback = true; - lastCorrelationId = aeron.NextCorrelationId(); + _isInCallback = true; + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.ListRecording(recordingId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.ListRecording(recordingId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send list recording request"); } - return PollForDescriptors(lastCorrelationId, 1, consumer); + return PollForDescriptors(_lastCorrelationId, 1, consumer); } finally { - isInCallback = false; + _isInCallback = false; _lock.Unlock(); } } @@ -1379,14 +1554,14 @@ public long GetStartPosition(long recordingId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.GetStartPosition(recordingId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.GetStartPosition(recordingId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send get start position request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1395,10 +1570,12 @@ public long GetStartPosition(long recordingId) } /// - /// Get the position recorded for an active recording. If no active recording the return + /// Get the position recorded for an active recording. If no active recording the return + /// /// /// of the active recording for which the position is required. - /// the recorded position for the active recording or if recording not active. + /// the recorded position for the active recording or if recording not + /// active. /// public long GetRecordingPosition(long recordingId) { @@ -1408,14 +1585,14 @@ public long GetRecordingPosition(long recordingId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.GetRecordingPosition(recordingId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.GetRecordingPosition(recordingId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send get recording position request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1437,14 +1614,14 @@ public long GetStopPosition(long recordingId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.GetStopPosition(recordingId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.GetStopPosition(recordingId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send get stop position request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1453,8 +1630,8 @@ public long GetStopPosition(long recordingId) } /// - /// Get the max recorded position of a recording. For active recordings it will be the recording position, - /// and for inactive recordings it will be the stop position. + /// Get the max recorded position of a recording. For active recordings it will be the recording position, and + /// for inactive recordings it will be the stop position. /// /// of the recording for which the position is required. /// the max recorded position of the recording. @@ -1467,14 +1644,14 @@ public long GetMaxRecordedPosition(long recordingId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.GetMaxRecordedPosition(recordingId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.GetMaxRecordedPosition(recordingId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send get max recorded position request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1489,17 +1666,19 @@ public long GetMaxRecordedPosition(long recordingId) /// @since 1.44.0 public long ArchiveId() { - return archiveId; + return _archiveId; } /// /// Find the last recording that matches the given criteria. /// /// to search back to. - /// for a contains match on the stripped channel stored with the archive descriptor + /// for a contains match on the stripped channel stored with the archive + /// descriptor /// of the recording to match. /// of the recording to match. - /// the recordingId if found otherwise if not found. + /// the recordingId if found otherwise if not found. + /// public long FindLastMatchingRecording(long minRecordingId, string channelFragment, int streamId, int sessionId) { _lock.Lock(); @@ -1508,15 +1687,23 @@ public long FindLastMatchingRecording(long minRecordingId, string channelFragmen EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); - - if (!archiveProxy.FindLastMatchingRecording( - minRecordingId, channelFragment, streamId, sessionId, lastCorrelationId, controlSessionId)) + _lastCorrelationId = _aeron.NextCorrelationId(); + + if ( + !_archiveProxy.FindLastMatchingRecording( + minRecordingId, + channelFragment, + streamId, + sessionId, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send find last matching recording request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1525,9 +1712,10 @@ public long FindLastMatchingRecording(long minRecordingId, string channelFragmen } /// - /// Truncate a stopped recording to a given position that is less than the stopped position. The provided position - /// must be on a fragment boundary. Truncating a recording to the start position effectively deletes the recording. - /// + /// Truncate a stopped recording to a given position that is less than the stopped position. The provided + /// position must be on a fragment boundary. Truncating a recording to the start position effectively deletes + /// the recording. + /// /// /// of the stopped recording to be truncated. /// to which the recording will be truncated. @@ -1540,14 +1728,14 @@ public long TruncateRecording(long recordingId, long position) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.TruncateRecording(recordingId, position, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.TruncateRecording(recordingId, position, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send truncate recording request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1556,8 +1744,8 @@ public long TruncateRecording(long recordingId, long position) } /// - /// Purge a stopped recording, i.e. mark recording as - /// and delete the corresponding segment files. The space in the Catalog will be reclaimed upon compaction. + /// Purge a stopped recording, i.e. mark recording as and delete the + /// corresponding segment files. The space in the Catalog will be reclaimed upon compaction. /// /// of the stopped recording to be purged. /// count of deleted segment files. @@ -1569,14 +1757,14 @@ public long PurgeRecording(long recordingId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.PurgeRecording(recordingId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.PurgeRecording(recordingId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send invalidate recording request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1587,12 +1775,13 @@ public long PurgeRecording(long recordingId) /// /// List active recording subscriptions in the archive. These are the result of requesting one of /// or a - /// . The returned subscription id can be used for - /// passing to . + /// . The returned subscription id can be + /// used for passing to . /// /// in the active list at which to begin for paging. /// to get in a listing. - /// to do a contains match on the stripped channel URI. Empty string is match all. + /// to do a contains match on the stripped channel URI. Empty string is match + /// all. /// to match on the subscription. /// true if the stream id should be matched. /// for the matched subscription descriptors. @@ -1603,7 +1792,8 @@ public int ListRecordingSubscriptions( string channelFragment, int streamId, bool applyStreamId, - IRecordingSubscriptionDescriptorConsumer consumer) + IRecordingSubscriptionDescriptorConsumer consumer + ) { _lock.Lock(); try @@ -1611,47 +1801,67 @@ public int ListRecordingSubscriptions( EnsureConnected(); EnsureNotReentrant(); - isInCallback = true; - lastCorrelationId = aeron.NextCorrelationId(); - - if (!archiveProxy.ListRecordingSubscriptions(pseudoIndex, subscriptionCount, channelFragment, streamId, - applyStreamId, lastCorrelationId, controlSessionId)) + _isInCallback = true; + _lastCorrelationId = _aeron.NextCorrelationId(); + + if ( + !_archiveProxy.ListRecordingSubscriptions( + pseudoIndex, + subscriptionCount, + channelFragment, + streamId, + applyStreamId, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send list recording subscriptions request"); } - return PollForSubscriptionDescriptors(lastCorrelationId, subscriptionCount, consumer); + return PollForSubscriptionDescriptors(_lastCorrelationId, subscriptionCount, consumer); } finally { - isInCallback = false; + _isInCallback = false; _lock.Unlock(); } } /// /// Replicate a recording from a source archive to a destination which can be considered a backup for a primary - /// archive. The source recording will be replayed via the provided replay channel and use the original stream id. - /// If the destination recording id is then a new destination recording is created, - /// otherwise the provided destination recording id will be extended. The details of the source recording - /// descriptor will be replicated. + /// archive. The source recording will be replayed via the provided replay channel and use the original stream + /// id. If the destination recording id is then a new + /// destination recording is created, otherwise the provided destination recording id will be extended. The + /// details of the source recording descriptor will be replicated. /// /// For a source recording that is still active the replay can merge with the live stream and then follow it /// directly and no longer require the replay from the source. This would require a multicast live destination. /// /// - /// Errors will be reported asynchronously and can be checked for with + /// Errors will be reported asynchronously and can be checked for with + /// /// or . /// /// /// recording id which must exist in the source archive. - /// recording to extend in the destination, otherwise . - /// remote control stream id for the source archive to instruct the replay on. - /// remote control channel for the source archive to instruct the replay on. - /// destination for the live stream if merge is required. Empty or null for no merge. - /// return the replication session id which can be passed later to . - public long Replicate(long srcRecordingId, long dstRecordingId, int srcControlStreamId, - string srcControlChannel, string liveDestination) + /// recording to extend in the destination, otherwise + /// . + /// remote control stream id for the source archive to instruct the replay on. + /// + /// remote control channel for the source archive to instruct the replay on. + /// + /// destination for the live stream if merge is required. Empty or null for no + /// merge. + /// return the replication session id which can be passed later to + /// . + public long Replicate( + long srcRecordingId, + long dstRecordingId, + int srcControlStreamId, + string srcControlChannel, + string liveDestination + ) { _lock.Lock(); try @@ -1659,15 +1869,24 @@ public long Replicate(long srcRecordingId, long dstRecordingId, int srcControlSt EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.Replicate(srcRecordingId, dstRecordingId, srcControlStreamId, srcControlChannel, - liveDestination, lastCorrelationId, controlSessionId)) + if ( + !_archiveProxy.Replicate( + srcRecordingId, + dstRecordingId, + srcControlStreamId, + srcControlChannel, + liveDestination, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send replicate request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1677,34 +1896,49 @@ public long Replicate(long srcRecordingId, long dstRecordingId, int srcControlSt /// /// Replicate a recording from a source archive to a destination which can be considered a backup for a primary - /// archive. The source recording will be replayed via the provided replay channel and use the original stream id. - /// If the destination recording id is then a new destination recording is created, - /// otherwise the provided destination recording id will be extended. The details of the source recording - /// descriptor will be replicated. + /// archive. The source recording will be replayed via the provided replay channel and use the original stream + /// id. If the destination recording id is then a new + /// destination recording is created, otherwise the provided destination recording id will be extended. The + /// details of the source recording descriptor will be replicated. /// /// For a source recording that is still active the replay can merge with the live stream and then follow it /// directly and no longer require the replay from the source. This would require a multicast live destination. /// /// - /// Errors will be reported asynchronously and can be checked for with + /// Errors will be reported asynchronously and can be checked for with + /// /// or . /// /// /// Stop recording this stream when the position of the destination reaches the specified stop position. - /// + /// /// /// /// recording id which must exist in the source archive. - /// recording to extend in the destination, otherwise . - /// position to stop the replication. to stop at end - /// of current recording. - /// remote control stream id for the source archive to instruct the replay on. - /// remote control channel for the source archive to instruct the replay on. - /// destination for the live stream if merge is required. Empty or null for no merge. - /// channel over which the replication will occur. Empty or null for default channel. - /// return the replication session id which can be passed later to . - public long Replicate(long srcRecordingId, long dstRecordingId, long stopPosition, int srcControlStreamId, - string srcControlChannel, string liveDestination, string replicationChannel) + /// recording to extend in the destination, otherwise + /// . + /// position to stop the replication. + /// to stop at end + /// of current recording. + /// remote control stream id for the source archive to instruct the replay on. + /// + /// remote control channel for the source archive to instruct the replay on. + /// + /// destination for the live stream if merge is required. Empty or null for no + /// merge. + /// channel over which the replication will occur. Empty or null for default + /// channel. + /// return the replication session id which can be passed later to + /// . + public long Replicate( + long srcRecordingId, + long dstRecordingId, + long stopPosition, + int srcControlStreamId, + string srcControlChannel, + string liveDestination, + string replicationChannel + ) { _lock.Lock(); try @@ -1712,9 +1946,10 @@ public long Replicate(long srcRecordingId, long dstRecordingId, long stopPositio EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.Replicate( + if ( + !_archiveProxy.Replicate( srcRecordingId, dstRecordingId, stopPosition, @@ -1722,13 +1957,15 @@ public long Replicate(long srcRecordingId, long dstRecordingId, long stopPositio srcControlChannel, liveDestination, replicationChannel, - lastCorrelationId, - controlSessionId)) + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send replicate request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1738,30 +1975,44 @@ public long Replicate(long srcRecordingId, long dstRecordingId, long stopPositio /// /// Replicate a recording from a source archive to a destination which can be considered a backup for a primary - /// archive. The source recording will be replayed via the provided replay channel and use the original stream id. - /// If the destination recording id is then a new destination recording is created, - /// otherwise the provided destination recording id will be extended. The details of the source recording - /// descriptor will be replicated. The subscription used in the archive will be tagged with the provided tags. + /// archive. The source recording will be replayed via the provided replay channel and use the original stream + /// id. If the destination recording id is then a new + /// destination recording is created, otherwise the provided destination recording id will be extended. The + /// details of the source recording descriptor will be replicated. The subscription used in the archive will be + /// tagged with the provided tags. /// /// For a source recording that is still active the replay can merge with the live stream and then follow it /// directly and no longer require the replay from the source. This would require a multicast live destination. /// /// - /// Errors will be reported asynchronously and can be checked for with + /// Errors will be reported asynchronously and can be checked for with + /// /// or . - /// + /// /// /// /// recording id which must exist in the source archive. - /// recording to extend in the destination, otherwise . + /// recording to extend in the destination, otherwise + /// . /// used to tag the replication subscription. /// used to tag the replication subscription. - /// remote control stream id for the source archive to instruct the replay on. - /// remote control channel for the source archive to instruct the replay on. - /// destination for the live stream if merge is required. Empty or null for no merge. - /// return the replication session id which can be passed later to . - public long TaggedReplicate(long srcRecordingId, long dstRecordingId, long channelTagId, long subscriptionTagId, - int srcControlStreamId, string srcControlChannel, string liveDestination) + /// remote control stream id for the source archive to instruct the replay on. + /// + /// remote control channel for the source archive to instruct the replay on. + /// + /// destination for the live stream if merge is required. Empty or null for no + /// merge. + /// return the replication session id which can be passed later to + /// . + public long TaggedReplicate( + long srcRecordingId, + long dstRecordingId, + long channelTagId, + long subscriptionTagId, + int srcControlStreamId, + string srcControlChannel, + string liveDestination + ) { _lock.Lock(); try @@ -1769,15 +2020,26 @@ public long TaggedReplicate(long srcRecordingId, long dstRecordingId, long chann EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.TaggedReplicate(srcRecordingId, dstRecordingId, channelTagId, subscriptionTagId, - srcControlStreamId, srcControlChannel, liveDestination, lastCorrelationId, controlSessionId)) + if ( + !_archiveProxy.TaggedReplicate( + srcRecordingId, + dstRecordingId, + channelTagId, + subscriptionTagId, + srcControlStreamId, + srcControlChannel, + liveDestination, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send tagged replicate request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1787,34 +2049,51 @@ public long TaggedReplicate(long srcRecordingId, long dstRecordingId, long chann /// /// Replicate a recording from a source archive to a destination which can be considered a backup for a primary - /// archive. The source recording will be replayed via the provided replay channel and use the original stream id. - /// If the destination recording id is then a new destination recording is created, - /// otherwise the provided destination recording id will be extended. The details of the source recording - /// descriptor will be replicated. The subscription used in the archive will be tagged with the provided tags. + /// archive. The source recording will be replayed via the provided replay channel and use the original stream + /// id. If the destination recording id is then a new + /// destination recording is created, otherwise the provided destination recording id will be extended. The + /// details of the source recording descriptor will be replicated. The subscription used in the archive will be + /// tagged with the provided tags. /// /// For a source recording that is still active the replay can merge with the live stream and then follow it /// directly and no longer require the replay from the source. This would require a multicast live destination. /// /// - /// Errors will be reported asynchronously and can be checked for with + /// Errors will be reported asynchronously and can be checked for with + /// /// or . - /// + /// /// /// /// recording id which must exist in the source archive. - /// recording to extend in the destination, otherwise . - /// position to stop the replication. to stop at end - /// of current recording. + /// recording to extend in the destination, otherwise + /// . + /// position to stop the replication. + /// to stop at end + /// of current recording. /// used to tag the replication subscription. /// used to tag the replication subscription. - /// remote control stream id for the source archive to instruct the replay on. - /// remote control channel for the source archive to instruct the replay on. - /// destination for the live stream if merge is required. Empty or null for no merge. - /// channel over which the replication will occur. Empty or null for default channel. - /// return the replication session id which can be passed later to . - public long TaggedReplicate(long srcRecordingId, long dstRecordingId, long stopPosition, long channelTagId, - long subscriptionTagId, int srcControlStreamId, string srcControlChannel, string liveDestination, - string replicationChannel) + /// remote control stream id for the source archive to instruct the replay on. + /// + /// remote control channel for the source archive to instruct the replay on. + /// + /// destination for the live stream if merge is required. Empty or null for no + /// merge. + /// channel over which the replication will occur. Empty or null for default + /// channel. + /// return the replication session id which can be passed later to + /// . + public long TaggedReplicate( + long srcRecordingId, + long dstRecordingId, + long stopPosition, + long channelTagId, + long subscriptionTagId, + int srcControlStreamId, + string srcControlChannel, + string liveDestination, + string replicationChannel + ) { _lock.Lock(); try @@ -1822,9 +2101,10 @@ public long TaggedReplicate(long srcRecordingId, long dstRecordingId, long stopP EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.TaggedReplicate( + if ( + !_archiveProxy.TaggedReplicate( srcRecordingId, dstRecordingId, stopPosition, @@ -1834,13 +2114,15 @@ public long TaggedReplicate(long srcRecordingId, long dstRecordingId, long stopP srcControlChannel, liveDestination, replicationChannel, - lastCorrelationId, - controlSessionId)) + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send tagged replicate request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1856,21 +2138,29 @@ public long TaggedReplicate(long srcRecordingId, long dstRecordingId, long stopP /// directly and no longer require the replay from the source. This would require a multicast live destination. /// /// - /// Errors will be reported asynchronously and can be checked for with + /// Errors will be reported asynchronously and can be checked for with + /// /// or . /// /// /// The ReplicationParams is free to be reused when this call completes. - /// + /// /// ///
/// recording id which must exist in the source archive. - /// remote control stream id for the source archive to instruct the replay on. - /// remote control channel for the source archive to instruct the replay on. + /// remote control stream id for the source archive to instruct the replay on. + /// + /// remote control channel for the source archive to instruct the replay on. + /// /// Optional parameters to control the behaviour of the replication. - /// return the replication session id which can be passed later to . - public long Replicate(long srcRecordingId, int srcControlStreamId, string srcControlChannel, - ReplicationParams replicationParams) + /// return the replication session id which can be passed later to + /// . + public long Replicate( + long srcRecordingId, + int srcControlStreamId, + string srcControlChannel, + ReplicationParams replicationParams + ) { _lock.Lock(); try @@ -1878,15 +2168,23 @@ public long Replicate(long srcRecordingId, int srcControlStreamId, string srcCon EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.Replicate(srcRecordingId, srcControlStreamId, srcControlChannel, replicationParams, - lastCorrelationId, controlSessionId)) + if ( + !_archiveProxy.Replicate( + srcRecordingId, + srcControlStreamId, + srcControlChannel, + replicationParams, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send replicate request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -1907,14 +2205,14 @@ public void StopReplication(long replicationId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.StopReplication(replicationId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.StopReplication(replicationId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send stop replication request"); } - PollForResponse(lastCorrelationId); + PollForResponse(_lastCorrelationId); } finally { @@ -1923,10 +2221,12 @@ public void StopReplication(long replicationId) } /// - /// Attempt to stop a replication session by id returned from . + /// Attempt to stop a replication session by id returned from + /// . /// /// to stop replication for. - /// true if the replication was stopped, false if the replication is not active. + /// true if the replication was stopped, false if the replication is not active. + /// /// public bool TryStopReplication(long replicationId) { @@ -1936,14 +2236,14 @@ public bool TryStopReplication(long replicationId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.StopReplication(replicationId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.StopReplication(replicationId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send stop replication request"); } - return PollForResponseAllowingError(lastCorrelationId, ArchiveException.UNKNOWN_REPLICATION); + return PollForResponseAllowingError(_lastCorrelationId, ArchiveException.UNKNOWN_REPLICATION); } finally { @@ -1958,7 +2258,7 @@ public bool TryStopReplication(long replicationId) /// /// /// It is not possible to detach segments which are active for recording or being replayed. - /// + /// /// ///
/// to which the operation applies. @@ -1972,14 +2272,14 @@ public void DetachSegments(long recordingId, long newStartPosition) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.DetachSegments(recordingId, newStartPosition, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.DetachSegments(recordingId, newStartPosition, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send detach segments request"); } - PollForResponse(lastCorrelationId); + PollForResponse(_lastCorrelationId); } finally { @@ -2001,14 +2301,14 @@ public long DeleteDetachedSegments(long recordingId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.DeleteDetachedSegments(recordingId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.DeleteDetachedSegments(recordingId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send delete detached segments request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -2023,7 +2323,7 @@ public long DeleteDetachedSegments(long recordingId) /// /// /// It is not possible to detach segments which are active for recording or being replayed. - /// + /// /// ///
/// to which the operation applies. @@ -2040,14 +2340,14 @@ public long PurgeSegments(long recordingId, long newStartPosition) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.PurgeSegments(recordingId, newStartPosition, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.PurgeSegments(recordingId, newStartPosition, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send purge segments request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -2058,9 +2358,9 @@ public long PurgeSegments(long recordingId, long newStartPosition) /// /// Attach segments to the beginning of a recording to restore history that was previously detached. /// - /// Segment files must match the existing recording and join exactly to the start position of the recording - /// they are being attached to. - /// + /// Segment files must match the existing recording and join exactly to the start position of the recording they + /// are being attached to. + /// /// /// /// to which the operation applies. @@ -2074,14 +2374,14 @@ public long AttachSegments(long recordingId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.AttachSegments(recordingId, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.AttachSegments(recordingId, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send attach segments request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -2093,16 +2393,16 @@ public long AttachSegments(long recordingId) /// Migrate segments from a source recording and attach them to the beginning or end of a destination recording. /// /// The source recording must match the destination recording for segment length, term length, mtu length, - /// stream id. The source recording must join to the destination recording on a segment boundary and without gaps, - /// i.e., the stop position and term id of one must match the start position and term id of the other. + /// stream id. The source recording must join to the destination recording on a segment boundary and without + /// gaps, i.e., the stop position and term id of one must match the start position and term id of the other. /// /// - /// The source recording must be stopped. The destination recording must be stopped if migrating segments - /// to the end of the destination recording. + /// The source recording must be stopped. The destination recording must be stopped if migrating segments to the + /// end of the destination recording. /// /// /// The source recording will be effectively truncated back to its start position after the migration. - /// + /// /// ///
/// source recording from which the segments will be migrated. @@ -2116,14 +2416,21 @@ public long MigrateSegments(long srcRecordingId, long dstRecordingId) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.MigrateSegments(srcRecordingId, dstRecordingId, lastCorrelationId, controlSessionId)) + if ( + !_archiveProxy.MigrateSegments( + srcRecordingId, + dstRecordingId, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send migrate segments request"); } - return PollForResponse(lastCorrelationId); + return PollForResponse(_lastCorrelationId); } finally { @@ -2144,14 +2451,14 @@ public void UpdateChannel(long recordingId, string newChannel) EnsureConnected(); EnsureNotReentrant(); - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.UpdateChannel(recordingId, newChannel, lastCorrelationId, controlSessionId)) + if (!_archiveProxy.UpdateChannel(recordingId, newChannel, _lastCorrelationId, _controlSessionId)) { throw new ArchiveException("failed to send migrate segments request"); } - PollForResponse(lastCorrelationId); + PollForResponse(_lastCorrelationId); } finally { @@ -2161,11 +2468,12 @@ public void UpdateChannel(long recordingId, string newChannel) private void CheckDeadline(long deadlineNs, string errorMessage, long correlationId) { - if (deadlineNs - nanoClock.NanoTime() < 0) + if (deadlineNs - _nanoClock.NanoTime() < 0) { throw new AeronTimeoutException( - errorMessage + " - correlationId=" + correlationId + " messageTimeout=" + messageTimeoutNs + "ns", - Category.ERROR); + errorMessage + " - correlationId=" + correlationId + " messageTimeout=" + _messageTimeoutNs + "ns", + Category.ERROR + ); } try @@ -2180,7 +2488,7 @@ private void CheckDeadline(long deadlineNs, string errorMessage, long correlatio private void PollNextResponse(long correlationId, long deadlineNs, ControlResponsePoller poller) { - idleStrategy.Reset(); + _idleStrategy.Reset(); while (true) { @@ -2188,8 +2496,10 @@ private void PollNextResponse(long correlationId, long deadlineNs, ControlRespon if (poller.PollComplete) { - if (poller.TemplateId() == RecordingSignalEventDecoder.TEMPLATE_ID && - poller.ControlSessionId() == controlSessionId) + if ( + poller.TemplateId() == RecordingSignalEventDecoder.TEMPLATE_ID + && poller.ControlSessionId() == _controlSessionId + ) { DispatchRecordingSignal(poller); continue; @@ -2207,7 +2517,7 @@ private void PollNextResponse(long correlationId, long deadlineNs, ControlRespon CheckForDisconnect(subscription); CheckDeadline(deadlineNs, "awaiting response", correlationId); - idleStrategy.Idle(); + _idleStrategy.Idle(); InvokeInvokers(); } } @@ -2218,23 +2528,27 @@ private void CheckForDisconnect(Subscription subscription) { State(ArchiveState.DISCONNECTED); throw new ArchiveException( - "response channel from archive is not connected, " + - "channel=" + subscription.Channel + - ", streamId=" + subscription.StreamId + - ", imageCount=" + subscription.ImageCount); + "response channel from archive is not connected, " + + "channel=" + + subscription.Channel + + ", streamId=" + + subscription.StreamId + + ", imageCount=" + + subscription.ImageCount + ); } } private long PollForResponse(long correlationId) { - long deadlineNs = nanoClock.NanoTime() + messageTimeoutNs; - ControlResponsePoller poller = controlResponsePoller; + long deadlineNs = _nanoClock.NanoTime() + _messageTimeoutNs; + ControlResponsePoller poller = _controlResponsePoller; while (true) { PollNextResponse(correlationId, deadlineNs, poller); - if (poller.ControlSessionId() != controlSessionId) + if (poller.ControlSessionId() != _controlSessionId) { InvokeInvokers(); continue; @@ -2243,18 +2557,20 @@ private long PollForResponse(long correlationId) var code = poller.Code(); if (code == ControlResponseCode.ERROR) { - var ex = new ArchiveException("response for correlationId=" + correlationId + ", error: " + - poller.ErrorMessage(), (int)poller.RelevantId(), - poller.CorrelationId()); + var ex = new ArchiveException( + "response for correlationId=" + correlationId + ", error: " + poller.ErrorMessage(), + (int)poller.RelevantId(), + poller.CorrelationId() + ); if (poller.CorrelationId() == correlationId) { throw ex; } - if (context.ErrorHandler() != null) + if (_context.ErrorHandler() != null) { - context.ErrorHandler().OnError(ex); + _context.ErrorHandler().OnError(ex); } } else if (poller.CorrelationId() == correlationId) @@ -2271,14 +2587,14 @@ private long PollForResponse(long correlationId) private bool PollForResponseAllowingError(long correlationId, int allowedErrorCode) { - long deadlineNs = nanoClock.NanoTime() + messageTimeoutNs; - ControlResponsePoller poller = controlResponsePoller; + long deadlineNs = _nanoClock.NanoTime() + _messageTimeoutNs; + ControlResponsePoller poller = _controlResponsePoller; while (true) { PollNextResponse(correlationId, deadlineNs, poller); - if (poller.ControlSessionId() != controlSessionId) + if (poller.ControlSessionId() != _controlSessionId) { InvokeInvokers(); continue; @@ -2297,13 +2613,21 @@ private bool PollForResponseAllowingError(long correlationId, int allowedErrorCo throw new ArchiveException( "response for correlationId=" + correlationId + ", error: " + poller.ErrorMessage(), - (int)relevantId, poller.CorrelationId()); + (int)relevantId, + poller.CorrelationId() + ); } - else if (context.ErrorHandler() != null) + else if (_context.ErrorHandler() != null) { - context.ErrorHandler().OnError(new ArchiveException( - "response for correlationId=" + correlationId + ", error: " + poller.ErrorMessage(), - (int)relevantId, poller.CorrelationId())); + _context + .ErrorHandler() + .OnError( + new ArchiveException( + "response for correlationId=" + correlationId + ", error: " + poller.ErrorMessage(), + (int)relevantId, + poller.CorrelationId() + ) + ); } } else if (poller.CorrelationId() == correlationId) @@ -2321,10 +2645,10 @@ private bool PollForResponseAllowingError(long correlationId, int allowedErrorCo private int PollForDescriptors(long correlationId, int count, IRecordingDescriptorConsumer consumer) { int existingRemainCount = count; - long deadlineNs = nanoClock.NanoTime() + messageTimeoutNs; + long deadlineNs = _nanoClock.NanoTime() + _messageTimeoutNs; RecordingDescriptorPoller poller = RecordingDescriptorPoller(); poller.Reset(correlationId, count, consumer); - idleStrategy.Reset(); + _idleStrategy.Reset(); while (true) { @@ -2339,7 +2663,7 @@ private int PollForDescriptors(long correlationId, int count, IRecordingDescript if (remainingRecordCount != existingRemainCount) { existingRemainCount = remainingRecordCount; - deadlineNs = nanoClock.NanoTime() + messageTimeoutNs; + deadlineNs = _nanoClock.NanoTime() + _messageTimeoutNs; } InvokeInvokers(); @@ -2352,18 +2676,21 @@ private int PollForDescriptors(long correlationId, int count, IRecordingDescript CheckForDisconnect(poller.Subscription()); CheckDeadline(deadlineNs, "awaiting recording descriptors", correlationId); - idleStrategy.Idle(); + _idleStrategy.Idle(); } } - private int PollForSubscriptionDescriptors(long correlationId, int count, - IRecordingSubscriptionDescriptorConsumer consumer) + private int PollForSubscriptionDescriptors( + long correlationId, + int count, + IRecordingSubscriptionDescriptorConsumer consumer + ) { int existingRemainCount = count; - long deadlineNs = nanoClock.NanoTime() + messageTimeoutNs; + long deadlineNs = _nanoClock.NanoTime() + _messageTimeoutNs; RecordingSubscriptionDescriptorPoller poller = RecordingSubscriptionDescriptorPoller(); poller.Reset(correlationId, count, consumer); - idleStrategy.Reset(); + _idleStrategy.Reset(); while (true) { @@ -2378,7 +2705,7 @@ private int PollForSubscriptionDescriptors(long correlationId, int count, if (remainingSubscriptionCount != existingRemainCount) { existingRemainCount = remainingSubscriptionCount; - deadlineNs = nanoClock.NanoTime() + messageTimeoutNs; + deadlineNs = _nanoClock.NanoTime() + _messageTimeoutNs; } InvokeInvokers(); @@ -2388,41 +2715,43 @@ private int PollForSubscriptionDescriptors(long correlationId, int count, continue; } - CheckForDisconnect(poller.Subscription()); CheckDeadline(deadlineNs, "awaiting subscription descriptors", correlationId); - idleStrategy.Idle(); + _idleStrategy.Idle(); } } private void DispatchRecordingSignal(ControlResponsePoller poller) { - context.RecordingSignalConsumer().OnSignal( - poller.ControlSessionId(), - poller.CorrelationId(), - poller.RecordingId(), - poller.SubscriptionId(), - poller.Position(), - poller.RecordingSignal()); + _context + .RecordingSignalConsumer() + .OnSignal( + poller.ControlSessionId(), + poller.CorrelationId(), + poller.RecordingId(), + poller.SubscriptionId(), + poller.Position(), + poller.RecordingSignal() + ); } private void InvokeInvokers() { - if (null != aeronClientInvoker) + if (null != _aeronClientInvoker) { - aeronClientInvoker.Invoke(); + _aeronClientInvoker.Invoke(); } - if (null != agentInvoker) + if (null != _agentInvoker) { - agentInvoker.Invoke(); + _agentInvoker.Invoke(); } } private void EnsureConnected() { - ArchiveState currentState = state; + ArchiveState currentState = _state; if (ArchiveState.CONNECTED != currentState) { if (ArchiveState.CLOSED == currentState) @@ -2438,18 +2767,17 @@ private void EnsureConnected() private void EnsureNotReentrant() { - if (isInCallback) + if (_isInCallback) { throw new AeronException("reentrant calls not permitted during callbacks"); } } - - + private void State(ArchiveState newState) { - if (ArchiveState.CLOSED != state) + if (ArchiveState.CLOSED != _state) { - state = newState; + _state = newState; } } @@ -2459,20 +2787,20 @@ private void State(ArchiveState newState) public class Configuration { /// - /// Major version of the network protocol from client to archive. If these don't match then client and archive - /// are not compatible. + /// Major version of the network protocol from client to archive. If these don't match then client and + /// archive are not compatible. /// public const int PROTOCOL_MAJOR_VERSION = 1; /// - /// Minor version of the network protocol from client to archive. If these don't match then some features may - /// not be available. + /// Minor version of the network protocol from client to archive. If these don't match then some features + /// may not be available. /// public const int PROTOCOL_MINOR_VERSION = 12; /// - /// Patch version of the network protocol from client to archive. If these don't match then bug fixes may not - /// have been applied. + /// Patch version of the network protocol from client to archive. If these don't match then bug fixes may + /// not have been applied. /// public const int PROTOCOL_PATCH_VERSION = 0; @@ -2481,7 +2809,10 @@ public class Configuration ///
/// public static readonly int PROTOCOL_SEMANTIC_VERSION = SemanticVersion.Compose( - PROTOCOL_MAJOR_VERSION, PROTOCOL_MINOR_VERSION, PROTOCOL_PATCH_VERSION); + PROTOCOL_MAJOR_VERSION, + PROTOCOL_MINOR_VERSION, + PROTOCOL_PATCH_VERSION + ); /// /// Timeout in nanoseconds when waiting on a message to be sent or received. @@ -2540,18 +2871,15 @@ public class Configuration /// /// Channel for receiving control response messages from an archive. - /// + /// /// - /// Channel's endpoint can be specified explicitly (i.e. by providing address and port pair) or - /// by using zero as a port number. Here is an example of valid response channels: - ///
    - ///
  • {@code aeron:udp?endpoint=localhost:8020} - listen on port {@code 8020} on localhost.
  • - ///
  • {@code aeron:udp?endpoint=192.168.10.10:8020} - listen on port {@code 8020} on - /// {@code 192.168.10.10}.
  • - ///
  • {@code aeron:udp?endpoint=localhost:0} - in this case the port is unspecified and the OS - /// will assign a free port from the - /// ephemeral port range.
  • - ///
+ /// Channel's endpoint can be specified explicitly (i.e. by providing address and port pair) or by + /// using zero as a port number. Here is an example of valid response channels:
    + ///
  • {@code aeron:udp?endpoint=localhost:8020} - listen on port {@code 8020} on localhost.
  • + ///
  • {@code aeron:udp?endpoint=192.168.10.10:8020} - listen on port {@code 8020} on + /// {@code 192.168.10.10}.
  • {@code aeron:udp?endpoint=localhost:0} - in this case the port is + /// unspecified and the OS will assign a free port from the + /// ephemeral port range.
///
///
public const string CONTROL_RESPONSE_CHANNEL_PROP_NAME = "aeron.archive.control.response.channel"; @@ -2617,7 +2945,7 @@ public class Configuration public const string CONTROL_MTU_LENGTH_PROP_NAME = "aeron.archive.control.mtu.length"; /// - /// MTU to reflect default for the control streams. + /// MTU to reflect default for the control streams. /// public const int CONTROL_MTU_LENGTH_DEFAULT = 1408; @@ -2626,12 +2954,17 @@ public class Configuration ///
/// Since 1.49.0 public const string CLIENT_NAME_PROP_NAME = "aeron.archive.client.name"; - + private sealed class NoOpRecordingSignalConsumer : IRecordingSignalConsumer { - public void OnSignal(long controlSessionId, long correlationId, long recordingId, long subscriptionId, + public void OnSignal( + long controlSessionId, + long correlationId, + long recordingId, + long subscriptionId, long position, - RecordingSignal signal) + RecordingSignal signal + ) { } } @@ -2665,12 +2998,15 @@ public static int MessageRetryAttempts() /// /// Should term buffer files be sparse for control request and response streams. /// - /// true if term buffer files should be sparse for control request and response streams. + /// true if term buffer files should be sparse for control request and response + /// streams. /// public static bool ControlTermBufferSparse() { - string propValue = Config.GetProperty(CONTROL_TERM_BUFFER_SPARSE_PROP_NAME, - System.Convert.ToString(CONTROL_TERM_BUFFER_SPARSE_DEFAULT)); + string propValue = Config.GetProperty( + CONTROL_TERM_BUFFER_SPARSE_PROP_NAME, + System.Convert.ToString(CONTROL_TERM_BUFFER_SPARSE_DEFAULT) + ); return "true".Equals(propValue); } @@ -2737,7 +3073,8 @@ public static int LocalControlStreamId() } /// - /// The value of system property if set, null otherwise. + /// The value of system property if set, null + /// otherwise. /// /// of system property if set. public static string ControlResponseChannel() @@ -2757,7 +3094,8 @@ public static int ControlResponseStreamId() } /// - /// The value of system property if set, null otherwise. + /// The value of system property if set, null + /// otherwise. /// /// system property if set. public static string RecordingEventsChannel() @@ -2783,11 +3121,13 @@ public static int RecordingEventsStreamId() /// public static bool RecordingEventsEnabled() { - string propValue = Config.GetProperty(RECORDING_EVENTS_ENABLED_PROP_NAME, - System.Convert.ToString(RECORDING_EVENTS_ENABLED_DEFAULT)); + string propValue = Config.GetProperty( + RECORDING_EVENTS_ENABLED_PROP_NAME, + System.Convert.ToString(RECORDING_EVENTS_ENABLED_DEFAULT) + ); return "true".Equals(propValue); } - + /// /// Get the configured client name. /// @@ -2810,28 +3150,28 @@ public class Context { private int _isConcluded = 0; - internal long messageTimeoutNs = Configuration.MessageTimeoutNs(); - internal int messageRetryAttempts = Configuration.MessageRetryAttempts(); - internal String clientName = AeronArchive.Configuration.ClientName(); - internal string recordingEventsChannel = Configuration.RecordingEventsChannel(); - internal int recordingEventsStreamId = Configuration.RecordingEventsStreamId(); - internal string controlRequestChannel = Configuration.ControlChannel(); - internal int controlRequestStreamId = Configuration.ControlStreamId(); - internal string controlResponseChannel = Configuration.ControlResponseChannel(); - internal int controlResponseStreamId = Configuration.ControlResponseStreamId(); - internal bool controlTermBufferSparse = Configuration.ControlTermBufferSparse(); - internal int controlTermBufferLength = Configuration.ControlTermBufferLength(); - internal int controlMtuLength = Configuration.ControlMtuLength(); - - internal IIdleStrategy idleStrategy; + internal long _messageTimeoutNs = Configuration.MessageTimeoutNs(); + internal int _messageRetryAttempts = Configuration.MessageRetryAttempts(); + internal String _clientName = AeronArchive.Configuration.ClientName(); + internal string _recordingEventsChannel = Configuration.RecordingEventsChannel(); + internal int _recordingEventsStreamId = Configuration.RecordingEventsStreamId(); + internal string _controlRequestChannel = Configuration.ControlChannel(); + internal int _controlRequestStreamId = Configuration.ControlStreamId(); + internal string _controlResponseChannel = Configuration.ControlResponseChannel(); + internal int _controlResponseStreamId = Configuration.ControlResponseStreamId(); + internal bool _controlTermBufferSparse = Configuration.ControlTermBufferSparse(); + internal int _controlTermBufferLength = Configuration.ControlTermBufferLength(); + internal int _controlMtuLength = Configuration.ControlMtuLength(); + + internal IIdleStrategy _idleStrategy; internal ILock _lock; - internal string aeronDirectoryName = GetAeronDirectoryName(); - internal Aeron.Aeron aeron; - private IErrorHandler errorHandler; - private ICredentialsSupplier credentialsSupplier; - private IRecordingSignalConsumer recordingSignalConsumer = Configuration.NO_OP_RECORDING_SIGNAL_CONSUMER; - private AgentInvoker agentInvoker; - internal bool ownsAeronClient = false; + internal string _aeronDirectoryName = GetAeronDirectoryName(); + internal Aeron.Aeron _aeron; + private IErrorHandler _errorHandler; + private ICredentialsSupplier _credentialsSupplier; + private IRecordingSignalConsumer _recordingSignalConsumer = Configuration.NO_OP_RECORDING_SIGNAL_CONSUMER; + private AgentInvoker _agentInvoker; + internal bool _ownsAeronClient = false; public Context Clone() { @@ -2848,62 +3188,67 @@ public void Conclude() throw new ConcurrentConcludeException(); } - if (null == controlRequestChannel) + if (null == _controlRequestChannel) { throw new ConfigurationException("AeronArchive.Context.ControlRequestChannel must be set"); } - if (null == controlResponseChannel) + if (null == _controlResponseChannel) { throw new ConfigurationException("AeronArchive.Context.ControlResponseChannel must be set"); } - - if (clientName.Length > Aeron.Aeron.Configuration.MAX_CLIENT_NAME_LENGTH) + + if (_clientName.Length > Aeron.Aeron.Configuration.MAX_CLIENT_NAME_LENGTH) { - throw new ConfigurationException("AeronArchive.Context.clientName length must be <= " + Aeron.Aeron.Configuration.MAX_CLIENT_NAME_LENGTH); + throw new ConfigurationException( + "AeronArchive.Context.clientName length must be <= " + + Aeron.Aeron.Configuration.MAX_CLIENT_NAME_LENGTH + ); } - if (messageRetryAttempts <= 0) + if (_messageRetryAttempts <= 0) { throw new ConfigurationException( - "AeronArchive.Context.messageRetryAttempts must be > 0, got: " + messageRetryAttempts); + "AeronArchive.Context.messageRetryAttempts must be > 0, got: " + _messageRetryAttempts + ); } - if (null == aeron) + if (null == _aeron) { - aeron = Aeron.Aeron.Connect( + _aeron = Aeron.Aeron.Connect( new Aeron.Aeron.Context() - .AeronDirectoryName(aeronDirectoryName) - .ClientName(string.IsNullOrEmpty(clientName) ? "archive-client" : clientName) - .ErrorHandler(errorHandler) + .AeronDirectoryName(_aeronDirectoryName) + .ClientName(string.IsNullOrEmpty(_clientName) ? "archive-client" : _clientName) + .ErrorHandler(_errorHandler) ); - ownsAeronClient = true; + _ownsAeronClient = true; } - ChannelUri requestChannel = ApplyDefaultParams(controlRequestChannel); - ChannelUri responseChannel = ApplyDefaultParams(controlResponseChannel); + ChannelUri requestChannel = ApplyDefaultParams(_controlRequestChannel); + ChannelUri responseChannel = ApplyDefaultParams(_controlResponseChannel); if (!CONTROL_MODE_RESPONSE.Equals(responseChannel.Get(MDC_CONTROL_MODE_PARAM_NAME))) { - String sessionId = Convert.ToString(aeron.NextSessionId(controlRequestStreamId)); + String sessionId = Convert.ToString(_aeron.NextSessionId(_controlRequestStreamId)); requestChannel.Put(SESSION_ID_PARAM_NAME, sessionId); responseChannel.Put(SESSION_ID_PARAM_NAME, sessionId); } - controlRequestChannel = requestChannel.ToString(); - controlResponseChannel = responseChannel.ToString(); + _controlRequestChannel = requestChannel.ToString(); + _controlResponseChannel = responseChannel.ToString(); - if (null == idleStrategy) + if (null == _idleStrategy) { - idleStrategy = new BackoffIdleStrategy( + _idleStrategy = new BackoffIdleStrategy( Agrona.Concurrent.Configuration.IDLE_MAX_SPINS, Agrona.Concurrent.Configuration.IDLE_MAX_YIELDS, Agrona.Concurrent.Configuration.IDLE_MIN_PARK_MS, - Agrona.Concurrent.Configuration.IDLE_MAX_PARK_MS); + Agrona.Concurrent.Configuration.IDLE_MAX_PARK_MS + ); } - if (null == credentialsSupplier) + if (null == _credentialsSupplier) { - credentialsSupplier = new NullCredentialsSupplier(); + _credentialsSupplier = new NullCredentialsSupplier(); } if (null == _lock) @@ -2926,7 +3271,7 @@ public void Conclude() /// public Context MessageTimeoutNs(long messageTimeoutNs) { - this.messageTimeoutNs = messageTimeoutNs; + _messageTimeoutNs = messageTimeoutNs; return this; } @@ -2937,7 +3282,7 @@ public Context MessageTimeoutNs(long messageTimeoutNs) /// public long MessageTimeoutNs() { - return messageTimeoutNs; + return _messageTimeoutNs; } /// @@ -2948,7 +3293,7 @@ public long MessageTimeoutNs() /// public Context MessageRetryAttempts(int messageRetryAttempts) { - this.messageRetryAttempts = messageRetryAttempts; + _messageRetryAttempts = messageRetryAttempts; return this; } @@ -2959,7 +3304,7 @@ public Context MessageRetryAttempts(int messageRetryAttempts) /// public int MessageRetryAttempts() { - return messageRetryAttempts; + return _messageRetryAttempts; } /// @@ -2968,7 +3313,7 @@ public int MessageRetryAttempts() /// the channel URI on which the recording events publication will publish. public string RecordingEventsChannel() { - return recordingEventsChannel; + return _recordingEventsChannel; } /// @@ -2976,15 +3321,16 @@ public string RecordingEventsChannel() /// /// To support dynamic subscribers then this can be set to multicast or MDC (Multi-Destination-Cast) if /// multicast cannot be supported for on the available the network infrastructure. - /// + /// /// /// - /// channel URI on which the recording events publication will publish. + /// channel URI on which the recording events publication will + /// publish. /// this for a fluent API. /// public Context RecordingEventsChannel(string recordingEventsChannel) { - this.recordingEventsChannel = recordingEventsChannel; + _recordingEventsChannel = recordingEventsChannel; return this; } @@ -2994,17 +3340,18 @@ public Context RecordingEventsChannel(string recordingEventsChannel) /// the stream id on which the recording events publication will publish. public int RecordingEventsStreamId() { - return recordingEventsStreamId; + return _recordingEventsStreamId; } /// /// Set the stream id on which the recording events publication will publish. /// - /// stream id on which the recording events publication will publish. + /// stream id on which the recording events publication will publish. + /// /// this for a fluent API. public Context RecordingEventsStreamId(int recordingEventsStreamId) { - this.recordingEventsStreamId = recordingEventsStreamId; + _recordingEventsStreamId = recordingEventsStreamId; return this; } @@ -3016,7 +3363,7 @@ public Context RecordingEventsStreamId(int recordingEventsStreamId) /// public Context ControlRequestChannel(string channel) { - controlRequestChannel = channel; + _controlRequestChannel = channel; return this; } @@ -3027,7 +3374,7 @@ public Context ControlRequestChannel(string channel) /// public string ControlRequestChannel() { - return controlRequestChannel; + return _controlRequestChannel; } /// @@ -3038,7 +3385,7 @@ public string ControlRequestChannel() /// public Context ControlRequestStreamId(int streamId) { - controlRequestStreamId = streamId; + _controlRequestStreamId = streamId; return this; } @@ -3049,7 +3396,7 @@ public Context ControlRequestStreamId(int streamId) /// public int ControlRequestStreamId() { - return controlRequestStreamId; + return _controlRequestStreamId; } /// @@ -3060,7 +3407,7 @@ public int ControlRequestStreamId() /// s public Context ControlResponseChannel(string channel) { - controlResponseChannel = channel; + _controlResponseChannel = channel; return this; } @@ -3071,7 +3418,7 @@ public Context ControlResponseChannel(string channel) /// public string ControlResponseChannel() { - return controlResponseChannel; + return _controlResponseChannel; } /// @@ -3082,7 +3429,7 @@ public string ControlResponseChannel() /// public Context ControlResponseStreamId(int streamId) { - controlResponseStreamId = streamId; + _controlResponseStreamId = streamId; return this; } @@ -3093,7 +3440,7 @@ public Context ControlResponseStreamId(int streamId) /// public int ControlResponseStreamId() { - return controlResponseStreamId; + return _controlResponseStreamId; } /// @@ -3104,7 +3451,7 @@ public int ControlResponseStreamId() /// public Context ControlTermBufferSparse(bool controlTermBufferSparse) { - this.controlTermBufferSparse = controlTermBufferSparse; + _controlTermBufferSparse = controlTermBufferSparse; return this; } @@ -3115,7 +3462,7 @@ public Context ControlTermBufferSparse(bool controlTermBufferSparse) /// public bool ControlTermBufferSparse() { - return controlTermBufferSparse; + return _controlTermBufferSparse; } /// @@ -3126,7 +3473,7 @@ public bool ControlTermBufferSparse() /// public Context ControlTermBufferLength(int controlTermBufferLength) { - this.controlTermBufferLength = controlTermBufferLength; + _controlTermBufferLength = controlTermBufferLength; return this; } @@ -3137,7 +3484,7 @@ public Context ControlTermBufferLength(int controlTermBufferLength) /// public int ControlTermBufferLength() { - return controlTermBufferLength; + return _controlTermBufferLength; } /// @@ -3148,7 +3495,7 @@ public int ControlTermBufferLength() /// public Context ControlMtuLength(int controlMtuLength) { - this.controlMtuLength = controlMtuLength; + _controlMtuLength = controlMtuLength; return this; } @@ -3159,7 +3506,7 @@ public Context ControlMtuLength(int controlMtuLength) /// public int ControlMtuLength() { - return controlMtuLength; + return _controlMtuLength; } /// @@ -3169,7 +3516,7 @@ public int ControlMtuLength() /// this for a fluent API. public Context IdleStrategy(IIdleStrategy idleStrategy) { - this.idleStrategy = idleStrategy; + _idleStrategy = idleStrategy; return this; } @@ -3179,7 +3526,7 @@ public Context IdleStrategy(IIdleStrategy idleStrategy) /// the used when waiting for responses. public IIdleStrategy IdleStrategy() { - return idleStrategy; + return _idleStrategy; } /// @@ -3189,7 +3536,7 @@ public IIdleStrategy IdleStrategy() /// this for a fluent API. public Context AeronDirectoryName(string aeronDirectoryName) { - this.aeronDirectoryName = aeronDirectoryName; + _aeronDirectoryName = aeronDirectoryName; return this; } @@ -3199,7 +3546,7 @@ public Context AeronDirectoryName(string aeronDirectoryName) /// The top level Aeron directory. public string AeronDirectoryName() { - return aeronDirectoryName; + return _aeronDirectoryName; } /// @@ -3211,7 +3558,7 @@ public string AeronDirectoryName() /// Since 1.49.0 public Context ClientName(string clientName) { - this.clientName = string.IsNullOrEmpty(clientName) ? "" : clientName; + _clientName = string.IsNullOrEmpty(clientName) ? "" : clientName; return this; } @@ -3223,15 +3570,16 @@ public Context ClientName(string clientName) /// Since 1.49.0 public string ClientName() { - return clientName; + return _clientName; } - + /// /// client for communicating with the local Media Driver. /// - /// This client will be closed when the or methods are called if + /// This client will be closed when the or + /// methods are called if /// is true. - /// + /// /// /// /// client for communicating with the local Media Driver. @@ -3239,7 +3587,7 @@ public string ClientName() /// public Context AeronClient(Aeron.Aeron aeron) { - this.aeron = aeron; + _aeron = aeron; return this; } @@ -3248,44 +3596,50 @@ public Context AeronClient(Aeron.Aeron aeron) /// /// If not provided then a default will be established during by calling /// . - /// + /// /// /// /// client for communicating with the local Media Driver. public Aeron.Aeron AeronClient() { - return aeron; + return _aeron; } /// - /// Does this context own the client and thus take responsibility for closing it? + /// Does this context own the client and thus take responsibility for + /// closing it? /// - /// does this context own the client? + /// does this context own the client? + /// /// this for a fluent API. public Context OwnsAeronClient(bool ownsAeronClient) { - this.ownsAeronClient = ownsAeronClient; + _ownsAeronClient = ownsAeronClient; return this; } /// - /// Does this context own the client and thus take responsibility for closing it? + /// Does this context own the client and thus take responsibility for + /// closing it? /// - /// does this context own the client and thus take responsibility for closing it? + /// does this context own the client and thus take responsibility + /// for closing it? public bool OwnsAeronClient() { - return ownsAeronClient; + return _ownsAeronClient; } /// - /// The that is used to provide mutual exclusion in the client. + /// The that is used to provide mutual exclusion in the + /// client. /// /// If the is used from only a single thread then the lock can be set to /// to elide the lock overhead. - /// + /// /// /// - /// that is used to provide mutual exclusion in the client. + /// that is used to provide mutual exclusion in the + /// client. /// this for a fluent API. public Context Lock(ILock @lock) { @@ -3294,9 +3648,11 @@ public Context Lock(ILock @lock) } /// - /// Get the that is used to provide mutual exclusion in the client. + /// Get the that is used to provide mutual exclusion in the + /// client. /// - /// the that is used to provide mutual exclusion in the client. + /// the that is used to provide mutual exclusion in the + /// client. public ILock Lock() { return _lock; @@ -3309,7 +3665,7 @@ public ILock Lock() /// this for a fluent API. public Context ErrorHandler(IErrorHandler errorHandler) { - this.errorHandler = errorHandler; + _errorHandler = errorHandler; return this; } @@ -3319,7 +3675,7 @@ public Context ErrorHandler(IErrorHandler errorHandler) /// the error handler that will be called for asynchronous errors. public IErrorHandler ErrorHandler() { - return errorHandler; + return _errorHandler; } /// @@ -3329,32 +3685,35 @@ public IErrorHandler ErrorHandler() /// this for fluent API. public Context CredentialsSupplier(ICredentialsSupplier credentialsSupplier) { - this.credentialsSupplier = credentialsSupplier; + _credentialsSupplier = credentialsSupplier; return this; } /// - /// Set the to will be called when polling for responses from an Archive. + /// Set the to will be called when polling for responses from an + /// Archive. /// /// to called with recording signal events. /// this for a fluent API. public Context RecordingSignalConsumer(IRecordingSignalConsumer recordingSignalConsumer) { - this.recordingSignalConsumer = recordingSignalConsumer; + _recordingSignalConsumer = recordingSignalConsumer; return this; } /// - /// Set the to will be called when polling for responses from an Archive. + /// Set the to will be called when polling for responses from an + /// Archive. /// /// a recording signal consumer. public IRecordingSignalConsumer RecordingSignalConsumer() { - return recordingSignalConsumer; + return _recordingSignalConsumer; } /// - /// Set the to be invoked in addition to any invoker used by the instance. + /// Set the to be invoked in addition to any + /// invoker used by the instance. /// /// Useful for when running on a low thread count scenario. /// @@ -3362,17 +3721,18 @@ public IRecordingSignalConsumer RecordingSignalConsumer() /// this for a fluent API. public Context AgentInvoker(AgentInvoker agentInvoker) { - this.agentInvoker = agentInvoker; + _agentInvoker = agentInvoker; return this; } /// - /// Get the to be invoked in addition to any invoker used by the instance. + /// Get the to be invoked in addition to any + /// invoker used by the instance. /// /// the that is used. public AgentInvoker AgentInvoker() { - return agentInvoker; + return _agentInvoker; } internal int RunInvokers() @@ -3389,9 +3749,9 @@ internal int RunInvokers() } } - if (null != agentInvoker) + if (null != _agentInvoker) { - workCount += agentInvoker.Invoke(); + workCount += _agentInvoker.Invoke(); } return workCount; @@ -3400,23 +3760,25 @@ internal int RunInvokers() /// /// Get the to be used for authentication with the archive. /// - /// the to be used for authentication with the archive. + /// the to be used for authentication with the archive. + /// public ICredentialsSupplier CredentialsSupplier() { - return credentialsSupplier; + return _credentialsSupplier; } /// /// Close the context and free applicable resources. /// - /// If is true then the client will be closed. + /// If is true then the client will be + /// closed. /// /// public void Dispose() { - if (ownsAeronClient) + if (_ownsAeronClient) { - aeron?.Dispose(); + _aeron?.Dispose(); } } @@ -3425,27 +3787,28 @@ public void Dispose() /// public override string ToString() { - return "AeronArchive.Context" + - "\n{" + - "\n isConcluded=" + (1 == _isConcluded) + - "\n ownsAeronClient=" + ownsAeronClient + - "\n aeronDirectoryName='" + aeronDirectoryName + '\'' + - "\n aeron=" + aeron + - "\n messageTimeoutNs=" + messageTimeoutNs + - "\n recordingEventsChannel='" + recordingEventsChannel + '\'' + - "\n recordingEventsStreamId=" + recordingEventsStreamId + - "\n controlRequestChannel='" + controlRequestChannel + '\'' + - "\n controlRequestStreamId=" + controlRequestStreamId + - "\n controlResponseChannel='" + controlResponseChannel + '\'' + - "\n controlResponseStreamId=" + controlResponseStreamId + - "\n controlTermBufferSparse=" + controlTermBufferSparse + - "\n controlTermBufferLength=" + controlTermBufferLength + - "\n controlMtuLength=" + controlMtuLength + - "\n idleStrategy=" + idleStrategy + - "\n lock=" + _lock + - "\n errorHandler=" + errorHandler + - "\n credentialsSupplier=" + credentialsSupplier + - "\n}"; + return + "AeronArchive.Context" + + "\n{" + + "\n isConcluded=" + (1 == _isConcluded) + + "\n ownsAeronClient=" + _ownsAeronClient + + "\n aeronDirectoryName='" + _aeronDirectoryName + '\'' + + "\n aeron=" + _aeron + + "\n messageTimeoutNs=" + _messageTimeoutNs + + "\n recordingEventsChannel='" + _recordingEventsChannel + '\'' + + "\n recordingEventsStreamId=" + _recordingEventsStreamId + + "\n controlRequestChannel='" + _controlRequestChannel + '\'' + + "\n controlRequestStreamId=" + _controlRequestStreamId + + "\n controlResponseChannel='" + _controlResponseChannel + '\'' + + "\n controlResponseStreamId=" + _controlResponseStreamId + + "\n controlTermBufferSparse=" + _controlTermBufferSparse + + "\n controlTermBufferLength=" + _controlTermBufferLength + + "\n controlMtuLength=" + _controlMtuLength + + "\n idleStrategy=" + _idleStrategy + + "\n lock=" + _lock + + "\n errorHandler=" + _errorHandler + + "\n credentialsSupplier=" + _credentialsSupplier + + "\n}"; } private ChannelUri ApplyDefaultParams(string channel) @@ -3454,17 +3817,17 @@ private ChannelUri ApplyDefaultParams(string channel) if (!channelUri.ContainsKey(TERM_LENGTH_PARAM_NAME)) { - channelUri.Put(TERM_LENGTH_PARAM_NAME, Convert.ToString(controlTermBufferLength)); + channelUri.Put(TERM_LENGTH_PARAM_NAME, Convert.ToString(_controlTermBufferLength)); } if (!channelUri.ContainsKey(MTU_LENGTH_PARAM_NAME)) { - channelUri.Put(MTU_LENGTH_PARAM_NAME, Convert.ToString(controlMtuLength)); + channelUri.Put(MTU_LENGTH_PARAM_NAME, Convert.ToString(_controlMtuLength)); } if (!channelUri.ContainsKey(SPARSE_PARAM_NAME)) { - channelUri.Put(SPARSE_PARAM_NAME, controlTermBufferSparse ? "true" : "false"); + channelUri.Put(SPARSE_PARAM_NAME, _controlTermBufferSparse ? "true" : "false"); } return channelUri; @@ -3534,45 +3897,46 @@ public enum AsyncConnectState /// /// Archive connection established. /// - DONE = 10 - } - - internal static readonly int PROTOCOL_VERSION_WITH_ARCHIVE_ID = SemanticVersion.Compose(1, 11, 0); - private readonly Context ctx; - private readonly long deadlineNs; - private ControlResponsePoller controlResponsePoller; - private long subscriptionRegistrationId = Aeron.Aeron.NULL_VALUE; - private long publicationRegistrationId = Aeron.Aeron.NULL_VALUE; - private long correlationId = Aeron.Aeron.NULL_VALUE; - private long controlSessionId = Aeron.Aeron.NULL_VALUE; - private byte[] encodedCredentialsFromChallenge = null; - private AsyncConnectState state; - private ArchiveProxy archiveProxy; - private AeronArchive aeronArchive; + DONE = 10, + } + + internal static readonly int ProtocolVersionWithArchiveId = SemanticVersion.Compose(1, 11, 0); + private readonly Context _ctx; + private readonly long _deadlineNs; + private ControlResponsePoller _controlResponsePoller; + private long _subscriptionRegistrationId = Aeron.Aeron.NULL_VALUE; + private long _publicationRegistrationId = Aeron.Aeron.NULL_VALUE; + private long _correlationId = Aeron.Aeron.NULL_VALUE; + private long _controlSessionId = Aeron.Aeron.NULL_VALUE; + private byte[] _encodedCredentialsFromChallenge = null; + private AsyncConnectState _state; + private ArchiveProxy _archiveProxy; + private AeronArchive _aeronArchive; internal AsyncConnect(Context ctx) { try { - this.ctx = ctx; + _ctx = ctx; Aeron.Aeron aeron = ctx.AeronClient(); - subscriptionRegistrationId = aeron.AsyncAddSubscription( + _subscriptionRegistrationId = aeron.AsyncAddSubscription( ctx.ControlResponseChannel(), ctx.ControlResponseStreamId(), null, (image) => { - AeronArchive client = aeronArchive; + AeronArchive client = _aeronArchive; if (null != client) { client.State(ArchiveState.DISCONNECTED); } - }); + } + ); - state = AsyncConnectState.AWAIT_SUBSCRIPTION; - deadlineNs = aeron.Ctx.NanoClock().NanoTime() + ctx.MessageTimeoutNs(); + _state = AsyncConnectState.AWAIT_SUBSCRIPTION; + _deadlineNs = aeron.Ctx.NanoClock().NanoTime() + ctx.MessageTimeoutNs(); } catch (Exception ex) { @@ -3581,17 +3945,14 @@ internal AsyncConnect(Context ctx) } } - internal AsyncConnect( - Context ctx, - ControlResponsePoller controlResponsePoller, - ArchiveProxy archiveProxy) + internal AsyncConnect(Context ctx, ControlResponsePoller controlResponsePoller, ArchiveProxy archiveProxy) { - this.ctx = ctx; - this.controlResponsePoller = controlResponsePoller; - this.archiveProxy = archiveProxy; + _ctx = ctx; + _controlResponsePoller = controlResponsePoller; + _archiveProxy = archiveProxy; - deadlineNs = ctx.AeronClient().Ctx.NanoClock().NanoTime() + ctx.MessageTimeoutNs(); - state = AsyncConnectState.AWAIT_PUBLICATION_CONNECTED; + _deadlineNs = ctx.AeronClient().Ctx.NanoClock().NanoTime() + ctx.MessageTimeoutNs(); + _state = AsyncConnectState.AWAIT_PUBLICATION_CONNECTED; } /// @@ -3599,30 +3960,30 @@ internal AsyncConnect( /// public void Dispose() { - if (AsyncConnectState.DONE != state) + if (AsyncConnectState.DONE != _state) { - if (!ctx.OwnsAeronClient()) + if (!_ctx.OwnsAeronClient()) { - if (null != controlResponsePoller) + if (null != _controlResponsePoller) { - CloseHelper.Dispose(ctx.ErrorHandler(), controlResponsePoller.Subscription()); + CloseHelper.Dispose(_ctx.ErrorHandler(), _controlResponsePoller.Subscription()); } - else if (Aeron.Aeron.NULL_VALUE != subscriptionRegistrationId) + else if (Aeron.Aeron.NULL_VALUE != _subscriptionRegistrationId) { - ctx.AeronClient().AsyncRemoveSubscription(subscriptionRegistrationId); + _ctx.AeronClient().AsyncRemoveSubscription(_subscriptionRegistrationId); } - if (null != archiveProxy) + if (null != _archiveProxy) { - CloseHelper.Dispose(ctx.ErrorHandler(), archiveProxy.Pub()); + CloseHelper.Dispose(_ctx.ErrorHandler(), _archiveProxy.Pub()); } - else if (Aeron.Aeron.NULL_VALUE != publicationRegistrationId) + else if (Aeron.Aeron.NULL_VALUE != _publicationRegistrationId) { - ctx.AeronClient().AsyncRemovePublication(publicationRegistrationId); + _ctx.AeronClient().AsyncRemovePublication(_publicationRegistrationId); } } - ctx.Dispose(); + _ctx.Dispose(); } } @@ -3632,7 +3993,7 @@ public void Dispose() /// the used for this client. public Context Ctx() { - return ctx; + return _ctx; } /// @@ -3641,7 +4002,7 @@ public Context Ctx() /// the index of the current step. public int Step() { - return (int)state; + return (int)_state; } /// @@ -3650,7 +4011,7 @@ public int Step() /// current state. public AsyncConnectState State() { - return state; + return _state; } /// @@ -3661,9 +4022,9 @@ public AsyncConnectState State() public AeronArchive Poll() { CheckDeadline(); - ctx.RunInvokers(); + _ctx.RunInvokers(); - switch (state) + switch (_state) { case AsyncConnectState.AWAIT_SUBSCRIPTION: AwaitSubscription(); @@ -3703,32 +4064,36 @@ public AeronArchive Poll() break; } - return aeronArchive; + return _aeronArchive; } private void AddPublication() { - Aeron.Aeron aeron = ctx.AeronClient(); - if (Aeron.Aeron.NULL_VALUE == publicationRegistrationId) + Aeron.Aeron aeron = _ctx.AeronClient(); + if (Aeron.Aeron.NULL_VALUE == _publicationRegistrationId) { - publicationRegistrationId = aeron.AsyncAddExclusivePublication( - ctx.ControlRequestChannel(), ctx.ControlRequestStreamId()); + _publicationRegistrationId = aeron.AsyncAddExclusivePublication( + _ctx.ControlRequestChannel(), + _ctx.ControlRequestStreamId() + ); } - ExclusivePublication publication = aeron.GetExclusivePublication(publicationRegistrationId); + ExclusivePublication publication = aeron.GetExclusivePublication(_publicationRegistrationId); if (null != publication) { - string clientInfo = "name=" + ctx.ClientName(); - // + " " + AeronCounters.formatVersionInfo(AeronArchiveVersion.VERSION, AeronArchiveVersion.GIT_SHA); - archiveProxy = new ArchiveProxy( + string clientInfo = "name=" + _ctx.ClientName(); + // + " " + AeronCounters.formatVersionInfo( + // AeronArchiveVersion.VERSION, AeronArchiveVersion.GIT_SHA); + _archiveProxy = new ArchiveProxy( publication, - ctx.IdleStrategy(), + _ctx.IdleStrategy(), aeron.Ctx.NanoClock(), - ctx.MessageTimeoutNs(), - ctx.MessageRetryAttempts(), - ctx.CredentialsSupplier(), - clientInfo); - publicationRegistrationId = Aeron.Aeron.NULL_VALUE; + _ctx.MessageTimeoutNs(), + _ctx.MessageRetryAttempts(), + _ctx.CredentialsSupplier(), + clientInfo + ); + _publicationRegistrationId = Aeron.Aeron.NULL_VALUE; State(AsyncConnectState.AWAIT_PUBLICATION_CONNECTED); } @@ -3736,7 +4101,7 @@ private void AddPublication() private void AwaitPublicationConnected() { - if (archiveProxy.Pub().IsConnected) + if (_archiveProxy.Pub().IsConnected) { State(AsyncConnectState.SEND_CONNECT_REQUEST); } @@ -3744,15 +4109,15 @@ private void AwaitPublicationConnected() private void SendConnectRequest() { - string responseChannel = controlResponsePoller.Subscription().TryResolveChannelEndpointPort(); + string responseChannel = _controlResponsePoller.Subscription().TryResolveChannelEndpointPort(); if (null == responseChannel) { return; } - correlationId = ctx.AeronClient().NextCorrelationId(); + _correlationId = _ctx.AeronClient().NextCorrelationId(); - if (archiveProxy.TryConnect(responseChannel, ctx.ControlResponseStreamId(), correlationId)) + if (_archiveProxy.TryConnect(responseChannel, _ctx.ControlResponseStreamId(), _correlationId)) { State(AsyncConnectState.AWAIT_SUBSCRIPTION_CONNECTED); } @@ -3760,7 +4125,7 @@ private void SendConnectRequest() private void AwaitSubscriptionConnected() { - if (controlResponsePoller.Subscription().IsConnected) + if (_controlResponsePoller.Subscription().IsConnected) { State(AsyncConnectState.AWAIT_CONNECT_RESPONSE); } @@ -3768,7 +4133,7 @@ private void AwaitSubscriptionConnected() private void SendArchiveIdRequest() { - if (archiveProxy.ArchiveId(correlationId, controlSessionId)) + if (_archiveProxy.ArchiveId(_correlationId, _controlSessionId)) { State(AsyncConnectState.AWAIT_ARCHIVE_ID_RESPONSE); } @@ -3776,8 +4141,13 @@ private void SendArchiveIdRequest() private void SendChallengeResponse() { - if (archiveProxy.TryChallengeResponse( - encodedCredentialsFromChallenge, correlationId, controlSessionId)) + if ( + _archiveProxy.TryChallengeResponse( + _encodedCredentialsFromChallenge, + _correlationId, + _controlSessionId + ) + ) { State(AsyncConnectState.AWAIT_CHALLENGE_RESPONSE); } @@ -3785,53 +4155,56 @@ private void SendChallengeResponse() private void PollForResponse() { - controlResponsePoller.Poll(); + _controlResponsePoller.Poll(); - if (controlResponsePoller.PollComplete && controlResponsePoller.CorrelationId() == correlationId) + if (_controlResponsePoller.PollComplete && _controlResponsePoller.CorrelationId() == _correlationId) { - controlSessionId = controlResponsePoller.ControlSessionId(); - if (controlResponsePoller.WasChallenged()) + _controlSessionId = _controlResponsePoller.ControlSessionId(); + if (_controlResponsePoller.WasChallenged()) { - encodedCredentialsFromChallenge = ctx.CredentialsSupplier() - .OnChallenge(controlResponsePoller.EncodedChallenge()); + _encodedCredentialsFromChallenge = _ctx.CredentialsSupplier() + .OnChallenge(_controlResponsePoller.EncodedChallenge()); - correlationId = ctx.AeronClient().NextCorrelationId(); + _correlationId = _ctx.AeronClient().NextCorrelationId(); State(AsyncConnectState.SEND_CHALLENGE_RESPONSE); } else { - ControlResponseCode code = controlResponsePoller.Code(); + ControlResponseCode code = _controlResponsePoller.Code(); if (ControlResponseCode.OK != code) { - archiveProxy.CloseSession(controlSessionId); + _archiveProxy.CloseSession(_controlSessionId); if (ControlResponseCode.ERROR == code) { - string errorMessage = controlResponsePoller.ErrorMessage(); - int errorCode = (int)controlResponsePoller.RelevantId(); + string errorMessage = _controlResponsePoller.ErrorMessage(); + int errorCode = (int)_controlResponsePoller.RelevantId(); - throw new ArchiveException(errorMessage, errorCode, correlationId); + throw new ArchiveException(errorMessage, errorCode, _correlationId); } throw new ArchiveException( - "unexpected response: code=" + code, correlationId, Category.ERROR); + "unexpected response: code=" + code, + _correlationId, + Category.ERROR + ); } - if (AsyncConnectState.AWAIT_ARCHIVE_ID_RESPONSE == state) + if (AsyncConnectState.AWAIT_ARCHIVE_ID_RESPONSE == _state) { - long archiveId = controlResponsePoller.RelevantId(); - aeronArchive = TransitionToDone(archiveId); + long archiveId = _controlResponsePoller.RelevantId(); + _aeronArchive = TransitionToDone(archiveId); } else { - int archiveProtocolVersion = controlResponsePoller.Version(); - if (archiveProtocolVersion < PROTOCOL_VERSION_WITH_ARCHIVE_ID) + int archiveProtocolVersion = _controlResponsePoller.Version(); + if (archiveProtocolVersion < ProtocolVersionWithArchiveId) { - aeronArchive = TransitionToDone(Aeron.Aeron.NULL_VALUE); + _aeronArchive = TransitionToDone(Aeron.Aeron.NULL_VALUE); } else { - correlationId = ctx.AeronClient().NextCorrelationId(); + _correlationId = _ctx.AeronClient().NextCorrelationId(); State(AsyncConnectState.SEND_ARCHIVE_ID_REQUEST); } } @@ -3841,43 +4214,49 @@ private void PollForResponse() long CorrelationId() { - return correlationId; + return _correlationId; } long ControlSessionId() { - return controlSessionId; + return _controlSessionId; } private void State(AsyncConnectState newState) { - state = newState; + _state = newState; } private void AwaitSubscription() { - Subscription subscription = ctx.AeronClient().GetSubscription(subscriptionRegistrationId); + Subscription subscription = _ctx.AeronClient().GetSubscription(_subscriptionRegistrationId); if (null != subscription) { - CheckAndSetupResponseChannel(ctx, subscription); - controlResponsePoller = new ControlResponsePoller(subscription); - subscriptionRegistrationId = Aeron.Aeron.NULL_VALUE; + CheckAndSetupResponseChannel(_ctx, subscription); + _controlResponsePoller = new ControlResponsePoller(subscription); + _subscriptionRegistrationId = Aeron.Aeron.NULL_VALUE; State(AsyncConnectState.ADD_PUBLICATION); } } private void CheckDeadline() { - if (deadlineNs - ctx.AeronClient().Ctx.NanoClock().NanoTime() < 0) + if (_deadlineNs - _ctx.AeronClient().Ctx.NanoClock().NanoTime() < 0) { - object publication = null != archiveProxy ? (object)archiveProxy.Pub() : ctx.ControlRequestChannel(); - object subscription = null != controlResponsePoller - ? (object)controlResponsePoller.Subscription() - : ctx.ControlResponseChannel(); + object publication = + null != _archiveProxy ? (object)_archiveProxy.Pub() : _ctx.ControlRequestChannel(); + object subscription = + null != _controlResponsePoller + ? (object)_controlResponsePoller.Subscription() + : _ctx.ControlResponseChannel(); throw new TimeoutException( - "Archive connect timeout: step=" + state + - " publication=" + publication + - " subscription=" + subscription); + "Archive connect timeout: step=" + + _state + + " publication=" + + publication + + " subscription=" + + subscription + ); } try @@ -3892,14 +4271,19 @@ private void CheckDeadline() private AeronArchive TransitionToDone(long archiveId) { - if (!archiveProxy.KeepAlive(controlSessionId, Aeron.Aeron.NULL_VALUE)) + if (!_archiveProxy.KeepAlive(_controlSessionId, Aeron.Aeron.NULL_VALUE)) { - archiveProxy.CloseSession(controlSessionId); + _archiveProxy.CloseSession(_controlSessionId); throw new ArchiveException("failed to send keep alive after archive connect"); } - AeronArchive aeronArchive = new AeronArchive(ctx, controlResponsePoller, archiveProxy, controlSessionId, - archiveId); + AeronArchive aeronArchive = new AeronArchive( + _ctx, + _controlResponsePoller, + _archiveProxy, + _controlSessionId, + archiveId + ); State(AsyncConnectState.DONE); return aeronArchive; @@ -3929,32 +4313,37 @@ public static Exception QuietClose(Exception previousException, IDisposable disp return previousException; } } - + private static void CheckAndSetupResponseChannel(Context ctx, Subscription subscription) { if (ChannelUri.IsControlModeResponse(ctx.ControlResponseChannel())) { string requestChannel = (new ChannelUriStringBuilder(ctx.ControlRequestChannel())) - .ResponseCorrelationId(subscription.RegistrationId).ToString(); + .ResponseCorrelationId(subscription.RegistrationId) + .ToString(); ctx.ControlRequestChannel(requestChannel); } } - private Subscription ReplayViaResponseChannel(long recordingId, string replayChannel, int replayStreamId, - ReplayParams replayParams) + private Subscription ReplayViaResponseChannel( + long recordingId, + string replayChannel, + int replayStreamId, + ReplayParams replayParams + ) { - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); - if (!archiveProxy.RequestReplayToken(lastCorrelationId, controlSessionId, recordingId)) + if (!_archiveProxy.RequestReplayToken(_lastCorrelationId, _controlSessionId, recordingId)) { throw new ArchiveException("failed to send replay token request"); } - long replayToken = PollForResponse(lastCorrelationId); + long replayToken = PollForResponse(_lastCorrelationId); replayParams.ReplayToken(replayToken); - Subscription replaySubscription = aeron.AddSubscription(replayChannel, replayStreamId); - ChannelUriStringBuilder uriBuilder = new ChannelUriStringBuilder(context.ControlRequestChannel()) + Subscription replaySubscription = _aeron.AddSubscription(replayChannel, replayStreamId); + ChannelUriStringBuilder uriBuilder = new ChannelUriStringBuilder(_context.ControlRequestChannel()) .SessionId((int?)null) .ResponseCorrelationId(replaySubscription.RegistrationId) .TermId((int?)null) @@ -3967,36 +4356,49 @@ private Subscription ReplayViaResponseChannel(long recordingId, string replayCha try { - using (ExclusivePublication publication = - aeron.AddExclusivePublication(channel, Ctx().ControlRequestStreamId())) + using ( + ExclusivePublication publication = _aeron.AddExclusivePublication( + channel, + Ctx().ControlRequestStreamId() + ) + ) { ArchiveProxy responseArchiveProxy = new ArchiveProxy(publication); - int pubLmtCounterId = aeron.CountersReader - .FindByTypeIdAndRegistrationId(AeronCounters.DRIVER_PUBLISHER_LIMIT_TYPE_ID, - publication.RegistrationId); + int pubLmtCounterId = _aeron.CountersReader.FindByTypeIdAndRegistrationId( + AeronCounters.DRIVER_PUBLISHER_LIMIT_TYPE_ID, + publication.RegistrationId + ); - long deadlineNs = aeron.Ctx.NanoClock().NanoTime() + context.MessageTimeoutNs(); - while (!publication.IsConnected || 0 == aeron.CountersReader.GetCounterValue(pubLmtCounterId)) + long deadlineNs = _aeron.Ctx.NanoClock().NanoTime() + _context.MessageTimeoutNs(); + while (!publication.IsConnected || 0 == _aeron.CountersReader.GetCounterValue(pubLmtCounterId)) { - if (deadlineNs <= aeron.Ctx.NanoClock().NanoTime()) + if (deadlineNs <= _aeron.Ctx.NanoClock().NanoTime()) { throw new ArchiveException("timed out wait for replay publication to connect"); } - idleStrategy.Idle(); + _idleStrategy.Idle(); } - if (!responseArchiveProxy.Replay(recordingId, replayChannel, replayStreamId, replayParams, - lastCorrelationId, controlSessionId)) + if ( + !responseArchiveProxy.Replay( + recordingId, + replayChannel, + replayStreamId, + replayParams, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send replay request"); } - PollForResponse(lastCorrelationId); + PollForResponse(_lastCorrelationId); while (!replaySubscription.IsConnected) { - idleStrategy.Idle(); + _idleStrategy.Idle(); } return replaySubscription; @@ -4009,60 +4411,90 @@ private Subscription ReplayViaResponseChannel(long recordingId, string replayCha } } - private long StartReplayViaResponseChannel(long recordingId, string replayChannel, int replayStreamId, - ReplayParams replayParams) + private long StartReplayViaResponseChannel( + long recordingId, + string replayChannel, + int replayStreamId, + ReplayParams replayParams + ) { - lastCorrelationId = aeron.NextCorrelationId(); + _lastCorrelationId = _aeron.NextCorrelationId(); if (Aeron.Aeron.NULL_VALUE == replayParams.SubscriptionRegistrationId()) { throw new ArchiveException( - "when using startReplay with a response channel, ReplayParams::subscriptionRegistrationId must be set"); + "when using startReplay with a response channel, " + + "ReplayParams::subscriptionRegistrationId must be set" + ); } - if (!archiveProxy.RequestReplayToken(lastCorrelationId, controlSessionId, recordingId)) + if (!_archiveProxy.RequestReplayToken(_lastCorrelationId, _controlSessionId, recordingId)) { throw new ArchiveException("failed to send replay token request"); } - long replayToken = PollForResponse(lastCorrelationId); + long replayToken = PollForResponse(_lastCorrelationId); replayParams.ReplayToken(replayToken); - ChannelUriStringBuilder uriBuilder = (new ChannelUriStringBuilder(context.ControlRequestChannel())) - .SessionId((int?)null).ResponseCorrelationId(replayParams.SubscriptionRegistrationId()) - .TermId((int?)null).InitialTermId((int?)null).TermOffset((int?)null).TermLength(64 * 1024) + ChannelUriStringBuilder uriBuilder = (new ChannelUriStringBuilder(_context.ControlRequestChannel())) + .SessionId((int?)null) + .ResponseCorrelationId(replayParams.SubscriptionRegistrationId()) + .TermId((int?)null) + .InitialTermId((int?)null) + .TermOffset((int?)null) + .TermLength(64 * 1024) .SpiesSimulateConnection(false); string channel = uriBuilder.Build(); - using (ExclusivePublication publication = - aeron.AddExclusivePublication(channel, Ctx().ControlRequestStreamId())) + using ( + ExclusivePublication publication = _aeron.AddExclusivePublication( + channel, + Ctx().ControlRequestStreamId() + ) + ) { ArchiveProxy responseArchiveProxy = new ArchiveProxy(publication); - long deadlineNs = aeron.Ctx.NanoClock().NanoTime() + context.MessageTimeoutNs(); + long deadlineNs = _aeron.Ctx.NanoClock().NanoTime() + _context.MessageTimeoutNs(); while (!publication.IsConnected) { - CheckDeadline(idleStrategy, aeron.Ctx.NanoClock(), deadlineNs, - "timed out waiting to establish replay connection"); + CheckDeadline( + _idleStrategy, + _aeron.Ctx.NanoClock(), + deadlineNs, + "timed out waiting to establish replay connection" + ); } while (0 == publication.PositionLimit) { - CheckDeadline(idleStrategy, aeron.Ctx.NanoClock(), deadlineNs, - "timed out waiting for replay connection to have available publication limit"); + CheckDeadline( + _idleStrategy, + _aeron.Ctx.NanoClock(), + deadlineNs, + "timed out waiting for replay connection to have available publication limit" + ); } - if (!responseArchiveProxy.Replay(recordingId, replayChannel, replayStreamId, replayParams, - lastCorrelationId, controlSessionId)) + if ( + !responseArchiveProxy.Replay( + recordingId, + replayChannel, + replayStreamId, + replayParams, + _lastCorrelationId, + _controlSessionId + ) + ) { throw new ArchiveException("failed to send replay request"); } - PollForResponse(lastCorrelationId); + PollForResponse(_lastCorrelationId); - return lastCorrelationId; + return _lastCorrelationId; } } @@ -4099,4 +4531,4 @@ public static IDisposable Of(Action func) return new DisposableHolder(func); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/ArchiveException.cs b/src/Adaptive.Archiver/ArchiveException.cs index 6a5a033c..86ce730a 100644 --- a/src/Adaptive.Archiver/ArchiveException.cs +++ b/src/Adaptive.Archiver/ArchiveException.cs @@ -1,4 +1,19 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron.Exceptions; namespace Adaptive.Archiver @@ -69,12 +84,12 @@ public class ArchiveException : AeronException /// The replication identity for this operation is not known to the archive. /// public const int UNKNOWN_REPLICATION = 12; - + /// - /// The principle was not authorised to take the requested action. + /// The principle was not authorised to take the requested action. /// public const int UNAUTHORISED_ACTION = 13; - + /// /// The replication session failed to connect to the source archive /// @@ -84,15 +99,16 @@ public class ArchiveException : AeronException /// The recording specified for replay is empty. /// public const short EMPTY_RECORDING = 15; - + /// /// Error code providing more detail into what went wrong. /// /// code providing more detail into what went wrong. public int ErrorCode { get; } - + /// - /// Optional correlation-id associated with a control protocol request. Will be if + /// Optional correlation-id associated with a control protocol request. Will be + /// if /// not set. /// /// correlation-id associated with a control protocol request. @@ -113,59 +129,64 @@ public ArchiveException() /// = , plus detail. /// /// providing detail. - public ArchiveException(string message) : base(message) + public ArchiveException(string message) + : base(message) { ErrorCode = GENERIC; CorrelationId = Aeron.Aeron.NULL_VALUE; } /// - /// ArchiveException exception as , plus detail and - /// error code. + /// ArchiveException exception as , plus detail and error + /// code. /// /// providing detail. /// for type. - public ArchiveException(string message, int errorCode) : base(message) + public ArchiveException(string message, int errorCode) + : base(message) { ErrorCode = errorCode; CorrelationId = Aeron.Aeron.NULL_VALUE; } /// - /// ArchiveException exception as , plus detail, error code, + /// ArchiveException exception as , plus detail, error code, /// and correlation if of the control request. /// /// providing detail. /// for type. /// of the control request. - public ArchiveException(string message, int errorCode, long correlationId) : base(message) + public ArchiveException(string message, int errorCode, long correlationId) + : base(message) { ErrorCode = errorCode; CorrelationId = correlationId; } /// - /// ArchiveException exception = , plus detail, correlation id of control - /// request, and . + /// ArchiveException exception = , plus detail, + /// correlation id of control request, and . /// /// providing detail. /// of the control request. /// for type. - public ArchiveException(string message, long correlationId, Category category) : base(message, category) + public ArchiveException(string message, long correlationId, Category category) + : base(message, category) { ErrorCode = GENERIC; CorrelationId = correlationId; } /// - /// ArchiveException exception, plus detail, error code, correlation id of control request, - /// and . + /// ArchiveException exception, plus detail, error code, correlation id of control request, and + /// . /// /// providing detail. /// for type. /// of the control request. /// for type. - public ArchiveException(string message, int errorCode, long correlationId, Category category) : base(message, category) + public ArchiveException(string message, int errorCode, long correlationId, Category category) + : base(message, category) { ErrorCode = errorCode; CorrelationId = correlationId; @@ -180,23 +201,39 @@ public static string ErrorCodeAsString(int errorCode) { switch (errorCode) { - case GENERIC: return "GENERIC"; - case ACTIVE_LISTING: return "ACTIVE_LISTING"; - case ACTIVE_RECORDING: return "ACTIVE_RECORDING"; - case ACTIVE_SUBSCRIPTION: return "ACTIVE_SUBSCRIPTION"; - case UNKNOWN_SUBSCRIPTION: return "UNKNOWN_SUBSCRIPTION"; - case UNKNOWN_RECORDING: return "UNKNOWN_RECORDING"; - case UNKNOWN_REPLAY: return "UNKNOWN_REPLAY"; - case MAX_REPLAYS: return "MAX_REPLAYS"; - case MAX_RECORDINGS: return "MAX_RECORDINGS"; - case INVALID_EXTENSION: return "INVALID_EXTENSION"; - case AUTHENTICATION_REJECTED: return "AUTHENTICATION_REJECTED"; - case STORAGE_SPACE: return "STORAGE_SPACE"; - case UNKNOWN_REPLICATION: return "UNKNOWN_REPLICATION"; - case UNAUTHORISED_ACTION: return "UNAUTHORISED_ACTION"; - case REPLICATION_CONNECTION_FAILURE: return "REPLICATION_CONNECTION_FAILURE"; - default: return "unknown error code: " + errorCode; + case GENERIC: + return "GENERIC"; + case ACTIVE_LISTING: + return "ACTIVE_LISTING"; + case ACTIVE_RECORDING: + return "ACTIVE_RECORDING"; + case ACTIVE_SUBSCRIPTION: + return "ACTIVE_SUBSCRIPTION"; + case UNKNOWN_SUBSCRIPTION: + return "UNKNOWN_SUBSCRIPTION"; + case UNKNOWN_RECORDING: + return "UNKNOWN_RECORDING"; + case UNKNOWN_REPLAY: + return "UNKNOWN_REPLAY"; + case MAX_REPLAYS: + return "MAX_REPLAYS"; + case MAX_RECORDINGS: + return "MAX_RECORDINGS"; + case INVALID_EXTENSION: + return "INVALID_EXTENSION"; + case AUTHENTICATION_REJECTED: + return "AUTHENTICATION_REJECTED"; + case STORAGE_SPACE: + return "STORAGE_SPACE"; + case UNKNOWN_REPLICATION: + return "UNKNOWN_REPLICATION"; + case UNAUTHORISED_ACTION: + return "UNAUTHORISED_ACTION"; + case REPLICATION_CONNECTION_FAILURE: + return "REPLICATION_CONNECTION_FAILURE"; + default: + return "unknown error code: " + errorCode; } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/ArchiveProxy.cs b/src/Adaptive.Archiver/ArchiveProxy.cs index caabe7ff..f2c40d1a 100644 --- a/src/Adaptive.Archiver/ArchiveProxy.cs +++ b/src/Adaptive.Archiver/ArchiveProxy.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using Adaptive.Aeron; using Adaptive.Aeron.Security; using Adaptive.Agrona; @@ -14,125 +30,135 @@ public class ArchiveProxy /// public const int DEFAULT_RETRY_ATTEMPTS = 3; - private readonly long connectTimeoutNs; - private readonly int retryAttempts; - private readonly IIdleStrategy retryIdleStrategy; - private readonly INanoClock nanoClock; - private readonly ICredentialsSupplier credentialsSupplier; - private readonly string clientInfo; - - private readonly ExpandableArrayBuffer buffer = new ExpandableArrayBuffer(256); - private readonly ExclusivePublication publication; - private readonly MessageHeaderEncoder messageHeader = new MessageHeaderEncoder(); - - private readonly AuthConnectRequestEncoder connectRequestEncoder = new AuthConnectRequestEncoder(); - private readonly KeepAliveRequestEncoder keepAliveRequestEncoder = new KeepAliveRequestEncoder(); - private readonly CloseSessionRequestEncoder closeSessionRequestEncoder = new CloseSessionRequestEncoder(); - private readonly ChallengeResponseEncoder challengeResponseEncoder = new ChallengeResponseEncoder(); - private readonly StartRecordingRequestEncoder startRecordingRequest = new StartRecordingRequestEncoder(); - private readonly StartRecordingRequest2Encoder startRecordingRequest2 = new StartRecordingRequest2Encoder(); - private readonly StopRecordingRequestEncoder stopRecordingRequest = new StopRecordingRequestEncoder(); - - private readonly StopRecordingSubscriptionRequestEncoder stopRecordingSubscriptionRequest = + private readonly long _connectTimeoutNs; + private readonly int _retryAttempts; + private readonly IIdleStrategy _retryIdleStrategy; + private readonly INanoClock _nanoClock; + private readonly ICredentialsSupplier _credentialsSupplier; + private readonly string _clientInfo; + + private readonly ExpandableArrayBuffer _buffer = new ExpandableArrayBuffer(256); + private readonly ExclusivePublication _publication; + private readonly MessageHeaderEncoder _messageHeader = new MessageHeaderEncoder(); + + private readonly AuthConnectRequestEncoder _connectRequestEncoder = new AuthConnectRequestEncoder(); + private readonly KeepAliveRequestEncoder _keepAliveRequestEncoder = new KeepAliveRequestEncoder(); + private readonly CloseSessionRequestEncoder _closeSessionRequestEncoder = new CloseSessionRequestEncoder(); + private readonly ChallengeResponseEncoder _challengeResponseEncoder = new ChallengeResponseEncoder(); + private readonly StartRecordingRequestEncoder _startRecordingRequest = new StartRecordingRequestEncoder(); + private readonly StartRecordingRequest2Encoder _startRecordingRequest2 = new StartRecordingRequest2Encoder(); + private readonly StopRecordingRequestEncoder _stopRecordingRequest = new StopRecordingRequestEncoder(); + + private readonly StopRecordingSubscriptionRequestEncoder _stopRecordingSubscriptionRequest = new StopRecordingSubscriptionRequestEncoder(); - private readonly StopRecordingByIdentityRequestEncoder stopRecordingByIdentityRequest = + private readonly StopRecordingByIdentityRequestEncoder _stopRecordingByIdentityRequest = new StopRecordingByIdentityRequestEncoder(); - private readonly ReplayRequestEncoder replayRequest = new ReplayRequestEncoder(); - private readonly StopReplayRequestEncoder stopReplayRequest = new StopReplayRequestEncoder(); - private readonly ListRecordingsRequestEncoder listRecordingsRequest = new ListRecordingsRequestEncoder(); + private readonly ReplayRequestEncoder _replayRequest = new ReplayRequestEncoder(); + private readonly StopReplayRequestEncoder _stopReplayRequest = new StopReplayRequestEncoder(); + private readonly ListRecordingsRequestEncoder _listRecordingsRequest = new ListRecordingsRequestEncoder(); - private readonly ListRecordingsForUriRequestEncoder listRecordingsForUriRequest = + private readonly ListRecordingsForUriRequestEncoder _listRecordingsForUriRequest = new ListRecordingsForUriRequestEncoder(); - private readonly ListRecordingRequestEncoder listRecordingRequest = new ListRecordingRequestEncoder(); - private readonly ExtendRecordingRequestEncoder extendRecordingRequest = new ExtendRecordingRequestEncoder(); - private readonly ExtendRecordingRequest2Encoder extendRecordingRequest2 = new ExtendRecordingRequest2Encoder(); + private readonly ListRecordingRequestEncoder _listRecordingRequest = new ListRecordingRequestEncoder(); + private readonly ExtendRecordingRequestEncoder _extendRecordingRequest = new ExtendRecordingRequestEncoder(); + private readonly ExtendRecordingRequest2Encoder _extendRecordingRequest2 = new ExtendRecordingRequest2Encoder(); - private readonly RecordingPositionRequestEncoder recordingPositionRequest = + private readonly RecordingPositionRequestEncoder _recordingPositionRequest = new RecordingPositionRequestEncoder(); - private readonly TruncateRecordingRequestEncoder truncateRecordingRequest = + private readonly TruncateRecordingRequestEncoder _truncateRecordingRequest = new TruncateRecordingRequestEncoder(); - private readonly PurgeRecordingRequestEncoder purgeRecordingRequest = new PurgeRecordingRequestEncoder(); - private readonly StopPositionRequestEncoder stopPositionRequest = new StopPositionRequestEncoder(); + private readonly PurgeRecordingRequestEncoder _purgeRecordingRequest = new PurgeRecordingRequestEncoder(); + private readonly StopPositionRequestEncoder _stopPositionRequest = new StopPositionRequestEncoder(); - private readonly MaxRecordedPositionRequestEncoder maxRecordedPositionRequestEncoder = + private readonly MaxRecordedPositionRequestEncoder _maxRecordedPositionRequestEncoder = new MaxRecordedPositionRequestEncoder(); - private readonly FindLastMatchingRecordingRequestEncoder findLastMatchingRecordingRequest = + private readonly FindLastMatchingRecordingRequestEncoder _findLastMatchingRecordingRequest = new FindLastMatchingRecordingRequestEncoder(); - private readonly ListRecordingSubscriptionsRequestEncoder listRecordingSubscriptionsRequest = + private readonly ListRecordingSubscriptionsRequestEncoder _listRecordingSubscriptionsRequest = new ListRecordingSubscriptionsRequestEncoder(); - private readonly BoundedReplayRequestEncoder boundedReplayRequest = new BoundedReplayRequestEncoder(); - private readonly StopAllReplaysRequestEncoder stopAllReplaysRequest = new StopAllReplaysRequestEncoder(); - private readonly ReplicateRequest2Encoder replicateRequest = new ReplicateRequest2Encoder(); - private readonly StopReplicationRequestEncoder stopReplicationRequest = new StopReplicationRequestEncoder(); - private readonly StartPositionRequestEncoder startPositionRequest = new StartPositionRequestEncoder(); - private readonly DetachSegmentsRequestEncoder detachSegmentsRequest = new DetachSegmentsRequestEncoder(); + private readonly BoundedReplayRequestEncoder _boundedReplayRequest = new BoundedReplayRequestEncoder(); + private readonly StopAllReplaysRequestEncoder _stopAllReplaysRequest = new StopAllReplaysRequestEncoder(); + private readonly ReplicateRequest2Encoder _replicateRequest = new ReplicateRequest2Encoder(); + private readonly StopReplicationRequestEncoder _stopReplicationRequest = new StopReplicationRequestEncoder(); + private readonly StartPositionRequestEncoder _startPositionRequest = new StartPositionRequestEncoder(); + private readonly DetachSegmentsRequestEncoder _detachSegmentsRequest = new DetachSegmentsRequestEncoder(); - private readonly DeleteDetachedSegmentsRequestEncoder deleteDetachedSegmentsRequest = + private readonly DeleteDetachedSegmentsRequestEncoder _deleteDetachedSegmentsRequest = new DeleteDetachedSegmentsRequestEncoder(); - private readonly PurgeSegmentsRequestEncoder purgeSegmentsRequest = new PurgeSegmentsRequestEncoder(); - private readonly AttachSegmentsRequestEncoder attachSegmentsRequest = new AttachSegmentsRequestEncoder(); - private readonly MigrateSegmentsRequestEncoder migrateSegmentsRequest = new MigrateSegmentsRequestEncoder(); - private readonly ArchiveIdRequestEncoder archiveIdRequestEncoder = new ArchiveIdRequestEncoder(); - private readonly ReplayTokenRequestEncoder replayTokenRequestEncoder = new ReplayTokenRequestEncoder(); - private readonly UpdateChannelRequestEncoder updateChannelRequestEncoder = new UpdateChannelRequestEncoder(); + private readonly PurgeSegmentsRequestEncoder _purgeSegmentsRequest = new PurgeSegmentsRequestEncoder(); + private readonly AttachSegmentsRequestEncoder _attachSegmentsRequest = new AttachSegmentsRequestEncoder(); + private readonly MigrateSegmentsRequestEncoder _migrateSegmentsRequest = new MigrateSegmentsRequestEncoder(); + private readonly ArchiveIdRequestEncoder _archiveIdRequestEncoder = new ArchiveIdRequestEncoder(); + private readonly ReplayTokenRequestEncoder _replayTokenRequestEncoder = new ReplayTokenRequestEncoder(); + private readonly UpdateChannelRequestEncoder _updateChannelRequestEncoder = new UpdateChannelRequestEncoder(); /// /// Create a proxy with a for sending control message requests. /// - /// This provides a default of a when offers are back pressured - /// with a defaults of and + /// This provides a default of a when + /// offers are back pressured with a defaults of + /// and /// . - /// + /// /// /// /// publication for sending control messages to an archive. - public ArchiveProxy(ExclusivePublication publication) : this( - publication, - YieldingIdleStrategy.INSTANCE, - SystemNanoClock.INSTANCE, - AeronArchive.Configuration.MESSAGE_TIMEOUT_DEFAULT_NS, - DEFAULT_RETRY_ATTEMPTS, - new NullCredentialsSupplier(), - null) + public ArchiveProxy(ExclusivePublication publication) + : this( + publication, + YieldingIdleStrategy.INSTANCE, + SystemNanoClock.INSTANCE, + AeronArchive.Configuration.MESSAGE_TIMEOUT_DEFAULT_NS, + DEFAULT_RETRY_ATTEMPTS, + new NullCredentialsSupplier(), + null + ) { } - /// /// Create a proxy with a for sending control message requests. /// /// publication for sending control messages to an archive. - /// for what should happen between retry attempts at offering messages. + /// for what should happen between retry attempts at offering messages. + /// /// to be used for calculating checking deadlines. /// for connection requests. /// for offering control messages before giving up. /// for the AuthConnectRequest - public ArchiveProxy(ExclusivePublication publication, IIdleStrategy retryIdleStrategy, INanoClock nanoClock, - long connectTimeoutNs, int retryAttempts, ICredentialsSupplier credentialsSupplier) + public ArchiveProxy( + ExclusivePublication publication, + IIdleStrategy retryIdleStrategy, + INanoClock nanoClock, + long connectTimeoutNs, + int retryAttempts, + ICredentialsSupplier credentialsSupplier + ) { - this.publication = publication; - this.retryIdleStrategy = retryIdleStrategy; - this.nanoClock = nanoClock; - this.connectTimeoutNs = connectTimeoutNs; - this.retryAttempts = retryAttempts; - this.credentialsSupplier = credentialsSupplier; + this._publication = publication; + this._retryIdleStrategy = retryIdleStrategy; + this._nanoClock = nanoClock; + this._connectTimeoutNs = connectTimeoutNs; + this._retryAttempts = retryAttempts; + this._credentialsSupplier = credentialsSupplier; } /// - /// Create a proxy with a for sending control message requests with specified - /// client info. + /// Create a proxy with a for sending control message requests with + /// specified client info. /// /// publication for sending control messages to an archive. - /// for what should happen between retry attempts at offering messages. + /// for what should happen between retry attempts at offering messages. + /// /// to be used for calculating checking deadlines. /// for connection requests. /// for offering control messages before giving up. @@ -146,25 +172,25 @@ public ArchiveProxy( long connectTimeoutNs, int retryAttempts, ICredentialsSupplier credentialsSupplier, - string clientInfo) + string clientInfo + ) { - this.publication = publication; - this.retryIdleStrategy = retryIdleStrategy; - this.nanoClock = nanoClock; - this.connectTimeoutNs = connectTimeoutNs; - this.retryAttempts = retryAttempts; - this.credentialsSupplier = credentialsSupplier; - this.clientInfo = clientInfo; + this._publication = publication; + this._retryIdleStrategy = retryIdleStrategy; + this._nanoClock = nanoClock; + this._connectTimeoutNs = connectTimeoutNs; + this._retryAttempts = retryAttempts; + this._credentialsSupplier = credentialsSupplier; + this._clientInfo = clientInfo; } - /// /// Get the used for sending control messages. /// /// the used for sending control messages. public Publication Pub() { - return publication; + return _publication; } /// @@ -176,22 +202,23 @@ public Publication Pub() /// true if successfully offered otherwise false. public bool Connect(string responseChannel, int responseStreamId, long correlationId) { - byte[] encodedCredentials = credentialsSupplier.EncodedCredentials(); + byte[] encodedCredentials = _credentialsSupplier.EncodedCredentials(); - connectRequestEncoder - .WrapAndApplyHeader(buffer, 0, messageHeader) + _connectRequestEncoder + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .CorrelationId(correlationId) - .ResponseStreamId(responseStreamId).Version(AeronArchive.Configuration.PROTOCOL_SEMANTIC_VERSION) + .ResponseStreamId(responseStreamId) + .Version(AeronArchive.Configuration.PROTOCOL_SEMANTIC_VERSION) .ResponseChannel(responseChannel) .PutEncodedCredentials(encodedCredentials, 0, encodedCredentials.Length) - .ClientInfo(clientInfo); + .ClientInfo(_clientInfo); - return OfferWithTimeout(connectRequestEncoder.EncodedLength(), null); + return OfferWithTimeout(_connectRequestEncoder.EncodedLength(), null); } /// - /// Try and connect to an archive on its control interface providing the response stream details. Only one attempt will - /// be made to offer the request. + /// Try and connect to an archive on its control interface providing the response stream details. Only one + /// attempt will be made to offer the request. /// /// for the control message responses. /// for the control message responses. @@ -199,20 +226,20 @@ public bool Connect(string responseChannel, int responseStreamId, long correlati /// true if successfully offered otherwise false. public bool TryConnect(string responseChannel, int responseStreamId, long correlationId) { - byte[] encodedCredentials = credentialsSupplier.EncodedCredentials(); + byte[] encodedCredentials = _credentialsSupplier.EncodedCredentials(); - connectRequestEncoder - .WrapAndApplyHeader(buffer, 0, messageHeader) + _connectRequestEncoder + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .CorrelationId(correlationId) .ResponseStreamId(responseStreamId) .Version(AeronArchive.Configuration.PROTOCOL_SEMANTIC_VERSION) .ResponseChannel(responseChannel) .PutEncodedCredentials(encodedCredentials, 0, encodedCredentials.Length) - .ClientInfo(clientInfo); + .ClientInfo(_clientInfo); - int length = MessageHeaderEncoder.ENCODED_LENGTH + connectRequestEncoder.EncodedLength(); + int length = MessageHeaderEncoder.ENCODED_LENGTH + _connectRequestEncoder.EncodedLength(); - return publication.Offer(buffer, 0, length) > 0; + return _publication.Offer(_buffer, 0, length) > 0; } /// @@ -223,12 +250,12 @@ public bool TryConnect(string responseChannel, int responseStreamId, long correl /// true if successfully offered otherwise false. public bool KeepAlive(long controlSessionId, long correlationId) { - keepAliveRequestEncoder - .WrapAndApplyHeader(buffer, 0, messageHeader) + _keepAliveRequestEncoder + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId); - return Offer(keepAliveRequestEncoder.EncodedLength()); + return Offer(_keepAliveRequestEncoder.EncodedLength()); } /// @@ -238,11 +265,11 @@ public bool KeepAlive(long controlSessionId, long correlationId) /// true if successfully offered otherwise false. public bool CloseSession(long controlSessionId) { - closeSessionRequestEncoder - .WrapAndApplyHeader(buffer, 0, messageHeader) + _closeSessionRequestEncoder + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId); - return Offer(closeSessionRequestEncoder.EncodedLength()); + return Offer(_closeSessionRequestEncoder.EncodedLength()); } /// @@ -255,15 +282,15 @@ public bool CloseSession(long controlSessionId) /// true if successfully offered otherwise false. public bool TryChallengeResponse(byte[] encodedCredentials, long correlationId, long controlSessionId) { - challengeResponseEncoder - .WrapAndApplyHeader(buffer, 0, messageHeader) + _challengeResponseEncoder + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .PutEncodedCredentials(encodedCredentials, 0, encodedCredentials.Length); - int length = MessageHeaderEncoder.ENCODED_LENGTH + challengeResponseEncoder.EncodedLength(); + int length = MessageHeaderEncoder.ENCODED_LENGTH + _challengeResponseEncoder.EncodedLength(); - return publication.Offer(buffer, 0, length) > 0; + return _publication.Offer(_buffer, 0, length) > 0; } /// @@ -275,18 +302,23 @@ public bool TryChallengeResponse(byte[] encodedCredentials, long correlationId, /// for this request. /// for this request. /// true if successfully offered otherwise false. - public bool StartRecording(string channel, int streamId, SourceLocation sourceLocation, long correlationId, - long controlSessionId) + public bool StartRecording( + string channel, + int streamId, + SourceLocation sourceLocation, + long correlationId, + long controlSessionId + ) { - startRecordingRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _startRecordingRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .StreamId(streamId) .SourceLocation(sourceLocation) .Channel(channel); - return Offer(startRecordingRequest.EncodedLength()); + return Offer(_startRecordingRequest.EncodedLength()); } /// @@ -299,11 +331,17 @@ public bool StartRecording(string channel, int streamId, SourceLocation sourceLo /// for this request. /// for this request. /// true if successfully offered otherwise false. - public bool StartRecording(string channel, int streamId, SourceLocation sourceLocation, bool autoStop, - long correlationId, long controlSessionId) + public bool StartRecording( + string channel, + int streamId, + SourceLocation sourceLocation, + bool autoStop, + long correlationId, + long controlSessionId + ) { - startRecordingRequest2 - .WrapAndApplyHeader(buffer, 0, messageHeader) + _startRecordingRequest2 + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .StreamId(streamId) @@ -311,7 +349,7 @@ public bool StartRecording(string channel, int streamId, SourceLocation sourceLo .AutoStop(autoStop ? BooleanType.TRUE : BooleanType.FALSE) .Channel(channel); - return Offer(startRecordingRequest2.EncodedLength()); + return Offer(_startRecordingRequest2.EncodedLength()); } /// @@ -324,36 +362,37 @@ public bool StartRecording(string channel, int streamId, SourceLocation sourceLo /// true if successfully offered otherwise false. public bool StopRecording(string channel, int streamId, long correlationId, long controlSessionId) { - stopRecordingRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _stopRecordingRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .StreamId(streamId) .Channel(channel); - return Offer(stopRecordingRequest.EncodedLength()); + return Offer(_stopRecordingRequest.EncodedLength()); } /// /// Stop a recording by the it was registered with. /// - /// that identifies the subscription in the archive doing the recording. + /// that identifies the subscription in the archive doing the recording. /// for this request. /// for this request. /// true if successfully offered otherwise false. public bool StopRecording(long subscriptionId, long correlationId, long controlSessionId) { - stopRecordingSubscriptionRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _stopRecordingSubscriptionRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .SubscriptionId(subscriptionId); - return Offer(stopRecordingSubscriptionRequest.EncodedLength()); + return Offer(_stopRecordingSubscriptionRequest.EncodedLength()); } /// - /// Stop an active recording by the recording id. This is not the . + /// Stop an active recording by the recording id. This is not the + /// . /// /// that identifies a recording in the archive. /// for this request. @@ -361,19 +400,19 @@ public bool StopRecording(long subscriptionId, long correlationId, long controlS /// true if successfully offered otherwise false. public bool StopRecordingByIdentity(long recordingId, long correlationId, long controlSessionId) { - stopRecordingByIdentityRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _stopRecordingByIdentityRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId); - return Offer(stopRecordingByIdentityRequest.EncodedLength()); + return Offer(_stopRecordingByIdentityRequest.EncodedLength()); } /// - /// Replay a recording from a given position. Supports specifying to change the behaviour of the - /// replay. For example a bounded replay can be requested by specifying the boundingLimitCounterId. The ReplayParams - /// is free to be reused after this call completes. + /// Replay a recording from a given position. Supports specifying to change the + /// behaviour of the replay. For example a bounded replay can be requested by specifying the + /// boundingLimitCounterId. The ReplayParams is free to be reused after this call completes. /// /// to be replayed. /// to which the replay should be sent. @@ -389,7 +428,8 @@ public bool Replay( int replayStreamId, ReplayParams replayParams, long correlationId, - long controlSessionId) + long controlSessionId + ) { if (replayParams.IsBounded()) { @@ -403,7 +443,8 @@ public bool Replay( correlationId, controlSessionId, replayParams.FileIoMaxLength(), - replayParams.ReplayToken()); + replayParams.ReplayToken() + ); } else { @@ -416,7 +457,8 @@ public bool Replay( correlationId, controlSessionId, replayParams.FileIoMaxLength(), - replayParams.ReplayToken()); + replayParams.ReplayToken() + ); } } @@ -425,7 +467,8 @@ public bool Replay( /// /// to be replayed. /// from which the replay should be started. - /// of the stream to be replayed. Use to follow a live stream. + /// of the stream to be replayed. Use to follow a live + /// stream. /// to which the replay should be sent. /// to which the replay should be sent. /// for this request. @@ -438,7 +481,8 @@ public bool Replay( string replayChannel, int replayStreamId, long correlationId, - long controlSessionId) + long controlSessionId + ) { return Replay( recordingId, @@ -449,7 +493,8 @@ public bool Replay( correlationId, controlSessionId, Aeron.Aeron.NULL_VALUE, - Aeron.Aeron.NULL_VALUE); + Aeron.Aeron.NULL_VALUE + ); } /// @@ -457,7 +502,8 @@ public bool Replay( /// /// to be replayed. /// from which the replay should be started. - /// of the stream to be replayed. Use to follow a live stream. + /// of the stream to be replayed. Use to follow a live + /// stream. /// to use as the replay bound. /// to which the replay should be sent. /// to which the replay should be sent. @@ -472,7 +518,8 @@ public bool BoundedReplay( string replayChannel, int replayStreamId, long correlationId, - long controlSessionId) + long controlSessionId + ) { return BoundedReplay( recordingId, @@ -484,7 +531,8 @@ public bool BoundedReplay( correlationId, controlSessionId, Aeron.Aeron.NULL_VALUE, - Aeron.Aeron.NULL_VALUE); + Aeron.Aeron.NULL_VALUE + ); } /// @@ -496,12 +544,13 @@ public bool BoundedReplay( /// true if successfully offered otherwise false. public bool StopReplay(long replaySessionId, long correlationId, long controlSessionId) { - stopReplayRequest.WrapAndApplyHeader(buffer, 0, messageHeader) + _stopReplayRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .ReplaySessionId(replaySessionId); - return Offer(stopReplayRequest.EncodedLength()); + return Offer(_stopReplayRequest.EncodedLength()); } /// @@ -513,13 +562,13 @@ public bool StopReplay(long replaySessionId, long correlationId, long controlSes /// true if successfully offered otherwise false. public bool StopAllReplays(long recordingId, long correlationId, long controlSessionId) { - stopAllReplaysRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _stopAllReplaysRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId); - return Offer(stopAllReplaysRequest.EncodedLength()); + return Offer(_stopAllReplaysRequest.EncodedLength()); } /// @@ -532,14 +581,14 @@ public bool StopAllReplays(long recordingId, long correlationId, long controlSes /// true if successfully offered otherwise false. public bool ListRecordings(long fromRecordingId, int recordCount, long correlationId, long controlSessionId) { - listRecordingsRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _listRecordingsRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .FromRecordingId(fromRecordingId) .RecordCount(recordCount); - return Offer(listRecordingsRequest.EncodedLength()); + return Offer(_listRecordingsRequest.EncodedLength()); } /// @@ -547,16 +596,23 @@ public bool ListRecordings(long fromRecordingId, int recordCount, long correlati /// /// at which to begin listing. /// for the number of descriptors to be listed. - /// to match recordings on from the original channel URI in the archive descriptor. + /// to match recordings on from the original channel URI in the archive + /// descriptor. /// to match recordings on. /// for this request. /// for this request. /// true if successfully offered otherwise false. - public bool ListRecordingsForUri(long fromRecordingId, int recordCount, string channelFragment, int streamId, - long correlationId, long controlSessionId) + public bool ListRecordingsForUri( + long fromRecordingId, + int recordCount, + string channelFragment, + int streamId, + long correlationId, + long controlSessionId + ) { - listRecordingsForUriRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _listRecordingsForUriRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .FromRecordingId(fromRecordingId) @@ -564,7 +620,7 @@ public bool ListRecordingsForUri(long fromRecordingId, int recordCount, string c .StreamId(streamId) .Channel(channelFragment); - return Offer(listRecordingsForUriRequest.EncodedLength()); + return Offer(_listRecordingsForUriRequest.EncodedLength()); } /// @@ -576,22 +632,22 @@ public bool ListRecordingsForUri(long fromRecordingId, int recordCount, string c /// true if successfully offered otherwise false. public bool ListRecording(long recordingId, long correlationId, long controlSessionId) { - listRecordingRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _listRecordingRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId); - return Offer(listRecordingRequest.EncodedLength()); + return Offer(_listRecordingRequest.EncodedLength()); } /// /// Extend an existing, non-active, recorded stream for the same channel and stream id. /// /// The channel must be configured for the initial position from which it will be extended. This can be done - /// with . The details required to initialise can - /// be found by calling . - /// + /// with . The details required to + /// initialise can be found by calling . + /// /// /// /// to be recorded. @@ -601,11 +657,17 @@ public bool ListRecording(long recordingId, long correlationId, long controlSess /// for this request. /// for this request. /// true if successfully offered otherwise false. - public bool ExtendRecording(string channel, int streamId, SourceLocation sourceLocation, long recordingId, - long correlationId, long controlSessionId) + public bool ExtendRecording( + string channel, + int streamId, + SourceLocation sourceLocation, + long recordingId, + long correlationId, + long controlSessionId + ) { - extendRecordingRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _extendRecordingRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId) @@ -613,16 +675,16 @@ public bool ExtendRecording(string channel, int streamId, SourceLocation sourceL .SourceLocation(sourceLocation) .Channel(channel); - return Offer(extendRecordingRequest.EncodedLength()); + return Offer(_extendRecordingRequest.EncodedLength()); } /// /// Extend an existing, non-active, recorded stream for a the same channel and stream id. /// /// The channel must be configured for the initial position from which it will be extended. This can be done - /// with . The details required to initialise can - /// be found by calling . - /// + /// with . The details required to + /// initialise can be found by calling . + /// /// /// /// to be recorded. @@ -633,11 +695,18 @@ public bool ExtendRecording(string channel, int streamId, SourceLocation sourceL /// for this request. /// for this request. /// true if successfully offered otherwise false. - public bool ExtendRecording(string channel, int streamId, SourceLocation sourceLocation, bool autoStop, - long recordingId, long correlationId, long controlSessionId) + public bool ExtendRecording( + string channel, + int streamId, + SourceLocation sourceLocation, + bool autoStop, + long recordingId, + long correlationId, + long controlSessionId + ) { - extendRecordingRequest2 - .WrapAndApplyHeader(buffer, 0, messageHeader) + _extendRecordingRequest2 + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId) @@ -646,7 +715,7 @@ public bool ExtendRecording(string channel, int streamId, SourceLocation sourceL .AutoStop(autoStop ? BooleanType.TRUE : BooleanType.FALSE) .Channel(channel); - return Offer(extendRecordingRequest2.EncodedLength()); + return Offer(_extendRecordingRequest2.EncodedLength()); } /// @@ -658,18 +727,19 @@ public bool ExtendRecording(string channel, int streamId, SourceLocation sourceL /// true if successfully offered otherwise false. public bool GetRecordingPosition(long recordingId, long correlationId, long controlSessionId) { - recordingPositionRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _recordingPositionRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId); - return Offer(recordingPositionRequest.EncodedLength()); + return Offer(_recordingPositionRequest.EncodedLength()); } /// - /// Truncate a stopped recording to a given position that is less than the stopped position. The provided position - /// must be on a fragment boundary. Truncating a recording to the start position effectively deletes the recording. + /// Truncate a stopped recording to a given position that is less than the stopped position. The provided + /// position must be on a fragment boundary. Truncating a recording to the start position effectively deletes + /// the recording. /// /// /// of the stopped recording to be truncated. @@ -679,19 +749,19 @@ public bool GetRecordingPosition(long recordingId, long correlationId, long cont /// true if successfully offered otherwise false. public bool TruncateRecording(long recordingId, long position, long correlationId, long controlSessionId) { - truncateRecordingRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _truncateRecordingRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId) .Position(position); - return Offer(truncateRecordingRequest.EncodedLength()); + return Offer(_truncateRecordingRequest.EncodedLength()); } /// - /// Purge a stopped recording, i.e. mark recording as - /// and delete the corresponding segment files. The space in the Catalog will be reclaimed upon compaction. + /// Purge a stopped recording, i.e. mark recording as and delete the + /// corresponding segment files. The space in the Catalog will be reclaimed upon compaction. /// /// of the stopped recording to be purged. /// for this request. @@ -699,13 +769,13 @@ public bool TruncateRecording(long recordingId, long position, long correlationI /// true if successfully offered otherwise false. public bool PurgeRecording(long recordingId, long correlationId, long controlSessionId) { - purgeRecordingRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _purgeRecordingRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId); - return Offer(purgeRecordingRequest.EncodedLength()); + return Offer(_purgeRecordingRequest.EncodedLength()); } /// @@ -717,13 +787,13 @@ public bool PurgeRecording(long recordingId, long correlationId, long controlSes /// true if successfully offered otherwise false. public bool GetStartPosition(long recordingId, long correlationId, long controlSessionId) { - startPositionRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _startPositionRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId); - return Offer(startPositionRequest.EncodedLength()); + return Offer(_startPositionRequest.EncodedLength()); } /// @@ -735,31 +805,32 @@ public bool GetStartPosition(long recordingId, long correlationId, long controlS /// true if successfully offered otherwise false. public bool GetStopPosition(long recordingId, long correlationId, long controlSessionId) { - stopPositionRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _stopPositionRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId); - return Offer(stopPositionRequest.EncodedLength()); + return Offer(_stopPositionRequest.EncodedLength()); } /// /// Get the stop or active recorded position of a recording. /// - /// of the recording that the stop of active recording position is being requested for. + /// of the recording that the stop of active recording position is being requested + /// for. /// for this request. /// for this request. /// true if successfully offered otherwise false. public bool GetMaxRecordedPosition(long recordingId, long correlationId, long controlSessionId) { - maxRecordedPositionRequestEncoder - .WrapAndApplyHeader(buffer, 0, messageHeader) + _maxRecordedPositionRequestEncoder + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId); - return Offer(maxRecordedPositionRequestEncoder.EncodedLength()); + return Offer(_maxRecordedPositionRequestEncoder.EncodedLength()); } /// @@ -770,29 +841,36 @@ public bool GetMaxRecordedPosition(long recordingId, long correlationId, long co /// true if successfully offered otherwise false. public bool ArchiveId(long correlationId, long controlSessionId) { - archiveIdRequestEncoder - .WrapAndApplyHeader(buffer, 0, messageHeader) + _archiveIdRequestEncoder + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId); - return Offer(archiveIdRequestEncoder.EncodedLength()); + return Offer(_archiveIdRequestEncoder.EncodedLength()); } /// /// Find the last recording that matches the given criteria. /// /// to search back to. - /// for a contains match on the original channel stored with the archive descriptor. + /// for a contains match on the original channel stored with the archive + /// descriptor. /// of the recording to match. /// of the recording to match. /// for this request. /// for this request. /// true if successfully offered otherwise false. - public bool FindLastMatchingRecording(long minRecordingId, string channelFragment, int streamId, int sessionId, - long correlationId, long controlSessionId) + public bool FindLastMatchingRecording( + long minRecordingId, + string channelFragment, + int streamId, + int sessionId, + long correlationId, + long controlSessionId + ) { - findLastMatchingRecordingRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _findLastMatchingRecordingRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .MinRecordingId(minRecordingId) @@ -800,7 +878,7 @@ public bool FindLastMatchingRecording(long minRecordingId, string channelFragmen .StreamId(streamId) .Channel(channelFragment); - return Offer(findLastMatchingRecordingRequest.EncodedLength()); + return Offer(_findLastMatchingRecordingRequest.EncodedLength()); } /// @@ -808,17 +886,25 @@ public bool FindLastMatchingRecording(long minRecordingId, string channelFragmen /// /// in the list of active recording subscriptions. /// for the number of descriptors to be listed. - /// for a contains match on the stripped channel used with the registered subscription. + /// for a contains match on the stripped channel used with the registered + /// subscription. /// for the subscription. /// when matching. /// for this request. /// for this request. /// true if successfully offered otherwise false. - public bool ListRecordingSubscriptions(int pseudoIndex, int subscriptionCount, string channelFragment, - int streamId, bool applyStreamId, long correlationId, long controlSessionId) + public bool ListRecordingSubscriptions( + int pseudoIndex, + int subscriptionCount, + string channelFragment, + int streamId, + bool applyStreamId, + long correlationId, + long controlSessionId + ) { - listRecordingSubscriptionsRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _listRecordingSubscriptionsRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .PseudoIndex(pseudoIndex) @@ -827,30 +913,35 @@ public bool ListRecordingSubscriptions(int pseudoIndex, int subscriptionCount, s .StreamId(streamId) .Channel(channelFragment); - return Offer(listRecordingSubscriptionsRequest.EncodedLength()); + return Offer(_listRecordingSubscriptionsRequest.EncodedLength()); } /// /// Replicate a recording from a source archive to a destination which can be considered a backup for a primary - /// archive. The source recording will be replayed via the provided replay channel and use the original stream id. - /// If the destination recording id is then a new destination recording is created, - /// otherwise the provided destination recording id will be extended. The details of the source recording - /// descriptor will be replicated. + /// archive. The source recording will be replayed via the provided replay channel and use the original stream + /// id. If the destination recording id is then a new + /// destination recording is created, otherwise the provided destination recording id will be extended. The + /// details of the source recording descriptor will be replicated. /// /// For a source recording that is still active the replay can merge with the live stream and then follow it /// directly and no longer require the replay from the source. This would require a multicast live destination. /// /// - /// Errors will be reported asynchronously and can be checked for with - /// or . - /// + /// Errors will be reported asynchronously and can be checked for with + /// + /// or . + /// /// /// /// recording id which must exist in the source archive. - /// recording to extend in the destination, otherwise . - /// remote control channel for the source archive to instruct the replay on. - /// remote control stream id for the source archive to instruct the replay on. - /// destination for the live stream if merge is required. Empty or null for no merge. + /// recording to extend in the destination, otherwise + /// . + /// remote control channel for the source archive to instruct the replay on. + /// + /// remote control stream id for the source archive to instruct the replay on. + /// + /// destination for the live stream if merge is required. Empty or null for no + /// merge. /// for this request. /// for this request. /// true if successfully offered otherwise false. @@ -861,7 +952,8 @@ public bool Replicate( string srcControlChannel, string liveDestination, long correlationId, - long controlSessionId) + long controlSessionId + ) { return Replicate( srcRecordingId, @@ -878,33 +970,40 @@ public bool Replicate( Aeron.Aeron.NULL_VALUE, Aeron.Aeron.NULL_VALUE, NullCredentialsSupplier.NULL_CREDENTIAL, - null); + null + ); } /// /// Replicate a recording from a source archive to a destination which can be considered a backup for a primary - /// archive. The source recording will be replayed via the provided replay channel and use the original stream id. - /// If the destination recording id is then a new destination recording is created, - /// otherwise the provided destination recording id will be extended. The details of the source recording - /// descriptor will be replicated. + /// archive. The source recording will be replayed via the provided replay channel and use the original stream + /// id. If the destination recording id is then a new + /// destination recording is created, otherwise the provided destination recording id will be extended. The + /// details of the source recording descriptor will be replicated. /// /// For a source recording that is still active the replay can merge with the live stream and then follow it /// directly and no longer require the replay from the source. This would require a multicast live destination. /// /// - /// Errors will be reported asynchronously and can be checked for with - /// or . - /// + /// Errors will be reported asynchronously and can be checked for with + /// + /// or . + /// /// /// /// recording id which must exist in the source archive. - /// recording to extend in the destination, otherwise . - /// position to stop the replication. to stop at end - /// of current recording. - /// remote control stream id for the source archive to instruct the replay on. - /// remote control channel for the source archive to instruct the replay on. - /// destination for the live stream if merge is required. Empty or null for no merge. - /// channel over which the replication will occur. Empty or null for default channel. + /// recording to extend in the destination, otherwise + /// . + /// position to stop the replication. + /// to stop at end of current recording. + /// remote control stream id for the source archive to instruct the replay on. + /// + /// remote control channel for the source archive to instruct the replay on. + /// + /// destination for the live stream if merge is required. Empty or null for no + /// merge. + /// channel over which the replication will occur. Empty or null for default + /// channel. /// for this request. /// for this request. /// true if successfully offered otherwise false. @@ -917,7 +1016,8 @@ public bool Replicate( string liveDestination, string replicationChannel, long correlationId, - long controlSessionId) + long controlSessionId + ) { return Replicate( srcRecordingId, @@ -934,32 +1034,39 @@ public bool Replicate( Aeron.Aeron.NULL_VALUE, Aeron.Aeron.NULL_VALUE, NullCredentialsSupplier.NULL_CREDENTIAL, - null); + null + ); } /// /// Replicate a recording from a source archive to a destination which can be considered a backup for a primary - /// archive. The source recording will be replayed via the provided replay channel and use the original stream id. - /// If the destination recording id is then a new destination recording is created, - /// otherwise the provided destination recording id will be extended. The details of the source recording - /// descriptor will be replicated. The subscription used in the archive will be tagged with the provided tags. + /// archive. The source recording will be replayed via the provided replay channel and use the original stream + /// id. If the destination recording id is then a new + /// destination recording is created, otherwise the provided destination recording id will be extended. The + /// details of the source recording descriptor will be replicated. The subscription used in the archive will be + /// tagged with the provided tags. /// /// For a source recording that is still active the replay can merge with the live stream and then follow it /// directly and no longer require the replay from the source. This would require a multicast live destination. /// /// - /// Errors will be reported asynchronously and can be checked for with - /// or . - /// + /// Errors will be reported asynchronously and can be checked for with + /// + /// or . + /// /// /// /// recording id which must exist in the source archive. - /// recording to extend in the destination, otherwise . + /// recording to extend in the destination, otherwise + /// . /// used to tag the replication subscription. /// used to tag the replication subscription. - /// remote control channel for the source archive to instruct the replay on. - /// remote control stream id for the source archive to instruct the replay on. - /// destination for the live stream if merge is required. Empty or null for no merge. + /// remote control channel for the source archive to instruct the replay on. + /// + /// remote control stream id for the source archive to instruct the replay on. + /// + /// destination for the live stream if merge is required. Empty or null for no + /// merge. /// for this request. /// for this request. /// true if successfully offered otherwise false. @@ -972,7 +1079,8 @@ public bool TaggedReplicate( string srcControlChannel, string liveDestination, long correlationId, - long controlSessionId) + long controlSessionId + ) { return Replicate( srcRecordingId, @@ -989,35 +1097,43 @@ public bool TaggedReplicate( Aeron.Aeron.NULL_VALUE, Aeron.Aeron.NULL_VALUE, NullCredentialsSupplier.NULL_CREDENTIAL, - null); + null + ); } /// /// Replicate a recording from a source archive to a destination which can be considered a backup for a primary - /// archive. The source recording will be replayed via the provided replay channel and use the original stream id. - /// If the destination recording id is then a new destination recording is created, - /// otherwise the provided destination recording id will be extended. The details of the source recording - /// descriptor will be replicated. The subscription used in the archive will be tagged with the provided tags. + /// archive. The source recording will be replayed via the provided replay channel and use the original stream + /// id. If the destination recording id is then a new + /// destination recording is created, otherwise the provided destination recording id will be extended. The + /// details of the source recording descriptor will be replicated. The subscription used in the archive will be + /// tagged with the provided tags. /// /// For a source recording that is still active the replay can merge with the live stream and then follow it /// directly and no longer require the replay from the source. This would require a multicast live destination. /// /// - /// Errors will be reported asynchronously and can be checked for with - /// or . - /// + /// Errors will be reported asynchronously and can be checked for with + /// + /// or . + /// /// /// /// recording id which must exist in the source archive. - /// recording to extend in the destination, otherwise . - /// position to stop the replication. to stop at end - /// of current recording. + /// recording to extend in the destination, otherwise + /// . + /// position to stop the replication. + /// to stop at end of current recording. /// used to tag the replication subscription. /// used to tag the replication subscription. - /// remote control channel for the source archive to instruct the replay on. - /// remote control stream id for the source archive to instruct the replay on. - /// destination for the live stream if merge is required. Empty or null for no merge. - /// channel over which the replication will occur. Empty or null for default channel. + /// remote control channel for the source archive to instruct the replay on. + /// + /// remote control stream id for the source archive to instruct the replay on. + /// + /// destination for the live stream if merge is required. Empty or null for no + /// merge. + /// channel over which the replication will occur. Empty or null for default + /// channel. /// for this request. /// for this request. /// true if successfully offered otherwise false. @@ -1032,7 +1148,8 @@ public bool TaggedReplicate( string liveDestination, string replicationChannel, long correlationId, - long controlSessionId) + long controlSessionId + ) { return Replicate( srcRecordingId, @@ -1049,28 +1166,32 @@ public bool TaggedReplicate( Aeron.Aeron.NULL_VALUE, Aeron.Aeron.NULL_VALUE, NullCredentialsSupplier.NULL_CREDENTIAL, - null); + null + ); } /// /// Replicate a recording from a source archive to a destination which can be considered a backup for a primary - /// archive. The behaviour of the replication is controlled through the . + /// archive. The behaviour of the replication is controlled through the . /// /// For a source recording that is still active the replay can merge with the live stream and then follow it /// directly and no longer require the replay from the source. This would require a multicast live destination. /// /// - /// Errors will be reported asynchronously and can be checked for with - /// or . + /// Errors will be reported asynchronously and can be checked for with + /// + /// or . /// /// /// The ReplicationParams is free to be reused when this call completes. - /// + /// /// /// /// recording id which must exist in the source archive. - /// remote control channel for the source archive to instruct the replay on. - /// remote control stream id for the source archive to instruct the replay on. + /// remote control channel for the source archive to instruct the replay on. + /// + /// remote control stream id for the source archive to instruct the replay on. + /// /// optional parameters to control the behaviour of the replication. /// for this request. /// for this request. @@ -1082,13 +1203,18 @@ public bool Replicate( string srcControlChannel, ReplicationParams replicationParams, long correlationId, - long controlSessionId) + long controlSessionId + ) { - if (null != replicationParams.LiveDestination() && - Aeron.Aeron.NULL_VALUE != replicationParams.ReplicationSessionId()) + if ( + null != replicationParams.LiveDestination() + && Aeron.Aeron.NULL_VALUE != replicationParams.ReplicationSessionId() + ) { throw new ArgumentException( - "ReplicationParams.LiveDestination and ReplicationParams.ReplicationSessionId can not be specified together"); + "ReplicationParams.LiveDestination and " + + "ReplicationParams.ReplicationSessionId can not be specified together" + ); } return Replicate( @@ -1106,7 +1232,8 @@ public bool Replicate( replicationParams.FileIoMaxLength(), replicationParams.ReplicationSessionId(), replicationParams.EncodedCredentials(), - replicationParams.SrcResponseChannel()); + replicationParams.SrcResponseChannel() + ); } /// @@ -1118,13 +1245,13 @@ public bool Replicate( /// true if successfully offered otherwise false. public bool StopReplication(long replicationId, long correlationId, long controlSessionId) { - stopReplicationRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _stopReplicationRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .ReplicationId(replicationId); - return Offer(stopReplicationRequest.EncodedLength()); + return Offer(_stopReplicationRequest.EncodedLength()); } /// @@ -1134,7 +1261,7 @@ public bool StopReplication(long replicationId, long correlationId, long control /// /// /// It is not possible to detach segments which are active for recording or being replayed. - /// + /// /// /// /// to which the operation applies. @@ -1145,14 +1272,14 @@ public bool StopReplication(long replicationId, long correlationId, long control /// public bool DetachSegments(long recordingId, long newStartPosition, long correlationId, long controlSessionId) { - detachSegmentsRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _detachSegmentsRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId) .NewStartPosition(newStartPosition); - return Offer(detachSegmentsRequest.EncodedLength()); + return Offer(_detachSegmentsRequest.EncodedLength()); } /// @@ -1165,13 +1292,13 @@ public bool DetachSegments(long recordingId, long newStartPosition, long correla /// public bool DeleteDetachedSegments(long recordingId, long correlationId, long controlSessionId) { - deleteDetachedSegmentsRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _deleteDetachedSegmentsRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId); - return Offer(deleteDetachedSegmentsRequest.EncodedLength()); + return Offer(_deleteDetachedSegmentsRequest.EncodedLength()); } /// @@ -1181,7 +1308,7 @@ public bool DeleteDetachedSegments(long recordingId, long correlationId, long co /// /// /// It is not possible to purge segments which are active for recording or being replayed. - /// + /// /// /// /// to which the operation applies. @@ -1194,22 +1321,22 @@ public bool DeleteDetachedSegments(long recordingId, long correlationId, long co /// public bool PurgeSegments(long recordingId, long newStartPosition, long correlationId, long controlSessionId) { - purgeSegmentsRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _purgeSegmentsRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId) .NewStartPosition(newStartPosition); - return Offer(purgeSegmentsRequest.EncodedLength()); + return Offer(_purgeSegmentsRequest.EncodedLength()); } /// /// Attach segments to the beginning of a recording to restore history that was previously detached. /// - /// Segment files must match the existing recording and join exactly to the start position of the recording - /// they are being attached to. - /// + /// Segment files must match the existing recording and join exactly to the start position of the recording they + /// are being attached to. + /// /// /// /// to which the operation applies. @@ -1219,29 +1346,29 @@ public bool PurgeSegments(long recordingId, long newStartPosition, long correlat /// public bool AttachSegments(long recordingId, long correlationId, long controlSessionId) { - attachSegmentsRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _attachSegmentsRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId); - return Offer(attachSegmentsRequest.EncodedLength()); + return Offer(_attachSegmentsRequest.EncodedLength()); } /// /// Migrate segments from a source recording and attach them to the beginning or end of a destination recording. /// /// The source recording must match the destination recording for segment length, term length, mtu length, and - /// stream id. The source recording must join to the destination recording on a segment boundary and without gaps, - /// i.e., the stop position and term id of one must match the start position and term id of the other. + /// stream id. The source recording must join to the destination recording on a segment boundary and without + /// gaps, i.e., the stop position and term id of one must match the start position and term id of the other. /// /// - /// The source recording must be stopped. The destination recording must be stopped if migrating segments - /// to the end of the destination recording. + /// The source recording must be stopped. The destination recording must be stopped if migrating segments to the + /// end of the destination recording. /// /// /// The source recording will be effectively truncated back to its start position after the migration. - /// + /// /// /// /// source recording from which the segments will be migrated. @@ -1251,14 +1378,14 @@ public bool AttachSegments(long recordingId, long correlationId, long controlSes /// true if successfully offered otherwise false. public bool MigrateSegments(long srcRecordingId, long dstRecordingId, long correlationId, long controlSessionId) { - migrateSegmentsRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _migrateSegmentsRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .SrcRecordingId(srcRecordingId) .DstRecordingId(dstRecordingId); - return Offer(migrateSegmentsRequest.EncodedLength()); + return Offer(_migrateSegmentsRequest.EncodedLength()); } /// @@ -1271,15 +1398,15 @@ public bool MigrateSegments(long srcRecordingId, long dstRecordingId, long corre /// true if successfully offered public bool RequestReplayToken(long lastCorrelationId, long controlSessionId, long recordingId) { - replayTokenRequestEncoder - .WrapAndApplyHeader(buffer, 0, messageHeader) + _replayTokenRequestEncoder + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(lastCorrelationId) .RecordingId(recordingId); - return Offer(replayTokenRequestEncoder.EncodedLength()); + return Offer(_replayTokenRequestEncoder.EncodedLength()); } - + /// /// Update the channel for a recording. /// @@ -1290,24 +1417,24 @@ public bool RequestReplayToken(long lastCorrelationId, long controlSessionId, lo /// true if successfully offered. public bool UpdateChannel(long recordingId, string channel, long correlationId, long controlSessionId) { - updateChannelRequestEncoder - .WrapAndApplyHeader(buffer, 0, messageHeader) + _updateChannelRequestEncoder + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId) .Channel(channel); - return Offer(updateChannelRequestEncoder.EncodedLength()); + return Offer(_updateChannelRequestEncoder.EncodedLength()); } private bool Offer(int length) { - retryIdleStrategy.Reset(); + _retryIdleStrategy.Reset(); - int attempts = retryAttempts; + int attempts = _retryAttempts; while (true) { - long position = publication.Offer(buffer, 0, MessageHeaderEncoder.ENCODED_LENGTH + length); + long position = _publication.Offer(_buffer, 0, MessageHeaderEncoder.ENCODED_LENGTH + length); if (position > 0) { return true; @@ -1326,7 +1453,8 @@ private bool Offer(int length) if (position == Publication.MAX_POSITION_EXCEEDED) { throw new ArchiveException( - "offer failed due to max position being reached: term-length=" + publication.TermBufferLength); + "offer failed due to max position being reached: term-length=" + _publication.TermBufferLength + ); } if (--attempts <= 0) @@ -1334,18 +1462,18 @@ private bool Offer(int length) return false; } - retryIdleStrategy.Idle(); + _retryIdleStrategy.Idle(); } } private bool OfferWithTimeout(int length, AgentInvoker aeronClientInvoker) { - retryIdleStrategy.Reset(); + _retryIdleStrategy.Reset(); - long deadlineNs = nanoClock.NanoTime() + connectTimeoutNs; + long deadlineNs = _nanoClock.NanoTime() + _connectTimeoutNs; while (true) { - long result = publication.Offer(buffer, 0, MessageHeaderEncoder.ENCODED_LENGTH + length); + long result = _publication.Offer(_buffer, 0, MessageHeaderEncoder.ENCODED_LENGTH + length); if (result > 0) { return true; @@ -1361,7 +1489,7 @@ private bool OfferWithTimeout(int length, AgentInvoker aeronClientInvoker) throw new ArchiveException("offer failed due to max position being reached"); } - if (deadlineNs - nanoClock.NanoTime() < 0) + if (deadlineNs - _nanoClock.NanoTime() < 0) { return false; } @@ -1371,7 +1499,7 @@ private bool OfferWithTimeout(int length, AgentInvoker aeronClientInvoker) aeronClientInvoker.Invoke(); } - retryIdleStrategy.Idle(); + _retryIdleStrategy.Idle(); } } @@ -1384,10 +1512,11 @@ private bool Replay( long correlationId, long controlSessionId, int fileIoMaxLength, - long replayToken) + long replayToken + ) { - replayRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _replayRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId) @@ -1398,7 +1527,7 @@ private bool Replay( .ReplayToken(replayToken) .ReplayChannel(replayChannel); - return Offer(replayRequest.EncodedLength()); + return Offer(_replayRequest.EncodedLength()); } private bool BoundedReplay( @@ -1411,10 +1540,11 @@ private bool BoundedReplay( long correlationId, long controlSessionId, int fileIoMaxLength, - long replayToken) + long replayToken + ) { - boundedReplayRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _boundedReplayRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .RecordingId(recordingId) @@ -1426,7 +1556,7 @@ private bool BoundedReplay( .ReplayToken(replayToken) .ReplayChannel(replayChannel); - return Offer(boundedReplayRequest.EncodedLength()); + return Offer(_boundedReplayRequest.EncodedLength()); } private bool Replicate( @@ -1444,10 +1574,11 @@ private bool Replicate( int fileIoMaxLength, int replicationSessionId, byte[] encodedCredentials, - string srcResponseChannel) + string srcResponseChannel + ) { - replicateRequest - .WrapAndApplyHeader(buffer, 0, messageHeader) + _replicateRequest + .WrapAndApplyHeader(_buffer, 0, _messageHeader) .ControlSessionId(controlSessionId) .CorrelationId(correlationId) .SrcRecordingId(srcRecordingId) @@ -1464,7 +1595,7 @@ private bool Replicate( .PutEncodedCredentials(encodedCredentials, 0, encodedCredentials.Length) .SrcResponseChannel(srcResponseChannel); - return Offer(replicateRequest.EncodedLength()); + return Offer(_replicateRequest.EncodedLength()); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/ControlEventListener.cs b/src/Adaptive.Archiver/ControlEventListener.cs index 52ce5549..1fbf2fdc 100644 --- a/src/Adaptive.Archiver/ControlEventListener.cs +++ b/src/Adaptive.Archiver/ControlEventListener.cs @@ -1,10 +1,26 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Archiver.Codecs; namespace Adaptive.Archiver { /// - /// Listener for responses to requests made on the archive control channel and async notification of errors which may - /// happen later. + /// Listener for responses to requests made on the archive control channel and async notification of errors which + /// may happen later. /// public interface IControlEventListener { @@ -16,7 +32,12 @@ public interface IControlEventListener /// of the object to which the response applies. /// for the response status. /// when is set if the response code is not OK. - void OnResponse(long controlSessionId, long correlationId, long relevantId, ControlResponseCode code, - string errorMessage); + void OnResponse( + long controlSessionId, + long correlationId, + long relevantId, + ControlResponseCode code, + string errorMessage + ); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/ControlResponseAdaptor.cs b/src/Adaptive.Archiver/ControlResponseAdaptor.cs index 9e47f196..b24aafad 100644 --- a/src/Adaptive.Archiver/ControlResponseAdaptor.cs +++ b/src/Adaptive.Archiver/ControlResponseAdaptor.cs @@ -1,4 +1,20 @@ -using Adaptive.Aeron; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Archiver.Codecs; @@ -10,16 +26,16 @@ namespace Adaptive.Archiver /// public class ControlResponseAdapter { - private readonly MessageHeaderDecoder messageHeaderDecoder = new MessageHeaderDecoder(); - private readonly ControlResponseDecoder controlResponseDecoder = new ControlResponseDecoder(); - private readonly RecordingDescriptorDecoder recordingDescriptorDecoder = new RecordingDescriptorDecoder(); - private readonly RecordingSignalEventDecoder recordingSignalEventDecoder = new RecordingSignalEventDecoder(); + private readonly MessageHeaderDecoder _messageHeaderDecoder = new MessageHeaderDecoder(); + private readonly ControlResponseDecoder _controlResponseDecoder = new ControlResponseDecoder(); + private readonly RecordingDescriptorDecoder _recordingDescriptorDecoder = new RecordingDescriptorDecoder(); + private readonly RecordingSignalEventDecoder _recordingSignalEventDecoder = new RecordingSignalEventDecoder(); - private readonly int fragmentLimit; - private readonly IControlResponseListener controlResponseListener; - private readonly IRecordingSignalConsumer recordingSignalConsumer; - private readonly Subscription subscription; - private readonly FragmentAssembler fragmentAssembler; + private readonly int _fragmentLimit; + private readonly IControlResponseListener _controlResponseListener; + private readonly IRecordingSignalConsumer _recordingSignalConsumer; + private readonly Subscription _subscription; + private readonly FragmentAssembler _fragmentAssembler; /// /// Create an adapter for a given subscription to an archive for control response messages. @@ -28,17 +44,19 @@ public class ControlResponseAdapter /// to poll for new events. /// to apply for each polling operation. public ControlResponseAdapter( - IControlResponseListener controlResponseListener, - Subscription subscription, - int fragmentLimit) - : this( - controlResponseListener, - AeronArchive.Configuration.NO_OP_RECORDING_SIGNAL_CONSUMER, - subscription, - fragmentLimit) + IControlResponseListener controlResponseListener, + Subscription subscription, + int fragmentLimit + ) + : this( + controlResponseListener, + AeronArchive.Configuration.NO_OP_RECORDING_SIGNAL_CONSUMER, + subscription, + fragmentLimit + ) { } - + /// /// Create an adapter for a given subscription to an archive for control response messages. /// @@ -47,27 +65,28 @@ public ControlResponseAdapter( /// to poll for responses. /// to apply for each polling operation. public ControlResponseAdapter( - IControlResponseListener controlResponseListener, - IRecordingSignalConsumer recordingSignalConsumer, - Subscription subscription, - int fragmentLimit) + IControlResponseListener controlResponseListener, + IRecordingSignalConsumer recordingSignalConsumer, + Subscription subscription, + int fragmentLimit + ) { - fragmentAssembler = new FragmentAssembler(OnFragment); - - this.fragmentLimit = fragmentLimit; - this.controlResponseListener = controlResponseListener; - this.recordingSignalConsumer = recordingSignalConsumer; - this.subscription = subscription; - } + _fragmentAssembler = new FragmentAssembler(OnFragment); + this._fragmentLimit = fragmentLimit; + this._controlResponseListener = controlResponseListener; + this._recordingSignalConsumer = recordingSignalConsumer; + this._subscription = subscription; + } /// - /// Poll for recording events and dispatch them to the for this instance. + /// Poll for recording events and dispatch them to the for this + /// instance. /// /// the number of fragments read during the operation. Zero if no events are available. public int Poll() { - return subscription.Poll(fragmentAssembler, fragmentLimit); + return _subscription.Poll(_fragmentAssembler, _fragmentLimit); } /// @@ -93,81 +112,89 @@ public static void DispatchDescriptor(RecordingDescriptorDecoder decoder, IRecor decoder.StreamId(), decoder.StrippedChannel(), decoder.OriginalChannel(), - decoder.SourceIdentity()); + decoder.SourceIdentity() + ); } private void OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { - messageHeaderDecoder.Wrap(buffer, offset); + _messageHeaderDecoder.Wrap(buffer, offset); - int schemaId = messageHeaderDecoder.SchemaId(); + int schemaId = _messageHeaderDecoder.SchemaId(); if (schemaId != MessageHeaderDecoder.SCHEMA_ID) { - throw new ArchiveException("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId); + throw new ArchiveException( + "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId + ); } - switch (messageHeaderDecoder.TemplateId()) + switch (_messageHeaderDecoder.TemplateId()) { case ControlResponseDecoder.TEMPLATE_ID: - HandleControlResponse(controlResponseListener, buffer, offset); + HandleControlResponse(_controlResponseListener, buffer, offset); break; case RecordingDescriptorDecoder.TEMPLATE_ID: - HandleRecordingDescriptor(controlResponseListener, buffer, offset); + HandleRecordingDescriptor(_controlResponseListener, buffer, offset); break; - + case RecordingSignalEventDecoder.TEMPLATE_ID: - HandleRecordingSignal(recordingSignalConsumer, buffer, offset); + HandleRecordingSignal(_recordingSignalConsumer, buffer, offset); break; } } - private void HandleControlResponse( - IControlResponseListener listener, IDirectBuffer buffer, int offset) + private void HandleControlResponse(IControlResponseListener listener, IDirectBuffer buffer, int offset) { - controlResponseDecoder.Wrap( + _controlResponseDecoder.Wrap( buffer, offset + MessageHeaderEncoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); listener.OnResponse( - controlResponseDecoder.ControlSessionId(), - controlResponseDecoder.CorrelationId(), - controlResponseDecoder.RelevantId(), - controlResponseDecoder.Code(), - controlResponseDecoder.ErrorMessage()); + _controlResponseDecoder.ControlSessionId(), + _controlResponseDecoder.CorrelationId(), + _controlResponseDecoder.RelevantId(), + _controlResponseDecoder.Code(), + _controlResponseDecoder.ErrorMessage() + ); } - private void HandleRecordingDescriptor( - IControlResponseListener listener, IDirectBuffer buffer, int offset) + private void HandleRecordingDescriptor(IControlResponseListener listener, IDirectBuffer buffer, int offset) { - recordingDescriptorDecoder.Wrap( + _recordingDescriptorDecoder.Wrap( buffer, offset + MessageHeaderEncoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - DispatchDescriptor(recordingDescriptorDecoder, listener); + DispatchDescriptor(_recordingDescriptorDecoder, listener); } - + private void HandleRecordingSignal( - IRecordingSignalConsumer recordingSignalConsumer, IDirectBuffer buffer, int offset) + IRecordingSignalConsumer recordingSignalConsumer, + IDirectBuffer buffer, + int offset + ) { - recordingSignalEventDecoder.Wrap( - buffer, - offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _recordingSignalEventDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); recordingSignalConsumer.OnSignal( - recordingSignalEventDecoder.ControlSessionId(), - recordingSignalEventDecoder.CorrelationId(), - recordingSignalEventDecoder.RecordingId(), - recordingSignalEventDecoder.SubscriptionId(), - recordingSignalEventDecoder.Position(), - recordingSignalEventDecoder.Signal()); + _recordingSignalEventDecoder.ControlSessionId(), + _recordingSignalEventDecoder.CorrelationId(), + _recordingSignalEventDecoder.RecordingId(), + _recordingSignalEventDecoder.SubscriptionId(), + _recordingSignalEventDecoder.Position(), + _recordingSignalEventDecoder.Signal() + ); } - } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/ControlResponsePoller.cs b/src/Adaptive.Archiver/ControlResponsePoller.cs index 18347b6e..419cd4cb 100644 --- a/src/Adaptive.Archiver/ControlResponsePoller.cs +++ b/src/Adaptive.Archiver/ControlResponsePoller.cs @@ -1,4 +1,20 @@ -using Adaptive.Aeron; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Archiver.Codecs; @@ -16,35 +32,36 @@ public class ControlResponsePoller : IControlledFragmentHandler /// public const int FRAGMENT_LIMIT = 10; - private readonly MessageHeaderDecoder messageHeaderDecoder = new MessageHeaderDecoder(); - private readonly ControlResponseDecoder controlResponseDecoder = new ControlResponseDecoder(); - private readonly ChallengeDecoder challengeDecoder = new ChallengeDecoder(); - private readonly RecordingSignalEventDecoder recordingSignalEventDecoder = new RecordingSignalEventDecoder(); - - private readonly Subscription subscription; - private ControlledFragmentAssembler fragmentAssembler; - private readonly int fragmentLimit; - - private long controlSessionId = Aeron.Aeron.NULL_VALUE; - private long correlationId = Aeron.Aeron.NULL_VALUE; - private long relevantId = Aeron.Aeron.NULL_VALUE; - private int templateId = Aeron.Aeron.NULL_VALUE; - private int version = 0; - private ControlResponseCode code = ControlResponseCode.NULL_VALUE; - private string errorMessage = null; - private long recordingId = Aeron.Aeron.NULL_VALUE; - private long subscriptionId = Aeron.Aeron.NULL_VALUE; - private long position = Aeron.Aeron.NULL_VALUE; - private RecordingSignal recordingSignal = Codecs.RecordingSignal.NULL_VALUE; - private byte[] encodedChallenge = null; - private bool isPollComplete = false; + private readonly MessageHeaderDecoder _messageHeaderDecoder = new MessageHeaderDecoder(); + private readonly ControlResponseDecoder _controlResponseDecoder = new ControlResponseDecoder(); + private readonly ChallengeDecoder _challengeDecoder = new ChallengeDecoder(); + private readonly RecordingSignalEventDecoder _recordingSignalEventDecoder = new RecordingSignalEventDecoder(); + + private readonly Subscription _subscription; + private ControlledFragmentAssembler _fragmentAssembler; + private readonly int _fragmentLimit; + + private long _controlSessionId = Aeron.Aeron.NULL_VALUE; + private long _correlationId = Aeron.Aeron.NULL_VALUE; + private long _relevantId = Aeron.Aeron.NULL_VALUE; + private int _templateId = Aeron.Aeron.NULL_VALUE; + private int _version = 0; + private ControlResponseCode _code = ControlResponseCode.NULL_VALUE; + private string _errorMessage = null; + private long _recordingId = Aeron.Aeron.NULL_VALUE; + private long _subscriptionId = Aeron.Aeron.NULL_VALUE; + private long _position = Aeron.Aeron.NULL_VALUE; + private RecordingSignal _recordingSignal = Codecs.RecordingSignal.NULL_VALUE; + private byte[] _encodedChallenge = null; + private bool _isPollComplete = false; /// - /// Create a poller for a given subscription to an archive for control response messages with a default - /// fragment limit for polling as . + /// Create a poller for a given subscription to an archive for control response messages with a default fragment + /// limit for polling as . /// /// to poll for new events. - public ControlResponsePoller(Subscription subscription) : this(subscription, FRAGMENT_LIMIT) + public ControlResponsePoller(Subscription subscription) + : this(subscription, FRAGMENT_LIMIT) { } @@ -55,10 +72,10 @@ public ControlResponsePoller(Subscription subscription) : this(subscription, FRA /// to apply when polling. public ControlResponsePoller(Subscription subscription, int fragmentLimit) { - this.fragmentAssembler = new ControlledFragmentAssembler(this); + this._fragmentAssembler = new ControlledFragmentAssembler(this); - this.subscription = Objects.RequireNonNull(subscription); - this.fragmentLimit = fragmentLimit; + this._subscription = Objects.RequireNonNull(subscription); + this._fragmentLimit = fragmentLimit; } /// @@ -67,7 +84,7 @@ public ControlResponsePoller(Subscription subscription, int fragmentLimit) /// the used for polling responses. public Subscription Subscription() { - return subscription; + return _subscription; } /// @@ -76,51 +93,56 @@ public Subscription Subscription() /// the number of fragments read during the operation. Zero if no events are available. public int Poll() { - if (isPollComplete) + if (_isPollComplete) { - controlSessionId = Aeron.Aeron.NULL_VALUE; - correlationId = Aeron.Aeron.NULL_VALUE; - relevantId = Aeron.Aeron.NULL_VALUE; - templateId = Aeron.Aeron.NULL_VALUE; - version = 0; - code = ControlResponseCode.NULL_VALUE; - errorMessage = null; - recordingId = Aeron.Aeron.NULL_VALUE; - subscriptionId = Aeron.Aeron.NULL_VALUE; - position = Aeron.Aeron.NULL_VALUE; - encodedChallenge = null; - recordingSignal = Codecs.RecordingSignal.NULL_VALUE; - isPollComplete = false; + _controlSessionId = Aeron.Aeron.NULL_VALUE; + _correlationId = Aeron.Aeron.NULL_VALUE; + _relevantId = Aeron.Aeron.NULL_VALUE; + _templateId = Aeron.Aeron.NULL_VALUE; + _version = 0; + _code = ControlResponseCode.NULL_VALUE; + _errorMessage = null; + _recordingId = Aeron.Aeron.NULL_VALUE; + _subscriptionId = Aeron.Aeron.NULL_VALUE; + _position = Aeron.Aeron.NULL_VALUE; + _encodedChallenge = null; + _recordingSignal = Codecs.RecordingSignal.NULL_VALUE; + _isPollComplete = false; } - return subscription.ControlledPoll(fragmentAssembler, fragmentLimit); + return _subscription.ControlledPoll(_fragmentAssembler, _fragmentLimit); } /// - /// SBE template id of polled message or if poll returned nothing. + /// SBE template id of polled message or if poll returned + /// nothing. /// - /// SBE template id of polled message or if poll returned nothing. + /// SBE template id of polled message or if poll + /// returned nothing. public int TemplateId() { - return templateId; + return _templateId; } - + /// - /// Control session id of polled message or if poll returned nothing. + /// Control session id of polled message or if poll returned + /// nothing. /// - /// control session id of polled message or if poll returned nothing. + /// control session id of polled message or if poll + /// returned nothing. public long ControlSessionId() { - return controlSessionId; + return _controlSessionId; } /// /// Correlation id of the message or if poll returned nothing. /// - /// correlation id of polled message or if poll returned nothing. + /// correlation id of polled message or if poll + /// returned nothing. public long CorrelationId() { - return correlationId; + return _correlationId; } /// @@ -129,34 +151,40 @@ public long CorrelationId() /// the relevant id returned with the response. public long RelevantId() { - return relevantId; + return _relevantId; } - + /// - /// Recording id of polled or if poll returned nothing. + /// Recording id of polled or + /// if poll returned nothing. /// - /// recording id of polled or if poll returned nothing. + /// recording id of polled or + /// if poll returned nothing. public long RecordingId() { - return recordingId; + return _recordingId; } /// - /// Subscription id of polled or if poll returned nothing. + /// Subscription id of polled or + /// if poll returned nothing. /// - /// subscription id of polled or if poll returned nothing. + /// subscription id of polled or + /// if poll returned nothing. public long SubscriptionId() { - return subscriptionId; + return _subscriptionId; } /// - /// Position of polled or if poll returned nothing. + /// Position of polled or if + /// poll returned nothing. /// - /// position of polled or if poll returned nothing. + /// position of polled or + /// if poll returned nothing. public long Position() { - return position; + return _position; } /// @@ -165,7 +193,7 @@ public long Position() /// enum of polled or null if poll returned nothing. public RecordingSignal RecordingSignal() { - return recordingSignal; + return _recordingSignal; } /// @@ -174,7 +202,7 @@ public RecordingSignal RecordingSignal() /// response from the server in semantic version form. public int Version() { - return version; + return _version; } /// @@ -183,7 +211,7 @@ public int Version() /// true if the last polling action received a complete message? public bool PollComplete { - get { return isPollComplete; } + get { return _isPollComplete; } } /// @@ -192,7 +220,7 @@ public bool PollComplete /// the response code of the last response. public ControlResponseCode Code() { - return code; + return _code; } /// @@ -201,7 +229,7 @@ public ControlResponseCode Code() /// the error message of the response. public string ErrorMessage() { - return errorMessage; + return _errorMessage; } /// @@ -210,7 +238,7 @@ public string ErrorMessage() /// true if the last polling action received was a challenge message, false if not. public bool WasChallenged() { - return null != encodedChallenge; + return null != _encodedChallenge; } /// @@ -219,92 +247,95 @@ public bool WasChallenged() /// the encoded challenge of the last challenge. public byte[] EncodedChallenge() { - return encodedChallenge; + return _encodedChallenge; } public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { - if (isPollComplete) + if (_isPollComplete) { return ABORT; } - messageHeaderDecoder.Wrap(buffer, offset); + _messageHeaderDecoder.Wrap(buffer, offset); - int schemaId = messageHeaderDecoder.SchemaId(); + int schemaId = _messageHeaderDecoder.SchemaId(); if (schemaId != MessageHeaderDecoder.SCHEMA_ID) { - throw new ArchiveException("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + - schemaId); + throw new ArchiveException( + "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId + ); } - templateId = messageHeaderDecoder.TemplateId(); - switch (templateId) + _templateId = _messageHeaderDecoder.TemplateId(); + switch (_templateId) { case ControlResponseDecoder.TEMPLATE_ID: { - controlResponseDecoder.Wrap( - buffer, + _controlResponseDecoder.Wrap( + buffer, offset + MessageHeaderEncoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); - - controlSessionId = controlResponseDecoder.ControlSessionId(); - correlationId = controlResponseDecoder.CorrelationId(); - relevantId = controlResponseDecoder.RelevantId(); - code = controlResponseDecoder.Code(); - version = controlResponseDecoder.Version(); - errorMessage = controlResponseDecoder.ErrorMessage(); - isPollComplete = true; - + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + _controlSessionId = _controlResponseDecoder.ControlSessionId(); + _correlationId = _controlResponseDecoder.CorrelationId(); + _relevantId = _controlResponseDecoder.RelevantId(); + _code = _controlResponseDecoder.Code(); + _version = _controlResponseDecoder.Version(); + _errorMessage = _controlResponseDecoder.ErrorMessage(); + _isPollComplete = true; + return BREAK; } case ChallengeDecoder.TEMPLATE_ID: { - challengeDecoder.Wrap( - buffer, + _challengeDecoder.Wrap( + buffer, offset + MessageHeaderEncoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - controlSessionId = challengeDecoder.ControlSessionId(); - correlationId = challengeDecoder.CorrelationId(); - relevantId = Aeron.Aeron.NULL_VALUE; - code = ControlResponseCode.NULL_VALUE; - version = challengeDecoder.Version(); - errorMessage = ""; + _controlSessionId = _challengeDecoder.ControlSessionId(); + _correlationId = _challengeDecoder.CorrelationId(); + _relevantId = Aeron.Aeron.NULL_VALUE; + _code = ControlResponseCode.NULL_VALUE; + _version = _challengeDecoder.Version(); + _errorMessage = ""; - int encodedChallengeLength = challengeDecoder.EncodedChallengeLength(); - encodedChallenge = new byte[encodedChallengeLength]; - challengeDecoder.GetEncodedChallenge(encodedChallenge, 0, encodedChallengeLength); + int encodedChallengeLength = _challengeDecoder.EncodedChallengeLength(); + _encodedChallenge = new byte[encodedChallengeLength]; + _challengeDecoder.GetEncodedChallenge(_encodedChallenge, 0, encodedChallengeLength); - isPollComplete = true; + _isPollComplete = true; return BREAK; } - + case RecordingSignalEventDecoder.TEMPLATE_ID: { - recordingSignalEventDecoder.Wrap( - buffer, - offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); - - controlSessionId = recordingSignalEventDecoder.ControlSessionId(); - correlationId = recordingSignalEventDecoder.CorrelationId(); - recordingId = recordingSignalEventDecoder.RecordingId(); - subscriptionId = recordingSignalEventDecoder.SubscriptionId(); - position = recordingSignalEventDecoder.Position(); - recordingSignal = recordingSignalEventDecoder.Signal(); - - isPollComplete = true; + _recordingSignalEventDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + _controlSessionId = _recordingSignalEventDecoder.ControlSessionId(); + _correlationId = _recordingSignalEventDecoder.CorrelationId(); + _recordingId = _recordingSignalEventDecoder.RecordingId(); + _subscriptionId = _recordingSignalEventDecoder.SubscriptionId(); + _position = _recordingSignalEventDecoder.Position(); + _recordingSignal = _recordingSignalEventDecoder.Signal(); + + _isPollComplete = true; return BREAK; } - default: return CONTINUE; } @@ -312,20 +343,21 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs public override string ToString() { - return "ControlResponsePoller{" + - "templateId=" + templateId + - ", controlSessionId=" + controlSessionId + - ", correlationId=" + correlationId + - ", relevantId=" + relevantId + - ", recordingId=" + recordingId + - ", subscriptionId=" + subscriptionId + - ", position=" + position + - ", recordingSignal=" + recordingSignal + - ", code=" + code + - ", version=" + SemanticVersion.ToString(version) + - ", errorMessage='" + errorMessage + '\'' + - ", isPollComplete=" + isPollComplete + - '}'; + return + "ControlResponsePoller{" + + "templateId=" + _templateId + + ", controlSessionId=" + _controlSessionId + + ", correlationId=" + _correlationId + + ", relevantId=" + _relevantId + + ", recordingId=" + _recordingId + + ", subscriptionId=" + _subscriptionId + + ", position=" + _position + + ", recordingSignal=" + _recordingSignal + + ", code=" + _code + + ", version=" + SemanticVersion.ToString(_version) + + ", errorMessage='" + _errorMessage + '\'' + + ", isPollComplete=" + _isPollComplete + + '}'; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/FodyWeavers.xml b/src/Adaptive.Archiver/FodyWeavers.xml index 5415e271..3dfa4ac2 100644 --- a/src/Adaptive.Archiver/FodyWeavers.xml +++ b/src/Adaptive.Archiver/FodyWeavers.xml @@ -1,5 +1,5 @@ - - + + diff --git a/src/Adaptive.Archiver/IControlResponseListener.cs b/src/Adaptive.Archiver/IControlResponseListener.cs index 42a0a80e..d96061f9 100644 --- a/src/Adaptive.Archiver/IControlResponseListener.cs +++ b/src/Adaptive.Archiver/IControlResponseListener.cs @@ -1,9 +1,23 @@ -namespace Adaptive.Archiver +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Archiver { /// /// Interface for listening to events from the archive in response to requests. /// - public interface IControlResponseListener : IRecordingDescriptorConsumer, IControlEventListener - { - } -} \ No newline at end of file + public interface IControlResponseListener : IRecordingDescriptorConsumer, IControlEventListener { } +} diff --git a/src/Adaptive.Archiver/IRecordingDescriptorConsumer.cs b/src/Adaptive.Archiver/IRecordingDescriptorConsumer.cs index ef998ac3..47eb8b8b 100644 --- a/src/Adaptive.Archiver/IRecordingDescriptorConsumer.cs +++ b/src/Adaptive.Archiver/IRecordingDescriptorConsumer.cs @@ -1,4 +1,20 @@ -using Adaptive.Aeron; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron; namespace Adaptive.Archiver { @@ -15,17 +31,22 @@ public interface IRecordingDescriptorConsumer /// of this recording descriptor. /// of the recording. /// of the recording. - /// of the recording against the recorded publication, the . - /// reached for the recording, final position for . + /// of the recording against the recorded publication, the + /// . + /// reached for the recording, final position for . + /// /// of the recorded stream, . /// of the recording which is a multiple of termBufferLength. /// of the recorded stream, . /// of the recorded stream, . - /// of the recorded stream, this will be the most recent session id for extended recordings. + /// of the recorded stream, this will be the most recent session id for extended + /// recordings. /// of the recorded stream, . - /// of the recorded stream which is used for the recording subscription in the archive. - /// of the recorded stream provided to the start recording request, . - /// of the recorded stream, the . + /// of the recorded stream which is used for the recording subscription in the + /// archive. + /// of the recorded stream provided to the start recording request, + /// . + /// of the recorded stream, the . void OnRecordingDescriptor( long controlSessionId, long correlationId, @@ -42,6 +63,7 @@ void OnRecordingDescriptor( int streamId, string strippedChannel, string originalChannel, - string sourceIdentity); + string sourceIdentity + ); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/IRecordingEventsListener.cs b/src/Adaptive.Archiver/IRecordingEventsListener.cs index 0ce2a9f2..eca30191 100644 --- a/src/Adaptive.Archiver/IRecordingEventsListener.cs +++ b/src/Adaptive.Archiver/IRecordingEventsListener.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Archiver +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Archiver { /// /// Event listener for observing the status of recordings for an Archive. @@ -14,7 +30,14 @@ public interface IRecordingEventsListener /// of the publication being recorded. /// of the publication being recorded. /// of the publication being recorded. - void OnStart(long recordingId, long startPosition, int sessionId, int streamId, string channel, string sourceIdentity); + void OnStart( + long recordingId, + long startPosition, + int sessionId, + int streamId, + string channel, + string sourceIdentity + ); /// /// Progress indication of an active recording. @@ -32,4 +55,4 @@ public interface IRecordingEventsListener /// at which the recording stopped. void OnStop(long recordingId, long startPosition, long stopPosition); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/IRecordingSubscriptionDescriptorConsumer.cs b/src/Adaptive.Archiver/IRecordingSubscriptionDescriptorConsumer.cs index 28eda7f0..21d28e14 100644 --- a/src/Adaptive.Archiver/IRecordingSubscriptionDescriptorConsumer.cs +++ b/src/Adaptive.Archiver/IRecordingSubscriptionDescriptorConsumer.cs @@ -1,9 +1,25 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; namespace Adaptive.Archiver { /// - /// Consumer for descriptors of active archive recording s. + /// Consumer for descriptors of active archive recording s. /// public interface IRecordingSubscriptionDescriptorConsumer { @@ -20,7 +36,7 @@ void OnSubscriptionDescriptor( long correlationId, long subscriptionId, int streamId, - string strippedChannel); + string strippedChannel + ); } - -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/PublicAPI.Shipped.txt b/src/Adaptive.Archiver/PublicAPI.Shipped.txt new file mode 100644 index 00000000..a2cd1d93 --- /dev/null +++ b/src/Adaptive.Archiver/PublicAPI.Shipped.txt @@ -0,0 +1,6417 @@ +Adaptive.Archiver.AeronArchive +Adaptive.Archiver.AeronArchive.AddRecordedExclusivePublication(string channel, int streamId) -> Adaptive.Aeron.ExclusivePublication +Adaptive.Archiver.AeronArchive.AddRecordedPublication(string channel, int streamId) -> Adaptive.Aeron.Publication +Adaptive.Archiver.AeronArchive.ArchiveId() -> long +Adaptive.Archiver.AeronArchive.ArchiveState +Adaptive.Archiver.AeronArchive.ArchiveState.CLOSED = 2 -> Adaptive.Archiver.AeronArchive.ArchiveState +Adaptive.Archiver.AeronArchive.ArchiveState.CONNECTED = 0 -> Adaptive.Archiver.AeronArchive.ArchiveState +Adaptive.Archiver.AeronArchive.ArchiveState.DISCONNECTED = 1 -> Adaptive.Archiver.AeronArchive.ArchiveState +Adaptive.Archiver.AeronArchive.AsyncConnect +Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState +Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState.ADD_PUBLICATION = 1 -> Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState +Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState.AWAIT_ARCHIVE_ID_RESPONSE = 7 -> Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState +Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState.AWAIT_CHALLENGE_RESPONSE = 9 -> Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState +Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState.AWAIT_CONNECT_RESPONSE = 5 -> Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState +Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState.AWAIT_PUBLICATION_CONNECTED = 2 -> Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState +Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState.AWAIT_SUBSCRIPTION = 0 -> Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState +Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState.AWAIT_SUBSCRIPTION_CONNECTED = 4 -> Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState +Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState.DONE = 10 -> Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState +Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState.SEND_ARCHIVE_ID_REQUEST = 6 -> Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState +Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState.SEND_CHALLENGE_RESPONSE = 8 -> Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState +Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState.SEND_CONNECT_REQUEST = 3 -> Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState +Adaptive.Archiver.AeronArchive.AsyncConnect.Ctx() -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.AsyncConnect.Dispose() -> void +Adaptive.Archiver.AeronArchive.AsyncConnect.Poll() -> Adaptive.Archiver.AeronArchive +Adaptive.Archiver.AeronArchive.AsyncConnect.State() -> Adaptive.Archiver.AeronArchive.AsyncConnect.AsyncConnectState +Adaptive.Archiver.AeronArchive.AsyncConnect.Step() -> int +Adaptive.Archiver.AeronArchive.AttachSegments(long recordingId) -> long +Adaptive.Archiver.AeronArchive.CheckForErrorResponse() -> void +Adaptive.Archiver.AeronArchive.Configuration +Adaptive.Archiver.AeronArchive.Configuration.Configuration() -> void +Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.AeronClient() -> Adaptive.Aeron.Aeron +Adaptive.Archiver.AeronArchive.Context.AeronClient(Adaptive.Aeron.Aeron aeron) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.AeronDirectoryName() -> string +Adaptive.Archiver.AeronArchive.Context.AeronDirectoryName(string aeronDirectoryName) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.AgentInvoker() -> Adaptive.Agrona.Concurrent.AgentInvoker +Adaptive.Archiver.AeronArchive.Context.AgentInvoker(Adaptive.Agrona.Concurrent.AgentInvoker agentInvoker) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.ClientName() -> string +Adaptive.Archiver.AeronArchive.Context.ClientName(string clientName) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.Clone() -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.Conclude() -> void +Adaptive.Archiver.AeronArchive.Context.Concluded.get -> bool +Adaptive.Archiver.AeronArchive.Context.Context() -> void +Adaptive.Archiver.AeronArchive.Context.ControlMtuLength() -> int +Adaptive.Archiver.AeronArchive.Context.ControlMtuLength(int controlMtuLength) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.ControlRequestChannel() -> string +Adaptive.Archiver.AeronArchive.Context.ControlRequestChannel(string channel) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.ControlRequestStreamId() -> int +Adaptive.Archiver.AeronArchive.Context.ControlRequestStreamId(int streamId) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.ControlResponseChannel() -> string +Adaptive.Archiver.AeronArchive.Context.ControlResponseChannel(string channel) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.ControlResponseStreamId() -> int +Adaptive.Archiver.AeronArchive.Context.ControlResponseStreamId(int streamId) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.ControlTermBufferLength() -> int +Adaptive.Archiver.AeronArchive.Context.ControlTermBufferLength(int controlTermBufferLength) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.ControlTermBufferSparse() -> bool +Adaptive.Archiver.AeronArchive.Context.ControlTermBufferSparse(bool controlTermBufferSparse) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.CredentialsSupplier() -> Adaptive.Aeron.Security.ICredentialsSupplier +Adaptive.Archiver.AeronArchive.Context.CredentialsSupplier(Adaptive.Aeron.Security.ICredentialsSupplier credentialsSupplier) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.Dispose() -> void +Adaptive.Archiver.AeronArchive.Context.ErrorHandler() -> Adaptive.Agrona.IErrorHandler +Adaptive.Archiver.AeronArchive.Context.ErrorHandler(Adaptive.Agrona.IErrorHandler errorHandler) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.IdleStrategy() -> Adaptive.Agrona.Concurrent.IIdleStrategy +Adaptive.Archiver.AeronArchive.Context.IdleStrategy(Adaptive.Agrona.Concurrent.IIdleStrategy idleStrategy) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.Lock() -> Adaptive.Agrona.Concurrent.ILock +Adaptive.Archiver.AeronArchive.Context.Lock(Adaptive.Agrona.Concurrent.ILock lock) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.MessageRetryAttempts() -> int +Adaptive.Archiver.AeronArchive.Context.MessageRetryAttempts(int messageRetryAttempts) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.MessageTimeoutNs() -> long +Adaptive.Archiver.AeronArchive.Context.MessageTimeoutNs(long messageTimeoutNs) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.OwnsAeronClient() -> bool +Adaptive.Archiver.AeronArchive.Context.OwnsAeronClient(bool ownsAeronClient) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.RecordingEventsChannel() -> string +Adaptive.Archiver.AeronArchive.Context.RecordingEventsChannel(string recordingEventsChannel) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.RecordingEventsStreamId() -> int +Adaptive.Archiver.AeronArchive.Context.RecordingEventsStreamId(int recordingEventsStreamId) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.Context.RecordingSignalConsumer() -> Adaptive.Archiver.IRecordingSignalConsumer +Adaptive.Archiver.AeronArchive.Context.RecordingSignalConsumer(Adaptive.Archiver.IRecordingSignalConsumer recordingSignalConsumer) -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.ControlResponsePoller() -> Adaptive.Archiver.ControlResponsePoller +Adaptive.Archiver.AeronArchive.ControlSessionId() -> long +Adaptive.Archiver.AeronArchive.Ctx() -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Archiver.AeronArchive.DeleteDetachedSegments(long recordingId) -> long +Adaptive.Archiver.AeronArchive.DetachSegments(long recordingId, long newStartPosition) -> void +Adaptive.Archiver.AeronArchive.Dispose() -> void +Adaptive.Archiver.AeronArchive.ExtendRecording(long recordingId, string channel, int streamId, Adaptive.Archiver.Codecs.SourceLocation sourceLocation, bool autoStop) -> long +Adaptive.Archiver.AeronArchive.ExtendRecording(long recordingId, string channel, int streamId, Adaptive.Archiver.Codecs.SourceLocation sourceLocation) -> long +Adaptive.Archiver.AeronArchive.FindLastMatchingRecording(long minRecordingId, string channelFragment, int streamId, int sessionId) -> long +Adaptive.Archiver.AeronArchive.GetMaxRecordedPosition(long recordingId) -> long +Adaptive.Archiver.AeronArchive.GetRecordingPosition(long recordingId) -> long +Adaptive.Archiver.AeronArchive.GetStartPosition(long recordingId) -> long +Adaptive.Archiver.AeronArchive.GetStopPosition(long recordingId) -> long +Adaptive.Archiver.AeronArchive.LastCorrelationId() -> long +Adaptive.Archiver.AeronArchive.ListRecording(long recordingId, Adaptive.Archiver.IRecordingDescriptorConsumer consumer) -> int +Adaptive.Archiver.AeronArchive.ListRecordings(long fromRecordingId, int recordCount, Adaptive.Archiver.IRecordingDescriptorConsumer consumer) -> int +Adaptive.Archiver.AeronArchive.ListRecordingsForUri(long fromRecordingId, int recordCount, string channelFragment, int streamId, Adaptive.Archiver.IRecordingDescriptorConsumer consumer) -> int +Adaptive.Archiver.AeronArchive.ListRecordingSubscriptions(int pseudoIndex, int subscriptionCount, string channelFragment, int streamId, bool applyStreamId, Adaptive.Archiver.IRecordingSubscriptionDescriptorConsumer consumer) -> int +Adaptive.Archiver.AeronArchive.MigrateSegments(long srcRecordingId, long dstRecordingId) -> long +Adaptive.Archiver.AeronArchive.PollForErrorResponse() -> string +Adaptive.Archiver.AeronArchive.PollForRecordingSignals() -> int +Adaptive.Archiver.AeronArchive.Proxy() -> Adaptive.Archiver.ArchiveProxy +Adaptive.Archiver.AeronArchive.PurgeRecording(long recordingId) -> long +Adaptive.Archiver.AeronArchive.PurgeSegments(long recordingId, long newStartPosition) -> long +Adaptive.Archiver.AeronArchive.RecordingDescriptorPoller() -> Adaptive.Archiver.RecordingDescriptorPoller +Adaptive.Archiver.AeronArchive.RecordingSubscriptionDescriptorPoller() -> Adaptive.Archiver.RecordingSubscriptionDescriptorPoller +Adaptive.Archiver.AeronArchive.Replay(long recordingId, long position, long length, string replayChannel, int replayStreamId, Adaptive.Aeron.AvailableImageHandler availableImageHandler, Adaptive.Aeron.UnavailableImageHandler unavailableImageHandler) -> Adaptive.Aeron.Subscription +Adaptive.Archiver.AeronArchive.Replay(long recordingId, long position, long length, string replayChannel, int replayStreamId) -> Adaptive.Aeron.Subscription +Adaptive.Archiver.AeronArchive.Replay(long recordingId, string replayChannel, int replayStreamId, Adaptive.Archiver.ReplayParams replayParams) -> Adaptive.Aeron.Subscription +Adaptive.Archiver.AeronArchive.Replicate(long srcRecordingId, int srcControlStreamId, string srcControlChannel, Adaptive.Archiver.ReplicationParams replicationParams) -> long +Adaptive.Archiver.AeronArchive.Replicate(long srcRecordingId, long dstRecordingId, int srcControlStreamId, string srcControlChannel, string liveDestination) -> long +Adaptive.Archiver.AeronArchive.Replicate(long srcRecordingId, long dstRecordingId, long stopPosition, int srcControlStreamId, string srcControlChannel, string liveDestination, string replicationChannel) -> long +Adaptive.Archiver.AeronArchive.StartBoundedReplay(long recordingId, long position, long length, int limitCounterId, string replayChannel, int replayStreamId) -> long +Adaptive.Archiver.AeronArchive.StartRecording(string channel, int streamId, Adaptive.Archiver.Codecs.SourceLocation sourceLocation, bool autoStop) -> long +Adaptive.Archiver.AeronArchive.StartRecording(string channel, int streamId, Adaptive.Archiver.Codecs.SourceLocation sourceLocation) -> long +Adaptive.Archiver.AeronArchive.StartReplay(long recordingId, long position, long length, string replayChannel, int replayStreamId) -> long +Adaptive.Archiver.AeronArchive.StartReplay(long recordingId, string replayChannel, int replayStreamId, Adaptive.Archiver.ReplayParams replayParams) -> long +Adaptive.Archiver.AeronArchive.State() -> Adaptive.Archiver.AeronArchive.ArchiveState +Adaptive.Archiver.AeronArchive.StopAllReplays(long recordingId) -> void +Adaptive.Archiver.AeronArchive.StopRecording(Adaptive.Aeron.Publication publication) -> void +Adaptive.Archiver.AeronArchive.StopRecording(long subscriptionId) -> void +Adaptive.Archiver.AeronArchive.StopRecording(string channel, int streamId) -> void +Adaptive.Archiver.AeronArchive.StopReplay(long replaySessionId) -> void +Adaptive.Archiver.AeronArchive.StopReplication(long replicationId) -> void +Adaptive.Archiver.AeronArchive.TaggedReplicate(long srcRecordingId, long dstRecordingId, long channelTagId, long subscriptionTagId, int srcControlStreamId, string srcControlChannel, string liveDestination) -> long +Adaptive.Archiver.AeronArchive.TaggedReplicate(long srcRecordingId, long dstRecordingId, long stopPosition, long channelTagId, long subscriptionTagId, int srcControlStreamId, string srcControlChannel, string liveDestination, string replicationChannel) -> long +Adaptive.Archiver.AeronArchive.TruncateRecording(long recordingId, long position) -> long +Adaptive.Archiver.AeronArchive.TryStopRecording(long subscriptionId) -> bool +Adaptive.Archiver.AeronArchive.TryStopRecording(string channel, int streamId) -> bool +Adaptive.Archiver.AeronArchive.TryStopRecordingByIdentity(long recordingId) -> bool +Adaptive.Archiver.AeronArchive.TryStopReplication(long replicationId) -> bool +Adaptive.Archiver.AeronArchive.UpdateChannel(long recordingId, string newChannel) -> void +Adaptive.Archiver.ArchiveException +Adaptive.Archiver.ArchiveException.ArchiveException() -> void +Adaptive.Archiver.ArchiveException.ArchiveException(string message, int errorCode, long correlationId, Adaptive.Aeron.Exceptions.Category category) -> void +Adaptive.Archiver.ArchiveException.ArchiveException(string message, int errorCode, long correlationId) -> void +Adaptive.Archiver.ArchiveException.ArchiveException(string message, int errorCode) -> void +Adaptive.Archiver.ArchiveException.ArchiveException(string message, long correlationId, Adaptive.Aeron.Exceptions.Category category) -> void +Adaptive.Archiver.ArchiveException.ArchiveException(string message) -> void +Adaptive.Archiver.ArchiveException.CorrelationId.get -> long +Adaptive.Archiver.ArchiveException.ErrorCode.get -> int +Adaptive.Archiver.ArchiveProxy +Adaptive.Archiver.ArchiveProxy.ArchiveId(long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.ArchiveProxy(Adaptive.Aeron.ExclusivePublication publication, Adaptive.Agrona.Concurrent.IIdleStrategy retryIdleStrategy, Adaptive.Agrona.Concurrent.INanoClock nanoClock, long connectTimeoutNs, int retryAttempts, Adaptive.Aeron.Security.ICredentialsSupplier credentialsSupplier, string clientInfo) -> void +Adaptive.Archiver.ArchiveProxy.ArchiveProxy(Adaptive.Aeron.ExclusivePublication publication, Adaptive.Agrona.Concurrent.IIdleStrategy retryIdleStrategy, Adaptive.Agrona.Concurrent.INanoClock nanoClock, long connectTimeoutNs, int retryAttempts, Adaptive.Aeron.Security.ICredentialsSupplier credentialsSupplier) -> void +Adaptive.Archiver.ArchiveProxy.ArchiveProxy(Adaptive.Aeron.ExclusivePublication publication) -> void +Adaptive.Archiver.ArchiveProxy.AttachSegments(long recordingId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.BoundedReplay(long recordingId, long position, long length, int limitCounterId, string replayChannel, int replayStreamId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.CloseSession(long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.Connect(string responseChannel, int responseStreamId, long correlationId) -> bool +Adaptive.Archiver.ArchiveProxy.DeleteDetachedSegments(long recordingId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.DetachSegments(long recordingId, long newStartPosition, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.ExtendRecording(string channel, int streamId, Adaptive.Archiver.Codecs.SourceLocation sourceLocation, bool autoStop, long recordingId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.ExtendRecording(string channel, int streamId, Adaptive.Archiver.Codecs.SourceLocation sourceLocation, long recordingId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.FindLastMatchingRecording(long minRecordingId, string channelFragment, int streamId, int sessionId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.GetMaxRecordedPosition(long recordingId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.GetRecordingPosition(long recordingId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.GetStartPosition(long recordingId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.GetStopPosition(long recordingId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.KeepAlive(long controlSessionId, long correlationId) -> bool +Adaptive.Archiver.ArchiveProxy.ListRecording(long recordingId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.ListRecordings(long fromRecordingId, int recordCount, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.ListRecordingsForUri(long fromRecordingId, int recordCount, string channelFragment, int streamId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.ListRecordingSubscriptions(int pseudoIndex, int subscriptionCount, string channelFragment, int streamId, bool applyStreamId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.MigrateSegments(long srcRecordingId, long dstRecordingId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.Pub() -> Adaptive.Aeron.Publication +Adaptive.Archiver.ArchiveProxy.PurgeRecording(long recordingId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.PurgeSegments(long recordingId, long newStartPosition, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.Replay(long recordingId, long position, long length, string replayChannel, int replayStreamId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.Replay(long recordingId, string replayChannel, int replayStreamId, Adaptive.Archiver.ReplayParams replayParams, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.Replicate(long srcRecordingId, int srcControlStreamId, string srcControlChannel, Adaptive.Archiver.ReplicationParams replicationParams, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.Replicate(long srcRecordingId, long dstRecordingId, int srcControlStreamId, string srcControlChannel, string liveDestination, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.Replicate(long srcRecordingId, long dstRecordingId, long stopPosition, int srcControlStreamId, string srcControlChannel, string liveDestination, string replicationChannel, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.RequestReplayToken(long lastCorrelationId, long controlSessionId, long recordingId) -> bool +Adaptive.Archiver.ArchiveProxy.StartRecording(string channel, int streamId, Adaptive.Archiver.Codecs.SourceLocation sourceLocation, bool autoStop, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.StartRecording(string channel, int streamId, Adaptive.Archiver.Codecs.SourceLocation sourceLocation, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.StopAllReplays(long recordingId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.StopRecording(long subscriptionId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.StopRecording(string channel, int streamId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.StopRecordingByIdentity(long recordingId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.StopReplay(long replaySessionId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.StopReplication(long replicationId, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.TaggedReplicate(long srcRecordingId, long dstRecordingId, long channelTagId, long subscriptionTagId, int srcControlStreamId, string srcControlChannel, string liveDestination, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.TaggedReplicate(long srcRecordingId, long dstRecordingId, long stopPosition, long channelTagId, long subscriptionTagId, int srcControlStreamId, string srcControlChannel, string liveDestination, string replicationChannel, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.TruncateRecording(long recordingId, long position, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.TryChallengeResponse(byte[] encodedCredentials, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.ArchiveProxy.TryConnect(string responseChannel, int responseStreamId, long correlationId) -> bool +Adaptive.Archiver.ArchiveProxy.UpdateChannel(long recordingId, string channel, long correlationId, long controlSessionId) -> bool +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.ArchiveIdRequestDecoder() -> void +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.ArchiveIdRequestEncoder() -> void +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder +Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.AttachSegmentsRequestDecoder() -> void +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.AttachSegmentsRequestEncoder() -> void +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder +Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.AuthConnectRequestDecoder() -> void +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ClientInfo() -> string +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ClientInfoLength() -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.EncodedCredentialsLength() -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.GetClientInfo(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.GetClientInfo(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.GetEncodedCredentials(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.GetEncodedCredentials(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.GetResponseChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.GetResponseChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseChannel() -> string +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseChannelLength() -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseStreamId() -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.Version() -> int +Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.AuthConnectRequestDecoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.AuthConnectRequestEncoder() -> void +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ClientInfo(string value) -> Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.PutClientInfo(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.PutClientInfo(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.PutEncodedCredentials(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.PutEncodedCredentials(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.PutResponseChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.PutResponseChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ResponseChannel(string value) -> Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ResponseStreamId(int value) -> Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.Version(int value) -> Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.AuthConnectRequestEncoder +Adaptive.Archiver.Codecs.BooleanType +Adaptive.Archiver.Codecs.BooleanType.FALSE = 0 -> Adaptive.Archiver.Codecs.BooleanType +Adaptive.Archiver.Codecs.BooleanType.NULL_VALUE = -2147483648 -> Adaptive.Archiver.Codecs.BooleanType +Adaptive.Archiver.Codecs.BooleanType.TRUE = 1 -> Adaptive.Archiver.Codecs.BooleanType +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.BoundedReplayRequestDecoder() -> void +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.FileIoMaxLength() -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.GetReplayChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.GetReplayChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.Length() -> long +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LimitCounterId() -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.Position() -> long +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayChannel() -> string +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayChannelLength() -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayStreamId() -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayToken() -> long +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.BoundedReplayRequestEncoder() -> void +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.FileIoMaxLength(int value) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.Length(long value) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.LimitCounterId(int value) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.Position(long value) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.PutReplayChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.PutReplayChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayChannel(string value) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayStreamId(int value) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayToken(long value) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder +Adaptive.Archiver.Codecs.CatalogHeaderDecoder +Adaptive.Archiver.Codecs.CatalogHeaderDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.CatalogHeaderDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.CatalogHeaderDecoder._limit -> int +Adaptive.Archiver.Codecs.CatalogHeaderDecoder._offset -> int +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.Alignment() -> int +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.CatalogHeaderDecoder() -> void +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.Length() -> int +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.Limit() -> int +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.NextRecordingId() -> long +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.Offset() -> int +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.Reserved() -> sbyte +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.Version() -> int +Adaptive.Archiver.Codecs.CatalogHeaderDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.CatalogHeaderDecoder +Adaptive.Archiver.Codecs.CatalogHeaderEncoder +Adaptive.Archiver.Codecs.CatalogHeaderEncoder._limit -> int +Adaptive.Archiver.Codecs.CatalogHeaderEncoder._offset -> int +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.Alignment(int value) -> Adaptive.Archiver.Codecs.CatalogHeaderEncoder +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.CatalogHeaderEncoder() -> void +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.Length(int value) -> Adaptive.Archiver.Codecs.CatalogHeaderEncoder +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.Limit() -> int +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.NextRecordingId(long value) -> Adaptive.Archiver.Codecs.CatalogHeaderEncoder +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.Offset() -> int +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.Reserved(sbyte value) -> Adaptive.Archiver.Codecs.CatalogHeaderEncoder +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.Version(int value) -> Adaptive.Archiver.Codecs.CatalogHeaderEncoder +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.CatalogHeaderEncoder +Adaptive.Archiver.Codecs.CatalogHeaderEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.CatalogHeaderEncoder +Adaptive.Archiver.Codecs.ChallengeDecoder +Adaptive.Archiver.Codecs.ChallengeDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ChallengeDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.ChallengeDecoder._limit -> int +Adaptive.Archiver.Codecs.ChallengeDecoder._offset -> int +Adaptive.Archiver.Codecs.ChallengeDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ChallengeDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ChallengeDecoder.ChallengeDecoder() -> void +Adaptive.Archiver.Codecs.ChallengeDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ChallengeDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ChallengeDecoder.EncodedChallengeLength() -> int +Adaptive.Archiver.Codecs.ChallengeDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ChallengeDecoder.GetEncodedChallenge(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ChallengeDecoder.GetEncodedChallenge(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ChallengeDecoder.Limit() -> int +Adaptive.Archiver.Codecs.ChallengeDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ChallengeDecoder.Offset() -> int +Adaptive.Archiver.Codecs.ChallengeDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ChallengeDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ChallengeDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ChallengeDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ChallengeDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ChallengeDecoder.Version() -> int +Adaptive.Archiver.Codecs.ChallengeDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ChallengeDecoder +Adaptive.Archiver.Codecs.ChallengeEncoder +Adaptive.Archiver.Codecs.ChallengeEncoder._limit -> int +Adaptive.Archiver.Codecs.ChallengeEncoder._offset -> int +Adaptive.Archiver.Codecs.ChallengeEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ChallengeEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ChallengeEncoder.ChallengeEncoder() -> void +Adaptive.Archiver.Codecs.ChallengeEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ChallengeEncoder +Adaptive.Archiver.Codecs.ChallengeEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ChallengeEncoder +Adaptive.Archiver.Codecs.ChallengeEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ChallengeEncoder.Limit() -> int +Adaptive.Archiver.Codecs.ChallengeEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ChallengeEncoder.Offset() -> int +Adaptive.Archiver.Codecs.ChallengeEncoder.PutEncodedChallenge(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ChallengeEncoder +Adaptive.Archiver.Codecs.ChallengeEncoder.PutEncodedChallenge(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ChallengeEncoder +Adaptive.Archiver.Codecs.ChallengeEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ChallengeEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ChallengeEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ChallengeEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ChallengeEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ChallengeEncoder.Version(int value) -> Adaptive.Archiver.Codecs.ChallengeEncoder +Adaptive.Archiver.Codecs.ChallengeEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ChallengeEncoder +Adaptive.Archiver.Codecs.ChallengeEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ChallengeEncoder +Adaptive.Archiver.Codecs.ChallengeResponseDecoder +Adaptive.Archiver.Codecs.ChallengeResponseDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ChallengeResponseDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.ChallengeResponseDecoder._limit -> int +Adaptive.Archiver.Codecs.ChallengeResponseDecoder._offset -> int +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.ChallengeResponseDecoder() -> void +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.EncodedCredentialsLength() -> int +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.GetEncodedCredentials(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.GetEncodedCredentials(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.Limit() -> int +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.Offset() -> int +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ChallengeResponseDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ChallengeResponseDecoder +Adaptive.Archiver.Codecs.ChallengeResponseEncoder +Adaptive.Archiver.Codecs.ChallengeResponseEncoder._limit -> int +Adaptive.Archiver.Codecs.ChallengeResponseEncoder._offset -> int +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.ChallengeResponseEncoder() -> void +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ChallengeResponseEncoder +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ChallengeResponseEncoder +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.Limit() -> int +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.Offset() -> int +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.PutEncodedCredentials(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ChallengeResponseEncoder +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.PutEncodedCredentials(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ChallengeResponseEncoder +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ChallengeResponseEncoder +Adaptive.Archiver.Codecs.ChallengeResponseEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ChallengeResponseEncoder +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.CloseSessionRequestDecoder() -> void +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.CloseSessionRequestDecoder +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.CloseSessionRequestEncoder() -> void +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.CloseSessionRequestEncoder +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.CloseSessionRequestEncoder +Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.CloseSessionRequestEncoder +Adaptive.Archiver.Codecs.ConnectRequestDecoder +Adaptive.Archiver.Codecs.ConnectRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ConnectRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.ConnectRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.ConnectRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.ConnectRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ConnectRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ConnectRequestDecoder.ConnectRequestDecoder() -> void +Adaptive.Archiver.Codecs.ConnectRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ConnectRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ConnectRequestDecoder.GetResponseChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ConnectRequestDecoder.GetResponseChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ConnectRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.ConnectRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ConnectRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseChannel() -> string +Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseChannelLength() -> int +Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseStreamId() -> int +Adaptive.Archiver.Codecs.ConnectRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ConnectRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ConnectRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ConnectRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ConnectRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ConnectRequestDecoder.Version() -> int +Adaptive.Archiver.Codecs.ConnectRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ConnectRequestDecoder +Adaptive.Archiver.Codecs.ConnectRequestEncoder +Adaptive.Archiver.Codecs.ConnectRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.ConnectRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.ConnectRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ConnectRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ConnectRequestEncoder.ConnectRequestEncoder() -> void +Adaptive.Archiver.Codecs.ConnectRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ConnectRequestEncoder +Adaptive.Archiver.Codecs.ConnectRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ConnectRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.ConnectRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ConnectRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.ConnectRequestEncoder.PutResponseChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ConnectRequestEncoder +Adaptive.Archiver.Codecs.ConnectRequestEncoder.PutResponseChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ConnectRequestEncoder +Adaptive.Archiver.Codecs.ConnectRequestEncoder.ResponseChannel(string value) -> Adaptive.Archiver.Codecs.ConnectRequestEncoder +Adaptive.Archiver.Codecs.ConnectRequestEncoder.ResponseStreamId(int value) -> Adaptive.Archiver.Codecs.ConnectRequestEncoder +Adaptive.Archiver.Codecs.ConnectRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ConnectRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ConnectRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ConnectRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ConnectRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ConnectRequestEncoder.Version(int value) -> Adaptive.Archiver.Codecs.ConnectRequestEncoder +Adaptive.Archiver.Codecs.ConnectRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ConnectRequestEncoder +Adaptive.Archiver.Codecs.ConnectRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ConnectRequestEncoder +Adaptive.Archiver.Codecs.ControlResponseCode +Adaptive.Archiver.Codecs.ControlResponseCode.ERROR = 1 -> Adaptive.Archiver.Codecs.ControlResponseCode +Adaptive.Archiver.Codecs.ControlResponseCode.NULL_VALUE = -2147483648 -> Adaptive.Archiver.Codecs.ControlResponseCode +Adaptive.Archiver.Codecs.ControlResponseCode.OK = 0 -> Adaptive.Archiver.Codecs.ControlResponseCode +Adaptive.Archiver.Codecs.ControlResponseCode.RECORDING_UNKNOWN = 2 -> Adaptive.Archiver.Codecs.ControlResponseCode +Adaptive.Archiver.Codecs.ControlResponseCode.SUBSCRIPTION_UNKNOWN = 3 -> Adaptive.Archiver.Codecs.ControlResponseCode +Adaptive.Archiver.Codecs.ControlResponseDecoder +Adaptive.Archiver.Codecs.ControlResponseDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ControlResponseDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.ControlResponseDecoder._limit -> int +Adaptive.Archiver.Codecs.ControlResponseDecoder._offset -> int +Adaptive.Archiver.Codecs.ControlResponseDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ControlResponseDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ControlResponseDecoder.Code() -> Adaptive.Archiver.Codecs.ControlResponseCode +Adaptive.Archiver.Codecs.ControlResponseDecoder.ControlResponseDecoder() -> void +Adaptive.Archiver.Codecs.ControlResponseDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ControlResponseDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ControlResponseDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ControlResponseDecoder.ErrorMessage() -> string +Adaptive.Archiver.Codecs.ControlResponseDecoder.ErrorMessageLength() -> int +Adaptive.Archiver.Codecs.ControlResponseDecoder.GetErrorMessage(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ControlResponseDecoder.GetErrorMessage(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ControlResponseDecoder.Limit() -> int +Adaptive.Archiver.Codecs.ControlResponseDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ControlResponseDecoder.Offset() -> int +Adaptive.Archiver.Codecs.ControlResponseDecoder.RelevantId() -> long +Adaptive.Archiver.Codecs.ControlResponseDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ControlResponseDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ControlResponseDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ControlResponseDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ControlResponseDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ControlResponseDecoder.Version() -> int +Adaptive.Archiver.Codecs.ControlResponseDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ControlResponseDecoder +Adaptive.Archiver.Codecs.ControlResponseEncoder +Adaptive.Archiver.Codecs.ControlResponseEncoder._limit -> int +Adaptive.Archiver.Codecs.ControlResponseEncoder._offset -> int +Adaptive.Archiver.Codecs.ControlResponseEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ControlResponseEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ControlResponseEncoder.Code(Adaptive.Archiver.Codecs.ControlResponseCode value) -> Adaptive.Archiver.Codecs.ControlResponseEncoder +Adaptive.Archiver.Codecs.ControlResponseEncoder.ControlResponseEncoder() -> void +Adaptive.Archiver.Codecs.ControlResponseEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ControlResponseEncoder +Adaptive.Archiver.Codecs.ControlResponseEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ControlResponseEncoder +Adaptive.Archiver.Codecs.ControlResponseEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ControlResponseEncoder.ErrorMessage(string value) -> Adaptive.Archiver.Codecs.ControlResponseEncoder +Adaptive.Archiver.Codecs.ControlResponseEncoder.Limit() -> int +Adaptive.Archiver.Codecs.ControlResponseEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ControlResponseEncoder.Offset() -> int +Adaptive.Archiver.Codecs.ControlResponseEncoder.PutErrorMessage(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ControlResponseEncoder +Adaptive.Archiver.Codecs.ControlResponseEncoder.PutErrorMessage(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ControlResponseEncoder +Adaptive.Archiver.Codecs.ControlResponseEncoder.RelevantId(long value) -> Adaptive.Archiver.Codecs.ControlResponseEncoder +Adaptive.Archiver.Codecs.ControlResponseEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ControlResponseEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ControlResponseEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ControlResponseEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ControlResponseEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ControlResponseEncoder.Version(int value) -> Adaptive.Archiver.Codecs.ControlResponseEncoder +Adaptive.Archiver.Codecs.ControlResponseEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ControlResponseEncoder +Adaptive.Archiver.Codecs.ControlResponseEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ControlResponseEncoder +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.DeleteDetachedSegmentsRequestDecoder() -> void +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.DeleteDetachedSegmentsRequestEncoder() -> void +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder +Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.DetachSegmentsRequestDecoder() -> void +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.NewStartPosition() -> long +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.DetachSegmentsRequestEncoder() -> void +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.NewStartPosition(long value) -> Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder +Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder._actingVersion -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder._limit -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder._offset -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.AutoStop() -> Adaptive.Archiver.Codecs.BooleanType +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.Channel() -> string +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ChannelLength() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ExtendRecordingRequest2Decoder() -> void +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.GetChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.GetChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.Limit() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.Offset() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.RecordingId() -> long +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.SourceLocation() -> Adaptive.Archiver.Codecs.SourceLocation +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.StreamId() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder._limit -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder._offset -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.AutoStop(Adaptive.Archiver.Codecs.BooleanType value) -> Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.Channel(string value) -> Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.ExtendRecordingRequest2Encoder() -> void +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.Limit() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.Offset() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.PutChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.PutChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.SourceLocation(Adaptive.Archiver.Codecs.SourceLocation value) -> Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.StreamId(int value) -> Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder +Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.Channel() -> string +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ChannelLength() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ExtendRecordingRequestDecoder() -> void +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.GetChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.GetChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.SourceLocation() -> Adaptive.Archiver.Codecs.SourceLocation +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.StreamId() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.Channel(string value) -> Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.ExtendRecordingRequestEncoder() -> void +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.PutChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.PutChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.SourceLocation(Adaptive.Archiver.Codecs.SourceLocation value) -> Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.StreamId(int value) -> Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder +Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.Channel() -> string +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ChannelLength() -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.FindLastMatchingRecordingRequestDecoder() -> void +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.GetChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.GetChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.MinRecordingId() -> long +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SessionId() -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.StreamId() -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.Channel(string value) -> Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.FindLastMatchingRecordingRequestEncoder() -> void +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.MinRecordingId(long value) -> Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.PutChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.PutChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.SessionId(int value) -> Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.StreamId(int value) -> Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder +Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.KeepAliveRequestDecoder() -> void +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.KeepAliveRequestDecoder +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.KeepAliveRequestEncoder +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.KeepAliveRequestEncoder +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.KeepAliveRequestEncoder() -> void +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.KeepAliveRequestEncoder +Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.KeepAliveRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.ListRecordingRequestDecoder() -> void +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ListRecordingRequestDecoder +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ListRecordingRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ListRecordingRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.ListRecordingRequestEncoder() -> void +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.ListRecordingRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ListRecordingRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ListRecordingRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.Channel() -> string +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ChannelLength() -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.FromRecordingId() -> long +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.GetChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.GetChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ListRecordingsForUriRequestDecoder() -> void +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.RecordCount() -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.StreamId() -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.Channel(string value) -> Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.FromRecordingId(long value) -> Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.ListRecordingsForUriRequestEncoder() -> void +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.PutChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.PutChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.RecordCount(int value) -> Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.StreamId(int value) -> Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.FromRecordingId() -> long +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.ListRecordingsRequestDecoder() -> void +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.RecordCount() -> int +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.FromRecordingId(long value) -> Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.ListRecordingsRequestEncoder() -> void +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.RecordCount(int value) -> Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ApplyStreamId() -> Adaptive.Archiver.Codecs.BooleanType +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.Channel() -> string +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ChannelLength() -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.GetChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.GetChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ListRecordingSubscriptionsRequestDecoder() -> void +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.PseudoIndex() -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.StreamId() -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SubscriptionCount() -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ApplyStreamId(Adaptive.Archiver.Codecs.BooleanType value) -> Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.Channel(string value) -> Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ListRecordingSubscriptionsRequestEncoder() -> void +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.PseudoIndex(int value) -> Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.PutChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.PutChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.StreamId(int value) -> Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.SubscriptionCount(int value) -> Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder +Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.MaxRecordedPositionRequestDecoder() -> void +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.MaxRecordedPositionRequestEncoder() -> void +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder +Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder +Adaptive.Archiver.Codecs.MessageHeaderDecoder +Adaptive.Archiver.Codecs.MessageHeaderDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.MessageHeaderDecoder.BlockLength() -> ushort +Adaptive.Archiver.Codecs.MessageHeaderDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.MessageHeaderDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.MessageHeaderDecoder.MessageHeaderDecoder() -> void +Adaptive.Archiver.Codecs.MessageHeaderDecoder.Offset() -> int +Adaptive.Archiver.Codecs.MessageHeaderDecoder.SchemaId() -> ushort +Adaptive.Archiver.Codecs.MessageHeaderDecoder.TemplateId() -> ushort +Adaptive.Archiver.Codecs.MessageHeaderDecoder.Version() -> ushort +Adaptive.Archiver.Codecs.MessageHeaderDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.MessageHeaderDecoder +Adaptive.Archiver.Codecs.MessageHeaderEncoder +Adaptive.Archiver.Codecs.MessageHeaderEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.MessageHeaderEncoder.BlockLength(ushort value) -> Adaptive.Archiver.Codecs.MessageHeaderEncoder +Adaptive.Archiver.Codecs.MessageHeaderEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.MessageHeaderEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.MessageHeaderEncoder.MessageHeaderEncoder() -> void +Adaptive.Archiver.Codecs.MessageHeaderEncoder.Offset() -> int +Adaptive.Archiver.Codecs.MessageHeaderEncoder.SchemaId(ushort value) -> Adaptive.Archiver.Codecs.MessageHeaderEncoder +Adaptive.Archiver.Codecs.MessageHeaderEncoder.TemplateId(ushort value) -> Adaptive.Archiver.Codecs.MessageHeaderEncoder +Adaptive.Archiver.Codecs.MessageHeaderEncoder.Version(ushort value) -> Adaptive.Archiver.Codecs.MessageHeaderEncoder +Adaptive.Archiver.Codecs.MessageHeaderEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.MessageHeaderEncoder +Adaptive.Archiver.Codecs.MetaAttribute +Adaptive.Archiver.Codecs.MetaAttribute.EPOCH = 0 -> Adaptive.Archiver.Codecs.MetaAttribute +Adaptive.Archiver.Codecs.MetaAttribute.PRESENCE = 3 -> Adaptive.Archiver.Codecs.MetaAttribute +Adaptive.Archiver.Codecs.MetaAttribute.SEMANTIC_TYPE = 2 -> Adaptive.Archiver.Codecs.MetaAttribute +Adaptive.Archiver.Codecs.MetaAttribute.TIME_UNIT = 1 -> Adaptive.Archiver.Codecs.MetaAttribute +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.DstRecordingId() -> long +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.MigrateSegmentsRequestDecoder() -> void +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SrcRecordingId() -> long +Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.DstRecordingId(long value) -> Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.MigrateSegmentsRequestEncoder() -> void +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.SrcRecordingId(long value) -> Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder +Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder +Adaptive.Archiver.Codecs.PingDecoder +Adaptive.Archiver.Codecs.PingDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.PingDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.PingDecoder._limit -> int +Adaptive.Archiver.Codecs.PingDecoder._offset -> int +Adaptive.Archiver.Codecs.PingDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.PingDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.PingDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.PingDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.PingDecoder.Limit() -> int +Adaptive.Archiver.Codecs.PingDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.PingDecoder.Offset() -> int +Adaptive.Archiver.Codecs.PingDecoder.PingDecoder() -> void +Adaptive.Archiver.Codecs.PingDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.PingDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.PingDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.PingDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.PingDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.PingDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.PingDecoder +Adaptive.Archiver.Codecs.PingEncoder +Adaptive.Archiver.Codecs.PingEncoder._limit -> int +Adaptive.Archiver.Codecs.PingEncoder._offset -> int +Adaptive.Archiver.Codecs.PingEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.PingEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.PingEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.PingEncoder +Adaptive.Archiver.Codecs.PingEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.PingEncoder.Limit() -> int +Adaptive.Archiver.Codecs.PingEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.PingEncoder.Offset() -> int +Adaptive.Archiver.Codecs.PingEncoder.PingEncoder() -> void +Adaptive.Archiver.Codecs.PingEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.PingEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.PingEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.PingEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.PingEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.PingEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.PingEncoder +Adaptive.Archiver.Codecs.PingEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.PingEncoder +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.PurgeRecordingRequestDecoder() -> void +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.PurgeRecordingRequestEncoder() -> void +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder +Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.NewStartPosition() -> long +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.PurgeSegmentsRequestDecoder() -> void +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.NewStartPosition(long value) -> Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.PurgeSegmentsRequestEncoder() -> void +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder +Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder._limit -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder._offset -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.GetOriginalChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.GetOriginalChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.GetSourceIdentity(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.GetSourceIdentity(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.GetStrippedChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.GetStrippedChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.InitialTermId() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.MtuLength() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.OriginalChannel() -> string +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.OriginalChannelLength() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.RecordingDescriptorDecoder() -> void +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SegmentFileLength() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SessionId() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SourceIdentity() -> string +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SourceIdentityLength() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartPosition() -> long +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartTimestamp() -> long +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopPosition() -> long +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopTimestamp() -> long +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StreamId() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StrippedChannel() -> string +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StrippedChannelLength() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.TermBufferLength() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.RecordingDescriptorDecoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder._limit -> int +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder._offset -> int +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.InitialTermId(int value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.MtuLength(int value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.OriginalChannel(string value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.PutOriginalChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.PutOriginalChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.PutSourceIdentity(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.PutSourceIdentity(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.PutStrippedChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.PutStrippedChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.RecordingDescriptorEncoder() -> void +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SegmentFileLength(int value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SessionId(int value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SourceIdentity(string value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StartPosition(long value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StartTimestamp(long value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StopPosition(long value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StopTimestamp(long value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StreamId(int value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StrippedChannel(string value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.TermBufferLength(int value) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.RecordingDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder._limit -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder._offset -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.Checksum() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.Length() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.RecordingDescriptorHeaderDecoder() -> void +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.Reserved() -> sbyte +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.State() -> Adaptive.Archiver.Codecs.RecordingState +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder._limit -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder._offset -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.Checksum(int value) -> Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.Length(int value) -> Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.RecordingDescriptorHeaderEncoder() -> void +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.Reserved(sbyte value) -> Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.State(Adaptive.Archiver.Codecs.RecordingState value) -> Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder +Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.RecordingPositionRequestDecoder() -> void +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.RecordingPositionRequestEncoder() -> void +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder +Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder +Adaptive.Archiver.Codecs.RecordingProgressDecoder +Adaptive.Archiver.Codecs.RecordingProgressDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.RecordingProgressDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.RecordingProgressDecoder._limit -> int +Adaptive.Archiver.Codecs.RecordingProgressDecoder._offset -> int +Adaptive.Archiver.Codecs.RecordingProgressDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingProgressDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.RecordingProgressDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingProgressDecoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingProgressDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingProgressDecoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingProgressDecoder.Position() -> long +Adaptive.Archiver.Codecs.RecordingProgressDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.RecordingProgressDecoder.RecordingProgressDecoder() -> void +Adaptive.Archiver.Codecs.RecordingProgressDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingProgressDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingProgressDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingProgressDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingProgressDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingProgressDecoder.StartPosition() -> long +Adaptive.Archiver.Codecs.RecordingProgressDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.RecordingProgressDecoder +Adaptive.Archiver.Codecs.RecordingProgressEncoder +Adaptive.Archiver.Codecs.RecordingProgressEncoder._limit -> int +Adaptive.Archiver.Codecs.RecordingProgressEncoder._offset -> int +Adaptive.Archiver.Codecs.RecordingProgressEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingProgressEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.RecordingProgressEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingProgressEncoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingProgressEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingProgressEncoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingProgressEncoder.Position(long value) -> Adaptive.Archiver.Codecs.RecordingProgressEncoder +Adaptive.Archiver.Codecs.RecordingProgressEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.RecordingProgressEncoder +Adaptive.Archiver.Codecs.RecordingProgressEncoder.RecordingProgressEncoder() -> void +Adaptive.Archiver.Codecs.RecordingProgressEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingProgressEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingProgressEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingProgressEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingProgressEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingProgressEncoder.StartPosition(long value) -> Adaptive.Archiver.Codecs.RecordingProgressEncoder +Adaptive.Archiver.Codecs.RecordingProgressEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.RecordingProgressEncoder +Adaptive.Archiver.Codecs.RecordingProgressEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.RecordingProgressEncoder +Adaptive.Archiver.Codecs.RecordingSignal +Adaptive.Archiver.Codecs.RecordingSignal.DELETE = 6 -> Adaptive.Archiver.Codecs.RecordingSignal +Adaptive.Archiver.Codecs.RecordingSignal.EXTEND = 2 -> Adaptive.Archiver.Codecs.RecordingSignal +Adaptive.Archiver.Codecs.RecordingSignal.MERGE = 4 -> Adaptive.Archiver.Codecs.RecordingSignal +Adaptive.Archiver.Codecs.RecordingSignal.NULL_VALUE = -2147483648 -> Adaptive.Archiver.Codecs.RecordingSignal +Adaptive.Archiver.Codecs.RecordingSignal.REPLICATE = 3 -> Adaptive.Archiver.Codecs.RecordingSignal +Adaptive.Archiver.Codecs.RecordingSignal.REPLICATE_END = 7 -> Adaptive.Archiver.Codecs.RecordingSignal +Adaptive.Archiver.Codecs.RecordingSignal.START = 0 -> Adaptive.Archiver.Codecs.RecordingSignal +Adaptive.Archiver.Codecs.RecordingSignal.STOP = 1 -> Adaptive.Archiver.Codecs.RecordingSignal +Adaptive.Archiver.Codecs.RecordingSignal.SYNC = 5 -> Adaptive.Archiver.Codecs.RecordingSignal +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder._limit -> int +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder._offset -> int +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.Position() -> long +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.RecordingSignalEventDecoder() -> void +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.Signal() -> Adaptive.Archiver.Codecs.RecordingSignal +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SubscriptionId() -> long +Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.RecordingSignalEventDecoder +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder._limit -> int +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder._offset -> int +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.RecordingSignalEventEncoder +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.RecordingSignalEventEncoder +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.Position(long value) -> Adaptive.Archiver.Codecs.RecordingSignalEventEncoder +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.RecordingSignalEventEncoder +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.RecordingSignalEventEncoder() -> void +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.Signal(Adaptive.Archiver.Codecs.RecordingSignal value) -> Adaptive.Archiver.Codecs.RecordingSignalEventEncoder +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SubscriptionId(long value) -> Adaptive.Archiver.Codecs.RecordingSignalEventEncoder +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.RecordingSignalEventEncoder +Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.RecordingSignalEventEncoder +Adaptive.Archiver.Codecs.RecordingStartedDecoder +Adaptive.Archiver.Codecs.RecordingStartedDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder._limit -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder._offset -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingStartedDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.RecordingStartedDecoder.Channel() -> string +Adaptive.Archiver.Codecs.RecordingStartedDecoder.ChannelLength() -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder.GetChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder.GetChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder.GetSourceIdentity(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder.GetSourceIdentity(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingStartedDecoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.RecordingStartedDecoder.RecordingStartedDecoder() -> void +Adaptive.Archiver.Codecs.RecordingStartedDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingStartedDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingStartedDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingStartedDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingStartedDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingStartedDecoder.SessionId() -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder.SourceIdentity() -> string +Adaptive.Archiver.Codecs.RecordingStartedDecoder.SourceIdentityLength() -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder.StartPosition() -> long +Adaptive.Archiver.Codecs.RecordingStartedDecoder.StreamId() -> int +Adaptive.Archiver.Codecs.RecordingStartedDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.RecordingStartedDecoder +Adaptive.Archiver.Codecs.RecordingStartedEncoder +Adaptive.Archiver.Codecs.RecordingStartedEncoder._limit -> int +Adaptive.Archiver.Codecs.RecordingStartedEncoder._offset -> int +Adaptive.Archiver.Codecs.RecordingStartedEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingStartedEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.RecordingStartedEncoder.Channel(string value) -> Adaptive.Archiver.Codecs.RecordingStartedEncoder +Adaptive.Archiver.Codecs.RecordingStartedEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingStartedEncoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingStartedEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingStartedEncoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingStartedEncoder.PutChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.RecordingStartedEncoder +Adaptive.Archiver.Codecs.RecordingStartedEncoder.PutChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.RecordingStartedEncoder +Adaptive.Archiver.Codecs.RecordingStartedEncoder.PutSourceIdentity(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.RecordingStartedEncoder +Adaptive.Archiver.Codecs.RecordingStartedEncoder.PutSourceIdentity(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.RecordingStartedEncoder +Adaptive.Archiver.Codecs.RecordingStartedEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.RecordingStartedEncoder +Adaptive.Archiver.Codecs.RecordingStartedEncoder.RecordingStartedEncoder() -> void +Adaptive.Archiver.Codecs.RecordingStartedEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingStartedEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingStartedEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingStartedEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingStartedEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingStartedEncoder.SessionId(int value) -> Adaptive.Archiver.Codecs.RecordingStartedEncoder +Adaptive.Archiver.Codecs.RecordingStartedEncoder.SourceIdentity(string value) -> Adaptive.Archiver.Codecs.RecordingStartedEncoder +Adaptive.Archiver.Codecs.RecordingStartedEncoder.StartPosition(long value) -> Adaptive.Archiver.Codecs.RecordingStartedEncoder +Adaptive.Archiver.Codecs.RecordingStartedEncoder.StreamId(int value) -> Adaptive.Archiver.Codecs.RecordingStartedEncoder +Adaptive.Archiver.Codecs.RecordingStartedEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.RecordingStartedEncoder +Adaptive.Archiver.Codecs.RecordingStartedEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.RecordingStartedEncoder +Adaptive.Archiver.Codecs.RecordingState +Adaptive.Archiver.Codecs.RecordingState.DELETED = 2 -> Adaptive.Archiver.Codecs.RecordingState +Adaptive.Archiver.Codecs.RecordingState.INVALID = 0 -> Adaptive.Archiver.Codecs.RecordingState +Adaptive.Archiver.Codecs.RecordingState.NULL_VALUE = -2147483648 -> Adaptive.Archiver.Codecs.RecordingState +Adaptive.Archiver.Codecs.RecordingState.VALID = 1 -> Adaptive.Archiver.Codecs.RecordingState +Adaptive.Archiver.Codecs.RecordingStoppedDecoder +Adaptive.Archiver.Codecs.RecordingStoppedDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.RecordingStoppedDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.RecordingStoppedDecoder._limit -> int +Adaptive.Archiver.Codecs.RecordingStoppedDecoder._offset -> int +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.RecordingStoppedDecoder() -> void +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StartPosition() -> long +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StopPosition() -> long +Adaptive.Archiver.Codecs.RecordingStoppedDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.RecordingStoppedDecoder +Adaptive.Archiver.Codecs.RecordingStoppedEncoder +Adaptive.Archiver.Codecs.RecordingStoppedEncoder._limit -> int +Adaptive.Archiver.Codecs.RecordingStoppedEncoder._offset -> int +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.RecordingStoppedEncoder +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.RecordingStoppedEncoder() -> void +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.StartPosition(long value) -> Adaptive.Archiver.Codecs.RecordingStoppedEncoder +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.StopPosition(long value) -> Adaptive.Archiver.Codecs.RecordingStoppedEncoder +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.RecordingStoppedEncoder +Adaptive.Archiver.Codecs.RecordingStoppedEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.RecordingStoppedEncoder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder._limit -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder._offset -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.GetStrippedChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.GetStrippedChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.RecordingSubscriptionDescriptorDecoder() -> void +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StreamId() -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StrippedChannel() -> string +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StrippedChannelLength() -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SubscriptionId() -> long +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder._limit -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder._offset -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.Limit() -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.Offset() -> int +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.PutStrippedChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.PutStrippedChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.RecordingSubscriptionDescriptorEncoder() -> void +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.StreamId(int value) -> Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.StrippedChannel(string value) -> Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.SubscriptionId(long value) -> Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder +Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder +Adaptive.Archiver.Codecs.ReplayRequestDecoder +Adaptive.Archiver.Codecs.ReplayRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ReplayRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.ReplayRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.ReplayRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.ReplayRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ReplayRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ReplayRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ReplayRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ReplayRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ReplayRequestDecoder.FileIoMaxLength() -> int +Adaptive.Archiver.Codecs.ReplayRequestDecoder.GetReplayChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplayRequestDecoder.GetReplayChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplayRequestDecoder.Length() -> long +Adaptive.Archiver.Codecs.ReplayRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.ReplayRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ReplayRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.ReplayRequestDecoder.Position() -> long +Adaptive.Archiver.Codecs.ReplayRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayChannel() -> string +Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayChannelLength() -> int +Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayRequestDecoder() -> void +Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayStreamId() -> int +Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayToken() -> long +Adaptive.Archiver.Codecs.ReplayRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ReplayRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ReplayRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ReplayRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ReplayRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ReplayRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ReplayRequestDecoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.ReplayRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.ReplayRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ReplayRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ReplayRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ReplayRequestEncoder.FileIoMaxLength(int value) -> Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder.Length(long value) -> Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.ReplayRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ReplayRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.ReplayRequestEncoder.Position(long value) -> Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder.PutReplayChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder.PutReplayChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayChannel(string value) -> Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayRequestEncoder() -> void +Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayStreamId(int value) -> Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayToken(long value) -> Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ReplayRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ReplayRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ReplayRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ReplayRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ReplayRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ReplayRequestEncoder +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.ReplayTokenRequestDecoder() -> void +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.ReplayTokenRequestEncoder() -> void +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder +Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder._actingVersion -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder._limit -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder._offset -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ChannelTagId() -> long +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.DstRecordingId() -> long +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.EncodedCredentialsLength() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.FileIoMaxLength() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.GetEncodedCredentials(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.GetEncodedCredentials(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.GetLiveDestination(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.GetLiveDestination(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.GetReplicationChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.GetReplicationChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.GetSrcControlChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.GetSrcControlChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.GetSrcResponseChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.GetSrcResponseChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.Limit() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.LiveDestination() -> string +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.LiveDestinationLength() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.Offset() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicateRequest2Decoder() -> void +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationChannel() -> string +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationChannelLength() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationSessionId() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlChannel() -> string +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlChannelLength() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlStreamId() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcRecordingId() -> long +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcResponseChannel() -> string +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcResponseChannelLength() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.StopPosition() -> long +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SubscriptionTagId() -> long +Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ReplicateRequest2Decoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder._limit -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder._offset -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ChannelTagId(long value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.DstRecordingId(long value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.FileIoMaxLength(int value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.Limit() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.LiveDestination(string value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.Offset() -> int +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.PutEncodedCredentials(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.PutEncodedCredentials(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.PutLiveDestination(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.PutLiveDestination(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.PutReplicationChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.PutReplicationChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.PutSrcControlChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.PutSrcControlChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.PutSrcResponseChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.PutSrcResponseChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ReplicateRequest2Encoder() -> void +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ReplicationChannel(string value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ReplicationSessionId(int value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcControlChannel(string value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcControlStreamId(int value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcRecordingId(long value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcResponseChannel(string value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.StopPosition(long value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SubscriptionTagId(long value) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ReplicateRequest2Encoder +Adaptive.Archiver.Codecs.ReplicateRequestDecoder +Adaptive.Archiver.Codecs.ReplicateRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.DstRecordingId() -> long +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.GetLiveDestination(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.GetLiveDestination(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.GetSrcControlChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.GetSrcControlChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.LiveDestination() -> string +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.LiveDestinationLength() -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.ReplicateRequestDecoder() -> void +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlChannel() -> string +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlChannelLength() -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlStreamId() -> int +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcRecordingId() -> long +Adaptive.Archiver.Codecs.ReplicateRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.ReplicateRequestDecoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.ReplicateRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.DstRecordingId(long value) -> Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.LiveDestination(string value) -> Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.PutLiveDestination(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.PutLiveDestination(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.PutSrcControlChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.PutSrcControlChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.ReplicateRequestEncoder() -> void +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcControlChannel(string value) -> Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcControlStreamId(int value) -> Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcRecordingId(long value) -> Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.ReplicateRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.ReplicateRequestEncoder +Adaptive.Archiver.Codecs.SourceLocation +Adaptive.Archiver.Codecs.SourceLocation.LOCAL = 0 -> Adaptive.Archiver.Codecs.SourceLocation +Adaptive.Archiver.Codecs.SourceLocation.NULL_VALUE = -2147483648 -> Adaptive.Archiver.Codecs.SourceLocation +Adaptive.Archiver.Codecs.SourceLocation.REMOTE = 1 -> Adaptive.Archiver.Codecs.SourceLocation +Adaptive.Archiver.Codecs.StartPositionRequestDecoder +Adaptive.Archiver.Codecs.StartPositionRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.StartPositionRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.StartPositionRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.StartPositionRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.StartPositionRequestDecoder() -> void +Adaptive.Archiver.Codecs.StartPositionRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.StartPositionRequestDecoder +Adaptive.Archiver.Codecs.StartPositionRequestEncoder +Adaptive.Archiver.Codecs.StartPositionRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.StartPositionRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.StartPositionRequestEncoder +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.StartPositionRequestEncoder +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.StartPositionRequestEncoder +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.StartPositionRequestEncoder() -> void +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.StartPositionRequestEncoder +Adaptive.Archiver.Codecs.StartPositionRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.StartPositionRequestEncoder +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder._actingVersion -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder._limit -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder._offset -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.AutoStop() -> Adaptive.Archiver.Codecs.BooleanType +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.Channel() -> string +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ChannelLength() -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.GetChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.GetChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.Limit() -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.Offset() -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.SourceLocation() -> Adaptive.Archiver.Codecs.SourceLocation +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.StartRecordingRequest2Decoder() -> void +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.StreamId() -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder._limit -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder._offset -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.AutoStop(Adaptive.Archiver.Codecs.BooleanType value) -> Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.Channel(string value) -> Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.Limit() -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.Offset() -> int +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.PutChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.PutChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.SourceLocation(Adaptive.Archiver.Codecs.SourceLocation value) -> Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.StartRecordingRequest2Encoder() -> void +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.StreamId(int value) -> Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder +Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.Channel() -> string +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ChannelLength() -> int +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.GetChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.GetChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.SourceLocation() -> Adaptive.Archiver.Codecs.SourceLocation +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.StartRecordingRequestDecoder() -> void +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.StreamId() -> int +Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.StartRecordingRequestDecoder +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.Channel(string value) -> Adaptive.Archiver.Codecs.StartRecordingRequestEncoder +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.StartRecordingRequestEncoder +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.StartRecordingRequestEncoder +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.PutChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.StartRecordingRequestEncoder +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.PutChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.StartRecordingRequestEncoder +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.SourceLocation(Adaptive.Archiver.Codecs.SourceLocation value) -> Adaptive.Archiver.Codecs.StartRecordingRequestEncoder +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.StartRecordingRequestEncoder() -> void +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.StreamId(int value) -> Adaptive.Archiver.Codecs.StartRecordingRequestEncoder +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.StartRecordingRequestEncoder +Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.StartRecordingRequestEncoder +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.StopAllReplaysRequestDecoder() -> void +Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.StopAllReplaysRequestEncoder() -> void +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder +Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder +Adaptive.Archiver.Codecs.StopPositionRequestDecoder +Adaptive.Archiver.Codecs.StopPositionRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.StopPositionRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.StopPositionRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.StopPositionRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.StopPositionRequestDecoder() -> void +Adaptive.Archiver.Codecs.StopPositionRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.StopPositionRequestDecoder +Adaptive.Archiver.Codecs.StopPositionRequestEncoder +Adaptive.Archiver.Codecs.StopPositionRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.StopPositionRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.StopPositionRequestEncoder +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.StopPositionRequestEncoder +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.StopPositionRequestEncoder +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.StopPositionRequestEncoder() -> void +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.StopPositionRequestEncoder +Adaptive.Archiver.Codecs.StopPositionRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.StopPositionRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.StopRecordingByIdentityRequestDecoder() -> void +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.StopRecordingByIdentityRequestEncoder() -> void +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.Channel() -> string +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ChannelLength() -> int +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.GetChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.GetChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.StopRecordingRequestDecoder() -> void +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.StreamId() -> int +Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.StopRecordingRequestDecoder +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.Channel(string value) -> Adaptive.Archiver.Codecs.StopRecordingRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.StopRecordingRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.StopRecordingRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.PutChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.StopRecordingRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.PutChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.StopRecordingRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.StopRecordingRequestEncoder() -> void +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.StreamId(int value) -> Adaptive.Archiver.Codecs.StopRecordingRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.StopRecordingRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.StopRecordingRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.StopRecordingSubscriptionRequestDecoder() -> void +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SubscriptionId() -> long +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.StopRecordingSubscriptionRequestEncoder() -> void +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.SubscriptionId(long value) -> Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder +Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder +Adaptive.Archiver.Codecs.StopReplayRequestDecoder +Adaptive.Archiver.Codecs.StopReplayRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.StopReplayRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.StopReplayRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.StopReplayRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ReplaySessionId() -> long +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.StopReplayRequestDecoder() -> void +Adaptive.Archiver.Codecs.StopReplayRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.StopReplayRequestDecoder +Adaptive.Archiver.Codecs.StopReplayRequestEncoder +Adaptive.Archiver.Codecs.StopReplayRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.StopReplayRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.StopReplayRequestEncoder +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.StopReplayRequestEncoder +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.ReplaySessionId(long value) -> Adaptive.Archiver.Codecs.StopReplayRequestEncoder +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.StopReplayRequestEncoder() -> void +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.StopReplayRequestEncoder +Adaptive.Archiver.Codecs.StopReplayRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.StopReplayRequestEncoder +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ReplicationId() -> long +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.StopReplicationRequestDecoder() -> void +Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.StopReplicationRequestDecoder +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.StopReplicationRequestEncoder +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.StopReplicationRequestEncoder +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.ReplicationId(long value) -> Adaptive.Archiver.Codecs.StopReplicationRequestEncoder +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.StopReplicationRequestEncoder() -> void +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.StopReplicationRequestEncoder +Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.StopReplicationRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ChannelTagId() -> long +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.DstRecordingId() -> long +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.GetLiveDestination(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.GetLiveDestination(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.GetSrcControlChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.GetSrcControlChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.LiveDestination() -> string +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.LiveDestinationLength() -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlChannel() -> string +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlChannelLength() -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlStreamId() -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcRecordingId() -> long +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SubscriptionTagId() -> long +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.TaggedReplicateRequestDecoder() -> void +Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.ChannelTagId(long value) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.DstRecordingId(long value) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.LiveDestination(string value) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.PutLiveDestination(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.PutLiveDestination(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.PutSrcControlChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.PutSrcControlChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcControlChannel(string value) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcControlStreamId(int value) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcRecordingId(long value) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SubscriptionTagId(long value) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.TaggedReplicateRequestEncoder() -> void +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.Position() -> long +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.TruncateRecordingRequestDecoder() -> void +Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.Position(long value) -> Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.TruncateRecordingRequestEncoder() -> void +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder +Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder._actingBlockLength -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder._actingVersion -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder._limit -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder._offset -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.Channel() -> string +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ChannelLength() -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ControlSessionId() -> long +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.CorrelationId() -> long +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.GetChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.GetChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.Limit() -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.Offset() -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.RecordingId() -> long +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.UpdateChannelRequestDecoder() -> void +Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder._limit -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder._offset -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.Channel(string value) -> Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.ControlSessionId(long value) -> Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.CorrelationId(long value) -> Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.Limit() -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.Limit(int limit) -> void +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.Offset() -> int +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.PutChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.PutChannel(byte[] src, int srcOffset, int length) -> Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.RecordingId(long value) -> Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.SbeSemanticType() -> string +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.UpdateChannelRequestEncoder() -> void +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder +Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Archiver.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder +Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder +Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.Length() -> uint +Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.Offset() -> int +Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.VarAsciiEncodingDecoder() -> void +Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder +Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder +Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.Length(uint value) -> Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder +Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.Offset() -> int +Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.VarAsciiEncodingEncoder() -> void +Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder +Adaptive.Archiver.Codecs.VarDataEncodingDecoder +Adaptive.Archiver.Codecs.VarDataEncodingDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.VarDataEncodingDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Archiver.Codecs.VarDataEncodingDecoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.VarDataEncodingDecoder.Length() -> uint +Adaptive.Archiver.Codecs.VarDataEncodingDecoder.Offset() -> int +Adaptive.Archiver.Codecs.VarDataEncodingDecoder.VarDataEncodingDecoder() -> void +Adaptive.Archiver.Codecs.VarDataEncodingDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.VarDataEncodingDecoder +Adaptive.Archiver.Codecs.VarDataEncodingEncoder +Adaptive.Archiver.Codecs.VarDataEncodingEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Archiver.Codecs.VarDataEncodingEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Archiver.Codecs.VarDataEncodingEncoder.EncodedLength() -> int +Adaptive.Archiver.Codecs.VarDataEncodingEncoder.Length(uint value) -> Adaptive.Archiver.Codecs.VarDataEncodingEncoder +Adaptive.Archiver.Codecs.VarDataEncodingEncoder.Offset() -> int +Adaptive.Archiver.Codecs.VarDataEncodingEncoder.VarDataEncodingEncoder() -> void +Adaptive.Archiver.Codecs.VarDataEncodingEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Archiver.Codecs.VarDataEncodingEncoder +Adaptive.Archiver.ControlResponseAdapter +Adaptive.Archiver.ControlResponseAdapter.ControlResponseAdapter(Adaptive.Archiver.IControlResponseListener controlResponseListener, Adaptive.Aeron.Subscription subscription, int fragmentLimit) -> void +Adaptive.Archiver.ControlResponseAdapter.ControlResponseAdapter(Adaptive.Archiver.IControlResponseListener controlResponseListener, Adaptive.Archiver.IRecordingSignalConsumer recordingSignalConsumer, Adaptive.Aeron.Subscription subscription, int fragmentLimit) -> void +Adaptive.Archiver.ControlResponseAdapter.Poll() -> int +Adaptive.Archiver.ControlResponsePoller +Adaptive.Archiver.ControlResponsePoller.Code() -> Adaptive.Archiver.Codecs.ControlResponseCode +Adaptive.Archiver.ControlResponsePoller.ControlResponsePoller(Adaptive.Aeron.Subscription subscription, int fragmentLimit) -> void +Adaptive.Archiver.ControlResponsePoller.ControlResponsePoller(Adaptive.Aeron.Subscription subscription) -> void +Adaptive.Archiver.ControlResponsePoller.ControlSessionId() -> long +Adaptive.Archiver.ControlResponsePoller.CorrelationId() -> long +Adaptive.Archiver.ControlResponsePoller.EncodedChallenge() -> byte[] +Adaptive.Archiver.ControlResponsePoller.ErrorMessage() -> string +Adaptive.Archiver.ControlResponsePoller.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Archiver.ControlResponsePoller.Poll() -> int +Adaptive.Archiver.ControlResponsePoller.PollComplete.get -> bool +Adaptive.Archiver.ControlResponsePoller.Position() -> long +Adaptive.Archiver.ControlResponsePoller.RecordingId() -> long +Adaptive.Archiver.ControlResponsePoller.RecordingSignal() -> Adaptive.Archiver.Codecs.RecordingSignal +Adaptive.Archiver.ControlResponsePoller.RelevantId() -> long +Adaptive.Archiver.ControlResponsePoller.Subscription() -> Adaptive.Aeron.Subscription +Adaptive.Archiver.ControlResponsePoller.SubscriptionId() -> long +Adaptive.Archiver.ControlResponsePoller.TemplateId() -> int +Adaptive.Archiver.ControlResponsePoller.Version() -> int +Adaptive.Archiver.ControlResponsePoller.WasChallenged() -> bool +Adaptive.Archiver.IControlEventListener +Adaptive.Archiver.IControlEventListener.OnResponse(long controlSessionId, long correlationId, long relevantId, Adaptive.Archiver.Codecs.ControlResponseCode code, string errorMessage) -> void +Adaptive.Archiver.IControlResponseListener +Adaptive.Archiver.IRecordingDescriptorConsumer +Adaptive.Archiver.IRecordingDescriptorConsumer.OnRecordingDescriptor(long controlSessionId, long correlationId, long recordingId, long startTimestamp, long stopTimestamp, long startPosition, long stopPosition, int initialTermId, int segmentFileLength, int termBufferLength, int mtuLength, int sessionId, int streamId, string strippedChannel, string originalChannel, string sourceIdentity) -> void +Adaptive.Archiver.IRecordingEventsListener +Adaptive.Archiver.IRecordingEventsListener.OnProgress(long recordingId, long startPosition, long position) -> void +Adaptive.Archiver.IRecordingEventsListener.OnStart(long recordingId, long startPosition, int sessionId, int streamId, string channel, string sourceIdentity) -> void +Adaptive.Archiver.IRecordingEventsListener.OnStop(long recordingId, long startPosition, long stopPosition) -> void +Adaptive.Archiver.IRecordingSignalConsumer +Adaptive.Archiver.IRecordingSignalConsumer.OnSignal(long controlSessionId, long correlationId, long recordingId, long subscriptionId, long position, Adaptive.Archiver.Codecs.RecordingSignal signal) -> void +Adaptive.Archiver.IRecordingSubscriptionDescriptorConsumer +Adaptive.Archiver.IRecordingSubscriptionDescriptorConsumer.OnSubscriptionDescriptor(long controlSessionId, long correlationId, long subscriptionId, int streamId, string strippedChannel) -> void +Adaptive.Archiver.RecordingDescriptorPoller +Adaptive.Archiver.RecordingDescriptorPoller.ControlSessionId() -> long +Adaptive.Archiver.RecordingDescriptorPoller.IsDispatchComplete() -> bool +Adaptive.Archiver.RecordingDescriptorPoller.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Archiver.RecordingDescriptorPoller.Poll() -> int +Adaptive.Archiver.RecordingDescriptorPoller.RecordingDescriptorPoller(Adaptive.Aeron.Subscription subscription, Adaptive.Agrona.IErrorHandler errorHandler, Adaptive.Archiver.IRecordingSignalConsumer recordingSignalConsumer, long controlSessionId, int fragmentLimit) -> void +Adaptive.Archiver.RecordingDescriptorPoller.RecordingDescriptorPoller(Adaptive.Aeron.Subscription subscription, Adaptive.Agrona.IErrorHandler errorHandler, long controlSessionId, int fragmentLimit) -> void +Adaptive.Archiver.RecordingDescriptorPoller.RemainingRecordCount() -> int +Adaptive.Archiver.RecordingDescriptorPoller.Reset(long correlationId, int recordCount, Adaptive.Archiver.IRecordingDescriptorConsumer consumer) -> void +Adaptive.Archiver.RecordingDescriptorPoller.Subscription() -> Adaptive.Aeron.Subscription +Adaptive.Archiver.RecordingEventsAdapter +Adaptive.Archiver.RecordingEventsAdapter.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> void +Adaptive.Archiver.RecordingEventsAdapter.Poll() -> int +Adaptive.Archiver.RecordingEventsAdapter.RecordingEventsAdapter(Adaptive.Archiver.IRecordingEventsListener listener, Adaptive.Aeron.Subscription subscription, int fragmentLimit) -> void +Adaptive.Archiver.RecordingEventsPoller +Adaptive.Archiver.RecordingEventsPoller.IsPollComplete() -> bool +Adaptive.Archiver.RecordingEventsPoller.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Archiver.RecordingEventsPoller.Poll() -> int +Adaptive.Archiver.RecordingEventsPoller.RecordingEventsPoller(Adaptive.Aeron.Subscription subscription) -> void +Adaptive.Archiver.RecordingEventsPoller.RecordingId() -> long +Adaptive.Archiver.RecordingEventsPoller.RecordingPosition() -> long +Adaptive.Archiver.RecordingEventsPoller.RecordingStartPosition() -> long +Adaptive.Archiver.RecordingEventsPoller.RecordingStopPosition() -> long +Adaptive.Archiver.RecordingEventsPoller.TemplateId() -> int +Adaptive.Archiver.RecordingPos +Adaptive.Archiver.RecordingPos.RecordingPos() -> void +Adaptive.Archiver.RecordingSignalAdapter +Adaptive.Archiver.RecordingSignalAdapter.Done.get -> bool +Adaptive.Archiver.RecordingSignalAdapter.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Archiver.RecordingSignalAdapter.Poll() -> int +Adaptive.Archiver.RecordingSignalAdapter.RecordingSignalAdapter(long controlSessionId, Adaptive.Archiver.IControlEventListener controlEventListener, Adaptive.Archiver.IRecordingSignalConsumer recordingSignalConsumer, Adaptive.Aeron.Subscription subscription, int fragmentLimit) -> void +Adaptive.Archiver.RecordingSignalPoller +Adaptive.Archiver.RecordingSignalPoller.Code() -> Adaptive.Archiver.Codecs.ControlResponseCode +Adaptive.Archiver.RecordingSignalPoller.ControlSessionId() -> long +Adaptive.Archiver.RecordingSignalPoller.CorrelationId() -> long +Adaptive.Archiver.RecordingSignalPoller.ErrorMessage() -> string +Adaptive.Archiver.RecordingSignalPoller.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Archiver.RecordingSignalPoller.Poll() -> int +Adaptive.Archiver.RecordingSignalPoller.PollComplete.get -> bool +Adaptive.Archiver.RecordingSignalPoller.RecordingId() -> long +Adaptive.Archiver.RecordingSignalPoller.RecordingPosition() -> long +Adaptive.Archiver.RecordingSignalPoller.RecordingSignal() -> Adaptive.Archiver.Codecs.RecordingSignal +Adaptive.Archiver.RecordingSignalPoller.RecordingSignalPoller(long controlSessionId, Adaptive.Aeron.Subscription subscription) -> void +Adaptive.Archiver.RecordingSignalPoller.RecordingSubscriptionId() -> long +Adaptive.Archiver.RecordingSignalPoller.RelevantId() -> long +Adaptive.Archiver.RecordingSignalPoller.Subscription() -> Adaptive.Aeron.Subscription +Adaptive.Archiver.RecordingSignalPoller.TemplateId() -> int +Adaptive.Archiver.RecordingSignalPoller.Version() -> int +Adaptive.Archiver.RecordingSubscriptionDescriptorPoller +Adaptive.Archiver.RecordingSubscriptionDescriptorPoller.ControlSessionId() -> long +Adaptive.Archiver.RecordingSubscriptionDescriptorPoller.DispatchComplete.get -> bool +Adaptive.Archiver.RecordingSubscriptionDescriptorPoller.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Archiver.RecordingSubscriptionDescriptorPoller.Poll() -> int +Adaptive.Archiver.RecordingSubscriptionDescriptorPoller.RecordingSubscriptionDescriptorPoller(Adaptive.Aeron.Subscription subscription, Adaptive.Agrona.IErrorHandler errorHandler, Adaptive.Archiver.IRecordingSignalConsumer recordingSignalConsumer, long controlSessionId, int fragmentLimit) -> void +Adaptive.Archiver.RecordingSubscriptionDescriptorPoller.RecordingSubscriptionDescriptorPoller(Adaptive.Aeron.Subscription subscription, Adaptive.Agrona.IErrorHandler errorHandler, long controlSessionId, int fragmentLimit) -> void +Adaptive.Archiver.RecordingSubscriptionDescriptorPoller.RemainingSubscriptionCount() -> int +Adaptive.Archiver.RecordingSubscriptionDescriptorPoller.Reset(long correlationId, int subscriptionCount, Adaptive.Archiver.IRecordingSubscriptionDescriptorConsumer consumer) -> void +Adaptive.Archiver.RecordingSubscriptionDescriptorPoller.Subscription() -> Adaptive.Aeron.Subscription +Adaptive.Archiver.ReplayMerge +Adaptive.Archiver.ReplayMerge.Dispose() -> void +Adaptive.Archiver.ReplayMerge.DoWork() -> int +Adaptive.Archiver.ReplayMerge.HasFailed() -> bool +Adaptive.Archiver.ReplayMerge.Image() -> Adaptive.Aeron.Image +Adaptive.Archiver.ReplayMerge.LiveAdded.get -> bool +Adaptive.Archiver.ReplayMerge.Merged.get -> bool +Adaptive.Archiver.ReplayMerge.Poll(Adaptive.Aeron.LogBuffer.FragmentHandler fragmentHandler, int fragmentLimit) -> int +Adaptive.Archiver.ReplayMerge.ReplayMerge(Adaptive.Aeron.Subscription subscription, Adaptive.Archiver.AeronArchive archive, string replayChannel, string replayDestination, string liveDestination, long recordingId, long startPosition, Adaptive.Agrona.Concurrent.IEpochClock epochClock, long mergeProgressTimeoutMs) -> void +Adaptive.Archiver.ReplayMerge.ReplayMerge(Adaptive.Aeron.Subscription subscription, Adaptive.Archiver.AeronArchive archive, string replayChannel, string replayDestination, string liveDestination, long recordingId, long startPosition) -> void +Adaptive.Archiver.ReplayMerge.Subscription() -> Adaptive.Aeron.Subscription +Adaptive.Archiver.ReplayParams +Adaptive.Archiver.ReplayParams.BoundingLimitCounterId() -> int +Adaptive.Archiver.ReplayParams.BoundingLimitCounterId(int boundingLimitCounterId) -> Adaptive.Archiver.ReplayParams +Adaptive.Archiver.ReplayParams.FileIoMaxLength() -> int +Adaptive.Archiver.ReplayParams.FileIoMaxLength(int fileIoMaxLength) -> Adaptive.Archiver.ReplayParams +Adaptive.Archiver.ReplayParams.IsBounded() -> bool +Adaptive.Archiver.ReplayParams.Length() -> long +Adaptive.Archiver.ReplayParams.Length(long length) -> Adaptive.Archiver.ReplayParams +Adaptive.Archiver.ReplayParams.Position() -> long +Adaptive.Archiver.ReplayParams.Position(long position) -> Adaptive.Archiver.ReplayParams +Adaptive.Archiver.ReplayParams.ReplayParams() -> void +Adaptive.Archiver.ReplayParams.ReplayToken() -> long +Adaptive.Archiver.ReplayParams.ReplayToken(long replayToken) -> Adaptive.Archiver.ReplayParams +Adaptive.Archiver.ReplayParams.Reset() -> Adaptive.Archiver.ReplayParams +Adaptive.Archiver.ReplayParams.SubscriptionRegistrationId() -> long +Adaptive.Archiver.ReplayParams.SubscriptionRegistrationId(long registrationId) -> void +Adaptive.Archiver.ReplicationParams +Adaptive.Archiver.ReplicationParams.ChannelTagId() -> long +Adaptive.Archiver.ReplicationParams.ChannelTagId(long channelTagId) -> Adaptive.Archiver.ReplicationParams +Adaptive.Archiver.ReplicationParams.DstRecordingId() -> long +Adaptive.Archiver.ReplicationParams.DstRecordingId(long dstRecordingId) -> Adaptive.Archiver.ReplicationParams +Adaptive.Archiver.ReplicationParams.EncodedCredentials() -> byte[] +Adaptive.Archiver.ReplicationParams.EncodedCredentials(byte[] encodedCredentials) -> Adaptive.Archiver.ReplicationParams +Adaptive.Archiver.ReplicationParams.FileIoMaxLength() -> int +Adaptive.Archiver.ReplicationParams.FileIoMaxLength(int fileIoMaxLength) -> Adaptive.Archiver.ReplicationParams +Adaptive.Archiver.ReplicationParams.LiveDestination() -> string +Adaptive.Archiver.ReplicationParams.LiveDestination(string liveChannel) -> Adaptive.Archiver.ReplicationParams +Adaptive.Archiver.ReplicationParams.ReplicationChannel() -> string +Adaptive.Archiver.ReplicationParams.ReplicationChannel(string replicationChannel) -> Adaptive.Archiver.ReplicationParams +Adaptive.Archiver.ReplicationParams.ReplicationParams() -> void +Adaptive.Archiver.ReplicationParams.ReplicationSessionId() -> int +Adaptive.Archiver.ReplicationParams.ReplicationSessionId(int replicationSessionId) -> Adaptive.Archiver.ReplicationParams +Adaptive.Archiver.ReplicationParams.Reset() -> Adaptive.Archiver.ReplicationParams +Adaptive.Archiver.ReplicationParams.SrcResponseChannel() -> string +Adaptive.Archiver.ReplicationParams.SrcResponseChannel(string responseChannel) -> Adaptive.Archiver.ReplicationParams +Adaptive.Archiver.ReplicationParams.StopPosition() -> long +Adaptive.Archiver.ReplicationParams.StopPosition(long stopPosition) -> Adaptive.Archiver.ReplicationParams +Adaptive.Archiver.ReplicationParams.SubscriptionTagId() -> long +Adaptive.Archiver.ReplicationParams.SubscriptionTagId(long subscriptionTagId) -> Adaptive.Archiver.ReplicationParams +const Adaptive.Archiver.AeronArchive.Configuration.CLIENT_NAME_PROP_NAME = "aeron.archive.client.name" -> string +const Adaptive.Archiver.AeronArchive.Configuration.CONTROL_CHANNEL_PROP_NAME = "aeron.archive.control.channel" -> string +const Adaptive.Archiver.AeronArchive.Configuration.CONTROL_MTU_LENGTH_DEFAULT = 1408 -> int +const Adaptive.Archiver.AeronArchive.Configuration.CONTROL_MTU_LENGTH_PROP_NAME = "aeron.archive.control.mtu.length" -> string +const Adaptive.Archiver.AeronArchive.Configuration.CONTROL_RESPONSE_CHANNEL_PROP_NAME = "aeron.archive.control.response.channel" -> string +const Adaptive.Archiver.AeronArchive.Configuration.CONTROL_RESPONSE_STREAM_ID_DEFAULT = 20 -> int +const Adaptive.Archiver.AeronArchive.Configuration.CONTROL_RESPONSE_STREAM_ID_PROP_NAME = "aeron.archive.control.response.stream.id" -> string +const Adaptive.Archiver.AeronArchive.Configuration.CONTROL_STREAM_ID_DEFAULT = 10 -> int +const Adaptive.Archiver.AeronArchive.Configuration.CONTROL_STREAM_ID_PROP_NAME = "aeron.archive.control.stream.id" -> string +const Adaptive.Archiver.AeronArchive.Configuration.CONTROL_TERM_BUFFER_LENGTH_DEFAULT = 65536 -> int +const Adaptive.Archiver.AeronArchive.Configuration.CONTROL_TERM_BUFFER_LENGTH_PROP_NAME = "aeron.archive.control.term.buffer.length" -> string +const Adaptive.Archiver.AeronArchive.Configuration.CONTROL_TERM_BUFFER_SPARSE_DEFAULT = true -> bool +const Adaptive.Archiver.AeronArchive.Configuration.CONTROL_TERM_BUFFER_SPARSE_PROP_NAME = "aeron.archive.control.term.buffer.sparse" -> string +const Adaptive.Archiver.AeronArchive.Configuration.LOCAL_CONTROL_CHANNEL_PROP_NAME = "aeron.archive.local.control.channel" -> string +const Adaptive.Archiver.AeronArchive.Configuration.LOCAL_CONTROL_STREAM_ID_DEFAULT = 10 -> int +const Adaptive.Archiver.AeronArchive.Configuration.LOCAL_CONTROL_STREAM_ID_PROP_NAME = "aeron.archive.local.control.stream.id" -> string +const Adaptive.Archiver.AeronArchive.Configuration.MESSAGE_RETRY_ATTEMPTS_DEFAULT = 3 -> int +const Adaptive.Archiver.AeronArchive.Configuration.MESSAGE_RETRY_ATTEMPTS_PROP_NAME = "aeron.archive.message.retry.attempts" -> string +const Adaptive.Archiver.AeronArchive.Configuration.MESSAGE_TIMEOUT_PROP_NAME = "aeron.archive.message.timeout" -> string +const Adaptive.Archiver.AeronArchive.Configuration.PROTOCOL_MAJOR_VERSION = 1 -> int +const Adaptive.Archiver.AeronArchive.Configuration.PROTOCOL_MINOR_VERSION = 12 -> int +const Adaptive.Archiver.AeronArchive.Configuration.PROTOCOL_PATCH_VERSION = 0 -> int +const Adaptive.Archiver.AeronArchive.Configuration.RECORDING_EVENTS_CHANNEL_PROP_NAME = "aeron.archive.recording.events.channel" -> string +const Adaptive.Archiver.AeronArchive.Configuration.RECORDING_EVENTS_ENABLED_DEFAULT = false -> bool +const Adaptive.Archiver.AeronArchive.Configuration.RECORDING_EVENTS_ENABLED_PROP_NAME = "aeron.archive.recording.events.enabled" -> string +const Adaptive.Archiver.AeronArchive.Configuration.RECORDING_EVENTS_STREAM_ID_DEFAULT = 30 -> int +const Adaptive.Archiver.AeronArchive.Configuration.RECORDING_EVENTS_STREAM_ID_PROP_NAME = "aeron.archive.recording.events.stream.id" -> string +const Adaptive.Archiver.AeronArchive.NOT_CONNECTED_MSG = "not connected" -> string +const Adaptive.Archiver.AeronArchive.NULL_LENGTH = -1 -> long +const Adaptive.Archiver.AeronArchive.NULL_POSITION = -1 -> long +const Adaptive.Archiver.AeronArchive.NULL_TIMESTAMP = -1 -> long +const Adaptive.Archiver.AeronArchive.REPLAY_ALL_AND_STOP = -2 -> long +const Adaptive.Archiver.ArchiveException.ACTIVE_LISTING = 1 -> int +const Adaptive.Archiver.ArchiveException.ACTIVE_RECORDING = 2 -> int +const Adaptive.Archiver.ArchiveException.ACTIVE_SUBSCRIPTION = 3 -> int +const Adaptive.Archiver.ArchiveException.AUTHENTICATION_REJECTED = 10 -> int +const Adaptive.Archiver.ArchiveException.EMPTY_RECORDING = 15 -> short +const Adaptive.Archiver.ArchiveException.GENERIC = 0 -> int +const Adaptive.Archiver.ArchiveException.INVALID_EXTENSION = 9 -> int +const Adaptive.Archiver.ArchiveException.MAX_RECORDINGS = 8 -> int +const Adaptive.Archiver.ArchiveException.MAX_REPLAYS = 7 -> int +const Adaptive.Archiver.ArchiveException.REPLICATION_CONNECTION_FAILURE = 14 -> int +const Adaptive.Archiver.ArchiveException.STORAGE_SPACE = 11 -> int +const Adaptive.Archiver.ArchiveException.UNAUTHORISED_ACTION = 13 -> int +const Adaptive.Archiver.ArchiveException.UNKNOWN_RECORDING = 5 -> int +const Adaptive.Archiver.ArchiveException.UNKNOWN_REPLAY = 6 -> int +const Adaptive.Archiver.ArchiveException.UNKNOWN_REPLICATION = 12 -> int +const Adaptive.Archiver.ArchiveException.UNKNOWN_SUBSCRIPTION = 4 -> int +const Adaptive.Archiver.ArchiveProxy.DEFAULT_RETRY_ATTEMPTS = 3 -> int +const Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.TEMPLATE_ID = 68 -> ushort +const Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.TEMPLATE_ID = 68 -> ushort +const Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.TEMPLATE_ID = 56 -> ushort +const Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.TEMPLATE_ID = 56 -> ushort +const Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.TEMPLATE_ID = 58 -> ushort +const Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.TEMPLATE_ID = 58 -> ushort +const Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.BLOCK_LENGTH = 60 -> ushort +const Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.TEMPLATE_ID = 18 -> ushort +const Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.BLOCK_LENGTH = 60 -> ushort +const Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.TEMPLATE_ID = 18 -> ushort +const Adaptive.Archiver.Codecs.CatalogHeaderDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.CatalogHeaderDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.CatalogHeaderDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.CatalogHeaderDecoder.TEMPLATE_ID = 20 -> ushort +const Adaptive.Archiver.Codecs.CatalogHeaderEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.CatalogHeaderEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.CatalogHeaderEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.CatalogHeaderEncoder.TEMPLATE_ID = 20 -> ushort +const Adaptive.Archiver.Codecs.ChallengeDecoder.BLOCK_LENGTH = 20 -> ushort +const Adaptive.Archiver.Codecs.ChallengeDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ChallengeDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ChallengeDecoder.TEMPLATE_ID = 59 -> ushort +const Adaptive.Archiver.Codecs.ChallengeEncoder.BLOCK_LENGTH = 20 -> ushort +const Adaptive.Archiver.Codecs.ChallengeEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ChallengeEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ChallengeEncoder.TEMPLATE_ID = 59 -> ushort +const Adaptive.Archiver.Codecs.ChallengeResponseDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Archiver.Codecs.ChallengeResponseDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ChallengeResponseDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ChallengeResponseDecoder.TEMPLATE_ID = 60 -> ushort +const Adaptive.Archiver.Codecs.ChallengeResponseEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Archiver.Codecs.ChallengeResponseEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ChallengeResponseEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ChallengeResponseEncoder.TEMPLATE_ID = 60 -> ushort +const Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.TEMPLATE_ID = 3 -> ushort +const Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.TEMPLATE_ID = 3 -> ushort +const Adaptive.Archiver.Codecs.ConnectRequestDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Archiver.Codecs.ConnectRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ConnectRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ConnectRequestDecoder.TEMPLATE_ID = 2 -> ushort +const Adaptive.Archiver.Codecs.ConnectRequestEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Archiver.Codecs.ConnectRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ConnectRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ConnectRequestEncoder.TEMPLATE_ID = 2 -> ushort +const Adaptive.Archiver.Codecs.ControlResponseDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.ControlResponseDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ControlResponseDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ControlResponseDecoder.TEMPLATE_ID = 1 -> ushort +const Adaptive.Archiver.Codecs.ControlResponseEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.ControlResponseEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ControlResponseEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ControlResponseEncoder.TEMPLATE_ID = 1 -> ushort +const Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.TEMPLATE_ID = 54 -> ushort +const Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.TEMPLATE_ID = 54 -> ushort +const Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.TEMPLATE_ID = 53 -> ushort +const Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.TEMPLATE_ID = 53 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.BLOCK_LENGTH = 36 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.TEMPLATE_ID = 64 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.BLOCK_LENGTH = 36 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.TEMPLATE_ID = 64 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.TEMPLATE_ID = 11 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.TEMPLATE_ID = 11 -> ushort +const Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.TEMPLATE_ID = 16 -> ushort +const Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.TEMPLATE_ID = 16 -> ushort +const Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.TEMPLATE_ID = 61 -> ushort +const Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.TEMPLATE_ID = 61 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.TEMPLATE_ID = 10 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.TEMPLATE_ID = 10 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.TEMPLATE_ID = 9 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.TEMPLATE_ID = 9 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.BLOCK_LENGTH = 28 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.TEMPLATE_ID = 8 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.BLOCK_LENGTH = 28 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.TEMPLATE_ID = 8 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.TEMPLATE_ID = 17 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.TEMPLATE_ID = 17 -> ushort +const Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.TEMPLATE_ID = 67 -> ushort +const Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.TEMPLATE_ID = 67 -> ushort +const Adaptive.Archiver.Codecs.MessageHeaderDecoder.SCHEMA_ID = 101 -> int +const Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.TEMPLATE_ID = 57 -> ushort +const Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.TEMPLATE_ID = 57 -> ushort +const Adaptive.Archiver.Codecs.PingDecoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Archiver.Codecs.PingDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.PingDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.PingDecoder.TEMPLATE_ID = 106 -> ushort +const Adaptive.Archiver.Codecs.PingEncoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Archiver.Codecs.PingEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.PingEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.PingEncoder.TEMPLATE_ID = 106 -> ushort +const Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.TEMPLATE_ID = 104 -> ushort +const Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.TEMPLATE_ID = 104 -> ushort +const Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.TEMPLATE_ID = 55 -> ushort +const Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.TEMPLATE_ID = 55 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.BLOCK_LENGTH = 80 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.TEMPLATE_ID = 22 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.BLOCK_LENGTH = 80 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.TEMPLATE_ID = 22 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.TEMPLATE_ID = 21 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.TEMPLATE_ID = 21 -> ushort +const Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.TEMPLATE_ID = 12 -> ushort +const Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.TEMPLATE_ID = 12 -> ushort +const Adaptive.Archiver.Codecs.RecordingProgressDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.RecordingProgressDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingProgressDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingProgressDecoder.TEMPLATE_ID = 102 -> ushort +const Adaptive.Archiver.Codecs.RecordingProgressEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.RecordingProgressEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingProgressEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingProgressEncoder.TEMPLATE_ID = 102 -> ushort +const Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.BLOCK_LENGTH = 44 -> ushort +const Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.TEMPLATE_ID = 24 -> ushort +const Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.BLOCK_LENGTH = 44 -> ushort +const Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.TEMPLATE_ID = 24 -> ushort +const Adaptive.Archiver.Codecs.RecordingStartedDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.RecordingStartedDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingStartedDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingStartedDecoder.TEMPLATE_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingStartedEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.RecordingStartedEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingStartedEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingStartedEncoder.TEMPLATE_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingStoppedDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.RecordingStoppedDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingStoppedDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingStoppedDecoder.TEMPLATE_ID = 103 -> ushort +const Adaptive.Archiver.Codecs.RecordingStoppedEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.RecordingStoppedEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingStoppedEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingStoppedEncoder.TEMPLATE_ID = 103 -> ushort +const Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.BLOCK_LENGTH = 28 -> ushort +const Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.TEMPLATE_ID = 23 -> ushort +const Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.BLOCK_LENGTH = 28 -> ushort +const Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.TEMPLATE_ID = 23 -> ushort +const Adaptive.Archiver.Codecs.ReplayRequestDecoder.BLOCK_LENGTH = 56 -> ushort +const Adaptive.Archiver.Codecs.ReplayRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ReplayRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ReplayRequestDecoder.TEMPLATE_ID = 6 -> ushort +const Adaptive.Archiver.Codecs.ReplayRequestEncoder.BLOCK_LENGTH = 56 -> ushort +const Adaptive.Archiver.Codecs.ReplayRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ReplayRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ReplayRequestEncoder.TEMPLATE_ID = 6 -> ushort +const Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.TEMPLATE_ID = 105 -> ushort +const Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.TEMPLATE_ID = 105 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.BLOCK_LENGTH = 68 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.TEMPLATE_ID = 66 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.BLOCK_LENGTH = 68 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.TEMPLATE_ID = 66 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequestDecoder.BLOCK_LENGTH = 36 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequestDecoder.TEMPLATE_ID = 50 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequestEncoder.BLOCK_LENGTH = 36 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.ReplicateRequestEncoder.TEMPLATE_ID = 50 -> ushort +const Adaptive.Archiver.Codecs.StartPositionRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StartPositionRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StartPositionRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StartPositionRequestDecoder.TEMPLATE_ID = 52 -> ushort +const Adaptive.Archiver.Codecs.StartPositionRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StartPositionRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StartPositionRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StartPositionRequestEncoder.TEMPLATE_ID = 52 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.BLOCK_LENGTH = 28 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.TEMPLATE_ID = 63 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.BLOCK_LENGTH = 28 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.TEMPLATE_ID = 63 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.TEMPLATE_ID = 4 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.TEMPLATE_ID = 4 -> ushort +const Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.TEMPLATE_ID = 19 -> ushort +const Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.TEMPLATE_ID = 19 -> ushort +const Adaptive.Archiver.Codecs.StopPositionRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StopPositionRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopPositionRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopPositionRequestDecoder.TEMPLATE_ID = 15 -> ushort +const Adaptive.Archiver.Codecs.StopPositionRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StopPositionRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopPositionRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopPositionRequestEncoder.TEMPLATE_ID = 15 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.TEMPLATE_ID = 65 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.TEMPLATE_ID = 65 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.BLOCK_LENGTH = 20 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.TEMPLATE_ID = 5 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.BLOCK_LENGTH = 20 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.TEMPLATE_ID = 5 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.TEMPLATE_ID = 14 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.TEMPLATE_ID = 14 -> ushort +const Adaptive.Archiver.Codecs.StopReplayRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StopReplayRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopReplayRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopReplayRequestDecoder.TEMPLATE_ID = 7 -> ushort +const Adaptive.Archiver.Codecs.StopReplayRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StopReplayRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopReplayRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopReplayRequestEncoder.TEMPLATE_ID = 7 -> ushort +const Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.TEMPLATE_ID = 51 -> ushort +const Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.TEMPLATE_ID = 51 -> ushort +const Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.BLOCK_LENGTH = 52 -> ushort +const Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.TEMPLATE_ID = 62 -> ushort +const Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.BLOCK_LENGTH = 52 -> ushort +const Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.TEMPLATE_ID = 62 -> ushort +const Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.TEMPLATE_ID = 13 -> ushort +const Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.TEMPLATE_ID = 13 -> ushort +const Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.TEMPLATE_ID = 107 -> ushort +const Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.SCHEMA_ID = 101 -> ushort +const Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.SCHEMA_VERSION = 13 -> ushort +const Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.TEMPLATE_ID = 107 -> ushort +const Adaptive.Archiver.ControlResponsePoller.FRAGMENT_LIMIT = 10 -> int +const Adaptive.Archiver.RecordingPos.NAME = "rec-pos" -> string +const Adaptive.Archiver.RecordingPos.NULL_RECORDING_ID = -1 -> long +const Adaptive.Archiver.RecordingPos.RECORDING_POSITION_TYPE_ID = 100 -> int +const Adaptive.Archiver.RecordingSignalPoller.FRAGMENT_LIMIT = 10 -> int +const Adaptive.Archiver.ReplayMerge.LIVE_ADD_MAX_WINDOW = 33554432 -> int +override Adaptive.Archiver.AeronArchive.Context.ToString() -> string +override Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.CatalogHeaderDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.CatalogHeaderEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.ChallengeDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.ChallengeEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.ChallengeResponseDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.ChallengeResponseEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.ConnectRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.ConnectRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.ControlResponseDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.ControlResponseEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ToString() -> string +override Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.ToString() -> string +override Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.MessageHeaderDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.MessageHeaderEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.PingDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.PingEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingProgressDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingProgressEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingStartedDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingStartedEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingStoppedDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingStoppedEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.ReplayRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.ReplayRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ToString() -> string +override Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ToString() -> string +override Adaptive.Archiver.Codecs.ReplicateRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.ReplicateRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.StartPositionRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.StartPositionRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ToString() -> string +override Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.ToString() -> string +override Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopPositionRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopPositionRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopReplayRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.ToString() -> string +override Adaptive.Archiver.Codecs.VarDataEncodingDecoder.ToString() -> string +override Adaptive.Archiver.Codecs.VarDataEncodingEncoder.ToString() -> string +override Adaptive.Archiver.ControlResponsePoller.ToString() -> string +override Adaptive.Archiver.RecordingDescriptorPoller.ToString() -> string +override Adaptive.Archiver.RecordingSignalPoller.ToString() -> string +override Adaptive.Archiver.ReplayMerge.ToString() -> string +override Adaptive.Archiver.ReplicationParams.Equals(object obj) -> bool +override Adaptive.Archiver.ReplicationParams.GetHashCode() -> int +override Adaptive.Archiver.ReplicationParams.ToString() -> string +static Adaptive.Archiver.AeronArchive.Configuration.ClientName() -> string +static Adaptive.Archiver.AeronArchive.Configuration.ControlChannel() -> string +static Adaptive.Archiver.AeronArchive.Configuration.ControlMtuLength() -> int +static Adaptive.Archiver.AeronArchive.Configuration.ControlResponseChannel() -> string +static Adaptive.Archiver.AeronArchive.Configuration.ControlResponseStreamId() -> int +static Adaptive.Archiver.AeronArchive.Configuration.ControlStreamId() -> int +static Adaptive.Archiver.AeronArchive.Configuration.ControlTermBufferLength() -> int +static Adaptive.Archiver.AeronArchive.Configuration.ControlTermBufferSparse() -> bool +static Adaptive.Archiver.AeronArchive.Configuration.LocalControlChannel() -> string +static Adaptive.Archiver.AeronArchive.Configuration.LocalControlStreamId() -> int +static Adaptive.Archiver.AeronArchive.Configuration.MessageRetryAttempts() -> int +static Adaptive.Archiver.AeronArchive.Configuration.MessageTimeoutNs() -> long +static Adaptive.Archiver.AeronArchive.Configuration.RecordingEventsChannel() -> string +static Adaptive.Archiver.AeronArchive.Configuration.RecordingEventsEnabled() -> bool +static Adaptive.Archiver.AeronArchive.Configuration.RecordingEventsStreamId() -> int +static Adaptive.Archiver.AeronArchive.Connect() -> Adaptive.Archiver.AeronArchive +static Adaptive.Archiver.AeronArchive.Connect(Adaptive.Archiver.AeronArchive.Context ctx) -> Adaptive.Archiver.AeronArchive +static Adaptive.Archiver.AeronArchive.ConnectAsync() -> Adaptive.Archiver.AeronArchive.AsyncConnect +static Adaptive.Archiver.AeronArchive.ConnectAsync(Adaptive.Archiver.AeronArchive.Context ctx) -> Adaptive.Archiver.AeronArchive.AsyncConnect +static Adaptive.Archiver.AeronArchive.QuietClose(System.Exception previousException, System.IDisposable disposable) -> System.Exception +static Adaptive.Archiver.AeronArchive.SegmentFileBasePosition(long startPosition, long position, int termBufferLength, int segmentFileLength) -> long +static Adaptive.Archiver.ArchiveException.ErrorCodeAsString(int errorCode) -> string +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ArchiveIdRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ArchiveIdRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.AttachSegmentsRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ClientInfoCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ClientInfoHeaderLength() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ClientInfoId() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ClientInfoMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ClientInfoSinceVersion() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.EncodedCredentialsId() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.EncodedCredentialsMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.EncodedCredentialsSinceVersion() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseChannelId() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseStreamIdId() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseStreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.ResponseStreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.VersionEncodingLength() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.VersionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.VersionId() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.VersionMaxValue() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.VersionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.VersionMinValue() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.VersionNullValue() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestDecoder.VersionSinceVersion() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ClientInfoCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ClientInfoHeaderLength() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ClientInfoId() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ClientInfoMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.EncodedCredentialsId() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.EncodedCredentialsMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ResponseChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ResponseChannelId() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ResponseChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ResponseStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.ResponseStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.VersionEncodingLength() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.VersionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.VersionMaxValue() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.VersionMinValue() -> int +static Adaptive.Archiver.Codecs.AuthConnectRequestEncoder.VersionNullValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.FileIoMaxLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.FileIoMaxLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.FileIoMaxLengthId() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.FileIoMaxLengthMaxValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.FileIoMaxLengthMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.FileIoMaxLengthMinValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.FileIoMaxLengthNullValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.FileIoMaxLengthSinceVersion() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LengthId() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LengthMaxValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LengthMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LengthMinValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LengthNullValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LengthSinceVersion() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LimitCounterIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LimitCounterIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LimitCounterIdId() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LimitCounterIdMaxValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LimitCounterIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LimitCounterIdMinValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LimitCounterIdNullValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.LimitCounterIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.PositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.PositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.PositionId() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.PositionMaxValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.PositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.PositionMinValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.PositionNullValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.PositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayChannelId() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayStreamIdId() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayStreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayStreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayTokenEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayTokenEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayTokenId() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayTokenMaxValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayTokenMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayTokenMinValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayTokenNullValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestDecoder.ReplayTokenSinceVersion() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.FileIoMaxLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.FileIoMaxLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.FileIoMaxLengthMaxValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.FileIoMaxLengthMinValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.FileIoMaxLengthNullValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.LengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.LengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.LengthMaxValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.LengthMinValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.LengthNullValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.LimitCounterIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.LimitCounterIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.LimitCounterIdMaxValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.LimitCounterIdMinValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.LimitCounterIdNullValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.PositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.PositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.PositionMaxValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.PositionMinValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.PositionNullValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayChannelId() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayTokenEncodingLength() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayTokenEncodingOffset() -> int +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayTokenMaxValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayTokenMinValue() -> long +static Adaptive.Archiver.Codecs.BoundedReplayRequestEncoder.ReplayTokenNullValue() -> long +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.AlignmentEncodingLength() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.AlignmentEncodingOffset() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.AlignmentId() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.AlignmentMaxValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.AlignmentMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.AlignmentMinValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.AlignmentNullValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.AlignmentSinceVersion() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.LengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.LengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.LengthId() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.LengthMaxValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.LengthMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.LengthMinValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.LengthNullValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.LengthSinceVersion() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.NextRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.NextRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.NextRecordingIdId() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.NextRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.NextRecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.NextRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.NextRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.NextRecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.ReservedEncodingLength() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.ReservedEncodingOffset() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.ReservedId() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.ReservedMaxValue() -> sbyte +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.ReservedMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.ReservedMinValue() -> sbyte +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.ReservedNullValue() -> sbyte +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.ReservedSinceVersion() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.VersionEncodingLength() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.VersionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.VersionId() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.VersionMaxValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.VersionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.VersionMinValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.VersionNullValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderDecoder.VersionSinceVersion() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.AlignmentEncodingLength() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.AlignmentEncodingOffset() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.AlignmentMaxValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.AlignmentMinValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.AlignmentNullValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.LengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.LengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.LengthMaxValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.LengthMinValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.LengthNullValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.NextRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.NextRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.NextRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.NextRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.NextRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.ReservedEncodingLength() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.ReservedEncodingOffset() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.ReservedMaxValue() -> sbyte +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.ReservedMinValue() -> sbyte +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.ReservedNullValue() -> sbyte +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.VersionEncodingLength() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.VersionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.VersionMaxValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.VersionMinValue() -> int +static Adaptive.Archiver.Codecs.CatalogHeaderEncoder.VersionNullValue() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ChallengeDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ChallengeDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ChallengeDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ChallengeDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ChallengeDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ChallengeDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ChallengeDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ChallengeDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.EncodedChallengeHeaderLength() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.EncodedChallengeId() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.EncodedChallengeMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ChallengeDecoder.EncodedChallengeSinceVersion() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.VersionEncodingLength() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.VersionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.VersionId() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.VersionMaxValue() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.VersionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ChallengeDecoder.VersionMinValue() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.VersionNullValue() -> int +static Adaptive.Archiver.Codecs.ChallengeDecoder.VersionSinceVersion() -> int +static Adaptive.Archiver.Codecs.ChallengeEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ChallengeEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ChallengeEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ChallengeEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ChallengeEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ChallengeEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ChallengeEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ChallengeEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ChallengeEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ChallengeEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ChallengeEncoder.EncodedChallengeHeaderLength() -> int +static Adaptive.Archiver.Codecs.ChallengeEncoder.EncodedChallengeId() -> int +static Adaptive.Archiver.Codecs.ChallengeEncoder.EncodedChallengeMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ChallengeEncoder.VersionEncodingLength() -> int +static Adaptive.Archiver.Codecs.ChallengeEncoder.VersionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ChallengeEncoder.VersionMaxValue() -> int +static Adaptive.Archiver.Codecs.ChallengeEncoder.VersionMinValue() -> int +static Adaptive.Archiver.Codecs.ChallengeEncoder.VersionNullValue() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.EncodedCredentialsId() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.EncodedCredentialsMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ChallengeResponseDecoder.EncodedCredentialsSinceVersion() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ChallengeResponseEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ChallengeResponseEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ChallengeResponseEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ChallengeResponseEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ChallengeResponseEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ChallengeResponseEncoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseEncoder.EncodedCredentialsId() -> int +static Adaptive.Archiver.Codecs.ChallengeResponseEncoder.EncodedCredentialsMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.CloseSessionRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.CloseSessionRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseChannelId() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseStreamIdId() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseStreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.ResponseStreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.VersionEncodingLength() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.VersionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.VersionId() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.VersionMaxValue() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.VersionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.VersionMinValue() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.VersionNullValue() -> int +static Adaptive.Archiver.Codecs.ConnectRequestDecoder.VersionSinceVersion() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.ResponseChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.ResponseChannelId() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.ResponseChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.ResponseStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.ResponseStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.VersionEncodingLength() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.VersionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.VersionMaxValue() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.VersionMinValue() -> int +static Adaptive.Archiver.Codecs.ConnectRequestEncoder.VersionNullValue() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.CodeEncodingLength() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.CodeEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.CodeId() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.CodeMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ControlResponseDecoder.CodeSinceVersion() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ControlResponseDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ControlResponseDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.ErrorMessageCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ControlResponseDecoder.ErrorMessageHeaderLength() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.ErrorMessageId() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.ErrorMessageMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ControlResponseDecoder.ErrorMessageSinceVersion() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.RelevantIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.RelevantIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.RelevantIdId() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.RelevantIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseDecoder.RelevantIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ControlResponseDecoder.RelevantIdMinValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseDecoder.RelevantIdNullValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseDecoder.RelevantIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.VersionEncodingLength() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.VersionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.VersionId() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.VersionMaxValue() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.VersionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ControlResponseDecoder.VersionMinValue() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.VersionNullValue() -> int +static Adaptive.Archiver.Codecs.ControlResponseDecoder.VersionSinceVersion() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.CodeEncodingLength() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.CodeEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseEncoder.ErrorMessageCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ControlResponseEncoder.ErrorMessageHeaderLength() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.ErrorMessageId() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.ErrorMessageMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ControlResponseEncoder.RelevantIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.RelevantIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.RelevantIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseEncoder.RelevantIdMinValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseEncoder.RelevantIdNullValue() -> long +static Adaptive.Archiver.Codecs.ControlResponseEncoder.VersionEncodingLength() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.VersionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.VersionMaxValue() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.VersionMinValue() -> int +static Adaptive.Archiver.Codecs.ControlResponseEncoder.VersionNullValue() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.DeleteDetachedSegmentsRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.NewStartPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.NewStartPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.NewStartPositionId() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.NewStartPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.NewStartPositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.NewStartPositionMinValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.NewStartPositionNullValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.NewStartPositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.NewStartPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.NewStartPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.NewStartPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.NewStartPositionMinValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.NewStartPositionNullValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.DetachSegmentsRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.AutoStopEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.AutoStopEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.AutoStopId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.AutoStopMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.AutoStopSinceVersion() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.SourceLocationEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.SourceLocationEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.SourceLocationId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.SourceLocationMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.SourceLocationSinceVersion() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.StreamIdId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.StreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Decoder.StreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.AutoStopEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.AutoStopEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.SourceLocationEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.SourceLocationEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequest2Encoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.SourceLocationEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.SourceLocationEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.SourceLocationId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.SourceLocationMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.SourceLocationSinceVersion() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.StreamIdId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.StreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestDecoder.StreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.SourceLocationEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.SourceLocationEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ExtendRecordingRequestEncoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.MinRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.MinRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.MinRecordingIdId() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.MinRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.MinRecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.MinRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.MinRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.MinRecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SessionIdId() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SessionIdMaxValue() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SessionIdMinValue() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SessionIdNullValue() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.SessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.StreamIdId() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.StreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestDecoder.StreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.MinRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.MinRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.MinRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.MinRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.MinRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.SessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.SessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.SessionIdMaxValue() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.SessionIdMinValue() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.SessionIdNullValue() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.FindLastMatchingRecordingRequestEncoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.KeepAliveRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.KeepAliveRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.FromRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.FromRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.FromRecordingIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.FromRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.FromRecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.FromRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.FromRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.FromRecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.RecordCountEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.RecordCountEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.RecordCountId() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.RecordCountMaxValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.RecordCountMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.RecordCountMinValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.RecordCountNullValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.RecordCountSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.StreamIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.StreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestDecoder.StreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.FromRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.FromRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.FromRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.FromRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.FromRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.RecordCountEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.RecordCountEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.RecordCountMaxValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.RecordCountMinValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.RecordCountNullValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsForUriRequestEncoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.FromRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.FromRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.FromRecordingIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.FromRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.FromRecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.FromRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.FromRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.FromRecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.RecordCountEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.RecordCountEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.RecordCountId() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.RecordCountMaxValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.RecordCountMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.RecordCountMinValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.RecordCountNullValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestDecoder.RecordCountSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.FromRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.FromRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.FromRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.FromRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.FromRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.RecordCountEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.RecordCountEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.RecordCountMaxValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.RecordCountMinValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingsRequestEncoder.RecordCountNullValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ApplyStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ApplyStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ApplyStreamIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ApplyStreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ApplyStreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.PseudoIndexEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.PseudoIndexEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.PseudoIndexId() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.PseudoIndexMaxValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.PseudoIndexMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.PseudoIndexMinValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.PseudoIndexNullValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.PseudoIndexSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.StreamIdId() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.StreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.StreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SubscriptionCountEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SubscriptionCountEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SubscriptionCountId() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SubscriptionCountMaxValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SubscriptionCountMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SubscriptionCountMinValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SubscriptionCountNullValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestDecoder.SubscriptionCountSinceVersion() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ApplyStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ApplyStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.PseudoIndexEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.PseudoIndexEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.PseudoIndexMaxValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.PseudoIndexMinValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.PseudoIndexNullValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.SubscriptionCountEncodingLength() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.SubscriptionCountEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.SubscriptionCountMaxValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.SubscriptionCountMinValue() -> int +static Adaptive.Archiver.Codecs.ListRecordingSubscriptionsRequestEncoder.SubscriptionCountNullValue() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.MaxRecordedPositionRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.BlockLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.BlockLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.BlockLengthMaxValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.BlockLengthMinValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.BlockLengthNullValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.ENCODED_LENGTH -> int +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.SchemaIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.SchemaIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.SchemaIdMaxValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.SchemaIdMinValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.SchemaIdNullValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.TemplateIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.TemplateIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.TemplateIdMaxValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.TemplateIdMinValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.TemplateIdNullValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.VersionEncodingLength() -> int +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.VersionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.VersionMaxValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.VersionMinValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderDecoder.VersionNullValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.BlockLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.BlockLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.BlockLengthMaxValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.BlockLengthMinValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.BlockLengthNullValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.ENCODED_LENGTH -> int +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.SchemaIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.SchemaIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.SchemaIdMaxValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.SchemaIdMinValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.SchemaIdNullValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.TemplateIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.TemplateIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.TemplateIdMaxValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.TemplateIdMinValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.TemplateIdNullValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.VersionEncodingLength() -> int +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.VersionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.VersionMaxValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.VersionMinValue() -> ushort +static Adaptive.Archiver.Codecs.MessageHeaderEncoder.VersionNullValue() -> ushort +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.DstRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.DstRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.DstRecordingIdId() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.DstRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.DstRecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.DstRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.DstRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.DstRecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SrcRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SrcRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SrcRecordingIdId() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SrcRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SrcRecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SrcRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SrcRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestDecoder.SrcRecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.DstRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.DstRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.DstRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.DstRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.DstRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.SrcRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.SrcRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.SrcRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.SrcRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.MigrateSegmentsRequestEncoder.SrcRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.PingDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PingDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PingDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.PingDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PingDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.PingDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.PingDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.PingDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.PingEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PingEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PingEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PingEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.PingEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeRecordingRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.NewStartPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.NewStartPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.NewStartPositionId() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.NewStartPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.NewStartPositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.NewStartPositionMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.NewStartPositionNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.NewStartPositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.NewStartPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.NewStartPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.NewStartPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.NewStartPositionMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.NewStartPositionNullValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.PurgeSegmentsRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.InitialTermIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.InitialTermIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.InitialTermIdId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.InitialTermIdMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.InitialTermIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.InitialTermIdMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.InitialTermIdNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.InitialTermIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.MtuLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.MtuLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.MtuLengthId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.MtuLengthMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.MtuLengthMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.MtuLengthMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.MtuLengthNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.MtuLengthSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.OriginalChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.OriginalChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.OriginalChannelId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.OriginalChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.OriginalChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SegmentFileLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SegmentFileLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SegmentFileLengthId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SegmentFileLengthMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SegmentFileLengthMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SegmentFileLengthMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SegmentFileLengthNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SegmentFileLengthSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SessionIdId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SessionIdMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SessionIdMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SessionIdNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SourceIdentityCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SourceIdentityHeaderLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SourceIdentityId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SourceIdentityMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.SourceIdentitySinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartPositionId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartPositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartPositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartPositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartPositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartTimestampEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartTimestampEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartTimestampId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartTimestampMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartTimestampMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartTimestampMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartTimestampNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StartTimestampSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopPositionId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopPositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopPositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopPositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopPositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopTimestampEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopTimestampEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopTimestampId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopTimestampMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopTimestampMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopTimestampMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopTimestampNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StopTimestampSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StreamIdId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StrippedChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StrippedChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StrippedChannelId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StrippedChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.StrippedChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.TermBufferLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.TermBufferLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.TermBufferLengthId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.TermBufferLengthMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.TermBufferLengthMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.TermBufferLengthMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.TermBufferLengthNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorDecoder.TermBufferLengthSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.InitialTermIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.InitialTermIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.InitialTermIdMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.InitialTermIdMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.InitialTermIdNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.MtuLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.MtuLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.MtuLengthMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.MtuLengthMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.MtuLengthNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.OriginalChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.OriginalChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.OriginalChannelId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.OriginalChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SegmentFileLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SegmentFileLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SegmentFileLengthMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SegmentFileLengthMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SegmentFileLengthNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SessionIdMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SessionIdMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SessionIdNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SourceIdentityCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SourceIdentityHeaderLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SourceIdentityId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.SourceIdentityMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StartPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StartPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StartPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StartPositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StartPositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StartTimestampEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StartTimestampEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StartTimestampMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StartTimestampMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StartTimestampNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StopPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StopPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StopPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StopPositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StopPositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StopTimestampEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StopTimestampEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StopTimestampMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StopTimestampMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StopTimestampNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StrippedChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StrippedChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StrippedChannelId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.StrippedChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.TermBufferLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.TermBufferLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.TermBufferLengthMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.TermBufferLengthMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorEncoder.TermBufferLengthNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ChecksumEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ChecksumEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ChecksumId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ChecksumMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ChecksumMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ChecksumMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ChecksumNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ChecksumSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.LengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.LengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.LengthId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.LengthMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.LengthMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.LengthMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.LengthNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.LengthSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ReservedEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ReservedEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ReservedId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ReservedMaxValue() -> sbyte +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ReservedMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ReservedMinValue() -> sbyte +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ReservedNullValue() -> sbyte +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.ReservedSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.StateEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.StateEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.StateId() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.StateMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderDecoder.StateSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.ChecksumEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.ChecksumEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.ChecksumMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.ChecksumMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.ChecksumNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.LengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.LengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.LengthMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.LengthMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.LengthNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.ReservedEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.ReservedEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.ReservedMaxValue() -> sbyte +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.ReservedMinValue() -> sbyte +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.ReservedNullValue() -> sbyte +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.StateEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingDescriptorHeaderEncoder.StateEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingPositionRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.PositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.PositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.PositionId() -> int +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.PositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.PositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.PositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.PositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.PositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.StartPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.StartPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.StartPositionId() -> int +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.StartPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.StartPositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.StartPositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.StartPositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressDecoder.StartPositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.PositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.PositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.PositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.PositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.PositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.StartPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.StartPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.StartPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.StartPositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingProgressEncoder.StartPositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.PositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.PositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.PositionId() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.PositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.PositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.PositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.PositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.PositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SignalEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SignalEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SignalId() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SignalMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SignalSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SubscriptionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SubscriptionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SubscriptionIdId() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SubscriptionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SubscriptionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SubscriptionIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SubscriptionIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventDecoder.SubscriptionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.PositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.PositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.PositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.PositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.PositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SignalEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SignalEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SubscriptionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SubscriptionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SubscriptionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SubscriptionIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSignalEventEncoder.SubscriptionIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.ChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.SessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.SessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.SessionIdId() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.SessionIdMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.SessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.SessionIdMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.SessionIdNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.SessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.SourceIdentityCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.SourceIdentityHeaderLength() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.SourceIdentityId() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.SourceIdentityMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.SourceIdentitySinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StartPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StartPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StartPositionId() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StartPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StartPositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StartPositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StartPositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StartPositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StreamIdId() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingStartedDecoder.StreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.SessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.SessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.SessionIdMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.SessionIdMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.SessionIdNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.SourceIdentityCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.SourceIdentityHeaderLength() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.SourceIdentityId() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.SourceIdentityMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.StartPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.StartPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.StartPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.StartPositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.StartPositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingStartedEncoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StartPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StartPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StartPositionId() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StartPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StartPositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StartPositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StartPositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StartPositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StopPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StopPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StopPositionId() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StopPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StopPositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StopPositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StopPositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedDecoder.StopPositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.StartPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.StartPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.StartPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.StartPositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.StartPositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.StopPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.StopPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.StopPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.StopPositionMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingStoppedEncoder.StopPositionNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StreamIdId() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StrippedChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StrippedChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StrippedChannelId() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StrippedChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.StrippedChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SubscriptionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SubscriptionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SubscriptionIdId() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SubscriptionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SubscriptionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SubscriptionIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SubscriptionIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorDecoder.SubscriptionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.StrippedChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.StrippedChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.StrippedChannelId() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.StrippedChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.SubscriptionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.SubscriptionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.SubscriptionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.SubscriptionIdMinValue() -> long +static Adaptive.Archiver.Codecs.RecordingSubscriptionDescriptorEncoder.SubscriptionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.FileIoMaxLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.FileIoMaxLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.FileIoMaxLengthId() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.FileIoMaxLengthMaxValue() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.FileIoMaxLengthMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.FileIoMaxLengthMinValue() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.FileIoMaxLengthNullValue() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.FileIoMaxLengthSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.LengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.LengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.LengthId() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.LengthMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.LengthMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.LengthMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.LengthNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.LengthSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.PositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.PositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.PositionId() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.PositionMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.PositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.PositionMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.PositionNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.PositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayChannelId() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayStreamIdId() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayStreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayStreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayTokenEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayTokenEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayTokenId() -> int +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayTokenMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayTokenMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayTokenMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayTokenNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestDecoder.ReplayTokenSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.FileIoMaxLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.FileIoMaxLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.FileIoMaxLengthMaxValue() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.FileIoMaxLengthMinValue() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.FileIoMaxLengthNullValue() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.LengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.LengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.LengthMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.LengthMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.LengthNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.PositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.PositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.PositionMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.PositionMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.PositionNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayChannelId() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayTokenEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayTokenEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayTokenMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayTokenMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayRequestEncoder.ReplayTokenNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplayTokenRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ChannelTagIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ChannelTagIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ChannelTagIdId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ChannelTagIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ChannelTagIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ChannelTagIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ChannelTagIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ChannelTagIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.DstRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.DstRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.DstRecordingIdId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.DstRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.DstRecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.DstRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.DstRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.DstRecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.EncodedCredentialsId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.EncodedCredentialsMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.EncodedCredentialsSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.FileIoMaxLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.FileIoMaxLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.FileIoMaxLengthId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.FileIoMaxLengthMaxValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.FileIoMaxLengthMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.FileIoMaxLengthMinValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.FileIoMaxLengthNullValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.FileIoMaxLengthSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.LiveDestinationCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.LiveDestinationHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.LiveDestinationId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.LiveDestinationMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.LiveDestinationSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationChannelId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationSessionIdId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationSessionIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationSessionIdMinValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationSessionIdNullValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.ReplicationSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlChannelId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlStreamIdId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlStreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcControlStreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcRecordingIdId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcRecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcRecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcResponseChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcResponseChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcResponseChannelId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcResponseChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SrcResponseChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.StopPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.StopPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.StopPositionId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.StopPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.StopPositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.StopPositionMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.StopPositionNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.StopPositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SubscriptionTagIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SubscriptionTagIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SubscriptionTagIdId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SubscriptionTagIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SubscriptionTagIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SubscriptionTagIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SubscriptionTagIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Decoder.SubscriptionTagIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ChannelTagIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ChannelTagIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ChannelTagIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ChannelTagIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ChannelTagIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.DstRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.DstRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.DstRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.DstRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.DstRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.EncodedCredentialsId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.EncodedCredentialsMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.FileIoMaxLengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.FileIoMaxLengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.FileIoMaxLengthMaxValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.FileIoMaxLengthMinValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.FileIoMaxLengthNullValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.LiveDestinationCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.LiveDestinationHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.LiveDestinationId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.LiveDestinationMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ReplicationChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ReplicationChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ReplicationChannelId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ReplicationChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ReplicationSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ReplicationSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ReplicationSessionIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ReplicationSessionIdMinValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.ReplicationSessionIdNullValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcControlChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcControlChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcControlChannelId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcControlChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcControlStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcControlStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcControlStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcControlStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcControlStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcResponseChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcResponseChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcResponseChannelId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SrcResponseChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.StopPositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.StopPositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.StopPositionMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.StopPositionMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.StopPositionNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SubscriptionTagIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SubscriptionTagIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SubscriptionTagIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SubscriptionTagIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequest2Encoder.SubscriptionTagIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.DstRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.DstRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.DstRecordingIdId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.DstRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.DstRecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.DstRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.DstRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.DstRecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.LiveDestinationCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.LiveDestinationHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.LiveDestinationId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.LiveDestinationMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.LiveDestinationSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlChannelId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlStreamIdId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlStreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcControlStreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcRecordingIdId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcRecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestDecoder.SrcRecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.DstRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.DstRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.DstRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.DstRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.DstRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.LiveDestinationCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.LiveDestinationHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.LiveDestinationId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.LiveDestinationMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcControlChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcControlChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcControlChannelId() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcControlChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcControlStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcControlStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcControlStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcControlStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcControlStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.ReplicateRequestEncoder.SrcRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartPositionRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.AutoStopEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.AutoStopEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.AutoStopId() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.AutoStopMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.AutoStopSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.SourceLocationEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.SourceLocationEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.SourceLocationId() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.SourceLocationMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.SourceLocationSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.StreamIdId() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.StreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Decoder.StreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.AutoStopEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.AutoStopEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.SourceLocationEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.SourceLocationEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequest2Encoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.SourceLocationEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.SourceLocationEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.SourceLocationId() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.SourceLocationMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.SourceLocationSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.StreamIdId() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.StreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestDecoder.StreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.SourceLocationEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.SourceLocationEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.StartRecordingRequestEncoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopAllReplaysRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopPositionRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingByIdentityRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.StreamIdId() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.StreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestDecoder.StreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.StreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.StreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.StreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.StreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.StopRecordingRequestEncoder.StreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SubscriptionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SubscriptionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SubscriptionIdId() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SubscriptionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SubscriptionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SubscriptionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SubscriptionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestDecoder.SubscriptionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.SubscriptionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.SubscriptionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.SubscriptionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.SubscriptionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopRecordingSubscriptionRequestEncoder.SubscriptionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ReplaySessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ReplaySessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ReplaySessionIdId() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ReplaySessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ReplaySessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ReplaySessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ReplaySessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestDecoder.ReplaySessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.ReplaySessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.ReplaySessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.ReplaySessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.ReplaySessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopReplayRequestEncoder.ReplaySessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ReplicationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ReplicationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ReplicationIdId() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ReplicationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ReplicationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ReplicationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ReplicationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestDecoder.ReplicationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.ReplicationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.ReplicationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.ReplicationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.ReplicationIdMinValue() -> long +static Adaptive.Archiver.Codecs.StopReplicationRequestEncoder.ReplicationIdNullValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ChannelTagIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ChannelTagIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ChannelTagIdId() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ChannelTagIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ChannelTagIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ChannelTagIdMinValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ChannelTagIdNullValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ChannelTagIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.DstRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.DstRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.DstRecordingIdId() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.DstRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.DstRecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.DstRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.DstRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.DstRecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.LiveDestinationCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.LiveDestinationHeaderLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.LiveDestinationId() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.LiveDestinationMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.LiveDestinationSinceVersion() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlChannelId() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlStreamIdId() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlStreamIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcControlStreamIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcRecordingIdId() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcRecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SrcRecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SubscriptionTagIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SubscriptionTagIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SubscriptionTagIdId() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SubscriptionTagIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SubscriptionTagIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SubscriptionTagIdMinValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SubscriptionTagIdNullValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestDecoder.SubscriptionTagIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.ChannelTagIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.ChannelTagIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.ChannelTagIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.ChannelTagIdMinValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.ChannelTagIdNullValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.DstRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.DstRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.DstRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.DstRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.DstRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.LiveDestinationCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.LiveDestinationHeaderLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.LiveDestinationId() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.LiveDestinationMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcControlChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcControlChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcControlChannelId() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcControlChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcControlStreamIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcControlStreamIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcControlStreamIdMaxValue() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcControlStreamIdMinValue() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcControlStreamIdNullValue() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcRecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcRecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcRecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcRecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SrcRecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SubscriptionTagIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SubscriptionTagIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SubscriptionTagIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SubscriptionTagIdMinValue() -> long +static Adaptive.Archiver.Codecs.TaggedReplicateRequestEncoder.SubscriptionTagIdNullValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.PositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.PositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.PositionId() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.PositionMaxValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.PositionMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.PositionMinValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.PositionNullValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.PositionSinceVersion() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.PositionEncodingLength() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.PositionEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.PositionMaxValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.PositionMinValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.PositionNullValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.TruncateRecordingRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ChannelSinceVersion() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ControlSessionIdId() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ControlSessionIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.ControlSessionIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.CorrelationIdId() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.RecordingIdId() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.RecordingIdMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.ChannelCharacterEncoding() -> string +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.ChannelHeaderLength() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.ChannelId() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.ChannelMetaAttribute(Adaptive.Archiver.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.ControlSessionIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.ControlSessionIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.ControlSessionIdMaxValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.ControlSessionIdMinValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.ControlSessionIdNullValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.RecordingIdMaxValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.RecordingIdMinValue() -> long +static Adaptive.Archiver.Codecs.UpdateChannelRequestEncoder.RecordingIdNullValue() -> long +static Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.ENCODED_LENGTH -> int +static Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.LengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.LengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.LengthMaxValue() -> uint +static Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.LengthMinValue() -> uint +static Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.LengthNullValue() -> uint +static Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.VarDataEncodingLength() -> int +static Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.VarDataEncodingOffset() -> int +static Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.VarDataMaxValue() -> byte +static Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.VarDataMinValue() -> byte +static Adaptive.Archiver.Codecs.VarAsciiEncodingDecoder.VarDataNullValue() -> byte +static Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.ENCODED_LENGTH -> int +static Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.LengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.LengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.LengthMaxValue() -> uint +static Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.LengthMinValue() -> uint +static Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.LengthNullValue() -> uint +static Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.VarDataEncodingLength() -> int +static Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.VarDataEncodingOffset() -> int +static Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.VarDataMaxValue() -> byte +static Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.VarDataMinValue() -> byte +static Adaptive.Archiver.Codecs.VarAsciiEncodingEncoder.VarDataNullValue() -> byte +static Adaptive.Archiver.Codecs.VarDataEncodingDecoder.ENCODED_LENGTH -> int +static Adaptive.Archiver.Codecs.VarDataEncodingDecoder.LengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.VarDataEncodingDecoder.LengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.VarDataEncodingDecoder.LengthMaxValue() -> uint +static Adaptive.Archiver.Codecs.VarDataEncodingDecoder.LengthMinValue() -> uint +static Adaptive.Archiver.Codecs.VarDataEncodingDecoder.LengthNullValue() -> uint +static Adaptive.Archiver.Codecs.VarDataEncodingDecoder.VarDataEncodingLength() -> int +static Adaptive.Archiver.Codecs.VarDataEncodingDecoder.VarDataEncodingOffset() -> int +static Adaptive.Archiver.Codecs.VarDataEncodingDecoder.VarDataMaxValue() -> byte +static Adaptive.Archiver.Codecs.VarDataEncodingDecoder.VarDataMinValue() -> byte +static Adaptive.Archiver.Codecs.VarDataEncodingDecoder.VarDataNullValue() -> byte +static Adaptive.Archiver.Codecs.VarDataEncodingEncoder.ENCODED_LENGTH -> int +static Adaptive.Archiver.Codecs.VarDataEncodingEncoder.LengthEncodingLength() -> int +static Adaptive.Archiver.Codecs.VarDataEncodingEncoder.LengthEncodingOffset() -> int +static Adaptive.Archiver.Codecs.VarDataEncodingEncoder.LengthMaxValue() -> uint +static Adaptive.Archiver.Codecs.VarDataEncodingEncoder.LengthMinValue() -> uint +static Adaptive.Archiver.Codecs.VarDataEncodingEncoder.LengthNullValue() -> uint +static Adaptive.Archiver.Codecs.VarDataEncodingEncoder.VarDataEncodingLength() -> int +static Adaptive.Archiver.Codecs.VarDataEncodingEncoder.VarDataEncodingOffset() -> int +static Adaptive.Archiver.Codecs.VarDataEncodingEncoder.VarDataMaxValue() -> byte +static Adaptive.Archiver.Codecs.VarDataEncodingEncoder.VarDataMinValue() -> byte +static Adaptive.Archiver.Codecs.VarDataEncodingEncoder.VarDataNullValue() -> byte +static Adaptive.Archiver.ControlResponseAdapter.DispatchDescriptor(Adaptive.Archiver.Codecs.RecordingDescriptorDecoder decoder, Adaptive.Archiver.IRecordingDescriptorConsumer consumer) -> void +static Adaptive.Archiver.RecordingPos.FindCounterIdByRecording(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, long recordingId, long archiveId) -> int +static Adaptive.Archiver.RecordingPos.FindCounterIdByRecording(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, long recordingId) -> int +static Adaptive.Archiver.RecordingPos.FindCounterIdBySession(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, int sessionId, long archiveId) -> int +static Adaptive.Archiver.RecordingPos.FindCounterIdBySession(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, int sessionId) -> int +static Adaptive.Archiver.RecordingPos.GetRecordingId(Adaptive.Agrona.Concurrent.Status.CountersReader countersReader, int counterId) -> long +static Adaptive.Archiver.RecordingPos.GetSourceIdentity(Adaptive.Agrona.Concurrent.Status.CountersReader counters, int counterId) -> string +static Adaptive.Archiver.RecordingPos.IsActive(Adaptive.Agrona.Concurrent.Status.CountersReader counters, int counterId, long recordingId) -> bool +static readonly Adaptive.Archiver.AeronArchive.Configuration.LOCAL_CONTROL_CHANNEL_DEFAULT -> string +static readonly Adaptive.Archiver.AeronArchive.Configuration.MESSAGE_TIMEOUT_DEFAULT_NS -> long +static readonly Adaptive.Archiver.AeronArchive.Configuration.NO_OP_RECORDING_SIGNAL_CONSUMER -> Adaptive.Archiver.IRecordingSignalConsumer +static readonly Adaptive.Archiver.AeronArchive.Configuration.PROTOCOL_SEMANTIC_VERSION -> int +static readonly Adaptive.Archiver.AeronArchive.REPLAY_ALL_AND_FOLLOW -> long diff --git a/src/Adaptive.Archiver/PublicAPI.Unshipped.txt b/src/Adaptive.Archiver/PublicAPI.Unshipped.txt new file mode 100644 index 00000000..e69de29b diff --git a/src/Adaptive.Archiver/RecordingDescriptorPoller.cs b/src/Adaptive.Archiver/RecordingDescriptorPoller.cs index 8edf4cc4..16e30cde 100644 --- a/src/Adaptive.Archiver/RecordingDescriptorPoller.cs +++ b/src/Adaptive.Archiver/RecordingDescriptorPoller.cs @@ -1,4 +1,20 @@ -using Adaptive.Aeron; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Archiver.Codecs; @@ -10,22 +26,22 @@ namespace Adaptive.Archiver /// public class RecordingDescriptorPoller : IControlledFragmentHandler { - private readonly MessageHeaderDecoder messageHeaderDecoder = new MessageHeaderDecoder(); - private readonly ControlResponseDecoder controlResponseDecoder = new ControlResponseDecoder(); - private readonly RecordingDescriptorDecoder recordingDescriptorDecoder = new RecordingDescriptorDecoder(); - private readonly RecordingSignalEventDecoder recordingSignalEventDecoder = new RecordingSignalEventDecoder(); + private readonly MessageHeaderDecoder _messageHeaderDecoder = new MessageHeaderDecoder(); + private readonly ControlResponseDecoder _controlResponseDecoder = new ControlResponseDecoder(); + private readonly RecordingDescriptorDecoder _recordingDescriptorDecoder = new RecordingDescriptorDecoder(); + private readonly RecordingSignalEventDecoder _recordingSignalEventDecoder = new RecordingSignalEventDecoder(); - private readonly long controlSessionId; - private readonly int fragmentLimit; - private readonly Subscription subscription; - private readonly ControlledFragmentAssembler fragmentAssembler; - private readonly IErrorHandler errorHandler; - private readonly IRecordingSignalConsumer recordingSignalConsumer; + private readonly long _controlSessionId; + private readonly int _fragmentLimit; + private readonly Subscription _subscription; + private readonly ControlledFragmentAssembler _fragmentAssembler; + private readonly IErrorHandler _errorHandler; + private readonly IRecordingSignalConsumer _recordingSignalConsumer; - private long correlationId; - private int remainingRecordCount; - private bool isDispatchComplete = false; - private IRecordingDescriptorConsumer recordingDescriptorConsumer; + private long _correlationId; + private int _remainingRecordCount; + private bool _isDispatchComplete = false; + private IRecordingDescriptorConsumer _recordingDescriptorConsumer; /// /// Create a poller for a given subscription to an archive for control response messages. @@ -36,24 +52,27 @@ public class RecordingDescriptorPoller : IControlledFragmentHandler /// to apply for each polling operation. public RecordingDescriptorPoller( Subscription subscription, - IErrorHandler errorHandler, - long controlSessionId, - int fragmentLimit) : - this( + IErrorHandler errorHandler, + long controlSessionId, + int fragmentLimit + ) + : this( subscription, - errorHandler, - AeronArchive.Configuration.NO_OP_RECORDING_SIGNAL_CONSUMER, - controlSessionId, - fragmentLimit) + errorHandler, + AeronArchive.Configuration.NO_OP_RECORDING_SIGNAL_CONSUMER, + controlSessionId, + fragmentLimit + ) { } - + /// /// Create a poller for a given subscription to an archive for control response messages. /// /// to poll for new events. /// to call for asynchronous errors. - /// for consuming interleaved recording signals on the control session. + /// for consuming interleaved recording signals on the control + /// session. /// to filter the responses. /// to apply for each polling operation. public RecordingDescriptorPoller( @@ -61,15 +80,16 @@ public RecordingDescriptorPoller( IErrorHandler errorHandler, IRecordingSignalConsumer recordingSignalConsumer, long controlSessionId, - int fragmentLimit) + int fragmentLimit + ) { - this.subscription = subscription; - this.errorHandler = errorHandler; - this.recordingSignalConsumer = recordingSignalConsumer; - this.fragmentLimit = fragmentLimit; - this.controlSessionId = controlSessionId; + this._subscription = subscription; + this._errorHandler = errorHandler; + this._recordingSignalConsumer = recordingSignalConsumer; + this._fragmentLimit = fragmentLimit; + this._controlSessionId = controlSessionId; - this.fragmentAssembler = new ControlledFragmentAssembler(this); + this._fragmentAssembler = new ControlledFragmentAssembler(this); } /// @@ -78,7 +98,7 @@ public RecordingDescriptorPoller( /// the used for polling responses. public Subscription Subscription() { - return subscription; + return _subscription; } /// @@ -87,12 +107,12 @@ public Subscription Subscription() /// the number of fragments read during the operation. Zero if no events are available. public int Poll() { - if (isDispatchComplete) + if (_isDispatchComplete) { - isDispatchComplete = false; + _isDispatchComplete = false; } - return subscription.ControlledPoll(fragmentAssembler, fragmentLimit); + return _subscription.ControlledPoll(_fragmentAssembler, _fragmentLimit); } /// @@ -101,7 +121,7 @@ public int Poll() /// control session id for filtering responses. public long ControlSessionId() { - return controlSessionId; + return _controlSessionId; } /// @@ -110,7 +130,7 @@ public long ControlSessionId() /// true if the dispatch of descriptors complete? public bool IsDispatchComplete() { - return isDispatchComplete; + return _isDispatchComplete; } /// @@ -119,7 +139,7 @@ public bool IsDispatchComplete() /// the number of remaining records are expected. public int RemainingRecordCount() { - return remainingRecordCount; + return _remainingRecordCount; } /// @@ -130,65 +150,80 @@ public int RemainingRecordCount() /// to which the recording descriptors are to be dispatched. public void Reset(long correlationId, int recordCount, IRecordingDescriptorConsumer consumer) { - this.correlationId = correlationId; - this.recordingDescriptorConsumer = consumer; - this.remainingRecordCount = recordCount; - isDispatchComplete = false; + this._correlationId = correlationId; + this._recordingDescriptorConsumer = consumer; + this._remainingRecordCount = recordCount; + _isDispatchComplete = false; } + // Upstream: io.aeron.archive.client.RecordingDescriptorPoller#onFragment + // is @SuppressWarnings("MethodLength"). + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S138:Functions should not have too many lines", + Justification = "Upstream Java parity; method is itself @SuppressWarnings(\"MethodLength\")." + )] public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { - if (isDispatchComplete) + if (_isDispatchComplete) { return ControlledFragmentHandlerAction.ABORT; } - messageHeaderDecoder.Wrap(buffer, offset); + _messageHeaderDecoder.Wrap(buffer, offset); - int schemaId = messageHeaderDecoder.SchemaId(); + int schemaId = _messageHeaderDecoder.SchemaId(); if (schemaId != MessageHeaderDecoder.SCHEMA_ID) { - throw new ArchiveException("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + - schemaId); + throw new ArchiveException( + "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId + ); } - int templateId = messageHeaderDecoder.TemplateId(); + int templateId = _messageHeaderDecoder.TemplateId(); switch (templateId) { case ControlResponseDecoder.TEMPLATE_ID: { - controlResponseDecoder.Wrap( + _controlResponseDecoder.Wrap( buffer, offset + MessageHeaderEncoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - if (controlResponseDecoder.ControlSessionId() == controlSessionId) + if (_controlResponseDecoder.ControlSessionId() == _controlSessionId) { - ControlResponseCode code = controlResponseDecoder.Code(); - long responseCorrelationId = controlResponseDecoder.CorrelationId(); + ControlResponseCode code = _controlResponseDecoder.Code(); + long responseCorrelationId = _controlResponseDecoder.CorrelationId(); - if (ControlResponseCode.RECORDING_UNKNOWN == code && responseCorrelationId == this.correlationId) + if ( + ControlResponseCode.RECORDING_UNKNOWN == code + && responseCorrelationId == this._correlationId + ) { - isDispatchComplete = true; + _isDispatchComplete = true; return ControlledFragmentHandlerAction.BREAK; } if (ControlResponseCode.ERROR == code) { ArchiveException ex = new ArchiveException( - "response for correlationId=" + this.correlationId + ", error: " + - controlResponseDecoder.ErrorMessage(), - (int) controlResponseDecoder.RelevantId(), - responseCorrelationId); + "response for correlationId=" + + this._correlationId + + ", error: " + + _controlResponseDecoder.ErrorMessage(), + (int)_controlResponseDecoder.RelevantId(), + responseCorrelationId + ); - if (responseCorrelationId == this.correlationId) + if (responseCorrelationId == this._correlationId) { throw ex; } else { - errorHandler?.OnError(ex); + _errorHandler?.OnError(ex); } } } @@ -198,59 +233,65 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs case RecordingDescriptorDecoder.TEMPLATE_ID: { - recordingDescriptorDecoder.Wrap( + _recordingDescriptorDecoder.Wrap( buffer, offset + MessageHeaderEncoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - if (recordingDescriptorDecoder.ControlSessionId() == controlSessionId && - recordingDescriptorDecoder.CorrelationId() == correlationId) + if ( + _recordingDescriptorDecoder.ControlSessionId() == _controlSessionId + && _recordingDescriptorDecoder.CorrelationId() == _correlationId + ) { - recordingDescriptorConsumer.OnRecordingDescriptor( - controlSessionId, - recordingDescriptorDecoder.CorrelationId(), - recordingDescriptorDecoder.RecordingId(), - recordingDescriptorDecoder.StartTimestamp(), - recordingDescriptorDecoder.StopTimestamp(), - recordingDescriptorDecoder.StartPosition(), - recordingDescriptorDecoder.StopPosition(), - recordingDescriptorDecoder.InitialTermId(), - recordingDescriptorDecoder.SegmentFileLength(), - recordingDescriptorDecoder.TermBufferLength(), - recordingDescriptorDecoder.MtuLength(), - recordingDescriptorDecoder.SessionId(), - recordingDescriptorDecoder.StreamId(), - recordingDescriptorDecoder.StrippedChannel(), - recordingDescriptorDecoder.OriginalChannel(), - recordingDescriptorDecoder.SourceIdentity()); + _recordingDescriptorConsumer.OnRecordingDescriptor( + _controlSessionId, + _recordingDescriptorDecoder.CorrelationId(), + _recordingDescriptorDecoder.RecordingId(), + _recordingDescriptorDecoder.StartTimestamp(), + _recordingDescriptorDecoder.StopTimestamp(), + _recordingDescriptorDecoder.StartPosition(), + _recordingDescriptorDecoder.StopPosition(), + _recordingDescriptorDecoder.InitialTermId(), + _recordingDescriptorDecoder.SegmentFileLength(), + _recordingDescriptorDecoder.TermBufferLength(), + _recordingDescriptorDecoder.MtuLength(), + _recordingDescriptorDecoder.SessionId(), + _recordingDescriptorDecoder.StreamId(), + _recordingDescriptorDecoder.StrippedChannel(), + _recordingDescriptorDecoder.OriginalChannel(), + _recordingDescriptorDecoder.SourceIdentity() + ); - if (0 == --remainingRecordCount) + if (0 == --_remainingRecordCount) { - isDispatchComplete = true; + _isDispatchComplete = true; return ControlledFragmentHandlerAction.BREAK; } } break; } - + case RecordingSignalEventDecoder.TEMPLATE_ID: - recordingSignalEventDecoder.Wrap( - buffer, - offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _recordingSignalEventDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - if (controlSessionId == recordingSignalEventDecoder.ControlSessionId()) + if (_controlSessionId == _recordingSignalEventDecoder.ControlSessionId()) { - recordingSignalConsumer.OnSignal( - recordingSignalEventDecoder.ControlSessionId(), - recordingSignalEventDecoder.CorrelationId(), - recordingSignalEventDecoder.RecordingId(), - recordingSignalEventDecoder.SubscriptionId(), - recordingSignalEventDecoder.Position(), - recordingSignalEventDecoder.Signal()); + _recordingSignalConsumer.OnSignal( + _recordingSignalEventDecoder.ControlSessionId(), + _recordingSignalEventDecoder.CorrelationId(), + _recordingSignalEventDecoder.RecordingId(), + _recordingSignalEventDecoder.SubscriptionId(), + _recordingSignalEventDecoder.Position(), + _recordingSignalEventDecoder.Signal() + ); } break; } @@ -261,12 +302,13 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs /// public override string ToString() { - return "RecordingDescriptorPoller{" + - "controlSessionId=" + controlSessionId + - ", correlationId=" + correlationId + - ", remainingRecordCount=" + remainingRecordCount + - ", isDispatchComplete=" + isDispatchComplete + - '}'; + return + "RecordingDescriptorPoller{" + + "controlSessionId=" + _controlSessionId + + ", correlationId=" + _correlationId + + ", remainingRecordCount=" + _remainingRecordCount + + ", isDispatchComplete=" + _isDispatchComplete + + '}'; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/RecordingEventsAdapter.cs b/src/Adaptive.Archiver/RecordingEventsAdapter.cs index e4614587..63385b7e 100644 --- a/src/Adaptive.Archiver/RecordingEventsAdapter.cs +++ b/src/Adaptive.Archiver/RecordingEventsAdapter.cs @@ -1,4 +1,20 @@ -using Adaptive.Aeron; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Archiver.Codecs; @@ -33,7 +49,8 @@ public RecordingEventsAdapter(IRecordingEventsListener listener, Subscription su } /// - /// Poll for recording events and dispatch them to the for this instance. + /// Poll for recording events and dispatch them to the for this + /// instance. /// /// the number of fragments read during the operation. Zero if no events are available. public int Poll() @@ -49,8 +66,9 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head int schemaId = _messageHeaderDecoder.SchemaId(); if (schemaId != MessageHeaderDecoder.SCHEMA_ID) { - throw new ArchiveException("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + - schemaId); + throw new ArchiveException( + "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId + ); } switch (_messageHeaderDecoder.TemplateId()) @@ -60,7 +78,8 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); _listener.OnStart( _recordingStartedDecoder.RecordingId(), @@ -68,7 +87,8 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head _recordingStartedDecoder.SessionId(), _recordingStartedDecoder.StreamId(), _recordingStartedDecoder.Channel(), - _recordingStartedDecoder.SourceIdentity()); + _recordingStartedDecoder.SourceIdentity() + ); break; case RecordingProgressDecoder.TEMPLATE_ID: @@ -76,12 +96,14 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); _listener.OnProgress( _recordingProgressDecoder.RecordingId(), _recordingProgressDecoder.StartPosition(), - _recordingProgressDecoder.Position()); + _recordingProgressDecoder.Position() + ); break; case RecordingStoppedDecoder.TEMPLATE_ID: @@ -89,14 +111,16 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); _listener.OnStop( _recordingStoppedDecoder.RecordingId(), _recordingStoppedDecoder.StartPosition(), - _recordingStoppedDecoder.StopPosition()); + _recordingStoppedDecoder.StopPosition() + ); break; } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/RecordingEventsPoller.cs b/src/Adaptive.Archiver/RecordingEventsPoller.cs index 5ed70f32..6087af71 100644 --- a/src/Adaptive.Archiver/RecordingEventsPoller.cs +++ b/src/Adaptive.Archiver/RecordingEventsPoller.cs @@ -1,7 +1,22 @@ -using Adaptive.Aeron; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; -using Adaptive.Agrona.Concurrent; using Adaptive.Archiver.Codecs; namespace Adaptive.Archiver @@ -11,19 +26,19 @@ namespace Adaptive.Archiver /// public class RecordingEventsPoller : IControlledFragmentHandler { - private readonly MessageHeaderDecoder messageHeaderDecoder = new MessageHeaderDecoder(); - private readonly RecordingStartedDecoder recordingStartedDecoder = new RecordingStartedDecoder(); - private readonly RecordingProgressDecoder recordingProgressDecoder = new RecordingProgressDecoder(); - private readonly RecordingStoppedDecoder recordingStoppedDecoder = new RecordingStoppedDecoder(); + private readonly MessageHeaderDecoder _messageHeaderDecoder = new MessageHeaderDecoder(); + private readonly RecordingStartedDecoder _recordingStartedDecoder = new RecordingStartedDecoder(); + private readonly RecordingProgressDecoder _recordingProgressDecoder = new RecordingProgressDecoder(); + private readonly RecordingStoppedDecoder _recordingStoppedDecoder = new RecordingStoppedDecoder(); - private readonly Subscription subscription; - private int templateId; - private bool isPollComplete; + private readonly Subscription _subscription; + private int _templateId; + private bool _isPollComplete; - private long recordingId; - private long recordingStartPosition; - private long recordingPosition; - private long recordingStopPosition; + private long _recordingId; + private long _recordingStartPosition; + private long _recordingPosition; + private long _recordingStopPosition; /// /// Create a poller for a given subscription to an archive for recording events. @@ -31,7 +46,7 @@ public class RecordingEventsPoller : IControlledFragmentHandler /// to poll for new events. public RecordingEventsPoller(Subscription subscription) { - this.subscription = subscription; + this._subscription = subscription; } /// @@ -40,13 +55,13 @@ public RecordingEventsPoller(Subscription subscription) /// the number of fragments read during the operation. Zero if no events are available. public int Poll() { - if (isPollComplete) + if (_isPollComplete) { - isPollComplete = false; - templateId = Aeron.Aeron.NULL_VALUE; + _isPollComplete = false; + _templateId = Aeron.Aeron.NULL_VALUE; } - return subscription.ControlledPoll(this, 1); + return _subscription.ControlledPoll(this, 1); } /// @@ -55,7 +70,7 @@ public int Poll() /// true of the last polling action received a complete message? public bool IsPollComplete() { - return isPollComplete; + return _isPollComplete; } /// @@ -64,7 +79,7 @@ public bool IsPollComplete() /// the template id of the last received message. public int TemplateId() { - return templateId; + return _templateId; } /// @@ -73,7 +88,7 @@ public int TemplateId() /// the recording id of the last received event. public long RecordingId() { - return recordingId; + return _recordingId; } /// @@ -82,7 +97,7 @@ public long RecordingId() /// the position the recording started at. public long RecordingStartPosition() { - return recordingStartPosition; + return _recordingStartPosition; } /// @@ -91,7 +106,7 @@ public long RecordingStartPosition() /// the current recording position. public long RecordingPosition() { - return recordingPosition; + return _recordingPosition; } /// @@ -100,59 +115,76 @@ public long RecordingPosition() /// the position the recording stopped at. public long RecordingStopPosition() { - return recordingStopPosition; + return _recordingStopPosition; } public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { - if (isPollComplete) + if (_isPollComplete) { return ControlledFragmentHandlerAction.ABORT; } - - messageHeaderDecoder.Wrap(buffer, offset); - int schemaId = messageHeaderDecoder.SchemaId(); + _messageHeaderDecoder.Wrap(buffer, offset); + + int schemaId = _messageHeaderDecoder.SchemaId(); if (schemaId != MessageHeaderDecoder.SCHEMA_ID) { - throw new ArchiveException("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId); + throw new ArchiveException( + "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId + ); } - - templateId = messageHeaderDecoder.TemplateId(); - switch (templateId) + + _templateId = _messageHeaderDecoder.TemplateId(); + switch (_templateId) { case RecordingStartedDecoder.TEMPLATE_ID: - recordingStartedDecoder.Wrap(buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, messageHeaderDecoder.BlockLength(), messageHeaderDecoder.Version()); - - recordingId = recordingStartedDecoder.RecordingId(); - recordingStartPosition = recordingStartedDecoder.StartPosition(); - recordingPosition = recordingStartPosition; - recordingStopPosition = Aeron.Aeron.NULL_VALUE; - isPollComplete = true; + _recordingStartedDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + _recordingId = _recordingStartedDecoder.RecordingId(); + _recordingStartPosition = _recordingStartedDecoder.StartPosition(); + _recordingPosition = _recordingStartPosition; + _recordingStopPosition = Aeron.Aeron.NULL_VALUE; + _isPollComplete = true; return ControlledFragmentHandlerAction.BREAK; case RecordingProgressDecoder.TEMPLATE_ID: - recordingProgressDecoder.Wrap(buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, messageHeaderDecoder.BlockLength(), messageHeaderDecoder.Version()); - - recordingId = recordingProgressDecoder.RecordingId(); - recordingStartPosition = recordingProgressDecoder.StartPosition(); - recordingPosition = recordingProgressDecoder.Position(); - recordingStopPosition = Aeron.Aeron.NULL_VALUE; - isPollComplete = true; + _recordingProgressDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + _recordingId = _recordingProgressDecoder.RecordingId(); + _recordingStartPosition = _recordingProgressDecoder.StartPosition(); + _recordingPosition = _recordingProgressDecoder.Position(); + _recordingStopPosition = Aeron.Aeron.NULL_VALUE; + _isPollComplete = true; return ControlledFragmentHandlerAction.BREAK; case RecordingStoppedDecoder.TEMPLATE_ID: - recordingStoppedDecoder.Wrap(buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, messageHeaderDecoder.BlockLength(), messageHeaderDecoder.Version()); - - recordingId = recordingStoppedDecoder.RecordingId(); - recordingStartPosition = recordingStoppedDecoder.StartPosition(); - recordingStopPosition = recordingStoppedDecoder.StopPosition(); - recordingPosition = recordingStopPosition; - isPollComplete = true; + _recordingStoppedDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + _recordingId = _recordingStoppedDecoder.RecordingId(); + _recordingStartPosition = _recordingStoppedDecoder.StartPosition(); + _recordingStopPosition = _recordingStoppedDecoder.StopPosition(); + _recordingPosition = _recordingStopPosition; + _isPollComplete = true; return ControlledFragmentHandlerAction.BREAK; } - + return ControlledFragmentHandlerAction.CONTINUE; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/RecordingPos.cs b/src/Adaptive.Archiver/RecordingPos.cs index 726292ff..f49c8922 100644 --- a/src/Adaptive.Archiver/RecordingPos.cs +++ b/src/Adaptive.Archiver/RecordingPos.cs @@ -1,7 +1,22 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using Adaptive.Aeron; using Adaptive.Agrona; -using Adaptive.Agrona.Concurrent; using Adaptive.Agrona.Concurrent.Status; using static Adaptive.Agrona.Concurrent.Status.CountersReader; @@ -30,6 +45,11 @@ namespace Adaptive.Archiver /// /// /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class RecordingPos { /// @@ -47,10 +67,10 @@ public class RecordingPos /// public const string NAME = "rec-pos"; - internal const int RECORDING_ID_OFFSET = 0; - internal static readonly int SESSION_ID_OFFSET = RECORDING_ID_OFFSET + BitUtil.SIZE_OF_LONG; - internal static readonly int SOURCE_IDENTITY_LENGTH_OFFSET = SESSION_ID_OFFSET + BitUtil.SIZE_OF_INT; - internal static readonly int SOURCE_IDENTITY_OFFSET = SOURCE_IDENTITY_LENGTH_OFFSET + BitUtil.SIZE_OF_INT; + internal const int RecordingIdOffset = 0; + internal static readonly int SessionIdOffset = RecordingIdOffset + BitUtil.SIZE_OF_LONG; + internal static readonly int SourceIdentityLengthOffset = SessionIdOffset + BitUtil.SIZE_OF_INT; + internal static readonly int SourceIdentityOffset = SourceIdentityLengthOffset + BitUtil.SIZE_OF_INT; /// /// Find the active counter id for a stream based on the recording id. @@ -69,7 +89,8 @@ public static int FindCounterIdByRecording(CountersReader countersReader, long r /// /// to search within. /// for the active recording. - /// to target specific Archive. Use to emulate old behaviour. + /// to target specific Archive. Use to emulate old + /// behaviour. /// the counter id if found otherwise . public static int FindCounterIdByRecording(CountersReader countersReader, long recordingId, long archiveId) { @@ -83,10 +104,10 @@ public static int FindCounterIdByRecording(CountersReader countersReader, long r if (countersReader.GetCounterTypeId(counterId) == RECORDING_POSITION_TYPE_ID) { int keyOffset = MetaDataOffset(counterId) + KEY_OFFSET; - if (buffer.GetLong(keyOffset + RECORDING_ID_OFFSET) == recordingId) + if (buffer.GetLong(keyOffset + RecordingIdOffset) == recordingId) { - int sourceIdentityLength = buffer.GetInt(keyOffset + SOURCE_IDENTITY_LENGTH_OFFSET); - int archiveIdOffset = keyOffset + SOURCE_IDENTITY_OFFSET + sourceIdentityLength; + int sourceIdentityLength = buffer.GetInt(keyOffset + SourceIdentityLengthOffset); + int archiveIdOffset = keyOffset + SourceIdentityOffset + sourceIdentityLength; if (Aeron.Aeron.NULL_VALUE == archiveId || buffer.GetLong(archiveIdOffset) == archiveId) { @@ -106,7 +127,6 @@ public static int FindCounterIdByRecording(CountersReader countersReader, long r return NULL_COUNTER_ID; } - /// /// Find the active counter id for a stream based on the session id. /// @@ -125,8 +145,8 @@ public static int FindCounterIdBySession(CountersReader countersReader, int sess /// The reader to search within. /// The session ID for the active recording. /// - /// The archive ID to target a specific archive. - /// Use to emulate the old behavior. + /// The archive ID to target a specific archive. Use to emulate the old + /// behavior. /// /// /// The counter ID if found; otherwise . @@ -144,10 +164,10 @@ public static int FindCounterIdBySession(CountersReader countersReader, int sess if (countersReader.GetCounterTypeId(counterId) == RECORDING_POSITION_TYPE_ID) { int keyOffset = MetaDataOffset(counterId) + KEY_OFFSET; - if (buffer.GetInt(keyOffset + SESSION_ID_OFFSET) == sessionId) + if (buffer.GetInt(keyOffset + SessionIdOffset) == sessionId) { - int sourceIdentityLength = buffer.GetInt(keyOffset + SOURCE_IDENTITY_LENGTH_OFFSET); - int archiveIdOffset = keyOffset + SOURCE_IDENTITY_OFFSET + sourceIdentityLength; + int sourceIdentityLength = buffer.GetInt(keyOffset + SourceIdentityLengthOffset); + int archiveIdOffset = keyOffset + SourceIdentityOffset + sourceIdentityLength; if (Aeron.Aeron.NULL_VALUE == archiveId || buffer.GetLong(archiveIdOffset) == archiveId) { @@ -173,11 +193,14 @@ public static int FindCounterIdBySession(CountersReader countersReader, int sess /// the counter id if found otherwise . public static long GetRecordingId(CountersReader countersReader, int counterId) { - if (countersReader.GetCounterState(counterId) == RECORD_ALLOCATED && - countersReader.GetCounterTypeId(counterId) == RECORDING_POSITION_TYPE_ID) + if ( + countersReader.GetCounterState(counterId) == RECORD_ALLOCATED + && countersReader.GetCounterTypeId(counterId) == RECORDING_POSITION_TYPE_ID + ) { - return countersReader.MetaDataBuffer - .GetLong(MetaDataOffset(counterId) + KEY_OFFSET + RECORDING_ID_OFFSET); + return countersReader.MetaDataBuffer.GetLong( + MetaDataOffset(counterId) + KEY_OFFSET + RecordingIdOffset + ); } return NULL_RECORDING_ID; @@ -191,12 +214,15 @@ public static long GetRecordingId(CountersReader countersReader, int counterId) /// for the recording or null if not found. public static string GetSourceIdentity(CountersReader counters, int counterId) { - if (counters.GetCounterState(counterId) == RECORD_ALLOCATED && - counters.GetCounterTypeId(counterId) == RECORDING_POSITION_TYPE_ID) + if ( + counters.GetCounterState(counterId) == RECORD_ALLOCATED + && counters.GetCounterTypeId(counterId) == RECORDING_POSITION_TYPE_ID + ) { int recordOffset = MetaDataOffset(counterId); - return counters.MetaDataBuffer.GetStringAscii(recordOffset + KEY_OFFSET + - SOURCE_IDENTITY_LENGTH_OFFSET); + return counters.MetaDataBuffer.GetStringAscii( + recordOffset + KEY_OFFSET + SourceIdentityLengthOffset + ); } return null; @@ -211,11 +237,11 @@ public static string GetSourceIdentity(CountersReader counters, int counterId) /// true if the counter is still active otherwise false. public static bool IsActive(CountersReader counters, int counterId, long recordingId) { - int recordingIdOffset = MetaDataOffset(counterId) + +KEY_OFFSET + RECORDING_ID_OFFSET; + int recordingIdOffset = MetaDataOffset(counterId) + +KEY_OFFSET + RecordingIdOffset; - return counters.GetCounterState(counterId) == RECORD_ALLOCATED && - counters.GetCounterTypeId(counterId) == RECORDING_POSITION_TYPE_ID && - counters.MetaDataBuffer.GetLong(recordingIdOffset) == recordingId; + return counters.GetCounterState(counterId) == RECORD_ALLOCATED + && counters.GetCounterTypeId(counterId) == RECORDING_POSITION_TYPE_ID + && counters.MetaDataBuffer.GetLong(recordingIdOffset) == recordingId; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/RecordingSignalAdapter.cs b/src/Adaptive.Archiver/RecordingSignalAdapter.cs index 3cbed958..542ea3ff 100644 --- a/src/Adaptive.Archiver/RecordingSignalAdapter.cs +++ b/src/Adaptive.Archiver/RecordingSignalAdapter.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; @@ -10,59 +26,69 @@ namespace Adaptive.Archiver /// Encapsulate the polling, decoding, and dispatching of recording transition events for a session plus the /// asynchronous events to check for errors. /// - /// Important: set the underlying instance on the using the - /// method to avoid missing signals. - /// + /// Important: set the underlying instance on the + /// using the + /// method to avoid missing + /// signals. + /// /// /// /// public class RecordingSignalAdapter : IControlledFragmentHandler { - private readonly MessageHeaderDecoder messageHeaderDecoder = new MessageHeaderDecoder(); - private readonly ControlResponseDecoder controlResponseDecoder = new ControlResponseDecoder(); - private readonly RecordingSignalEventDecoder recordingSignalEventDecoder = new RecordingSignalEventDecoder(); - private ControlledFragmentAssembler assembler; - private readonly IControlEventListener controlEventListener; - private readonly IRecordingSignalConsumer recordingSignalConsumer; - private readonly Subscription subscription; - private readonly int fragmentLimit; - private readonly long controlSessionId; - private bool isDone = false; + private readonly MessageHeaderDecoder _messageHeaderDecoder = new MessageHeaderDecoder(); + private readonly ControlResponseDecoder _controlResponseDecoder = new ControlResponseDecoder(); + private readonly RecordingSignalEventDecoder _recordingSignalEventDecoder = new RecordingSignalEventDecoder(); + private ControlledFragmentAssembler _assembler; + private readonly IControlEventListener _controlEventListener; + private readonly IRecordingSignalConsumer _recordingSignalConsumer; + private readonly Subscription _subscription; + private readonly int _fragmentLimit; + private readonly long _controlSessionId; + private bool _isDone = false; /// /// Create an adapter for a given subscription to an archive for recording events. /// - /// to listen for associated asynchronous control events, such as errors. - /// listener for control events which may indicate an error on the session. + /// to listen for associated asynchronous control events, such as errors. + /// + /// listener for control events which may indicate an error on the session. + /// /// consumer of recording transition events. /// to poll for new events. /// to apply for each polling operation. - public RecordingSignalAdapter(long controlSessionId, IControlEventListener controlEventListener, - IRecordingSignalConsumer recordingSignalConsumer, Subscription subscription, int fragmentLimit) + public RecordingSignalAdapter( + long controlSessionId, + IControlEventListener controlEventListener, + IRecordingSignalConsumer recordingSignalConsumer, + Subscription subscription, + int fragmentLimit + ) { - assembler = new ControlledFragmentAssembler(this); + _assembler = new ControlledFragmentAssembler(this); - this.controlSessionId = controlSessionId; - this.controlEventListener = controlEventListener; - this.recordingSignalConsumer = recordingSignalConsumer; - this.subscription = subscription; - this.fragmentLimit = fragmentLimit; + this._controlSessionId = controlSessionId; + this._controlEventListener = controlEventListener; + this._recordingSignalConsumer = recordingSignalConsumer; + this._subscription = subscription; + this._fragmentLimit = fragmentLimit; } /// - /// Poll for recording transitions and dispatch them to the for this instance, - /// plus check for async responses for this control session which may have an exception and dispatch to the + /// Poll for recording transitions and dispatch them to the for this + /// instance, plus check for async responses for this control session which may have an exception and dispatch + /// to the /// . /// /// the number of fragments read during the operation. Zero if no events are available. public int Poll() { - if (isDone) + if (_isDone) { - isDone = false; + _isDone = false; } - - return subscription.ControlledPoll(assembler, fragmentLimit); + + return _subscription.ControlledPoll(_assembler, _fragmentLimit); } /// @@ -71,55 +97,72 @@ public int Poll() /// true if a signal or control response was received. public bool Done { - get { return isDone; } + get { return _isDone; } } public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { - if (isDone) + if (_isDone) { return ABORT; } - messageHeaderDecoder.Wrap(buffer, offset); + _messageHeaderDecoder.Wrap(buffer, offset); - int schemaId = messageHeaderDecoder.SchemaId(); + int schemaId = _messageHeaderDecoder.SchemaId(); if (schemaId != MessageHeaderDecoder.SCHEMA_ID) { - throw new ArchiveException("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + - schemaId); + throw new ArchiveException( + "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId + ); } - switch (messageHeaderDecoder.TemplateId()) + switch (_messageHeaderDecoder.TemplateId()) { case ControlResponseDecoder.TEMPLATE_ID: - controlResponseDecoder.Wrap(buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), messageHeaderDecoder.Version()); - - if (controlResponseDecoder.ControlSessionId() == controlSessionId) + _controlResponseDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + if (_controlResponseDecoder.ControlSessionId() == _controlSessionId) { - controlEventListener.OnResponse(controlSessionId, controlResponseDecoder.CorrelationId(), - controlResponseDecoder.RelevantId(), controlResponseDecoder.Code(), - controlResponseDecoder.ErrorMessage()); - - isDone = true; + _controlEventListener.OnResponse( + _controlSessionId, + _controlResponseDecoder.CorrelationId(), + _controlResponseDecoder.RelevantId(), + _controlResponseDecoder.Code(), + _controlResponseDecoder.ErrorMessage() + ); + + _isDone = true; return BREAK; } break; case RecordingSignalEventDecoder.TEMPLATE_ID: - recordingSignalEventDecoder.Wrap(buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), messageHeaderDecoder.Version()); - - if (recordingSignalEventDecoder.ControlSessionId() == controlSessionId) + _recordingSignalEventDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + if (_recordingSignalEventDecoder.ControlSessionId() == _controlSessionId) { - recordingSignalConsumer.OnSignal(recordingSignalEventDecoder.ControlSessionId(), - recordingSignalEventDecoder.CorrelationId(), recordingSignalEventDecoder.RecordingId(), - recordingSignalEventDecoder.SubscriptionId(), recordingSignalEventDecoder.Position(), - recordingSignalEventDecoder.Signal()); - - isDone = true; + _recordingSignalConsumer.OnSignal( + _recordingSignalEventDecoder.ControlSessionId(), + _recordingSignalEventDecoder.CorrelationId(), + _recordingSignalEventDecoder.RecordingId(), + _recordingSignalEventDecoder.SubscriptionId(), + _recordingSignalEventDecoder.Position(), + _recordingSignalEventDecoder.Signal() + ); + + _isDone = true; return BREAK; } @@ -129,4 +172,4 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs return CONTINUE; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/RecordingSignalConsumer.cs b/src/Adaptive.Archiver/RecordingSignalConsumer.cs index a4e8fef8..b6afcc20 100644 --- a/src/Adaptive.Archiver/RecordingSignalConsumer.cs +++ b/src/Adaptive.Archiver/RecordingSignalConsumer.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; using Adaptive.Archiver.Codecs; @@ -23,6 +39,7 @@ void OnSignal( long recordingId, long subscriptionId, long position, - RecordingSignal signal); + RecordingSignal signal + ); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/RecordingSignalPoller.cs b/src/Adaptive.Archiver/RecordingSignalPoller.cs index 3e859c69..48dd286f 100644 --- a/src/Adaptive.Archiver/RecordingSignalPoller.cs +++ b/src/Adaptive.Archiver/RecordingSignalPoller.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Archiver.Codecs; @@ -16,48 +32,50 @@ public sealed class RecordingSignalPoller : IControlledFragmentHandler /// public const int FRAGMENT_LIMIT = 10; - private readonly MessageHeaderDecoder messageHeaderDecoder = new MessageHeaderDecoder(); - private readonly ControlResponseDecoder controlResponseDecoder = new ControlResponseDecoder(); - private readonly RecordingSignalEventDecoder recordingSignalEventDecoder = new RecordingSignalEventDecoder(); - - private readonly Subscription subscription; - private ControlledFragmentAssembler fragmentAssembler; - private readonly long controlSessionId; - private long correlationId = Aeron.Aeron.NULL_VALUE; - private long relevantId = Aeron.Aeron.NULL_VALUE; - private int templateId = Aeron.Aeron.NULL_VALUE; - private int version = 0; - private long recordingId = Aeron.Aeron.NULL_VALUE; - private long recordingSubscriptionId = Aeron.Aeron.NULL_VALUE; - private long recordingPosition = Aeron.Aeron.NULL_VALUE; - private RecordingSignal recordingSignal = Codecs.RecordingSignal.NULL_VALUE; - private ControlResponseCode code; - private string errorMessage; - private readonly int fragmentLimit; - private bool isPollComplete = false; + private readonly MessageHeaderDecoder _messageHeaderDecoder = new MessageHeaderDecoder(); + private readonly ControlResponseDecoder _controlResponseDecoder = new ControlResponseDecoder(); + private readonly RecordingSignalEventDecoder _recordingSignalEventDecoder = new RecordingSignalEventDecoder(); + + private readonly Subscription _subscription; + private ControlledFragmentAssembler _fragmentAssembler; + private readonly long _controlSessionId; + private long _correlationId = Aeron.Aeron.NULL_VALUE; + private long _relevantId = Aeron.Aeron.NULL_VALUE; + private int _templateId = Aeron.Aeron.NULL_VALUE; + private int _version = 0; + private long _recordingId = Aeron.Aeron.NULL_VALUE; + private long _recordingSubscriptionId = Aeron.Aeron.NULL_VALUE; + private long _recordingPosition = Aeron.Aeron.NULL_VALUE; + private RecordingSignal _recordingSignal = Codecs.RecordingSignal.NULL_VALUE; + private ControlResponseCode _code; + private string _errorMessage; + private readonly int _fragmentLimit; + private bool _isPollComplete = false; /// /// Create a poller for a given subscription to an archive for control messages. /// - /// to listen for associated asynchronous control events, such as errors. + /// to listen for associated asynchronous control events, such as errors. + /// /// to poll for new events. /// to apply when polling. private RecordingSignalPoller(long controlSessionId, Subscription subscription, int fragmentLimit) { - fragmentAssembler = new ControlledFragmentAssembler(this); + _fragmentAssembler = new ControlledFragmentAssembler(this); - this.controlSessionId = controlSessionId; - this.subscription = subscription; - this.fragmentLimit = fragmentLimit; + this._controlSessionId = controlSessionId; + this._subscription = subscription; + this._fragmentLimit = fragmentLimit; } /// - /// Create a poller for a given subscription to an archive for control response messages with a default - /// fragment limit for polling as . + /// Create a poller for a given subscription to an archive for control response messages with a default fragment + /// limit for polling as . /// - /// to listen for associated asynchronous control events, such as errors. + /// to listen for associated asynchronous control events, such as errors. + /// /// to poll for new events. - public RecordingSignalPoller(long controlSessionId, Subscription subscription) + public RecordingSignalPoller(long controlSessionId, Subscription subscription) : this(controlSessionId, subscription, FRAGMENT_LIMIT) { } @@ -68,7 +86,7 @@ public RecordingSignalPoller(long controlSessionId, Subscription subscription) /// the used for polling messages. public Subscription Subscription() { - return subscription; + return _subscription; } /// @@ -77,39 +95,43 @@ public Subscription Subscription() /// the number of fragments read during the operation. Zero if no events are available. public int Poll() { - if (isPollComplete) + if (_isPollComplete) { - isPollComplete = false; - templateId = Aeron.Aeron.NULL_VALUE; - correlationId = Aeron.Aeron.NULL_VALUE; - relevantId = Aeron.Aeron.NULL_VALUE; - version = 0; - errorMessage = null; - recordingId = Aeron.Aeron.NULL_VALUE; - recordingSubscriptionId = Aeron.Aeron.NULL_VALUE; - recordingPosition = Aeron.Aeron.NULL_VALUE; - recordingSignal = Codecs.RecordingSignal.NULL_VALUE; + _isPollComplete = false; + _templateId = Aeron.Aeron.NULL_VALUE; + _correlationId = Aeron.Aeron.NULL_VALUE; + _relevantId = Aeron.Aeron.NULL_VALUE; + _version = 0; + _errorMessage = null; + _recordingId = Aeron.Aeron.NULL_VALUE; + _recordingSubscriptionId = Aeron.Aeron.NULL_VALUE; + _recordingPosition = Aeron.Aeron.NULL_VALUE; + _recordingSignal = Codecs.RecordingSignal.NULL_VALUE; } - return subscription.ControlledPoll(fragmentAssembler, fragmentLimit); + return _subscription.ControlledPoll(_fragmentAssembler, _fragmentLimit); } /// - /// Control session id of the last polled message or if poll returned nothing. + /// Control session id of the last polled message or if poll returned + /// nothing. /// - /// control session id of the last polled message or if poll returned nothing. + /// control session id of the last polled message or if poll + /// returned nothing. public long ControlSessionId() { - return controlSessionId; + return _controlSessionId; } /// - /// Correlation id of the last polled message or if poll returned nothing. + /// Correlation id of the last polled message or if poll returned + /// nothing. /// - /// correlation id of the last polled message or if poll returned nothing. + /// correlation id of the last polled message or if poll + /// returned nothing. public long CorrelationId() { - return correlationId; + return _correlationId; } /// @@ -118,7 +140,7 @@ public long CorrelationId() /// the relevant id returned with the response. public long RelevantId() { - return relevantId; + return _relevantId; } /// @@ -127,7 +149,7 @@ public long RelevantId() /// the template id of the last received message. public int TemplateId() { - return templateId; + return _templateId; } /// @@ -136,7 +158,7 @@ public int TemplateId() /// the recording id of the last received message. public long RecordingId() { - return recordingId; + return _recordingId; } /// @@ -145,7 +167,7 @@ public long RecordingId() /// the recording subscription id of the last received message. public long RecordingSubscriptionId() { - return recordingSubscriptionId; + return _recordingSubscriptionId; } /// @@ -154,7 +176,7 @@ public long RecordingSubscriptionId() /// the recording position of the last received message. public long RecordingPosition() { - return recordingPosition; + return _recordingPosition; } /// @@ -163,7 +185,7 @@ public long RecordingPosition() /// the recording signal of the last received message. public RecordingSignal RecordingSignal() { - return recordingSignal; + return _recordingSignal; } /// @@ -172,7 +194,7 @@ public RecordingSignal RecordingSignal() /// response from the server in semantic version form. public int Version() { - return version; + return _version; } /// @@ -181,7 +203,7 @@ public int Version() /// true if the last polling action received a complete message? public bool PollComplete { - get { return isPollComplete; } + get { return _isPollComplete; } } /// @@ -190,7 +212,7 @@ public bool PollComplete /// the response code of the last response. public ControlResponseCode Code() { - return code; + return _code; } /// @@ -199,65 +221,68 @@ public ControlResponseCode Code() /// the error message of the last response. public string ErrorMessage() { - return errorMessage; + return _errorMessage; } public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { - if (isPollComplete) + if (_isPollComplete) { return ControlledFragmentHandlerAction.ABORT; } - messageHeaderDecoder.Wrap(buffer, offset); + _messageHeaderDecoder.Wrap(buffer, offset); - int schemaId = messageHeaderDecoder.SchemaId(); + int schemaId = _messageHeaderDecoder.SchemaId(); if (schemaId != MessageHeaderDecoder.SCHEMA_ID) { - throw new ArchiveException("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + - schemaId); + throw new ArchiveException( + "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId + ); } - int templateId = messageHeaderDecoder.TemplateId(); + int templateId = _messageHeaderDecoder.TemplateId(); if (ControlResponseDecoder.TEMPLATE_ID == templateId) { - controlResponseDecoder.Wrap( - buffer, + _controlResponseDecoder.Wrap( + buffer, offset + MessageHeaderEncoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - if (controlResponseDecoder.ControlSessionId() == controlSessionId) + if (_controlResponseDecoder.ControlSessionId() == _controlSessionId) { - this.templateId = templateId; - correlationId = controlResponseDecoder.CorrelationId(); - relevantId = controlResponseDecoder.RelevantId(); - code = controlResponseDecoder.Code(); - version = controlResponseDecoder.Version(); - errorMessage = controlResponseDecoder.ErrorMessage(); - isPollComplete = true; + this._templateId = templateId; + _correlationId = _controlResponseDecoder.CorrelationId(); + _relevantId = _controlResponseDecoder.RelevantId(); + _code = _controlResponseDecoder.Code(); + _version = _controlResponseDecoder.Version(); + _errorMessage = _controlResponseDecoder.ErrorMessage(); + _isPollComplete = true; return ControlledFragmentHandlerAction.BREAK; } } else if (RecordingSignalEventDecoder.TEMPLATE_ID == templateId) { - recordingSignalEventDecoder.Wrap( - buffer, + _recordingSignalEventDecoder.Wrap( + buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - if (recordingSignalEventDecoder.ControlSessionId() == controlSessionId) + if (_recordingSignalEventDecoder.ControlSessionId() == _controlSessionId) { - this.templateId = templateId; - correlationId = recordingSignalEventDecoder.CorrelationId(); - recordingId = recordingSignalEventDecoder.RecordingId(); - recordingSubscriptionId = recordingSignalEventDecoder.SubscriptionId(); - recordingPosition = recordingSignalEventDecoder.Position(); - recordingSignal = recordingSignalEventDecoder.Signal(); - isPollComplete = true; + this._templateId = templateId; + _correlationId = _recordingSignalEventDecoder.CorrelationId(); + _recordingId = _recordingSignalEventDecoder.RecordingId(); + _recordingSubscriptionId = _recordingSignalEventDecoder.SubscriptionId(); + _recordingPosition = _recordingSignalEventDecoder.Position(); + _recordingSignal = _recordingSignalEventDecoder.Signal(); + _isPollComplete = true; return ControlledFragmentHandlerAction.BREAK; } @@ -271,20 +296,21 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs /// public override string ToString() { - return "RecordingSignalPoller{" + - "controlSessionId=" + controlSessionId + - ", correlationId=" + correlationId + - ", relevantId=" + relevantId + - ", code=" + code + - ", templateId=" + templateId + - ", version=" + SemanticVersion.ToString(version) + - ", errorMessage='" + errorMessage + '\'' + - ", recordingId=" + recordingId + - ", recordingSubscriptionId=" + recordingSubscriptionId + - ", recordingPosition=" + recordingPosition + - ", recordingSignal=" + recordingSignal + - ", isPollComplete=" + isPollComplete + - '}'; + return + "RecordingSignalPoller{" + + "controlSessionId=" + _controlSessionId + + ", correlationId=" + _correlationId + + ", relevantId=" + _relevantId + + ", code=" + _code + + ", templateId=" + _templateId + + ", version=" + SemanticVersion.ToString(_version) + + ", errorMessage='" + _errorMessage + '\'' + + ", recordingId=" + _recordingId + + ", recordingSubscriptionId=" + _recordingSubscriptionId + + ", recordingPosition=" + _recordingPosition + + ", recordingSignal=" + _recordingSignal + + ", isPollComplete=" + _isPollComplete + + '}'; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/RecordingSubscriptionDescriptorPoller.cs b/src/Adaptive.Archiver/RecordingSubscriptionDescriptorPoller.cs index 2f5cec42..4bc80350 100644 --- a/src/Adaptive.Archiver/RecordingSubscriptionDescriptorPoller.cs +++ b/src/Adaptive.Archiver/RecordingSubscriptionDescriptorPoller.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; @@ -6,33 +22,36 @@ namespace Adaptive.Archiver { +#pragma warning disable S103 // long cref atom; mirrors upstream Java @see exempted by Checkstyle ignorePattern /// /// Encapsulate the polling, decoding, dispatching of recording descriptors from an archive. /// /// /// - /// + /// + /// +#pragma warning restore S103 public class RecordingSubscriptionDescriptorPoller : IControlledFragmentHandler { - private readonly MessageHeaderDecoder messageHeaderDecoder = new MessageHeaderDecoder(); - private readonly ControlResponseDecoder controlResponseDecoder = new ControlResponseDecoder(); + private readonly MessageHeaderDecoder _messageHeaderDecoder = new MessageHeaderDecoder(); + private readonly ControlResponseDecoder _controlResponseDecoder = new ControlResponseDecoder(); - private readonly RecordingSubscriptionDescriptorDecoder recordingSubscriptionDescriptorDecoder = + private readonly RecordingSubscriptionDescriptorDecoder _recordingSubscriptionDescriptorDecoder = new RecordingSubscriptionDescriptorDecoder(); - private readonly RecordingSignalEventDecoder recordingSignalEventDecoder = new RecordingSignalEventDecoder(); + private readonly RecordingSignalEventDecoder _recordingSignalEventDecoder = new RecordingSignalEventDecoder(); - private readonly long controlSessionId; - private readonly int fragmentLimit; - private readonly Subscription subscription; - private readonly ControlledFragmentAssembler fragmentAssembler; - private readonly IErrorHandler errorHandler; - private readonly IRecordingSignalConsumer recordingSignalConsumer; + private readonly long _controlSessionId; + private readonly int _fragmentLimit; + private readonly Subscription _subscription; + private readonly ControlledFragmentAssembler _fragmentAssembler; + private readonly IErrorHandler _errorHandler; + private readonly IRecordingSignalConsumer _recordingSignalConsumer; - private long correlationId; - private int remainingSubscriptionCount; - private bool isDispatchComplete = false; - private IRecordingSubscriptionDescriptorConsumer subscriptionDescriptorConsumer; + private long _correlationId; + private int _remainingSubscriptionCount; + private bool _isDispatchComplete = false; + private IRecordingSubscriptionDescriptorConsumer _subscriptionDescriptorConsumer; /// /// Create a poller for a given subscription to an archive for control response messages. @@ -45,23 +64,25 @@ public RecordingSubscriptionDescriptorPoller( Subscription subscription, IErrorHandler errorHandler, long controlSessionId, - int fragmentLimit) : - this( + int fragmentLimit + ) + : this( subscription, errorHandler, AeronArchive.Configuration.NO_OP_RECORDING_SIGNAL_CONSUMER, controlSessionId, - fragmentLimit) + fragmentLimit + ) { } - /// /// Create a poller for a given subscription to an archive for control response messages. /// /// to poll for new events. /// to call for asynchronous errors. - /// for consuming interleaved recording signals on the control session. + /// for consuming interleaved recording signals on the control + /// session. /// to filter the responses. /// to apply for each polling operation. public RecordingSubscriptionDescriptorPoller( @@ -69,14 +90,15 @@ public RecordingSubscriptionDescriptorPoller( IErrorHandler errorHandler, IRecordingSignalConsumer recordingSignalConsumer, long controlSessionId, - int fragmentLimit) + int fragmentLimit + ) { - this.fragmentAssembler = new ControlledFragmentAssembler(this); - this.subscription = subscription; - this.errorHandler = errorHandler; - this.recordingSignalConsumer = recordingSignalConsumer; - this.fragmentLimit = fragmentLimit; - this.controlSessionId = controlSessionId; + this._fragmentAssembler = new ControlledFragmentAssembler(this); + this._subscription = subscription; + this._errorHandler = errorHandler; + this._recordingSignalConsumer = recordingSignalConsumer; + this._fragmentLimit = fragmentLimit; + this._controlSessionId = controlSessionId; } /// @@ -85,21 +107,22 @@ public RecordingSubscriptionDescriptorPoller( /// the used for polling responses. public Subscription Subscription() { - return subscription; + return _subscription; } /// - /// Poll for recording subscriptions and delegate to the . + /// Poll for recording subscriptions and delegate to the + /// . /// /// the number of fragments read during the operation. Zero if no events are available. public int Poll() { - if (isDispatchComplete) + if (_isDispatchComplete) { - isDispatchComplete = false; + _isDispatchComplete = false; } - return subscription.ControlledPoll(fragmentAssembler, fragmentLimit); + return _subscription.ControlledPoll(_fragmentAssembler, _fragmentLimit); } /// @@ -108,7 +131,7 @@ public int Poll() /// control session id for filtering responses. public long ControlSessionId() { - return controlSessionId; + return _controlSessionId; } /// @@ -117,7 +140,7 @@ public long ControlSessionId() /// true if the dispatch of descriptors complete? public bool DispatchComplete { - get { return isDispatchComplete; } + get { return _isDispatchComplete; } } /// @@ -126,7 +149,7 @@ public bool DispatchComplete /// the number of remaining subscriptions expected. public int RemainingSubscriptionCount() { - return remainingSubscriptionCount; + return _remainingSubscriptionCount; } /// @@ -134,117 +157,139 @@ public int RemainingSubscriptionCount() /// /// for the response. /// of descriptors to expect. - /// to which the recording subscription descriptors are to be dispatched. + /// to which the recording subscription descriptors are to be dispatched. public void Reset(long correlationId, int subscriptionCount, IRecordingSubscriptionDescriptorConsumer consumer) { - this.correlationId = correlationId; - this.subscriptionDescriptorConsumer = consumer; - this.remainingSubscriptionCount = subscriptionCount; - isDispatchComplete = false; + this._correlationId = correlationId; + this._subscriptionDescriptorConsumer = consumer; + this._remainingSubscriptionCount = subscriptionCount; + _isDispatchComplete = false; } + // Upstream: io.aeron.archive.client.RecordingSubscriptionDescriptorPoller#onFragment + // is @SuppressWarnings("MethodLength"). + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S138:Functions should not have too many lines", + Justification = "Upstream Java parity; method is itself @SuppressWarnings(\"MethodLength\")." + )] public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { - if (isDispatchComplete) + if (_isDispatchComplete) { return ABORT; } - messageHeaderDecoder.Wrap(buffer, offset); + _messageHeaderDecoder.Wrap(buffer, offset); - int schemaId = messageHeaderDecoder.SchemaId(); + int schemaId = _messageHeaderDecoder.SchemaId(); if (schemaId != MessageHeaderDecoder.SCHEMA_ID) { - throw new ArchiveException("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + - schemaId); + throw new ArchiveException( + "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId + ); } - int templateId = messageHeaderDecoder.TemplateId(); + int templateId = _messageHeaderDecoder.TemplateId(); switch (templateId) { case ControlResponseDecoder.TEMPLATE_ID: - { - controlResponseDecoder - .Wrap(buffer, - offset + MessageHeaderEncoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); - - if (controlResponseDecoder.ControlSessionId() == controlSessionId) { - ControlResponseCode code = controlResponseDecoder.Code(); - long responseCorrelationId = controlResponseDecoder.CorrelationId(); - - if (ControlResponseCode.SUBSCRIPTION_UNKNOWN == code && responseCorrelationId == this.correlationId) - { - isDispatchComplete = true; - return BREAK; - } + _controlResponseDecoder.Wrap( + buffer, + offset + MessageHeaderEncoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - if (ControlResponseCode.ERROR == code) + if (_controlResponseDecoder.ControlSessionId() == _controlSessionId) { - ArchiveException ex = new ArchiveException( - "response for correlationId=" + this.correlationId + ", error: " + - controlResponseDecoder.ErrorMessage(), (int)controlResponseDecoder.RelevantId(), - responseCorrelationId); + ControlResponseCode code = _controlResponseDecoder.Code(); + long responseCorrelationId = _controlResponseDecoder.CorrelationId(); - if (responseCorrelationId == this.correlationId) + if ( + ControlResponseCode.SUBSCRIPTION_UNKNOWN == code + && responseCorrelationId == this._correlationId + ) { - throw ex; + _isDispatchComplete = true; + return BREAK; } - else + + if (ControlResponseCode.ERROR == code) { - errorHandler?.OnError(ex); + ArchiveException ex = new ArchiveException( + "response for correlationId=" + + this._correlationId + + ", error: " + + _controlResponseDecoder.ErrorMessage(), + (int)_controlResponseDecoder.RelevantId(), + responseCorrelationId + ); + + if (responseCorrelationId == this._correlationId) + { + throw ex; + } + else + { + _errorHandler?.OnError(ex); + } } } } - } break; case RecordingSubscriptionDescriptorDecoder.TEMPLATE_ID: - { - recordingSubscriptionDescriptorDecoder.Wrap( - buffer, - offset + MessageHeaderEncoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); - - if (recordingSubscriptionDescriptorDecoder.ControlSessionId() == controlSessionId && - recordingSubscriptionDescriptorDecoder.CorrelationId() == this.correlationId) { - subscriptionDescriptorConsumer.OnSubscriptionDescriptor( - controlSessionId, - recordingSubscriptionDescriptorDecoder.CorrelationId(), - recordingSubscriptionDescriptorDecoder.SubscriptionId(), - recordingSubscriptionDescriptorDecoder.StreamId(), - recordingSubscriptionDescriptorDecoder.StrippedChannel()); + _recordingSubscriptionDescriptorDecoder.Wrap( + buffer, + offset + MessageHeaderEncoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - if (0 == --remainingSubscriptionCount) + if ( + _recordingSubscriptionDescriptorDecoder.ControlSessionId() == _controlSessionId + && _recordingSubscriptionDescriptorDecoder.CorrelationId() == this._correlationId + ) { - isDispatchComplete = true; - return BREAK; + _subscriptionDescriptorConsumer.OnSubscriptionDescriptor( + _controlSessionId, + _recordingSubscriptionDescriptorDecoder.CorrelationId(), + _recordingSubscriptionDescriptorDecoder.SubscriptionId(), + _recordingSubscriptionDescriptorDecoder.StreamId(), + _recordingSubscriptionDescriptorDecoder.StrippedChannel() + ); + + if (0 == --_remainingSubscriptionCount) + { + _isDispatchComplete = true; + return BREAK; + } } } - } break; case RecordingSignalEventDecoder.TEMPLATE_ID: - recordingSignalEventDecoder.Wrap( + _recordingSignalEventDecoder.Wrap( buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - if (controlSessionId == recordingSignalEventDecoder.ControlSessionId()) + if (_controlSessionId == _recordingSignalEventDecoder.ControlSessionId()) { - recordingSignalConsumer.OnSignal( - recordingSignalEventDecoder.ControlSessionId(), - recordingSignalEventDecoder.CorrelationId(), - recordingSignalEventDecoder.RecordingId(), - recordingSignalEventDecoder.SubscriptionId(), - recordingSignalEventDecoder.Position(), - recordingSignalEventDecoder.Signal()); + _recordingSignalConsumer.OnSignal( + _recordingSignalEventDecoder.ControlSessionId(), + _recordingSignalEventDecoder.CorrelationId(), + _recordingSignalEventDecoder.RecordingId(), + _recordingSignalEventDecoder.SubscriptionId(), + _recordingSignalEventDecoder.Position(), + _recordingSignalEventDecoder.Signal() + ); } break; @@ -253,4 +298,4 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs return CONTINUE; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/ReplayMerge.cs b/src/Adaptive.Archiver/ReplayMerge.cs index 023e5ea8..2f169628 100644 --- a/src/Adaptive.Archiver/ReplayMerge.cs +++ b/src/Adaptive.Archiver/ReplayMerge.cs @@ -1,8 +1,23 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona.Concurrent; -using Adaptive.Archiver; using Adaptive.Archiver.Codecs; using static Adaptive.Aeron.Aeron; using static Adaptive.Aeron.Aeron.Context; @@ -12,9 +27,11 @@ namespace Adaptive.Archiver /// /// Replay a recorded stream from a starting position and merge with live stream for a full history of a stream. /// - /// Once constructed either of or , interleaved with consumption - /// of the , should be called in a duty cycle loop until is {@code true}. - /// After which the can be closed and continued usage can be made of the or its + /// Once constructed either of or , + /// interleaved with consumption of the , should be called in a duty cycle loop until + /// is {@code true}. After which the can be closed and + /// continued usage can be made of the + /// or its /// parent . If an exception occurs or progress stops, the merge will fail and /// will be {@code true}. /// @@ -36,11 +53,11 @@ public class ReplayMerge : IDisposable /// public const int LIVE_ADD_MAX_WINDOW = 32 * 1024 * 1024; - private const int REPLAY_REMOVE_THRESHOLD = 0; - private static readonly long MERGE_PROGRESS_TIMEOUT_DEFAULT_MS = 5_000; - private static readonly long INITIAL_GET_MAX_RECORDED_POSITION_BACKOFF_MS = 8; - private static readonly long GET_MAX_RECORDED_POSITION_BACKOFF_MAX_MS = 500; - private static readonly long ARCHIVE_POLL_INTERVAL_MS = 100; + private const int ReplayRemoveThreshold = 0; + private static readonly long MergeProgressTimeoutDefaultMs = 5_000; + private static readonly long InitialGetMaxRecordedPositionBackoffMs = 8; + private static readonly long GetMaxRecordedPositionBackoffMaxMs = 500; + private static readonly long ArchivePollIntervalMs = 100; internal enum State { @@ -51,128 +68,159 @@ internal enum State ATTEMPT_LIVE_JOIN, MERGED, FAILED, - CLOSED + CLOSED, } - private readonly long recordingId; - private readonly long startPosition; - private readonly long mergeProgressTimeoutMs; - private long replaySessionId = NULL_VALUE; - private long activeCorrelationId = NULL_VALUE; - private long nextTargetPosition = NULL_VALUE; - private long positionOfLastProgress = NULL_VALUE; - private long timeOfLastProgressMs; - private long timeOfNextGetMaxRecordedPositionMs; - private long getMaxRecordedPositionBackoffMs = INITIAL_GET_MAX_RECORDED_POSITION_BACKOFF_MS; - private long timeOfLastScheduledArchivePollMs; - private bool isLiveAdded = false; - private bool isReplayActive = false; - private State state; - private Image image; - - private readonly AeronArchive archive; - private readonly Subscription subscription; - private readonly IEpochClock epochClock; - private readonly string replayDestination; - private readonly string liveDestination; - private readonly ChannelUri replayChannelUri; + private readonly long _recordingId; + private readonly long _startPosition; + private readonly long _mergeProgressTimeoutMs; + private long _replaySessionId = NULL_VALUE; + private long _activeCorrelationId = NULL_VALUE; + private long _nextTargetPosition = NULL_VALUE; + private long _positionOfLastProgress = NULL_VALUE; + private long _timeOfLastProgressMs; + private long _timeOfNextGetMaxRecordedPositionMs; + private long _getMaxRecordedPositionBackoffMs = InitialGetMaxRecordedPositionBackoffMs; + private long _timeOfLastScheduledArchivePollMs; + private bool _isLiveAdded = false; + private bool _isReplayActive = false; + private State _state; + private Image _image; + + private readonly AeronArchive _archive; + private readonly Subscription _subscription; + private readonly IEpochClock _epochClock; + private readonly string _replayDestination; + private readonly string _liveDestination; + private readonly ChannelUri _replayChannelUri; /// - /// Create a to manage the merging of a replayed stream and switching over to live stream as - /// appropriate. + /// Create a to manage the merging of a replayed stream and switching over to live + /// stream as appropriate. /// - /// to use for the replay and live stream. Must be a multi-destination subscription. + /// to use for the replay and live stream. Must be a multi-destination subscription. + /// /// to use for the replay. /// to as a template for what the archive will use. - /// to send the replay to and the destination added by the . - /// for the live stream and the destination added by the . + /// to send the replay to and the destination added by the + /// . + /// for the live stream and the destination added by the + /// . /// for the replay. /// for the replay. /// to use for progress checks. /// to use for progress checks. - public ReplayMerge(Subscription subscription, AeronArchive archive, string replayChannel, + public ReplayMerge( + Subscription subscription, + AeronArchive archive, + string replayChannel, string replayDestination, - string liveDestination, long recordingId, long startPosition, IEpochClock epochClock, - long mergeProgressTimeoutMs) + string liveDestination, + long recordingId, + long startPosition, + IEpochClock epochClock, + long mergeProgressTimeoutMs + ) { - if (subscription.Channel.StartsWith(IPC_CHANNEL) || - replayChannel.StartsWith(IPC_CHANNEL, StringComparison.Ordinal) || - replayDestination.StartsWith(IPC_CHANNEL, StringComparison.Ordinal) || - liveDestination.StartsWith(IPC_CHANNEL, StringComparison.Ordinal)) + if ( + subscription.Channel.StartsWith(IPC_CHANNEL) + || replayChannel.StartsWith(IPC_CHANNEL, StringComparison.Ordinal) + || replayDestination.StartsWith(IPC_CHANNEL, StringComparison.Ordinal) + || liveDestination.StartsWith(IPC_CHANNEL, StringComparison.Ordinal) + ) { throw new ArgumentException("IPC merging is not supported"); } if (!subscription.Channel.Contains("control-mode=manual")) { - throw new ArgumentException("Subscription URI must have 'control-mode=manual' uri=" + - subscription.Channel); + throw new ArgumentException( + "Subscription URI must have 'control-mode=manual' uri=" + subscription.Channel + ); } - this.archive = archive; - this.subscription = subscription; - this.epochClock = epochClock; - this.replayDestination = replayDestination; - this.liveDestination = liveDestination; - this.recordingId = recordingId; - this.startPosition = startPosition; - this.mergeProgressTimeoutMs = mergeProgressTimeoutMs; + this._archive = archive; + this._subscription = subscription; + this._epochClock = epochClock; + this._replayDestination = replayDestination; + this._liveDestination = liveDestination; + this._recordingId = recordingId; + this._startPosition = startPosition; + this._mergeProgressTimeoutMs = mergeProgressTimeoutMs; - replayChannelUri = ChannelUri.Parse(replayChannel); - replayChannelUri.Put(LINGER_PARAM_NAME, "0"); - replayChannelUri.Put(EOS_PARAM_NAME, "false"); + _replayChannelUri = ChannelUri.Parse(replayChannel); + _replayChannelUri.Put(LINGER_PARAM_NAME, "0"); + _replayChannelUri.Put(EOS_PARAM_NAME, "false"); var replayEndpoint = ChannelUri.Parse(replayDestination).Get(ENDPOINT_PARAM_NAME); if (replayEndpoint.EndsWith(":0", StringComparison.Ordinal)) { - state = State.RESOLVE_REPLAY_PORT; + _state = State.RESOLVE_REPLAY_PORT; } else { - replayChannelUri.Put(ENDPOINT_PARAM_NAME, replayEndpoint); - state = State.GET_RECORDING_POSITION; + _replayChannelUri.Put(ENDPOINT_PARAM_NAME, replayEndpoint); + _state = State.GET_RECORDING_POSITION; } subscription.AsyncAddDestination(replayDestination); - timeOfLastProgressMs = timeOfNextGetMaxRecordedPositionMs = epochClock.Time(); + _timeOfLastProgressMs = _timeOfNextGetMaxRecordedPositionMs = epochClock.Time(); } /// - /// Create a to manage the merging of a replayed stream and switching over to live stream as - /// appropriate. + /// Create a to manage the merging of a replayed stream and switching over to live + /// stream as appropriate. /// - /// to use for the replay and live stream. Must be a multi-destination subscription. + /// to use for the replay and live stream. Must be a multi-destination subscription. + /// /// to use for the replay. /// to use as a template for what the archive will use. - /// to send the replay to and the destination added by the . - /// for the live stream and the destination added by the . + /// to send the replay to and the destination added by the + /// . + /// for the live stream and the destination added by the + /// . /// for the replay. /// for the replay. - public ReplayMerge(Subscription subscription, AeronArchive archive, string replayChannel, + public ReplayMerge( + Subscription subscription, + AeronArchive archive, + string replayChannel, string replayDestination, - string liveDestination, long recordingId, long startPosition) : this(subscription, archive, replayChannel, - replayDestination, liveDestination, recordingId, startPosition, - archive.Ctx().AeronClient().Ctx.EpochClock(), MERGE_PROGRESS_TIMEOUT_DEFAULT_MS) + string liveDestination, + long recordingId, + long startPosition + ) + : this( + subscription, + archive, + replayChannel, + replayDestination, + liveDestination, + recordingId, + startPosition, + archive.Ctx().AeronClient().Ctx.EpochClock(), + MergeProgressTimeoutDefaultMs + ) { } /// - /// Close and stop any active replay. Will remove the replay destination from the subscription. - /// This operation Will NOT remove the live destination if it has been added, so it can be used for live consumption. + /// Close and stop any active replay. Will remove the replay destination from the subscription. This operation + /// Will NOT remove the live destination if it has been added, so it can be used for live consumption. /// public void Dispose() { - State state = this.state; + State state = this._state; if (State.CLOSED != state) { - if (!archive.Ctx().AeronClient().IsClosed) + if (!_archive.Ctx().AeronClient().IsClosed) { if (State.MERGED != state) { - subscription.AsyncRemoveDestination(replayDestination); + _subscription.AsyncRemoveDestination(_replayDestination); } - if (isReplayActive && archive.Proxy().Pub().IsConnected) + if (_isReplayActive && _archive.Proxy().Pub().IsConnected) { StopReplay(); } @@ -188,22 +236,23 @@ public void Dispose() /// the used to consume the replayed and merged stream. public Subscription Subscription() { - return subscription; + return _subscription; } /// - /// Perform the work of replaying and merging. Should only be used if polling the underlying directly, + /// Perform the work of replaying and merging. Should only be used if polling the underlying + /// directly, /// call on this class. /// /// indication of work done processing the merge. public int DoWork() { int workCount = 0; - long nowMs = epochClock.Time(); + long nowMs = _epochClock.Time(); try { - switch (state) + switch (_state) { case State.RESOLVE_REPLAY_PORT: workCount += ResolveReplayPort(nowMs); @@ -230,7 +279,6 @@ public int DoWork() CheckProgress(nowMs); break; - case State.MERGED: case State.CLOSED: case State.FAILED: @@ -247,7 +295,8 @@ public int DoWork() } /// - /// Poll the used for replay and merging and live stream. The method + /// Poll the used for replay and merging and live stream. The + /// method /// will be called before the poll so that processing of the merge can be done. /// /// to call for fragments. @@ -256,7 +305,7 @@ public int DoWork() public int Poll(FragmentHandler fragmentHandler, int fragmentLimit) { DoWork(); - return null == image ? 0 : image.Poll(fragmentHandler, fragmentLimit); + return null == _image ? 0 : _image.Poll(fragmentHandler, fragmentLimit); } /// @@ -265,7 +314,7 @@ public int Poll(FragmentHandler fragmentHandler, int fragmentLimit) /// true if live stream is merged and the replay stopped or false if not. public bool Merged { - get { return state == State.MERGED; } + get { return _state == State.MERGED; } } /// @@ -274,7 +323,7 @@ public bool Merged /// true if replay merge has failed due to an error. public bool HasFailed() { - return state == State.FAILED; + return _state == State.FAILED; } /// @@ -283,7 +332,7 @@ public bool HasFailed() /// the which is a merge of the replay and live stream. public Image Image() { - return image; + return _image; } /// @@ -292,19 +341,19 @@ public Image Image() /// true if live destination added or false if not. public bool LiveAdded { - get { return isLiveAdded; } + get { return _isLiveAdded; } } private int ResolveReplayPort(long nowMs) { int workCount = 0; - string resolvedEndpoint = subscription.ResolvedEndpoint; + string resolvedEndpoint = _subscription.ResolvedEndpoint; if (null != resolvedEndpoint) { - replayChannelUri.ReplaceEndpointWildcardPort(resolvedEndpoint); + _replayChannelUri.ReplaceEndpointWildcardPort(resolvedEndpoint); - timeOfLastProgressMs = nowMs; + _timeOfLastProgressMs = nowMs; SetState(State.GET_RECORDING_POSITION); workCount += 1; } @@ -316,22 +365,22 @@ private int GetRecordingPosition(long nowMs) { int workCount = 0; - if (NULL_VALUE == activeCorrelationId) + if (NULL_VALUE == _activeCorrelationId) { if (CallGetMaxRecordedPosition(nowMs)) { - timeOfLastProgressMs = nowMs; + _timeOfLastProgressMs = nowMs; workCount += 1; } } - else if (PollForResponse(archive, activeCorrelationId)) + else if (PollForResponse(_archive, _activeCorrelationId)) { - nextTargetPosition = PolledRelevantId(archive); - activeCorrelationId = NULL_VALUE; + _nextTargetPosition = PolledRelevantId(_archive); + _activeCorrelationId = NULL_VALUE; - if (AeronArchive.NULL_POSITION != nextTargetPosition) + if (AeronArchive.NULL_POSITION != _nextTargetPosition) { - timeOfLastProgressMs = nowMs; + _timeOfLastProgressMs = nowMs; SetState(State.REPLAY); } @@ -345,28 +394,39 @@ private int Replay(long nowMs) { int workCount = 0; - if (NULL_VALUE == activeCorrelationId) + if (NULL_VALUE == _activeCorrelationId) { - long correlationId = archive.Ctx().AeronClient().NextCorrelationId(); - - if (archive.Proxy().Replay(recordingId, startPosition, long.MaxValue, replayChannelUri.ToString(), - subscription.StreamId, correlationId, archive.ControlSessionId())) + long correlationId = _archive.Ctx().AeronClient().NextCorrelationId(); + + if ( + _archive + .Proxy() + .Replay( + _recordingId, + _startPosition, + long.MaxValue, + _replayChannelUri.ToString(), + _subscription.StreamId, + correlationId, + _archive.ControlSessionId() + ) + ) { - activeCorrelationId = correlationId; - timeOfLastProgressMs = nowMs; + _activeCorrelationId = correlationId; + _timeOfLastProgressMs = nowMs; workCount += 1; } } - else if (PollForResponse(archive, activeCorrelationId)) + else if (PollForResponse(_archive, _activeCorrelationId)) { - isReplayActive = true; - replaySessionId = PolledRelevantId(archive); - timeOfLastProgressMs = nowMs; - activeCorrelationId = NULL_VALUE; + _isReplayActive = true; + _replaySessionId = PolledRelevantId(_archive); + _timeOfLastProgressMs = nowMs; + _activeCorrelationId = NULL_VALUE; // reset getRecordingPosition backoff when moving to CATCHUP state - getMaxRecordedPositionBackoffMs = INITIAL_GET_MAX_RECORDED_POSITION_BACKOFF_MS; - timeOfNextGetMaxRecordedPositionMs = nowMs; + _getMaxRecordedPositionBackoffMs = InitialGetMaxRecordedPositionBackoffMs; + _timeOfNextGetMaxRecordedPositionMs = nowMs; SetState(State.CATCHUP); workCount += 1; @@ -379,38 +439,38 @@ private int Catchup(long nowMs) { int workCount = 0; - if (null == image && subscription.IsConnected) + if (null == _image && _subscription.IsConnected) { - timeOfLastProgressMs = nowMs; - Image image = subscription.ImageBySessionId((int)replaySessionId); + _timeOfLastProgressMs = nowMs; + Image image = _subscription.ImageBySessionId((int)_replaySessionId); - if (null == this.image && null != image) + if (null == this._image && null != image) { - this.image = image; - positionOfLastProgress = image.Position; + this._image = image; + _positionOfLastProgress = image.Position; } else { - positionOfLastProgress = NULL_VALUE; + _positionOfLastProgress = NULL_VALUE; } } - if (null != image) + if (null != _image) { - long position = image.Position; - if (position >= nextTargetPosition) + long position = _image.Position; + if (position >= _nextTargetPosition) { - timeOfLastProgressMs = nowMs; - positionOfLastProgress = position; + _timeOfLastProgressMs = nowMs; + _positionOfLastProgress = position; SetState(State.ATTEMPT_LIVE_JOIN); workCount += 1; } - else if (position > positionOfLastProgress) + else if (position > _positionOfLastProgress) { - timeOfLastProgressMs = nowMs; - positionOfLastProgress = position; + _timeOfLastProgressMs = nowMs; + _positionOfLastProgress = position; } - else if (image.Closed) + else if (_image.Closed) { throw new InvalidOperationException("ReplayMerge Image closed unexpectedly."); } @@ -423,39 +483,39 @@ private int AttemptLiveJoin(long nowMs) { int workCount = 0; - if (NULL_VALUE == activeCorrelationId) + if (NULL_VALUE == _activeCorrelationId) { if (CallGetMaxRecordedPosition(nowMs)) { - timeOfLastProgressMs = nowMs; + _timeOfLastProgressMs = nowMs; workCount += 1; } } - else if (PollForResponse(archive, activeCorrelationId)) + else if (PollForResponse(_archive, _activeCorrelationId)) { - nextTargetPosition = PolledRelevantId(archive); - activeCorrelationId = NULL_VALUE; + _nextTargetPosition = PolledRelevantId(_archive); + _activeCorrelationId = NULL_VALUE; - if (AeronArchive.NULL_POSITION != nextTargetPosition) + if (AeronArchive.NULL_POSITION != _nextTargetPosition) { State nextState = State.CATCHUP; - if (null != image) + if (null != _image) { - long position = image.Position; + long position = _image.Position; if (ShouldAddLiveDestination(position)) { - subscription.AsyncAddDestination(liveDestination); - timeOfLastProgressMs = nowMs; - positionOfLastProgress = position; - isLiveAdded = true; + _subscription.AsyncAddDestination(_liveDestination); + _timeOfLastProgressMs = nowMs; + _positionOfLastProgress = position; + _isLiveAdded = true; } else if (ShouldStopAndRemoveReplay(position)) { - subscription.AsyncRemoveDestination(replayDestination); + _subscription.AsyncRemoveDestination(_replayDestination); StopReplay(); - timeOfLastProgressMs = nowMs; - positionOfLastProgress = position; + _timeOfLastProgressMs = nowMs; + _positionOfLastProgress = position; nextState = State.MERGED; } } @@ -471,72 +531,78 @@ private int AttemptLiveJoin(long nowMs) private bool CallGetMaxRecordedPosition(long nowMs) { - if (nowMs < timeOfNextGetMaxRecordedPositionMs) + if (nowMs < _timeOfNextGetMaxRecordedPositionMs) { return false; } - long correlationId = archive.Ctx().AeronClient().NextCorrelationId(); + long correlationId = _archive.Ctx().AeronClient().NextCorrelationId(); - bool result = archive.Proxy() - .GetMaxRecordedPosition(recordingId, correlationId, archive.ControlSessionId()); + bool result = _archive + .Proxy() + .GetMaxRecordedPosition(_recordingId, correlationId, _archive.ControlSessionId()); if (result) { - activeCorrelationId = correlationId; + _activeCorrelationId = correlationId; } // increase backoff regardless of result - getMaxRecordedPositionBackoffMs = Math.Min(getMaxRecordedPositionBackoffMs * 2, - GET_MAX_RECORDED_POSITION_BACKOFF_MAX_MS); - timeOfNextGetMaxRecordedPositionMs = nowMs + getMaxRecordedPositionBackoffMs; + _getMaxRecordedPositionBackoffMs = Math.Min( + _getMaxRecordedPositionBackoffMs * 2, + GetMaxRecordedPositionBackoffMaxMs + ); + _timeOfNextGetMaxRecordedPositionMs = nowMs + _getMaxRecordedPositionBackoffMs; return result; } - private void StopReplay() { - long correlationId = archive.Ctx().AeronClient().NextCorrelationId(); - if (archive.Proxy().StopReplay(replaySessionId, correlationId, archive.ControlSessionId())) + long correlationId = _archive.Ctx().AeronClient().NextCorrelationId(); + if (_archive.Proxy().StopReplay(_replaySessionId, correlationId, _archive.ControlSessionId())) { - isReplayActive = false; + _isReplayActive = false; } } private void SetState(ReplayMerge.State newState) { //System.out.println(state + " -> " + newState); - state = newState; - activeCorrelationId = NULL_VALUE; + _state = newState; + _activeCorrelationId = NULL_VALUE; } private bool ShouldAddLiveDestination(long position) { - return !isLiveAdded && (nextTargetPosition - position) <= - Math.Min(image.TermBufferLength >> 2, LIVE_ADD_MAX_WINDOW); + return !_isLiveAdded + && (_nextTargetPosition - position) <= Math.Min(_image.TermBufferLength >> 2, LIVE_ADD_MAX_WINDOW); } private bool ShouldStopAndRemoveReplay(long position) { - return isLiveAdded && (nextTargetPosition - position) <= REPLAY_REMOVE_THRESHOLD && - image.ActiveTransportCount() >= 2; + return _isLiveAdded + && (_nextTargetPosition - position) <= ReplayRemoveThreshold + && _image.ActiveTransportCount() >= 2; } private void CheckProgress(long nowMs) { - if (nowMs > (timeOfLastProgressMs + mergeProgressTimeoutMs)) + if (nowMs > (_timeOfLastProgressMs + _mergeProgressTimeoutMs)) { - int transportCount = image?.ActiveTransportCount() ?? 0; + int transportCount = _image?.ActiveTransportCount() ?? 0; throw new TimeoutException( - "ReplayMerge no progress: state=" + state + ", activeTransportCount=" + transportCount); + "ReplayMerge no progress: state=" + _state + ", activeTransportCount=" + transportCount + ); } - if (NULL_VALUE == activeCorrelationId && - (nowMs > (timeOfLastScheduledArchivePollMs + ARCHIVE_POLL_INTERVAL_MS))) + if ( + NULL_VALUE == _activeCorrelationId + && (nowMs > (_timeOfLastScheduledArchivePollMs + ArchivePollIntervalMs)) + ) { - timeOfLastScheduledArchivePollMs = nowMs; - PollForResponse(archive, NULL_VALUE); + _timeOfLastScheduledArchivePollMs = nowMs; + PollForResponse(_archive, NULL_VALUE); } } @@ -551,8 +617,13 @@ private static bool PollForResponse(AeronArchive archive, long correlationId) if (poller.Code() == ControlResponseCode.ERROR) { throw new ArchiveException( - "archive response for correlationId=" + poller.CorrelationId() + ", error: " + - poller.ErrorMessage(), (int)poller.RelevantId(), poller.CorrelationId()); + "archive response for correlationId=" + + poller.CorrelationId() + + ", error: " + + poller.ErrorMessage(), + (int)poller.RelevantId(), + poller.CorrelationId() + ); } return poller.CorrelationId() == correlationId; @@ -576,16 +647,17 @@ private static long PolledRelevantId(AeronArchive archive) /// public override string ToString() { - return "ReplayMerge{" + - "state=" + state + - ", nextTargetPosition=" + nextTargetPosition + - ", timeOfLastProgressMs=" + timeOfLastProgressMs + - ", positionOfLastProgress=" + positionOfLastProgress + - ", isLiveAdded=" + isLiveAdded + - ", isReplayActive=" + isReplayActive + - ", replayChannelUri=" + replayChannelUri + - ", image=" + image + - '}'; + return + "ReplayMerge{" + + "state=" + _state + + ", nextTargetPosition=" + _nextTargetPosition + + ", timeOfLastProgressMs=" + _timeOfLastProgressMs + + ", positionOfLastProgress=" + _positionOfLastProgress + + ", isLiveAdded=" + _isLiveAdded + + ", isReplayActive=" + _isReplayActive + + ", replayChannelUri=" + _replayChannelUri + + ", image=" + _image + + '}'; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/ReplayParams.cs b/src/Adaptive.Archiver/ReplayParams.cs index 12abcacc..0325dd2b 100644 --- a/src/Adaptive.Archiver/ReplayParams.cs +++ b/src/Adaptive.Archiver/ReplayParams.cs @@ -1,19 +1,35 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + namespace Adaptive.Archiver { /// - /// Fluent API for setting optional replay parameters. Allows the user to configure starting position, - /// replay length, bounding counter (for a bounded replay) and the max length for file I/O operations. + /// Fluent API for setting optional replay parameters. Allows the user to configure starting position, replay + /// length, bounding counter (for a bounded replay) and the max length for file I/O operations. /// - /// Not threadsafe. + /// Not threadsafe. /// public class ReplayParams { - private int boundingLimitCounterId; - private int fileIoMaxLength; - private long position; - private long length; - private long replayToken; - private long subscriptionRegistrationId; + private int _boundingLimitCounterId; + private int _fileIoMaxLength; + private long _position; + private long _length; + private long _replayToken; + private long _subscriptionRegistrationId; /// /// Default, initialise all values to "null". @@ -29,24 +45,24 @@ public ReplayParams() /// this for a fluent API public ReplayParams Reset() { - boundingLimitCounterId = Aeron.Aeron.NULL_VALUE; - fileIoMaxLength = Aeron.Aeron.NULL_VALUE; - position = AeronArchive.NULL_POSITION; - length = AeronArchive.REPLAY_ALL_AND_FOLLOW; - replayToken = Aeron.Aeron.NULL_VALUE; - subscriptionRegistrationId = Aeron.Aeron.NULL_VALUE; + _boundingLimitCounterId = Aeron.Aeron.NULL_VALUE; + _fileIoMaxLength = Aeron.Aeron.NULL_VALUE; + _position = AeronArchive.NULL_POSITION; + _length = AeronArchive.REPLAY_ALL_AND_FOLLOW; + _replayToken = Aeron.Aeron.NULL_VALUE; + _subscriptionRegistrationId = Aeron.Aeron.NULL_VALUE; return this; } /// - /// Set the position to start the replay. If set to (which is the default) then - /// the stream will be replayed from the start. + /// Set the position to start the replay. If set to (which is the + /// default) then the stream will be replayed from the start. /// /// to start the replay from. /// this for a fluent API. public ReplayParams Position(long position) { - this.position = position; + this._position = position; return this; } @@ -57,25 +73,27 @@ public ReplayParams Position(long position) /// public long Position() { - return position; + return _position; } /// - /// The length of the recorded stream to replay. If set to (the default) - /// it will replay a whole stream of unknown length and then continue to follow the replay if it is live. If set to - /// it will replay up the limit calculated when the replay request is - /// received then stop the replay, thereby ending the stream. + /// The length of the recorded stream to replay. If set to + /// (the default) it will replay a whole stream of unknown length and then continue to follow the replay if it + /// is live. If set to + /// it will replay up the limit calculated when the replay + /// request is received then stop the replay, thereby ending the stream. /// - /// retains the same behaviour as using - /// or . - /// + /// retains the same behaviour as using + /// + /// or . + /// /// /// /// of the recording to be replayed. /// this for a fluent API. public ReplayParams Length(long length) { - this.length = length; + this._length = length; return this; } @@ -86,7 +104,7 @@ public ReplayParams Length(long length) /// public long Length() { - return length; + return _length; } /// @@ -97,17 +115,18 @@ public long Length() /// this for a fluent API public ReplayParams BoundingLimitCounterId(int boundingLimitCounterId) { - this.boundingLimitCounterId = boundingLimitCounterId; + this._boundingLimitCounterId = boundingLimitCounterId; return this; } /// - /// Gets the counterId specified for the bounding the replay. Returns if unspecified. + /// Gets the counterId specified for the bounding the replay. Returns + /// if unspecified. /// /// the counter id to bound the replay. public int BoundingLimitCounterId() { - return this.boundingLimitCounterId; + return this._boundingLimitCounterId; } /// @@ -119,18 +138,19 @@ public int BoundingLimitCounterId() /// this for a fluent API public ReplayParams FileIoMaxLength(int fileIoMaxLength) { - this.fileIoMaxLength = fileIoMaxLength; + this._fileIoMaxLength = fileIoMaxLength; return this; } /// - /// Gets the maximum length for file IO operations in the replay. Defaults to if not + /// Gets the maximum length for file IO operations in the replay. Defaults to + /// if not /// set, which will trigger the use of the Archive.Context default. /// /// maximum file length for IO operations during replay. public int FileIoMaxLength() { - return this.fileIoMaxLength; + return this._fileIoMaxLength; } /// @@ -139,9 +159,9 @@ public int FileIoMaxLength() /// true if the replay should be bounded, false otherwise. public bool IsBounded() { - return Aeron.Aeron.NULL_VALUE != boundingLimitCounterId; + return Aeron.Aeron.NULL_VALUE != _boundingLimitCounterId; } - + /// /// Set a token used for replays when the initiating image is not the one used to create the archive /// connection/session. @@ -150,7 +170,7 @@ public bool IsBounded() /// this for a fluent API. public ReplayParams ReplayToken(long replayToken) { - this.replayToken = replayToken; + this._replayToken = replayToken; return this; } @@ -161,27 +181,29 @@ public ReplayParams ReplayToken(long replayToken) /// the replay token public long ReplayToken() { - return replayToken; + return _replayToken; } /// /// Set the subscription registration id to be used when doing a start replay using response channels and the /// response subscription is already created. /// - /// of the subscription to receive the replay (should be set up with control-mode=response). + /// of the subscription to receive the replay (should be set up with + /// control-mode=response). public void SubscriptionRegistrationId(long registrationId) { - this.subscriptionRegistrationId = registrationId; + this._subscriptionRegistrationId = registrationId; } /// /// Get the subscription registration id to be used when doing a start replay using response channels and the /// response subscription is already created. /// - /// registrationId of the subscription to receive the replay (should be set up with control-mode=response). + /// registrationId of the subscription to receive the replay (should be set up with + /// control-mode=response). public long SubscriptionRegistrationId() { - return subscriptionRegistrationId; + return _subscriptionRegistrationId; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Archiver/ReplicationParams.cs b/src/Adaptive.Archiver/ReplicationParams.cs index 649183d3..f4648c68 100644 --- a/src/Adaptive.Archiver/ReplicationParams.cs +++ b/src/Adaptive.Archiver/ReplicationParams.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron.Security; namespace Adaptive.Archiver @@ -9,16 +25,16 @@ namespace Adaptive.Archiver /// public class ReplicationParams { - private long stopPosition; - private long dstRecordingId; - private string liveDestination; - private string replicationChannel; - private long channelTagId; - private long subscriptionTagId; - private int fileIoMaxLength; - private int replicationSessionId; - private byte[] encodedCredentials; - private string srcResponseChannel; + private long _stopPosition; + private long _dstRecordingId; + private string _liveDestination; + private string _replicationChannel; + private long _channelTagId; + private long _subscriptionTagId; + private int _fileIoMaxLength; + private int _replicationSessionId; + private byte[] _encodedCredentials; + private string _srcResponseChannel; /// /// Initialise all parameters to defaults. @@ -34,28 +50,28 @@ public ReplicationParams() /// this for a fluent API. public ReplicationParams Reset() { - stopPosition = AeronArchive.NULL_POSITION; - dstRecordingId = Aeron.Aeron.NULL_VALUE; - liveDestination = null; - replicationChannel = null; - channelTagId = Aeron.Aeron.NULL_VALUE; - subscriptionTagId = Aeron.Aeron.NULL_VALUE; - fileIoMaxLength = Aeron.Aeron.NULL_VALUE; - replicationSessionId = Aeron.Aeron.NULL_VALUE; - encodedCredentials = NullCredentialsSupplier.NULL_CREDENTIAL; - srcResponseChannel = null; + _stopPosition = AeronArchive.NULL_POSITION; + _dstRecordingId = Aeron.Aeron.NULL_VALUE; + _liveDestination = null; + _replicationChannel = null; + _channelTagId = Aeron.Aeron.NULL_VALUE; + _subscriptionTagId = Aeron.Aeron.NULL_VALUE; + _fileIoMaxLength = Aeron.Aeron.NULL_VALUE; + _replicationSessionId = Aeron.Aeron.NULL_VALUE; + _encodedCredentials = NullCredentialsSupplier.NULL_CREDENTIAL; + _srcResponseChannel = null; return this; } /// - /// Set the stop position for replication, default is , which will continuously - /// replicate. + /// Set the stop position for replication, default is , which will + /// continuously replicate. /// /// position to stop the replication at. /// this for a fluent API public ReplicationParams StopPosition(long stopPosition) { - this.stopPosition = stopPosition; + this._stopPosition = stopPosition; return this; } @@ -64,18 +80,18 @@ public ReplicationParams StopPosition(long stopPosition) /// stop position public long StopPosition() { - return stopPosition; + return _stopPosition; } /// - /// The recording in the local archive to extend. Default is which will trigger the creation - /// of a new recording in the destination archive. + /// The recording in the local archive to extend. Default is which will + /// trigger the creation of a new recording in the destination archive. /// /// destination recording to extend. /// this for a fluent API. public ReplicationParams DstRecordingId(long dstRecordingId) { - this.dstRecordingId = dstRecordingId; + this._dstRecordingId = dstRecordingId; return this; } @@ -85,7 +101,7 @@ public ReplicationParams DstRecordingId(long dstRecordingId) /// destination recording id. public long DstRecordingId() { - return dstRecordingId; + return _dstRecordingId; } /// @@ -95,7 +111,7 @@ public long DstRecordingId() /// this for a fluent API. public ReplicationParams LiveDestination(string liveChannel) { - this.liveDestination = liveChannel; + this._liveDestination = liveChannel; return this; } @@ -105,15 +121,16 @@ public ReplicationParams LiveDestination(string liveChannel) /// destination for live stream merge. public string LiveDestination() { - return liveDestination; + return _liveDestination; } /// - /// Channel to use for replicating the recording, empty string will mean that the default channel is used. + /// Channel to use for replicating the recording, empty string will mean that the default channel is used. + /// /// channel to replicate the recording. public string ReplicationChannel() { - return replicationChannel; + return _replicationChannel; } /// @@ -124,19 +141,19 @@ public string ReplicationChannel() /// this for a fluent API. public ReplicationParams ReplicationChannel(string replicationChannel) { - this.replicationChannel = replicationChannel; + this._replicationChannel = replicationChannel; return this; } /// - /// The channel used by the archive's subscription for replication will have the supplied channel tag applied to it. - /// The default value for channelTagId is + /// The channel used by the archive's subscription for replication will have the supplied channel tag applied to + /// it. The default value for channelTagId is /// /// tag to apply to the archive's subscription. /// this for a fluent API public ReplicationParams ChannelTagId(long channelTagId) { - this.channelTagId = channelTagId; + this._channelTagId = channelTagId; return this; } @@ -146,18 +163,18 @@ public ReplicationParams ChannelTagId(long channelTagId) /// channel tag id. public long ChannelTagId() { - return channelTagId; + return _channelTagId; } /// - /// The channel used by the archive's subscription for replication will have the supplied subscription tag applied to - /// it. The default value for subscriptionTagId is + /// The channel used by the archive's subscription for replication will have the supplied subscription tag + /// applied to it. The default value for subscriptionTagId is /// /// tag to apply to the archive's subscription. /// this for a fluent API public ReplicationParams SubscriptionTagId(long subscriptionTagId) { - this.subscriptionTagId = subscriptionTagId; + this._subscriptionTagId = subscriptionTagId; return this; } @@ -167,41 +184,42 @@ public ReplicationParams SubscriptionTagId(long subscriptionTagId) /// subscription tag id. public long SubscriptionTagId() { - return subscriptionTagId; + return _subscriptionTagId; } /// - /// The maximum size of a file operation when reading from the archive to execute the replication. Will use the value - /// defined in the context otherwise. This can be used reduce the size of file IO operations to lower the + /// The maximum size of a file operation when reading from the archive to execute the replication. Will use the + /// value defined in the context otherwise. This can be used reduce the size of file IO operations to lower the /// priority of some replays. Setting it to a value larger than the context value will have no affect. /// /// maximum length of a file I/O operation. /// this for a fluent API public ReplicationParams FileIoMaxLength(int fileIoMaxLength) { - this.fileIoMaxLength = fileIoMaxLength; + this._fileIoMaxLength = fileIoMaxLength; return this; } /// - /// Gets the maximum length for file IO operations in the replay. Defaults to if not + /// Gets the maximum length for file IO operations in the replay. Defaults to + /// if not /// set, which will trigger the use of the Archive.Context default. /// /// maximum length of a file I/O operation. public int FileIoMaxLength() { - return this.fileIoMaxLength; + return this._fileIoMaxLength; } /// - /// Sets the session-id to be used for the replicated file instead of the session id from the source archive. This - /// is useful in cases where we are replicating the same recording in multiple stages. + /// Sets the session-id to be used for the replicated file instead of the session id from the source archive. + /// This is useful in cases where we are replicating the same recording in multiple stages. /// /// the session-id to be set for the received recording. /// this for fluent API public ReplicationParams ReplicationSessionId(int replicationSessionId) { - this.replicationSessionId = replicationSessionId; + this._replicationSessionId = replicationSessionId; return this; } @@ -211,18 +229,18 @@ public ReplicationParams ReplicationSessionId(int replicationSessionId) /// session-id to be useful for the replicated recording. public int ReplicationSessionId() { - return this.replicationSessionId; + return this._replicationSessionId; } /// - /// Sets the encoded credentials that will be passed to the source archive for authentication. Currently only simple - /// authentication (i.e. not challenge/response) is supported for replication. + /// Sets the encoded credentials that will be passed to the source archive for authentication. Currently only + /// simple authentication (i.e. not challenge/response) is supported for replication. /// /// credentials to be passed to the source archive. /// this for a fluent API. public ReplicationParams EncodedCredentials(byte[] encodedCredentials) { - this.encodedCredentials = encodedCredentials; + this._encodedCredentials = encodedCredentials; return this; } @@ -232,9 +250,9 @@ public ReplicationParams EncodedCredentials(byte[] encodedCredentials) /// encoded credentials used for authentication. public byte[] EncodedCredentials() { - return encodedCredentials; + return _encodedCredentials; } - + /// /// Control address of the source archive to use response channels during replication. /// @@ -242,7 +260,7 @@ public byte[] EncodedCredentials() /// this for a fluent API. public ReplicationParams SrcResponseChannel(string responseChannel) { - this.srcResponseChannel = responseChannel; + this._srcResponseChannel = responseChannel; return this; } @@ -252,37 +270,54 @@ public ReplicationParams SrcResponseChannel(string responseChannel) /// control address of the response publication for the source archive. public string SrcResponseChannel() { - return srcResponseChannel; + return _srcResponseChannel; } public override string ToString() { - return "ReplicationParams{" + - "stopPosition=" + stopPosition + - ", dstRecordingId=" + dstRecordingId + - ", liveDestination='" + liveDestination + '\'' + - ", replicationChannel='" + replicationChannel + '\'' + - ", channelTagId=" + channelTagId + - ", subscriptionTagId=" + subscriptionTagId + - ", fileIoMaxLength=" + fileIoMaxLength + - ", replicationSessionId=" + replicationSessionId + - '}'; + return + "ReplicationParams{" + + "stopPosition=" + _stopPosition + + ", dstRecordingId=" + _dstRecordingId + + ", liveDestination='" + _liveDestination + '\'' + + ", replicationChannel='" + _replicationChannel + '\'' + + ", channelTagId=" + _channelTagId + + ", subscriptionTagId=" + _subscriptionTagId + + ", fileIoMaxLength=" + _fileIoMaxLength + + ", replicationSessionId=" + _replicationSessionId + + '}'; } private bool Equals(ReplicationParams other) { - return stopPosition == other.stopPosition && dstRecordingId == other.dstRecordingId && - liveDestination == other.liveDestination && replicationChannel == other.replicationChannel && - channelTagId == other.channelTagId && subscriptionTagId == other.subscriptionTagId && - fileIoMaxLength == other.fileIoMaxLength && replicationSessionId == other.replicationSessionId - && Equals(encodedCredentials, other.encodedCredentials); + return _stopPosition == other._stopPosition + && _dstRecordingId == other._dstRecordingId + && _liveDestination == other._liveDestination + && _replicationChannel == other._replicationChannel + && _channelTagId == other._channelTagId + && _subscriptionTagId == other._subscriptionTagId + && _fileIoMaxLength == other._fileIoMaxLength + && _replicationSessionId == other._replicationSessionId + && Equals(_encodedCredentials, other._encodedCredentials); } public override bool Equals(object obj) { - if (obj is null) return false; - if (ReferenceEquals(this, obj)) return true; - if (obj.GetType() != GetType()) return false; + if (obj is null) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + return Equals((ReplicationParams)obj); } @@ -290,17 +325,17 @@ public override int GetHashCode() { unchecked { - var hashCode = stopPosition.GetHashCode(); - hashCode = (hashCode * 397) ^ dstRecordingId.GetHashCode(); - hashCode = (hashCode * 397) ^ (liveDestination != null ? liveDestination.GetHashCode() : 0); - hashCode = (hashCode * 397) ^ (replicationChannel != null ? replicationChannel.GetHashCode() : 0); - hashCode = (hashCode * 397) ^ channelTagId.GetHashCode(); - hashCode = (hashCode * 397) ^ subscriptionTagId.GetHashCode(); - hashCode = (hashCode * 397) ^ fileIoMaxLength; - hashCode = (hashCode * 397) ^ replicationSessionId; - hashCode = (hashCode * 397) ^ (encodedCredentials != null ? encodedCredentials.GetHashCode() : 0); + var hashCode = _stopPosition.GetHashCode(); + hashCode = (hashCode * 397) ^ _dstRecordingId.GetHashCode(); + hashCode = (hashCode * 397) ^ (_liveDestination != null ? _liveDestination.GetHashCode() : 0); + hashCode = (hashCode * 397) ^ (_replicationChannel != null ? _replicationChannel.GetHashCode() : 0); + hashCode = (hashCode * 397) ^ _channelTagId.GetHashCode(); + hashCode = (hashCode * 397) ^ _subscriptionTagId.GetHashCode(); + hashCode = (hashCode * 397) ^ _fileIoMaxLength; + hashCode = (hashCode * 397) ^ _replicationSessionId; + hashCode = (hashCode * 397) ^ (_encodedCredentials != null ? _encodedCredentials.GetHashCode() : 0); return hashCode; } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster.Tests/.editorconfig b/src/Adaptive.Cluster.Tests/.editorconfig new file mode 100644 index 00000000..9a4d3fce --- /dev/null +++ b/src/Adaptive.Cluster.Tests/.editorconfig @@ -0,0 +1,6 @@ +# Test method names follow the Method_Scenario_Result convention by design. +# Disable the non-API method PascalCase rule for this project; locals/params/ +# fields still follow the root .editorconfig rules. + +[*.cs] +dotnet_naming_rule.non_api_methods_must_be_pascal.severity = none diff --git a/src/Adaptive.Cluster.Tests/Client/AeronClusterAsyncConnectTest.cs b/src/Adaptive.Cluster.Tests/Client/AeronClusterAsyncConnectTest.cs index 54d985f2..0f490238 100644 --- a/src/Adaptive.Cluster.Tests/Client/AeronClusterAsyncConnectTest.cs +++ b/src/Adaptive.Cluster.Tests/Client/AeronClusterAsyncConnectTest.cs @@ -1,4 +1,19 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Aeron.Protocol; @@ -16,7 +31,7 @@ namespace Adaptive.Cluster.Tests.Client { public class AeronClusterAsyncConnectTest { - private const long ONE_HOUR_IN_NANOS = 3_600_000_000_000L; + private const long OneHourInNanos = 3_600_000_000_000L; private AeronType _aeron; private AeronType.Context _aeronContext; @@ -60,16 +75,21 @@ public void ShouldCloseAsyncSubscription() A.CallTo(() => _aeron.GetSubscription(subscriptionId)).Returns((Subscription)null); var asyncConnect = new AeronCluster.AsyncConnect( - _context, _aeronContext.NanoClock().NanoTime() + ONE_HOUR_IN_NANOS); + _context, + _aeronContext.NanoClock().NanoTime() + OneHourInNanos + ); Assert.IsNull(asyncConnect.Poll()); Assert.AreEqual(AsyncConnectState.CREATE_EGRESS_SUBSCRIPTION, asyncConnect.State()); asyncConnect.Dispose(); - A.CallTo(() => _aeron.Ctx).MustHaveHappened() - .Then(A.CallTo(() => _aeron.AsyncAddSubscription(_context.EgressChannel(), _context.EgressStreamId())) - .MustHaveHappened()) + A.CallTo(() => _aeron.Ctx) + .MustHaveHappened() + .Then( + A.CallTo(() => _aeron.AsyncAddSubscription(_context.EgressChannel(), _context.EgressStreamId())) + .MustHaveHappened() + ) .Then(A.CallTo(() => _aeron.GetSubscription(subscriptionId)).MustHaveHappened()) .Then(A.CallTo(() => _aeron.AsyncRemoveSubscription(subscriptionId)).MustHaveHappened()); A.CallTo(() => _context.Dispose()).MustHaveHappenedOnceExactly(); @@ -85,7 +105,9 @@ public void ShouldCloseEgressSubscription() A.CallTo(() => _aeron.GetSubscription(subscriptionId)).Returns(subscription); var asyncConnect = new AeronCluster.AsyncConnect( - _context, _aeronContext.NanoClock().NanoTime() + ONE_HOUR_IN_NANOS); + _context, + _aeronContext.NanoClock().NanoTime() + OneHourInNanos + ); Assert.IsNull(asyncConnect.Poll()); Assert.AreEqual(AsyncConnectState.CREATE_INGRESS_PUBLICATIONS, asyncConnect.State()); @@ -112,7 +134,9 @@ public void ShouldCloseAsyncPublication() A.CallTo(() => _aeron.GetExclusivePublication(publicationId)).Returns((ExclusivePublication)null); var asyncConnect = new AeronCluster.AsyncConnect( - _context, _aeronContext.NanoClock().NanoTime() + ONE_HOUR_IN_NANOS); + _context, + _aeronContext.NanoClock().NanoTime() + OneHourInNanos + ); Assert.IsNull(asyncConnect.Poll()); Assert.AreEqual(AsyncConnectState.CREATE_INGRESS_PUBLICATIONS, asyncConnect.State()); @@ -122,13 +146,19 @@ public void ShouldCloseAsyncPublication() asyncConnect.Dispose(); - A.CallTo(() => _aeron.Ctx).MustHaveHappened() - .Then(A.CallTo(() => _aeron.AsyncAddSubscription(_context.EgressChannel(), _context.EgressStreamId())) - .MustHaveHappened()) + A.CallTo(() => _aeron.Ctx) + .MustHaveHappened() + .Then( + A.CallTo(() => _aeron.AsyncAddSubscription(_context.EgressChannel(), _context.EgressStreamId())) + .MustHaveHappened() + ) .Then(A.CallTo(() => _aeron.GetSubscription(subscriptionId)).MustHaveHappened()) - .Then(A.CallTo( - () => _aeron.AsyncAddExclusivePublication(_context.IngressChannel(), _context.IngressStreamId())) - .MustHaveHappened()) + .Then( + A.CallTo(() => + _aeron.AsyncAddExclusivePublication(_context.IngressChannel(), _context.IngressStreamId()) + ) + .MustHaveHappened() + ) .Then(A.CallTo(() => _aeron.GetExclusivePublication(publicationId)).MustHaveHappened()) .Then(A.CallTo(() => _aeron.AsyncRemovePublication(publicationId)).MustHaveHappened()) .Then(A.CallTo(() => subscription.Dispose()).MustHaveHappened()); @@ -165,7 +195,9 @@ public void ShouldCloseIngressPublicationsOnMembers() A.CallTo(() => _aeron.GetExclusivePublication(publicationId3)).Returns((ExclusivePublication)null); var asyncConnect = new AeronCluster.AsyncConnect( - _context, _aeronContext.NanoClock().NanoTime() + ONE_HOUR_IN_NANOS); + _context, + _aeronContext.NanoClock().NanoTime() + OneHourInNanos + ); Assert.IsNull(asyncConnect.Poll()); Assert.AreEqual(AsyncConnectState.CREATE_INGRESS_PUBLICATIONS, asyncConnect.State()); @@ -183,12 +215,9 @@ public void ShouldCloseIngressPublicationsOnMembers() .MustHaveHappened(iterations, Times.Exactly); A.CallTo(() => _aeron.AsyncAddExclusivePublication("aeron:udp?endpoint=localhost:20002", ingressStreamId)) .MustHaveHappenedANumberOfTimesMatching(n => n <= 1); - A.CallTo(() => _aeron.GetExclusivePublication(publicationId1)) - .MustHaveHappened(2, Times.Exactly); - A.CallTo(() => _aeron.GetExclusivePublication(publicationId2)) - .MustHaveHappened(iterations, Times.Exactly); - A.CallTo(() => _aeron.GetExclusivePublication(publicationId3)) - .MustHaveHappened(iterations, Times.Exactly); + A.CallTo(() => _aeron.GetExclusivePublication(publicationId1)).MustHaveHappened(2, Times.Exactly); + A.CallTo(() => _aeron.GetExclusivePublication(publicationId2)).MustHaveHappened(iterations, Times.Exactly); + A.CallTo(() => _aeron.GetExclusivePublication(publicationId3)).MustHaveHappened(iterations, Times.Exactly); asyncConnect.Dispose(); @@ -220,7 +249,9 @@ public void ShouldCloseIngressPublication() A.CallTo(() => _aeron.GetPublication(publicationId)).Returns(publication); var asyncConnect = new AeronCluster.AsyncConnect( - _context, _aeronContext.NanoClock().NanoTime() + ONE_HOUR_IN_NANOS); + _context, + _aeronContext.NanoClock().NanoTime() + OneHourInNanos + ); Assert.IsNull(asyncConnect.Poll()); Assert.AreEqual(AsyncConnectState.CREATE_INGRESS_PUBLICATIONS, asyncConnect.State()); @@ -240,6 +271,7 @@ public void ShouldCloseIngressPublication() } [Test] +#pragma warning disable CA1506 public void ShouldConnectViaIngressChannel() { const long subscriptionId = 42L; @@ -258,7 +290,9 @@ public void ShouldConnectViaIngressChannel() A.CallTo(() => _aeron.GetPublication(publicationId)).Returns(publication); var asyncConnect = new AeronCluster.AsyncConnect( - _context, _aeronContext.NanoClock().NanoTime() + ONE_HOUR_IN_NANOS); + _context, + _aeronContext.NanoClock().NanoTime() + OneHourInNanos + ); Assert.IsNull(asyncConnect.Poll()); Assert.AreEqual(AsyncConnectState.CREATE_INGRESS_PUBLICATIONS, asyncConnect.State()); @@ -299,9 +333,7 @@ public void ShouldConnectViaIngressChannel() .LeaderHeartbeatTimeoutNs(SessionEventEncoder.LeaderHeartbeatTimeoutNsNullValue()) .Detail("you are now connected"); var egressImage = A.Fake(); - var header = new Header(1, 16, egressImage); - header.Buffer = responseBuffer; - header.Offset = 0; + var header = new Header(1, 16, egressImage) { Buffer = responseBuffer, Offset = 0 }; var headerFlyweight = new DataHeaderFlyweight(); headerFlyweight.Wrap(responseBuffer, 0, DataHeaderFlyweight.HEADER_LENGTH); headerFlyweight.Flags(DataHeaderFlyweight.BEGIN_AND_END_FLAGS); @@ -313,39 +345,48 @@ public void ShouldConnectViaIngressChannel() responseBuffer, DataHeaderFlyweight.HEADER_LENGTH, sessionEventEncoder.EncodedLength(), - header); + header + ); return 1; }); Assert.IsNull(asyncConnect.Poll()); Assert.AreEqual(AsyncConnectState.CONCLUDE_CONNECT, asyncConnect.State()); - var _aeronCluster = asyncConnect.Poll(); - Assert.IsNotNull(_aeronCluster); - Assert.AreEqual(leadershipTermId, _aeronCluster.LeadershipTermId); - Assert.AreEqual(leaderMemberId, _aeronCluster.LeaderMemberId); - Assert.AreEqual(clusterSessionId, _aeronCluster.ClusterSessionId); + var aeronCluster = asyncConnect.Poll(); + Assert.IsNotNull(aeronCluster); + Assert.AreEqual(leadershipTermId, aeronCluster.LeadershipTermId); + Assert.AreEqual(leaderMemberId, aeronCluster.LeaderMemberId); + Assert.AreEqual(clusterSessionId, aeronCluster.ClusterSessionId); Assert.AreEqual( 2 * AeronCluster.Configuration.LEADER_HEARTBEAT_TIMEOUT_DEFAULT_NS, - _context.NewLeaderTimeoutNs()); + _context.NewLeaderTimeoutNs() + ); asyncConnect.Dispose(); A.CallTo(() => publication.Dispose()).MustNotHaveHappened(); A.CallTo(() => subscription.Dispose()).MustNotHaveHappened(); - A.CallTo(() => publication.TryClaim(A._, A._)).ReturnsLazily(call => - { - int length = call.GetArgument(0); - var bufferClaim = call.GetArgument(1); - bufferClaim.Wrap(responseBuffer, 0, BitUtil.Align(DataHeaderFlyweight.HEADER_LENGTH + length, DataHeaderFlyweight.HEADER_LENGTH)); - return 42L; - }); - _aeronCluster.Dispose(); - Assert.IsTrue(_aeronCluster.Closed); - A.CallTo(() => publication.TryClaim(A._, A._)).MustHaveHappened() + A.CallTo(() => publication.TryClaim(A._, A._)) + .ReturnsLazily(call => + { + int length = call.GetArgument(0); + var bufferClaim = call.GetArgument(1); + bufferClaim.Wrap( + responseBuffer, + 0, + BitUtil.Align(DataHeaderFlyweight.HEADER_LENGTH + length, DataHeaderFlyweight.HEADER_LENGTH) + ); + return 42L; + }); + aeronCluster.Dispose(); + Assert.IsTrue(aeronCluster.Closed); + A.CallTo(() => publication.TryClaim(A._, A._)) + .MustHaveHappened() .Then(A.CallTo(() => subscription.Dispose()).MustHaveHappened()) .Then(A.CallTo(() => publication.Dispose()).MustHaveHappened()); A.CallTo(() => _context.Dispose()).MustHaveHappenedOnceExactly(); } +#pragma warning restore CA1506 } } diff --git a/src/Adaptive.Cluster.Tests/Client/AeronClusterContextTest.cs b/src/Adaptive.Cluster.Tests/Client/AeronClusterContextTest.cs index f35ef0a1..fd9403a2 100644 --- a/src/Adaptive.Cluster.Tests/Client/AeronClusterContextTest.cs +++ b/src/Adaptive.Cluster.Tests/Client/AeronClusterContextTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; using Adaptive.Aeron.Exceptions; using Adaptive.Cluster.Client; @@ -36,14 +52,13 @@ public void ConcludeThrowsConfigurationExceptionIfIngressChannelIsNotSet(string [Test] public void ConcludeThrowsConfigurationExceptionIfIngressChannelIsSetToIpcAndIngressEndpointsSpecified() { - _context - .IngressChannel("aeron:ipc") - .IngressEndpoints("0,localhost:1234"); + _context.IngressChannel("aeron:ipc").IngressEndpoints("0,localhost:1234"); var exception = Assert.Throws(() => _context.Conclude()); Assert.AreEqual( "AeronCluster.Context ingressEndpoints must be null when using IPC ingress", - exception.Message); + exception.Message + ); } [TestCase(null)] @@ -95,7 +110,8 @@ public void ClientNameMustNotExceedMaxLength() var exception = Assert.Throws(() => _context.Conclude()); Assert.AreEqual( "AeronCluster.Context.clientName length must be <= " + AeronType.Configuration.MAX_CLIENT_NAME_LENGTH, - exception.Message); + exception.Message + ); } } } diff --git a/src/Adaptive.Cluster.Tests/Client/AeronClusterTest.cs b/src/Adaptive.Cluster.Tests/Client/AeronClusterTest.cs index 14629665..bcad1030 100644 --- a/src/Adaptive.Cluster.Tests/Client/AeronClusterTest.cs +++ b/src/Adaptive.Cluster.Tests/Client/AeronClusterTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System; using System.Collections.Generic; using Adaptive.Aeron; @@ -17,8 +33,8 @@ namespace Adaptive.Cluster.Tests.Client [FixtureLifeCycle(LifeCycle.InstancePerTestCase)] public class AeronClusterTest { - private const string INGRESS_ENDPOINTS = "foo:1000,bar:1000,baz:1000"; - private const int CLUSTER_SESSION_ID = 123; + private const string IngressEndpoints = "foo:1000,bar:1000,baz:1000"; + private const int ClusterSessionId = 123; private readonly UnsafeBuffer _buffer = new UnsafeBuffer(new byte[1024]); private readonly UnsafeBuffer _appMessage = new UnsafeBuffer(new byte[8]); @@ -56,44 +72,44 @@ public void SetUp() .EgressListener(_egressListener) .NewLeaderTimeoutNs(TimeSpan.FromSeconds(1).Ticks * 100); // 1 second in nanos - const long _ingressPublicationRegistrationId = 42L; - A.CallTo(() => _ingressPublication.RegistrationId).Returns(_ingressPublicationRegistrationId); + const long ingressPublicationRegistrationId = 42L; + A.CallTo(() => _ingressPublication.RegistrationId).Returns(ingressPublicationRegistrationId); A.CallTo(() => _aeron.AsyncAddExclusivePublication(_context.IngressChannel(), _context.IngressStreamId())) - .Returns(_ingressPublicationRegistrationId); - A.CallTo(() => _aeron.GetExclusivePublication(_ingressPublicationRegistrationId)) + .Returns(ingressPublicationRegistrationId); + A.CallTo(() => _aeron.GetExclusivePublication(ingressPublicationRegistrationId)) .Returns(_ingressPublication); _context.Conclude(); - A.CallTo(() => _egressSubscription.Poll(A._, A._)).ReturnsLazily(call => - { - if (_newLeaderEventPending) + A.CallTo(() => _egressSubscription.Poll(A._, A._)) + .ReturnsLazily(call => { - _newLeaderEventPending = false; + if (_newLeaderEventPending) + { + _newLeaderEventPending = false; - int offset = DataHeaderFlyweight.HEADER_LENGTH; - FrameDescriptor.FrameFlags(_buffer, 0, FrameDescriptor.UNFRAGMENTED); + int offset = DataHeaderFlyweight.HEADER_LENGTH; + FrameDescriptor.FrameFlags(_buffer, 0, FrameDescriptor.UNFRAGMENTED); - var newLeaderEventEncoder = new NewLeaderEventEncoder(); - newLeaderEventEncoder.WrapAndApplyHeader(_buffer, offset, new MessageHeaderEncoder()); - newLeaderEventEncoder.ClusterSessionId(CLUSTER_SESSION_ID); - newLeaderEventEncoder.LeadershipTermId(++_leadershipTermId); - newLeaderEventEncoder.LeaderMemberId(++_leaderMemberId); - newLeaderEventEncoder.IngressEndpoints(INGRESS_ENDPOINTS); + var newLeaderEventEncoder = new NewLeaderEventEncoder(); + newLeaderEventEncoder.WrapAndApplyHeader(_buffer, offset, new MessageHeaderEncoder()); + newLeaderEventEncoder.ClusterSessionId(ClusterSessionId); + newLeaderEventEncoder.LeadershipTermId(++_leadershipTermId); + newLeaderEventEncoder.LeaderMemberId(++_leaderMemberId); + newLeaderEventEncoder.IngressEndpoints(IngressEndpoints); - int length = MessageHeaderEncoder.ENCODED_LENGTH + newLeaderEventEncoder.EncodedLength(); + int length = MessageHeaderEncoder.ENCODED_LENGTH + newLeaderEventEncoder.EncodedLength(); - var header = new Header(0, 0, _egressImage); - header.Buffer = _buffer; + var header = new Header(0, 0, _egressImage) { Buffer = _buffer }; - var handler = call.GetArgument(0); - handler.OnFragment(_buffer, offset, length, header); + var handler = call.GetArgument(0); + handler.OnFragment(_buffer, offset, length, header); - return 1; - } + return 1; + } - return 0; - }); + return 0; + }); _aeronCluster = new AeronCluster( _context, @@ -102,9 +118,10 @@ public void SetUp() _egressSubscription, _egressImage, new Map(), - CLUSTER_SESSION_ID, + ClusterSessionId, _leadershipTermId, - _leaderMemberId); + _leaderMemberId + ); } [TestCase(false)] @@ -168,7 +185,14 @@ public void ShouldStayConnectedAfterSuccessfulFailover(bool withIngressDisconnec MakeEgressSubscriptionDeliverNewLeaderEvent(); Assert.AreEqual(1, _aeronCluster.PollEgress()); - A.CallTo(() => _egressListener.OnNewLeader(CLUSTER_SESSION_ID, _leadershipTermId, _leaderMemberId, INGRESS_ENDPOINTS)) + A.CallTo(() => + _egressListener.OnNewLeader( + ClusterSessionId, + _leadershipTermId, + _leaderMemberId, + IngressEndpoints + ) + ) .MustHaveHappened(); Assert.AreEqual(0, _aeronCluster.PollEgress()); @@ -192,7 +216,9 @@ public void ShouldStayConnectedAfterSuccessfulFailover(bool withIngressDisconnec [TestCase(false)] [TestCase(true)] - public void ShouldCloseItselfWhenUnableToSendMessageForLongerThanNewLeaderConnectionTimeout(bool withAppMessages) + public void ShouldCloseItselfWhenUnableToSendMessageForLongerThanNewLeaderConnectionTimeout( + bool withAppMessages + ) { MakeIngressPublicationReturn(Publication.NOT_CONNECTED); if (withAppMessages) @@ -243,8 +269,7 @@ public void ShouldCloseIngressPublicationWhenEgressImageCloses() // and in AWAIT_NEW_LEADER_CONNECTION state too A.CallTo(() => _egressImage.Closed).Returns(true); Assert.AreEqual(1, _aeronCluster.PollEgress()); - A.CallTo(() => _ingressPublication.Dispose()) - .MustHaveHappened(3, Times.OrMore); + A.CallTo(() => _ingressPublication.Dispose()).MustHaveHappened(3, Times.OrMore); } private void MakeIngressPublicationReturn(long result) @@ -255,9 +280,12 @@ private void MakeIngressPublicationReturn(long result) .ReturnsLazily(call => { int length = call.GetArgument(0); - length = BitUtil.Align(DataHeaderFlyweight.HEADER_LENGTH + length, FrameDescriptor.FRAME_ALIGNMENT); - var _bufferClaim = call.GetArgument(1); - _bufferClaim.Wrap(_buffer, 0, length); + length = BitUtil.Align( + DataHeaderFlyweight.HEADER_LENGTH + length, + FrameDescriptor.FRAME_ALIGNMENT + ); + var bufferClaim = call.GetArgument(1); + bufferClaim.Wrap(_buffer, 0, length); return result; }); } @@ -266,10 +294,18 @@ private void MakeIngressPublicationReturn(long result) A.CallTo(() => _ingressPublication.TryClaim(A._, A._)).Returns(result); } - A.CallTo(() => _ingressPublication.Offer( - A._, A._, A._, - A._, A._, A._, - A._)).Returns(result); + A.CallTo(() => + _ingressPublication.Offer( + A._, + A._, + A._, + A._, + A._, + A._, + A._ + ) + ) + .Returns(result); } private void MakeEgressSubscriptionDeliverNewLeaderEvent() diff --git a/src/Adaptive.Cluster.Tests/Client/EgressAdapterTest.cs b/src/Adaptive.Cluster.Tests/Client/EgressAdapterTest.cs index 2b24e1f6..a3f9605b 100644 --- a/src/Adaptive.Cluster.Tests/Client/EgressAdapterTest.cs +++ b/src/Adaptive.Cluster.Tests/Client/EgressAdapterTest.cs @@ -1,6 +1,21 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; -using Adaptive.Agrona; using Adaptive.Agrona.Concurrent; using Adaptive.Cluster.Client; using Adaptive.Cluster.Codecs; @@ -34,26 +49,25 @@ public void OnFragmentShouldDelegateToEgressListenerOnUnknownSchemaId() { const ushort schemaId = 17; const ushort templateId = 19; - _messageHeaderEncoder - .Wrap(_buffer, 0) - .SchemaId(schemaId) - .TemplateId(templateId); + _messageHeaderEncoder.Wrap(_buffer, 0).SchemaId(schemaId).TemplateId(templateId); var listenerExtension = A.Fake(); var header = new Header(0, 0); - var adapter = new EgressAdapter( - A.Fake(), listenerExtension, 0, A.Fake(), 3); + var adapter = new EgressAdapter(A.Fake(), listenerExtension, 0, A.Fake(), 3); adapter.OnFragment(_buffer, 0, MessageHeaderDecoder.ENCODED_LENGTH * 2, header); - A.CallTo(() => listenerExtension.OnExtensionMessage( - A._, - templateId, - schemaId, - 0, - _buffer, - MessageHeaderDecoder.ENCODED_LENGTH, - MessageHeaderDecoder.ENCODED_LENGTH)) + A.CallTo(() => + listenerExtension.OnExtensionMessage( + A._, + templateId, + schemaId, + 0, + _buffer, + MessageHeaderDecoder.ENCODED_LENGTH, + MessageHeaderDecoder.ENCODED_LENGTH + ) + ) .MustHaveHappenedOnceExactly(); A.CallTo(listenerExtension).MustHaveHappenedOnceExactly(); } @@ -63,11 +77,8 @@ public void DefaultEgressListenerBehaviourShouldThrowClusterExceptionOnUnknownSc { var listener = A.Fake(); var adapter = new EgressAdapter(listener, 42, A.Fake(), 5); - var exception = Assert.Throws( - () => adapter.OnFragment(_buffer, 0, 64, new Header(0, 0))); - Assert.AreEqual( - "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=0", - exception.Message); + var exception = Assert.Throws(() => adapter.OnFragment(_buffer, 0, 64, new Header(0, 0))); + Assert.AreEqual("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=0", exception.Message); } [Test] @@ -87,13 +98,16 @@ public void OnFragmentShouldInvokeOnMessageCallbackIfSessionIdMatches() adapter.OnFragment(_buffer, offset, _sessionMessageHeaderEncoder.EncodedLength(), header); - A.CallTo(() => egressListener.OnMessage( - sessionId, - timestamp, - _buffer, - offset + AeronCluster.SESSION_HEADER_LENGTH, - _sessionMessageHeaderEncoder.EncodedLength() - AeronCluster.SESSION_HEADER_LENGTH, - header)) + A.CallTo(() => + egressListener.OnMessage( + sessionId, + timestamp, + _buffer, + offset + AeronCluster.SESSION_HEADER_LENGTH, + _sessionMessageHeaderEncoder.EncodedLength() - AeronCluster.SESSION_HEADER_LENGTH, + header + ) + ) .MustHaveHappenedOnceExactly(); A.CallTo(egressListener).MustHaveHappenedOnceExactly(); } @@ -145,8 +159,16 @@ public void OnFragmentShouldInvokeOnSessionEventCallbackIfSessionIdMatches() adapter.OnFragment(_buffer, offset, _sessionEventEncoder.EncodedLength(), header); - A.CallTo(() => egressListener.OnSessionEvent( - correlationId, clusterSessionId, leadershipTermId, leaderMemberId, eventCode, eventDetail)) + A.CallTo(() => + egressListener.OnSessionEvent( + correlationId, + clusterSessionId, + leadershipTermId, + leaderMemberId, + eventCode, + eventDetail + ) + ) .MustHaveHappenedOnceExactly(); A.CallTo(egressListener).MustHaveHappenedOnceExactly(); } @@ -174,8 +196,7 @@ public void OnFragmentIsANoOpIfSessionIdDoesNotMatchOnSessionEvent() var egressListener = A.Fake(); var header = new Header(0, 0); - var adapter = new EgressAdapter( - egressListener, clusterSessionId + 1, A.Fake(), 3); + var adapter = new EgressAdapter(egressListener, clusterSessionId + 1, A.Fake(), 3); adapter.OnFragment(_buffer, offset, _sessionEventEncoder.EncodedLength(), header); @@ -203,8 +224,9 @@ public void OnFragmentShouldInvokeOnNewLeaderCallbackIfSessionIdMatches() adapter.OnFragment(_buffer, offset, _newLeaderEventEncoder.EncodedLength(), header); - A.CallTo(() => egressListener.OnNewLeader( - clusterSessionId, leadershipTermId, leaderMemberId, ingressEndpoints)) + A.CallTo(() => + egressListener.OnNewLeader(clusterSessionId, leadershipTermId, leaderMemberId, ingressEndpoints) + ) .MustHaveHappenedOnceExactly(); A.CallTo(egressListener).MustHaveHappenedOnceExactly(); } @@ -258,15 +280,21 @@ public void OnFragmentShouldInvokeOnAdminResponseCallbackIfSessionIdMatches() adapter.OnFragment(_buffer, offset, _adminResponseEncoder.EncodedLength(), header); - A.CallTo(() => egressListener.OnAdminResponse( - clusterSessionId, - correlationId, - type, - responseCode, - message, - _buffer, - offset + MessageHeaderEncoder.ENCODED_LENGTH + _adminResponseEncoder.EncodedLength() - payload.Length, - payload.Length)) + A.CallTo(() => + egressListener.OnAdminResponse( + clusterSessionId, + correlationId, + type, + responseCode, + message, + _buffer, + offset + + MessageHeaderEncoder.ENCODED_LENGTH + + _adminResponseEncoder.EncodedLength() + - payload.Length, + payload.Length + ) + ) .MustHaveHappenedOnceExactly(); A.CallTo(egressListener).MustHaveHappenedOnceExactly(); } @@ -292,8 +320,7 @@ public void OnFragmentIsANoOpIfSessionIdDoesNotMatchOnAdminResponse() var egressListener = A.Fake(); var header = new Header(1, 3); - var adapter = new EgressAdapter( - egressListener, -clusterSessionId, A.Fake(), 10); + var adapter = new EgressAdapter(egressListener, -clusterSessionId, A.Fake(), 10); adapter.OnFragment(_buffer, offset, _adminResponseEncoder.EncodedLength(), header); diff --git a/src/Adaptive.Cluster.Tests/Client/EgressPollerTest.cs b/src/Adaptive.Cluster.Tests/Client/EgressPollerTest.cs index 7b74a976..2d82805a 100644 --- a/src/Adaptive.Cluster.Tests/Client/EgressPollerTest.cs +++ b/src/Adaptive.Cluster.Tests/Client/EgressPollerTest.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona.Concurrent; @@ -42,7 +58,9 @@ public void ShouldIgnoreUnknownMessageSchema() _buffer, offset, messageHeaderEncoder.EncodedLength() + controlResponseEncoder.EncodedLength(), - _header)); + _header + ) + ); Assert.IsFalse(_egressPoller.IsPollComplete()); } @@ -65,7 +83,9 @@ public void ShouldHandleSessionMessage() _buffer, offset, messageHeaderEncoder.EncodedLength() + encoder.EncodedLength(), - _header)); + _header + ) + ); Assert.IsTrue(_egressPoller.IsPollComplete()); Assert.AreEqual(clusterSessionId, _egressPoller.ClusterSessionId()); Assert.AreEqual(leadershipTermId, _egressPoller.LeadershipTermId()); @@ -76,7 +96,9 @@ public void ShouldHandleSessionMessage() _buffer, offset, messageHeaderEncoder.EncodedLength() + encoder.EncodedLength(), - _header)); + _header + ) + ); } } } diff --git a/src/Adaptive.Cluster/AppVersionValidator.cs b/src/Adaptive.Cluster/AppVersionValidator.cs index b8d7ba4b..45ddd5a7 100644 --- a/src/Adaptive.Cluster/AppVersionValidator.cs +++ b/src/Adaptive.Cluster/AppVersionValidator.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Agrona; namespace Adaptive.Cluster @@ -16,8 +32,8 @@ public class AppVersionValidator public static readonly AppVersionValidator SEMANTIC_VERSIONING_VALIDATOR = new AppVersionValidator(); /// - /// Check version compatibility between configured context appVersion and appVersion in - /// new leadership term or snapshot. + /// Check version compatibility between configured context appVersion and appVersion in new leadership term or + /// snapshot. /// /// configured appVersion value from context. /// to check against configured appVersion. @@ -27,4 +43,4 @@ public bool IsVersionCompatible(int contextAppVersion, int appVersionUnderTest) return SemanticVersion.Major(contextAppVersion) == SemanticVersion.Major(appVersionUnderTest); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Client/AeronCluster.cs b/src/Adaptive.Cluster/Client/AeronCluster.cs index 3ed39158..a56f6b1c 100644 --- a/src/Adaptive.Cluster/Client/AeronCluster.cs +++ b/src/Adaptive.Cluster/Client/AeronCluster.cs @@ -1,15 +1,30 @@ -using System; -using System.Collections.Generic; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Linq; using System.Threading; using Adaptive.Aeron; using Adaptive.Aeron.Exceptions; using Adaptive.Aeron.LogBuffer; +using Adaptive.Aeron.Security; using Adaptive.Agrona; +using Adaptive.Agrona.Collections; using Adaptive.Agrona.Concurrent; using Adaptive.Cluster.Codecs; -using Adaptive.Aeron.Security; -using Adaptive.Agrona.Collections; using static Adaptive.Aeron.Aeron; using static Adaptive.Aeron.Aeron.Context; using static Adaptive.Cluster.Client.AeronCluster; @@ -20,12 +35,13 @@ namespace Adaptive.Cluster.Client { /// /// Client for interacting with an Aeron Cluster. - /// - /// A client will attempt to open a session and then offer ingress messages which are replicated to clustered services - /// for reliability. If the clustered service responds then response messages and events are sent via the egress stream. + /// + /// A client will attempt to open a session and then offer ingress messages which are replicated to clustered + /// services for reliability. If the clustered service responds then response messages and events are sent via the + /// egress stream. /// /// Note: Instances of this class are not threadsafe. - /// + /// /// public sealed class AeronCluster : IDisposable { @@ -35,19 +51,19 @@ public sealed class AeronCluster : IDisposable public static readonly int SESSION_HEADER_LENGTH = MessageHeaderEncoder.ENCODED_LENGTH + SessionMessageHeaderDecoder.BLOCK_LENGTH; - private const int SEND_ATTEMPTS = 3; - private const int FRAGMENT_LIMIT = 10; + private const int SendAttempts = 3; + private const int FragmentLimit = 10; private readonly long _clusterSessionId; private long _leadershipTermId; private int _leaderMemberId; private readonly Context _ctx; private readonly Subscription _subscription; - private AeronClusterState state; - private long stateDeadline; - private Image egressImage; + private AeronClusterState _state; + private long _stateDeadline; + private Image _egressImage; private Publication _publication; - private readonly INanoClock nanoClock; + private readonly INanoClock _nanoClock; private readonly IIdleStrategy _idleStrategy; private readonly BufferClaim _bufferClaim = new BufferClaim(); private readonly UnsafeBuffer _headerBuffer = new UnsafeBuffer(new byte[SESSION_HEADER_LENGTH]); @@ -61,8 +77,8 @@ public sealed class AeronCluster : IDisposable private readonly IEgressListener _egressListener; private readonly ControlledFragmentAssembler _controlledFragmentAssembler; private readonly IControlledEgressListener _controlledEgressListener; - private IEgressListenerExtension egressListenerExtension; - private IControlledEgressListenerExtension controlledEgressListenerExtension; + private IEgressListenerExtension _egressListenerExtension; + private IControlledEgressListenerExtension _controlledEgressListenerExtension; private Map _endpointByIdMap = new Map(); private readonly Poller _poller; @@ -88,7 +104,8 @@ public Poller( IEgressListener egressListener, IEgressListenerExtension egressListenerExtension, long clusterSessionId, - AeronCluster cluster) + AeronCluster cluster + ) { _egressListener = egressListener; _clusterSessionId = clusterSessionId; @@ -96,6 +113,7 @@ public Poller( _egressListenerExtension = egressListenerExtension; } +#pragma warning disable S138 public void OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { _messageHeaderDecoder.Wrap(buffer, offset); @@ -114,13 +132,14 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head _messageHeaderDecoder.Version(), buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - length - MessageHeaderDecoder.ENCODED_LENGTH); + length - MessageHeaderDecoder.ENCODED_LENGTH + ); } else { throw new ClusterException( - "expected cluster egress schemaId=" + MessageHeaderDecoder.SCHEMA_ID + " actual=" + - schemaId); + "expected cluster egress schemaId=" + MessageHeaderDecoder.SCHEMA_ID + " actual=" + schemaId + ); } } @@ -132,7 +151,8 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); long sessionId = _sessionMessageHeaderDecoder.ClusterSessionId(); if (sessionId == _clusterSessionId) @@ -143,7 +163,8 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head buffer, offset + SESSION_HEADER_LENGTH, length - SESSION_HEADER_LENGTH, - header); + header + ); } break; @@ -154,7 +175,8 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); long sessionId = _sessionEventDecoder.ClusterSessionId(); if (sessionId == _clusterSessionId) @@ -171,7 +193,8 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head _sessionEventDecoder.LeadershipTermId(), _sessionEventDecoder.LeaderMemberId(), code, - _sessionEventDecoder.Detail()); + _sessionEventDecoder.Detail() + ); } break; @@ -182,17 +205,19 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); long sessionId = _newLeaderEventDecoder.ClusterSessionId(); if (sessionId == _clusterSessionId) { - _cluster.egressImage = (Image)header.Context; + _cluster._egressImage = (Image)header.Context; _cluster.OnNewLeader( sessionId, _newLeaderEventDecoder.LeadershipTermId(), _newLeaderEventDecoder.LeaderMemberId(), - _newLeaderEventDecoder.IngressEndpoints()); + _newLeaderEventDecoder.IngressEndpoints() + ); } break; @@ -203,7 +228,8 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); long sessionId = _adminResponseDecoder.ClusterSessionId(); if (sessionId == _clusterSessionId) @@ -212,11 +238,12 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head AdminRequestType requestType = _adminResponseDecoder.RequestType(); AdminResponseCode responseCode = _adminResponseDecoder.ResponseCode(); string message = _adminResponseDecoder.Message(); - int payloadOffset = _adminResponseDecoder.Offset() + - AdminResponseDecoder.BLOCK_LENGTH + - AdminResponseDecoder.MessageHeaderLength() + - message.Length + - AdminResponseDecoder.PayloadHeaderLength(); + int payloadOffset = + _adminResponseDecoder.Offset() + + AdminResponseDecoder.BLOCK_LENGTH + + AdminResponseDecoder.MessageHeaderLength() + + message.Length + + AdminResponseDecoder.PayloadHeaderLength(); int payloadLength = _adminResponseDecoder.PayloadLength(); _egressListener.OnAdminResponse( sessionId, @@ -226,13 +253,15 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head message, buffer, payloadOffset, - payloadLength); + payloadLength + ); } break; } } } +#pragma warning restore S138 } private class ControlledPoller : IControlledFragmentHandler @@ -255,7 +284,8 @@ public ControlledPoller( IControlledEgressListener egressListener, IControlledEgressListenerExtension egressListenerExtension, long clusterSessionId, - AeronCluster cluster) + AeronCluster cluster + ) { _egressListener = egressListener; _clusterSessionId = clusterSessionId; @@ -263,8 +293,13 @@ public ControlledPoller( _egressListenerExtension = egressListenerExtension; } - public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, - Header header) +#pragma warning disable S138 + public ControlledFragmentHandlerAction OnFragment( + IDirectBuffer buffer, + int offset, + int length, + Header header + ) { _messageHeaderDecoder.Wrap(buffer, offset); int schemaId = _messageHeaderDecoder.SchemaId(); @@ -281,15 +316,17 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs _messageHeaderDecoder.Version(), buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - length - MessageHeaderDecoder.ENCODED_LENGTH); + length - MessageHeaderDecoder.ENCODED_LENGTH + ); } else { throw new ClusterException( - "expected cluster egress schemaId=" + MessageHeaderDecoder.SCHEMA_ID + " actual=" + schemaId); + "expected cluster egress schemaId=" + MessageHeaderDecoder.SCHEMA_ID + " actual=" + schemaId + ); } } - + switch (templateId) { case SessionMessageHeaderDecoder.TEMPLATE_ID: @@ -298,7 +335,8 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); long sessionId = _sessionMessageHeaderDecoder.ClusterSessionId(); if (sessionId == _clusterSessionId) @@ -309,7 +347,8 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs buffer, offset + SESSION_HEADER_LENGTH, length - SESSION_HEADER_LENGTH, - header); + header + ); } break; @@ -320,7 +359,8 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); long sessionId = _sessionEventDecoder.ClusterSessionId(); if (sessionId == _clusterSessionId) @@ -337,7 +377,8 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs _sessionEventDecoder.LeadershipTermId(), _sessionEventDecoder.LeaderMemberId(), code, - _sessionEventDecoder.Detail()); + _sessionEventDecoder.Detail() + ); return ControlledFragmentHandlerAction.COMMIT; } @@ -350,17 +391,19 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); long sessionId = _newLeaderEventDecoder.ClusterSessionId(); if (sessionId == _clusterSessionId) { - _cluster.egressImage = (Image)header.Context; + _cluster._egressImage = (Image)header.Context; _cluster.OnNewLeader( sessionId, _newLeaderEventDecoder.LeadershipTermId(), _newLeaderEventDecoder.LeaderMemberId(), - _newLeaderEventDecoder.IngressEndpoints()); + _newLeaderEventDecoder.IngressEndpoints() + ); return ControlledFragmentHandlerAction.COMMIT; } @@ -373,7 +416,8 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); long sessionId = _adminResponseDecoder.ClusterSessionId(); if (sessionId == _clusterSessionId) @@ -382,11 +426,12 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs AdminRequestType requestType = _adminResponseDecoder.RequestType(); AdminResponseCode responseCode = _adminResponseDecoder.ResponseCode(); string message = _adminResponseDecoder.Message(); - int payloadOffset = _adminResponseDecoder.Offset() + - AdminResponseDecoder.BLOCK_LENGTH + - AdminResponseDecoder.MessageHeaderLength() + - message.Length + - AdminResponseDecoder.PayloadHeaderLength(); + int payloadOffset = + _adminResponseDecoder.Offset() + + AdminResponseDecoder.BLOCK_LENGTH + + AdminResponseDecoder.MessageHeaderLength() + + message.Length + + AdminResponseDecoder.PayloadHeaderLength(); int payloadLength = _adminResponseDecoder.PayloadLength(); _egressListener.OnAdminResponse( sessionId, @@ -396,7 +441,8 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs message, buffer, payloadOffset, - payloadLength); + payloadLength + ); } break; @@ -405,6 +451,7 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs return ControlledFragmentHandlerAction.CONTINUE; } +#pragma warning restore S138 } /// @@ -481,8 +528,8 @@ public static AeronCluster Connect(Context ctx) } /// - /// Begin an attempt at creating a connection which can be completed by calling until - /// it returns the client, before complete it will return null. + /// Begin an attempt at creating a connection which can be completed by calling + /// until it returns the client, before complete it will return null. /// /// the that can be polled for completion. public static AsyncConnect ConnectAsync() @@ -491,8 +538,8 @@ public static AsyncConnect ConnectAsync() } /// - /// Begin an attempt at creating a connection which can be completed by calling until - /// it returns the client, before complete it will return null. + /// Begin an attempt at creating a connection which can be completed by calling + /// until it returns the client, before complete it will return null. /// /// for the cluster. /// the that can be polled for completion. @@ -530,13 +577,13 @@ int leaderMemberId _ctx = ctx; _messageHeaderEncoder = messageHeaderEncoder; _subscription = subscription; - this.egressImage = egressImage; + _egressImage = egressImage; _endpointByIdMap = endpointByIdMap; _clusterSessionId = clusterSessionId; _leadershipTermId = leadershipTermId; _leaderMemberId = leaderMemberId; _publication = publication; - nanoClock = ctx.AeronClient().Ctx.NanoClock(); + _nanoClock = ctx.AeronClient().Ctx.NanoClock(); _idleStrategy = ctx.IdleStrategy(); _egressListener = ctx.EgressListener(); _controlledEgressListener = ctx.ControlledEgressListener(); @@ -559,7 +606,7 @@ int leaderMemberId /// listener extension. public void EgressListenerExtension(IEgressListenerExtension listenerExtension) { - egressListenerExtension = listenerExtension; + _egressListenerExtension = listenerExtension; } /// @@ -568,7 +615,7 @@ public void EgressListenerExtension(IEgressListenerExtension listenerExtension) /// listener extension. public void ControlledEgressListenerExtension(IControlledEgressListenerExtension listenerExtension) { - controlledEgressListenerExtension = listenerExtension; + _controlledEgressListenerExtension = listenerExtension; } /// @@ -576,12 +623,12 @@ public void ControlledEgressListenerExtension(IControlledEgressListenerExtension /// public void Dispose() { - if (AeronClusterState.CLOSED == state) + if (AeronClusterState.CLOSED == _state) { return; } - if (null != _publication && _publication.IsConnected && AeronClusterState.CONNECTED == state) + if (null != _publication && _publication.IsConnected && AeronClusterState.CONNECTED == _state) { CloseSession(); } @@ -598,11 +645,11 @@ public void Dispose() } /// - /// Is the client closed? The client can be closed by calling , the cluster sending an event, - /// or the client permanently losing a cluster connection. + /// Is the client closed? The client can be closed by calling , the cluster sending + /// an event, or the client permanently losing a cluster connection. /// /// true if closed otherwise false. - public bool Closed => AeronClusterState.CLOSED == state; + public bool Closed => AeronClusterState.CLOSED == _state; /// /// Get the context used to launch this cluster client. @@ -622,7 +669,6 @@ public void Dispose() /// leadership term identity for the cluster. public long LeadershipTermId => _leadershipTermId; - /// /// Get the current leader member id for the cluster. /// @@ -632,8 +678,8 @@ public void Dispose() /// /// Get the raw for sending to the cluster. /// - /// This can be wrapped with a for pre-pending the cluster session header to - /// messages. + /// This can be wrapped with a for pre-pending the cluster session + /// header to messages. /// should be used for raw access. /// /// Results of offering to this publication should be passed to {@link #TrackIngressPublicationResult(long)}. @@ -647,43 +693,36 @@ public void Dispose() /// /// this can be wrapped with a for dispatching events from the cluster. /// should be used for raw access. - /// + /// /// /// the raw for receiving from the cluster. public Subscription EgressSubscription => _subscription; /// /// Try to claim a range in the publication log into which a message can be written with zero copy semantics. - /// Once the message has been written then should be called thus making it available. + /// Once the message has been written then should be called thus making + /// it available. /// /// On successful claim, the Cluster ingress header will be written to the start of the claimed buffer section. - /// Clients MUST write into the claimed buffer region at offset + . + /// Clients MUST write into the claimed buffer region at offset + + /// . ///
{@code
-        ///     final IDirectBuffer srcBuffer = AcquireMessage();
-        ///    
-        ///     if (aeronCluster.TryClaim(length, bufferClaim) > 0L)
-        ///     {
-        ///         try
-        ///         {
-        ///              final IMutableDirectBuffer buffer = bufferClaim.Buffer;
-        ///              final int offset = bufferClaim.Offset;
-        ///              // ensure that data is written at the correct offset
-        ///              buffer.PutBytes(offset + AeronCluster.SESSION_HEADER_LENGTH, srcBuffer, 0, length);
-        ///         }
-        ///         finally
-        ///         {
-        ///             bufferClaim.Commit();
-        ///         }
-        ///     }
-        /// }
- /// + /// final IDirectBuffer srcBuffer = AcquireMessage(); + /// + /// if (aeronCluster.TryClaim(length, bufferClaim) > 0L) { try { final IMutableDirectBuffer buffer = + /// bufferClaim.Buffer; final int offset = bufferClaim.Offset; // ensure that data is written at the correct + /// offset buffer.PutBytes(offset + AeronCluster.SESSION_HEADER_LENGTH, srcBuffer, 0, length); } finally { + /// bufferClaim.Commit(); } } } + /// ///
///
- /// of the range to claim, in bytes. The additional bytes for the session header will be added. + /// of the range to claim, in bytes. The additional bytes for the + /// session header will be added. /// to be populated if the claim succeeds. /// The new stream position, otherwise a negative error value as specified in /// . - /// if the length is greater than . + /// if the length is greater than + /// . /// /// /// @@ -705,13 +744,15 @@ public long TryClaim(int length, BufferClaim bufferClaim) /// Non-blocking publish of a partial buffer containing a message plus session header to a cluster. /// /// This version of the method will set the timestamp value in the header to zero. - /// + /// /// ///
/// containing message. /// offset in the buffer at which the encoded message begins. /// in bytes of the encoded message. - /// the same as . + /// the same as + /// . + /// public long Offer(IDirectBuffer buffer, int offset, int length) { long result = _publication.Offer(_headerBuffer, 0, SESSION_HEADER_LENGTH, buffer, offset, length); @@ -722,11 +763,13 @@ public long Offer(IDirectBuffer buffer, int offset, int length) } /// - /// Non-blocking publish by gathering buffer vectors into a message. The first vector will be replaced by the cluster - /// session message header so must be left unused. + /// Non-blocking publish by gathering buffer vectors into a message. The first vector will be replaced by the + /// cluster session message header so must be left unused. /// /// which make up the message. - /// the same as . + /// the same as + /// . + /// /// public long Offer(DirectBufferVector[] vectors) { @@ -744,13 +787,13 @@ public long Offer(DirectBufferVector[] vectors) /// /// Note: Sending keep-alives can fail during a leadership transition. The application should continue to call /// to ensure a connection to the new leader is established. - /// + /// ///
/// true if successfully sent otherwise false if back pressured. public bool SendKeepAlive() { _idleStrategy.Reset(); - int attempts = SEND_ATTEMPTS; + int attempts = SendAttempts; while (true) { @@ -790,19 +833,24 @@ public bool SendKeepAlive() } /// - /// Sends an admin request to initiate a snapshot action in the cluster. This request requires elevated privileges. + /// Sends an admin request to initiate a snapshot action in the cluster. This request requires elevated + /// privileges. /// /// for the request. /// {@code true} if the request was sent or {@code false} otherwise. - /// - /// + /// + /// public bool SendAdminRequestToTakeASnapshot(long correlationId) { _idleStrategy.Reset(); - int attempts = SEND_ATTEMPTS; + int attempts = SendAttempts; - int length = MessageHeaderEncoder.ENCODED_LENGTH + AdminRequestEncoder.BLOCK_LENGTH + - AdminRequestEncoder.PayloadHeaderLength(); + int length = + MessageHeaderEncoder.ENCODED_LENGTH + + AdminRequestEncoder.BLOCK_LENGTH + + AdminRequestEncoder.PayloadHeaderLength(); while (true) { @@ -847,14 +895,15 @@ public bool SendAdminRequestToTakeASnapshot(long correlationId) return false; } - /// /// Poll the for session messages which are dispatched to - /// . Invoking this method, or , frequently is - /// important for detecting leadership changes in a cluster. + /// . Invoking this method, or + /// , frequently is important for detecting leadership changes + /// in a cluster. /// - /// Note: if is not set then a could result. - /// + /// Note: if is not set then a + /// could result. + /// /// /// /// 0 if no work was available, or a positive number if work has been done, @@ -862,10 +911,12 @@ public bool SendAdminRequestToTakeASnapshot(long correlationId) /// public int PollEgress() { - var workCount = _subscription.Poll(_fragmentAssembler, FRAGMENT_LIMIT); + var workCount = _subscription.Poll(_fragmentAssembler, FragmentLimit); - - if (egressImage.Closed && (AeronClusterState.CONNECTED == state || AeronClusterState.AWAIT_NEW_LEADER_CONNECTION == state)) + if ( + _egressImage.Closed + && (AeronClusterState.CONNECTED == _state || AeronClusterState.AWAIT_NEW_LEADER_CONNECTION == _state) + ) { OnDisconnected(); workCount++; @@ -878,12 +929,12 @@ public int PollEgress() /// /// Poll the for session messages which are dispatched to - /// . Invoking this method, or , frequently is - /// important for detecting leadership changes in a cluster. + /// . Invoking this method, or + /// , frequently is important for detecting leadership changes in a cluster. /// - /// Note: if is not set then a - /// could result. - /// + /// Note: if is not set then a + /// could result. + /// /// /// /// 0 if no work was available, a positive number if work has been done, @@ -891,9 +942,12 @@ public int PollEgress() /// public int ControlledPollEgress() { - int workCount = _subscription.ControlledPoll(_controlledFragmentAssembler, FRAGMENT_LIMIT); + int workCount = _subscription.ControlledPoll(_controlledFragmentAssembler, FragmentLimit); - if (egressImage.Closed && (AeronClusterState.CONNECTED == state || AeronClusterState.AWAIT_NEW_LEADER_CONNECTION == state)) + if ( + _egressImage.Closed + && (AeronClusterState.CONNECTED == _state || AeronClusterState.AWAIT_NEW_LEADER_CONNECTION == _state) + ) { OnDisconnected(); workCount++; @@ -912,9 +966,16 @@ public int ControlledPollEgress() /// 0 if state has not changed, a positive number otherwise. public int PollStateChanges() { - if (AeronClusterState.PENDING_CLOSE == state || - ((AeronClusterState.AWAIT_NEW_LEADER == state || AeronClusterState.AWAIT_NEW_LEADER_CONNECTION == state) && - 0 <= nanoClock.NanoTime() - stateDeadline)) + if ( + AeronClusterState.PENDING_CLOSE == _state + || ( + ( + AeronClusterState.AWAIT_NEW_LEADER == _state + || AeronClusterState.AWAIT_NEW_LEADER_CONNECTION == _state + ) + && 0 <= _nanoClock.NanoTime() - _stateDeadline + ) + ) { Dispose(); @@ -926,22 +987,29 @@ public int PollStateChanges() /// /// To be called when a new leader event is delivered. This method needs to be called when using the - /// or rather than method. + /// or rather than + /// method. /// /// which must match . /// that identifies the term for which the new leader has been elected. /// which has become the new leader. - /// comma separated list of cluster ingress endpoints to connect to with the leader first. - public void OnNewLeader(long clusterSessionId, long leadershipTermId, int leaderMemberId, - string ingressEndpoints) + /// comma separated list of cluster ingress endpoints to + /// connect to with the leader first. + public void OnNewLeader( + long clusterSessionId, + long leadershipTermId, + int leaderMemberId, + string ingressEndpoints + ) { if (clusterSessionId != _clusterSessionId) { - throw new ClusterException("invalid clusterSessionId=" + clusterSessionId + " expected=" + - _clusterSessionId); + throw new ClusterException( + "invalid clusterSessionId=" + clusterSessionId + " expected=" + _clusterSessionId + ); } - State(AeronClusterState.AWAIT_NEW_LEADER_CONNECTION, nanoClock.NanoTime() + _ctx.MessageTimeoutNs()); + State(AeronClusterState.AWAIT_NEW_LEADER_CONNECTION, _nanoClock.NanoTime() + _ctx.MessageTimeoutNs()); _leadershipTermId = leadershipTermId; _leaderMemberId = leaderMemberId; @@ -966,14 +1034,14 @@ public void OnNewLeader(long clusterSessionId, long leadershipTermId, int leader } /// - /// Updates the state of this client based on ingress publication result. Should be called with every {@code offer} - /// and {@code tryClaim} result when is used directly. Methods of this class which send - /// ingress messages call it automatically. + /// Updates the state of this client based on ingress publication result. Should be called with every + /// {@code offer} and {@code tryClaim} result when is used directly. + /// Methods of this class which send ingress messages call it automatically. /// /// the result returned by the ingress publication. public void TrackIngressPublicationResult(long result) { - if (AeronClusterState.CONNECTED == state) + if (AeronClusterState.CONNECTED == _state) { if (Publication.NOT_CONNECTED == result || Publication.CLOSED == result) { @@ -985,12 +1053,9 @@ public void TrackIngressPublicationResult(long result) State(AeronClusterState.PENDING_CLOSE, 0); } } - else if (AeronClusterState.AWAIT_NEW_LEADER_CONNECTION == state) + else if (AeronClusterState.AWAIT_NEW_LEADER_CONNECTION == _state && 0 < result) { - if (0 < result) - { - State(AeronClusterState.CONNECTED, 0); - } + State(AeronClusterState.CONNECTED, 0); } } @@ -1009,8 +1074,10 @@ private static Map ParseIngressEndpoints(Context ctx, string } int memberId = int.Parse(endpoint.Substring(0, separatorIndex)); - endpointByIdMap.Put(memberId, - new MemberIngress(ctx, memberId, endpoint.Substring(separatorIndex + 1))); + endpointByIdMap.Put( + memberId, + new MemberIngress(ctx, memberId, endpoint.Substring(separatorIndex + 1)) + ); } } @@ -1032,7 +1099,7 @@ internal static Publication AddIngressPublication(Context ctx, string channel, i private Publication AddNewLeaderIngressPublication(Context ctx, string channel, int streamId) { long registrationId = AsyncAddIngressPublication(ctx, channel, streamId); - long deadlineNs = nanoClock.NanoTime() + ctx.MessageTimeoutNs(); + long deadlineNs = _nanoClock.NanoTime() + ctx.MessageTimeoutNs(); do { Publication publication = GetIngressPublication(ctx, registrationId); @@ -1041,13 +1108,16 @@ private Publication AddNewLeaderIngressPublication(Context ctx, string channel, return publication; } _idleStrategy.Idle(ctx.RunAgentInvokers()); - } - while (nanoClock.NanoTime() < deadlineNs); + } while (_nanoClock.NanoTime() < deadlineNs); throw new AeronTimeoutException( - "failed to add new leader ingress publication (leaderMemberId=" + _leaderMemberId + - ", leadershipTermId=" + _leadershipTermId + ", channel=" + channel + ", streamId=" + streamId + - ") within " + ctx.MessageTimeoutNs() + "ns"); + "failed to add new leader ingress publication " + + "(leaderMemberId=" + _leaderMemberId + + ", leadershipTermId=" + _leadershipTermId + + ", channel=" + channel + + ", streamId=" + streamId + + ") within " + ctx.MessageTimeoutNs() + "ns" + ); } internal static long AsyncAddIngressPublication(Context ctx, string channel, int streamId) @@ -1084,18 +1154,21 @@ private void UpdateMemberEndpoints(string ingressEndpoints, int leaderMemberId) ChannelUri channelUri = ChannelUri.Parse(_ctx.IngressChannel()); if (channelUri.IsUdp) { - channelUri.Put(ENDPOINT_PARAM_NAME, newLeader.endpoint); + channelUri.Put(ENDPOINT_PARAM_NAME, newLeader._endpoint); } - _publication = newLeader.publication = - AddNewLeaderIngressPublication(_ctx, channelUri.ToString(), _ctx.IngressStreamId()); + _publication = newLeader._publication = AddNewLeaderIngressPublication( + _ctx, + channelUri.ToString(), + _ctx.IngressStreamId() + ); _endpointByIdMap = map; } private void OnDisconnected() { _publication.Dispose(); - State(AeronClusterState.AWAIT_NEW_LEADER, nanoClock.NanoTime() + _ctx.NewLeaderTimeoutNs()); + State(AeronClusterState.AWAIT_NEW_LEADER, _nanoClock.NanoTime() + _ctx.NewLeaderTimeoutNs()); } private void CloseSession() @@ -1103,14 +1176,14 @@ private void CloseSession() _idleStrategy.Reset(); int length = MessageHeaderEncoder.ENCODED_LENGTH + SessionCloseRequestEncoder.BLOCK_LENGTH; SessionCloseRequestEncoder sessionCloseRequestEncoder = new SessionCloseRequestEncoder(); - int attempts = SEND_ATTEMPTS; + int attempts = SendAttempts; while (true) { long position = _publication.TryClaim(length, _bufferClaim); TrackIngressPublicationResult(position); - + if (position > 0) { sessionCloseRequestEncoder @@ -1145,13 +1218,12 @@ private void InvokeInvokers() } } - private void State(AeronClusterState newState, long newStateDeadline) { //System.out.println( - // Instant.now() + " AeronCluster " + state + " -> " + newState + " (" + newStateDeadline + ")"); - state = newState; - stateDeadline = newStateDeadline; + // Instant.now() + " AeronCluster " + _state + " -> " + newState + " (" + newStateDeadline + ")"); + _state = newState; + _stateDeadline = newStateDeadline; } private enum AeronClusterState @@ -1160,31 +1232,38 @@ private enum AeronClusterState * The session is connected to a leader. */ CONNECTED, + /** * The session got disconnected from a leader, waiting for a new one. */ AWAIT_NEW_LEADER, + /** * The session got notified of a new leader, i.e. egress connected, waiting for ingress to connect. */ AWAIT_NEW_LEADER_CONNECTION, + /** * The session got notified it's closed or the client decided it can't continue. * The client is about to close, possibly during the next poll. */ PENDING_CLOSE, + /** * The session and client are closed. Terminal state. */ CLOSED, } - /// /// Configuration options for cluster client. /// public class Configuration { + private Configuration() + { + } + /// /// Major version of the network protocol from client to consensus module. If these don't match then client /// and consensus module are not compatible. @@ -1198,8 +1277,8 @@ public class Configuration public const int PROTOCOL_MINOR_VERSION = 3; /// - /// Patch version of the network protocol from client to consensus module. If these don't match then bug fixes - /// may not have been applied. + /// Patch version of the network protocol from client to consensus module. If these don't match then bug + /// fixes may not have been applied. /// public const int PROTOCOL_PATCH_VERSION = 0; @@ -1207,8 +1286,11 @@ public class Configuration /// Combined semantic version for the client to consensus module protocol. /// /// - public static readonly int PROTOCOL_SEMANTIC_VERSION = - SemanticVersion.Compose(PROTOCOL_MAJOR_VERSION, PROTOCOL_MINOR_VERSION, PROTOCOL_PATCH_VERSION); + public static readonly int PROTOCOL_SEMANTIC_VERSION = SemanticVersion.Compose( + PROTOCOL_MAJOR_VERSION, + PROTOCOL_MINOR_VERSION, + PROTOCOL_PATCH_VERSION + ); /// /// Timeout when waiting on a message to be sent or received. @@ -1221,14 +1303,16 @@ public class Configuration public static readonly long MESSAGE_TIMEOUT_DEFAULT_NS = 5000000000; /// - /// Property name for the comma separated map of cluster memberId to ingress endpoint for use with unicast. This - /// is the endpoint values which get substituted into the when using UDP + /// Property name for the comma separated map of cluster memberId to ingress endpoint for use with unicast. + /// This is the endpoint values which get substituted into the + /// when using UDP /// unicast. /// /// {@code "0=endpoint,1=endpoint,2=endpoint"} /// /// - /// Each member of the list will be substituted for the endpoint in the value. + /// Each member of the list will be substituted for the endpoint in the + /// value. /// /// public const string INGRESS_ENDPOINTS_PROP_NAME = "aeron.cluster.ingress.endpoints"; @@ -1239,9 +1323,9 @@ public class Configuration public const string INGRESS_ENDPOINTS_DEFAULT = null; /// - /// Channel for sending messages to a cluster. Ideally this will be a multicast address otherwise unicast will - /// be required and the is used to substitute the endpoints from - /// the list. + /// Channel for sending messages to a cluster. Ideally this will be a multicast address otherwise unicast + /// will be required and the is used to substitute the + /// endpoints from the list. /// public const string INGRESS_CHANNEL_PROP_NAME = "aeron.cluster.ingress.channel"; @@ -1263,16 +1347,13 @@ public class Configuration /// /// Channel for receiving response messages from a cluster. /// - /// Channel's endpoint can be specified explicitly (i.e. by providing address and port pair) or - /// by using zero as a port number. Here is an example of valid response channels: - ///
    - ///
  • {@code aeron:udp?endpoint=localhost:9020} - listen on port {@code 9020} on localhost.
  • - ///
  • {@code aeron:udp?endpoint=192.168.10.10:9020} - listen on port {@code 9020} on - /// {@code 192.168.10.10}.
  • - ///
  • {@code aeron:udp?endpoint=localhost:0} - in this case the port is unspecified and the OS - /// will assign a free port from the - /// ephemeral port range.
  • - ///
+ /// Channel's endpoint can be specified explicitly (i.e. by providing address and port pair) or by + /// using zero as a port number. Here is an example of valid response channels:
    + ///
  • {@code aeron:udp?endpoint=localhost:9020} - listen on port {@code 9020} on localhost.
  • + ///
  • {@code aeron:udp?endpoint=192.168.10.10:9020} - listen on port {@code 9020} on + /// {@code 192.168.10.10}.
  • {@code aeron:udp?endpoint=localhost:0} - in this case the port is + /// unspecified and the OS will assign a free port from the + /// ephemeral port range.
///
///
public const string EGRESS_CHANNEL_PROP_NAME = "aeron.cluster.egress.channel"; @@ -1291,7 +1372,7 @@ public class Configuration /// Default stream id within a channel for receiving messages from a cluster. ///
public const int EGRESS_STREAM_ID_DEFAULT = 102; - + /// /// System property to name Cluster client. Defaults to empty string. /// @@ -1302,7 +1383,7 @@ public class Configuration /// Timeout for a leader if no heartbeat is received by another member. ///
public const long LEADER_HEARTBEAT_TIMEOUT_DEFAULT_NS = 10_000_000_000; - + /// /// The timeout in nanoseconds to wait for a message. /// @@ -1321,8 +1402,7 @@ public static long MessageTimeoutNs() /// if set. public static string IngressEndpoints() { - return - Config.GetProperty(INGRESS_ENDPOINTS_PROP_NAME, INGRESS_ENDPOINTS_DEFAULT); + return Config.GetProperty(INGRESS_ENDPOINTS_PROP_NAME, INGRESS_ENDPOINTS_DEFAULT); } /// @@ -1337,32 +1417,38 @@ public static string IngressChannel() } /// - /// The value or system property if set. + /// The value or system property + /// if set. /// - /// or system property if set. + /// or system property + /// if set. public static int IngressStreamId() { return Config.GetInteger(INGRESS_STREAM_ID_PROP_NAME, INGRESS_STREAM_ID_DEFAULT); } /// - /// The value or system property if set. + /// The value or system property + /// if set. /// - /// or system property if set. + /// or system property + /// if set. public static string EgressChannel() { return Config.GetProperty(EGRESS_CHANNEL_PROP_NAME, EGRESS_CHANNEL_DEFAULT); } /// - /// The value or system property if set. + /// The value or system property + /// if set. /// - /// or system property if set. + /// or system property + /// if set. public static int EgressStreamId() { return Config.GetInteger(EGRESS_STREAM_ID_PROP_NAME, EGRESS_STREAM_ID_DEFAULT); } - + /// /// Get the configured client name. /// @@ -1388,7 +1474,8 @@ public void OnMessage( IDirectBuffer buffer, int offset, int length, - Header header) + Header header + ) { throw new ConfigurationException("egressMessageListener must be specified on AeronCluster.Context"); } @@ -1399,10 +1486,12 @@ ControlledFragmentHandlerAction IControlledEgressListener.OnMessage( IDirectBuffer buffer, int offset, int length, - Header header) + Header header + ) { throw new ConfigurationException( - "controlledEgressListened must be specified on AeronCluster.Context"); + "controlledEgressListened must be specified on AeronCluster.Context" + ); } public void OnSessionEvent( @@ -1411,7 +1500,8 @@ public void OnSessionEvent( long leadershipTermId, int leaderMemberId, EventCode code, - string detail) + string detail + ) { } @@ -1419,21 +1509,34 @@ public void OnNewLeader( long clusterSessionId, long leadershipTermId, int leaderMemberId, - string memberEndpoints) + string memberEndpoints + ) { } - void IControlledEgressListener.OnAdminResponse(long clusterSessionId, long correlationId, + void IControlledEgressListener.OnAdminResponse( + long clusterSessionId, + long correlationId, AdminRequestType requestType, - AdminResponseCode responseCode, string message, IDirectBuffer payload, int payloadOffset, - int payloadLength) + AdminResponseCode responseCode, + string message, + IDirectBuffer payload, + int payloadOffset, + int payloadLength + ) { } - void IEgressListener.OnAdminResponse(long clusterSessionId, long correlationId, + void IEgressListener.OnAdminResponse( + long clusterSessionId, + long correlationId, AdminRequestType requestType, - AdminResponseCode responseCode, string message, IDirectBuffer payload, int payloadOffset, - int payloadLength) + AdminResponseCode responseCode, + string message, + IDirectBuffer payload, + int payloadOffset, + int payloadLength + ) { } } @@ -1456,8 +1559,8 @@ void IEgressListener.OnAdminResponse(long clusterSessionId, long correlationId, private bool _isDirectAssemblers = false; private IEgressListener _egressListener; private IControlledEgressListener _controlledEgressListener; - private AgentInvoker agentInvoker; - private String clientName = Configuration.ClientName(); + private AgentInvoker _agentInvoker; + private string _clientName = Configuration.ClientName(); /// /// Perform a shallow copy of the object. @@ -1477,18 +1580,17 @@ public void Conclude() { throw new ConcurrentConcludeException(); } - + if (string.IsNullOrEmpty(_ingressChannel)) { throw new ConfigurationException("ingressChannel must be specified"); } - if (_ingressChannel.StartsWith(IPC_CHANNEL)) + if (_ingressChannel.StartsWith(IPC_CHANNEL) && null != _ingressEndpoints) { - if (null != _ingressEndpoints) - { - throw new ConfigurationException("AeronCluster.Context ingressEndpoints must be null when using IPC ingress"); - } + throw new ConfigurationException( + "AeronCluster.Context ingressEndpoints must be null when using IPC ingress" + ); } if (string.IsNullOrEmpty(_egressChannel)) @@ -1502,11 +1604,13 @@ public void Conclude() egressChannelUri.Put(REJOIN_PARAM_NAME, "false"); _egressChannel = egressChannelUri.ToString(); } - - if (clientName.Length > Aeron.Aeron.Configuration.MAX_CLIENT_NAME_LENGTH) + + if (_clientName.Length > Aeron.Aeron.Configuration.MAX_CLIENT_NAME_LENGTH) { throw new ConfigurationException( - "AeronCluster.Context.clientName length must be <= " + Aeron.Aeron.Configuration.MAX_CLIENT_NAME_LENGTH); + "AeronCluster.Context.clientName length must be <= " + + Aeron.Aeron.Configuration.MAX_CLIENT_NAME_LENGTH + ); } if (null == _aeron) @@ -1515,7 +1619,8 @@ public void Conclude() new Aeron.Aeron.Context() .AeronDirectoryName(_aeronDirectoryName) .ErrorHandler(_errorHandler) - .ClientName(string.IsNullOrEmpty(clientName) ? "cluster-client" : clientName)); + .ClientName(string.IsNullOrEmpty(_clientName) ? "cluster-client" : _clientName) + ); _ownsAeronClient = true; } @@ -1565,30 +1670,32 @@ public Context MessageTimeoutNs(long messageTimeoutNs) /// public long MessageTimeoutNs() { - return CheckDebugTimeout(_messageTimeoutNs, TimeUnit.NANOSECONDS, - nameof(MessageTimeoutNs)); + return CheckDebugTimeout(_messageTimeoutNs, TimeUnit.NANOSECONDS, nameof(MessageTimeoutNs)); } - + /// - /// The timeout to wait for a new leader after noticing a disconnection from the previous one. Upon timeout the - /// cluster will be considered lost and the client will close. If set to , a reasonable - /// default will be used. + /// The timeout to wait for a new leader after noticing a disconnection from the previous one. Upon timeout + /// the cluster will be considered lost and the client will close. If set to , a + /// reasonable default will be used. /// - /// the new leader timeout in nanoseconds or . + /// the new leader timeout in nanoseconds or + /// . /// this for a fluent API. public Context NewLeaderTimeoutNs(long newLeaderTimeoutNs) { if (!(0 < newLeaderTimeoutNs || NULL_VALUE == newLeaderTimeoutNs)) { - throw new ArgumentException("newLeaderTimeoutNs must be positive or -1, but was " + newLeaderTimeoutNs); + throw new ArgumentException( + "newLeaderTimeoutNs must be positive or -1, but was " + newLeaderTimeoutNs + ); } _newLeaderTimeoutNs = newLeaderTimeoutNs; return this; } /// - /// The timeout to wait for a new leader after noticing a disconnection from the previous one. Upon timeout the - /// cluster will be considered lost and the client will close. + /// The timeout to wait for a new leader after noticing a disconnection from the previous one. Upon timeout + /// the cluster will be considered lost and the client will close. /// /// the new leader timeout in nanoseconds. public long NewLeaderTimeoutNs() @@ -1597,9 +1704,9 @@ public long NewLeaderTimeoutNs() } /// - /// The endpoints representing members for use with unicast to be substituted into the - /// for endpoints. A null value can be used when multicast where the contains the - /// multicast endpoint. + /// The endpoints representing members for use with unicast to be substituted into the + /// for endpoints. A null value can be used when multicast + /// where the contains the multicast endpoint. /// /// which are all candidates to be leader. /// this for a fluent API. @@ -1611,9 +1718,9 @@ public Context IngressEndpoints(string clusterMembers) } /// - /// The endpoints representing members for use with unicast to be substituted into the - /// for endpoints. A null value can be used when multicast where the contains the - /// multicast endpoint. + /// The endpoints representing members for use with unicast to be substituted into the + /// for endpoints. A null value can be used when multicast + /// where the contains the multicast endpoint. /// /// members of the cluster which are all candidates to be leader. /// @@ -1625,10 +1732,10 @@ public string IngressEndpoints() /// /// Set the channel parameter for the ingress channel. /// - /// The endpoints representing members for use with unicast are substituted from the - /// for endpoints. If this channel contains a multicast endpoint, then should - /// be set to null. - /// + /// The endpoints representing members for use with unicast are substituted from the + /// for endpoints. If this channel contains a multicast + /// endpoint, then should be set to null. + /// /// /// /// parameter for the ingress channel. @@ -1646,7 +1753,7 @@ public Context IngressChannel(string channel) /// The endpoints representing members for use with unicast are substituted from the /// for endpoints. A null value can be used when multicast /// where this contains the multicast endpoint. - /// + /// /// /// the channel parameter for the ingress channel. /// @@ -1740,7 +1847,7 @@ public IIdleStrategy IdleStrategy() { return _idleStrategy; } - + /// /// Sets the name used to identify this client among other clients connected to the Cluster. /// @@ -1750,7 +1857,7 @@ public IIdleStrategy IdleStrategy() /// Since 1.49.0 public Context ClientName(string clientName) { - this.clientName = string.IsNullOrEmpty(clientName) ? "" : clientName; + _clientName = string.IsNullOrEmpty(clientName) ? "" : clientName; return this; } @@ -1762,10 +1869,9 @@ public Context ClientName(string clientName) /// Since 1.49.0 public string ClientName() { - return clientName; + return _clientName; } - /// /// Set the top level Aeron directory used for communication between the Aeron client and Media Driver. /// @@ -1789,9 +1895,10 @@ public string AeronDirectoryName() /// /// client for communicating with the local Media Driver. /// - /// This client will be closed when the or methods are called if + /// This client will be closed when the or + /// methods are called if /// is true. - /// + /// /// /// /// client for communicating with the local Media Driver. @@ -1808,7 +1915,7 @@ public Context AeronClient(Aeron.Aeron aeron) /// /// If not provided then a default will be established during by calling /// . - /// + /// /// /// /// client for communicating with the local Media Driver. @@ -1818,9 +1925,11 @@ public Aeron.Aeron AeronClient() } /// - /// Does this context own the client and this takes responsibility for closing it? + /// Does this context own the client and this takes responsibility for + /// closing it? /// - /// does this context own the client. + /// does this context own the + /// client. /// this for a fluent API. public Context OwnsAeronClient(bool ownsAeronClient) { @@ -1829,9 +1938,11 @@ public Context OwnsAeronClient(bool ownsAeronClient) } /// - /// Does this context own the client and this takes responsibility for closing it? + /// Does this context own the client and this takes responsibility for + /// closing it? /// - /// does this context own the client and this takes responsibility for closing it? + /// does this context own the client and this takes + /// responsibility for closing it? public bool OwnsAeronClient() { return _ownsAeronClient; @@ -1839,10 +1950,11 @@ public bool OwnsAeronClient() /// /// Is ingress to the cluster exclusively from a single thread to this client? The client should not be used - /// from another thread, e.g. a separate thread calling - which is awful - /// design by the way! + /// from another thread, e.g. a separate thread calling + /// - which is awful design by the way! /// - /// true if ingress to the cluster is exclusively from a single thread for this client? + /// true if ingress to the cluster is exclusively from a + /// single thread for this client? /// this for a fluent API. public Context IsIngressExclusive(bool isIngressExclusive) { @@ -1851,9 +1963,11 @@ public Context IsIngressExclusive(bool isIngressExclusive) } /// - /// Is ingress the to the cluster used exclusively from a single thread to this client? + /// Is ingress the to the cluster used exclusively from a single thread to + /// this client? /// - /// true if the ingress is to be used exclusively from a single thread? + /// true if the ingress is to be used exclusively + /// from a single thread? public bool IsIngressExclusive() { return _isIngressExclusive; @@ -1862,7 +1976,8 @@ public bool IsIngressExclusive() /// /// Get the to be used for authentication with the cluster. /// - /// the to be used for authentication with the cluster. + /// the to be used for authentication with + /// the cluster. public ICredentialsSupplier CredentialsSupplier() { return _credentialsSupplier; @@ -1934,11 +2049,12 @@ public IEgressListener EgressListener() /// Get the function that will be called when polling for egress via /// . /// - /// Only will be dispatched - /// when using - /// + /// Only will be dispatched when using + /// + /// ///
- /// function that will be called when polling for egress via . + /// function that will be called when polling for egress via + /// . /// this for a fluent API. public Context EgressListener(IEgressListener listener) { @@ -1947,22 +2063,22 @@ public Context EgressListener(IEgressListener listener) } /// - /// Get the function that will be called when polling for egress via - /// . + /// Get the function that will be called when polling for egress + /// via . /// - /// the function that will be called when polling for egress via - /// . + /// the function that will be called + /// when polling for egress via . public IControlledEgressListener ControlledEgressListener() { return _controlledEgressListener; } /// - /// Get the function that will be called when polling for egress via - /// . - /// - /// Only will be - /// dispatched when using . + /// Get the function that will be called when polling for egress + /// via . + /// + /// Only + /// will be dispatched when using . /// /// function that will be called when polling for egress via /// . @@ -1974,27 +2090,30 @@ public Context ControlledEgressListener(IControlledEgressListener listener) } /// - /// Set the to be invoked in addition to any invoker used by the instance. + /// Set the to be invoked in addition to any + /// invoker used by the instance. /// /// Useful for when running on a low thread count scenario. - /// + /// /// /// - /// to be invoked while awaiting a response in the client or when awaiting completion. + /// to be invoked while awaiting a response in the client or + /// when awaiting completion. /// this for a fluent API. public Context AgentInvoker(AgentInvoker agentInvoker) { - this.agentInvoker = agentInvoker; + _agentInvoker = agentInvoker; return this; } /// - /// Get the to be invoked in addition to any invoker used by the instance. + /// Get the to be invoked in addition to any + /// invoker used by the instance. /// /// the that is used. public AgentInvoker AgentInvoker() { - return agentInvoker; + return _agentInvoker; } internal int RunAgentInvokers() @@ -2010,9 +2129,9 @@ internal int RunAgentInvokers() } } - if (null != agentInvoker) + if (null != _agentInvoker) { - workDone += agentInvoker.Invoke(); + workDone += _agentInvoker.Invoke(); } return workDone; @@ -2021,7 +2140,8 @@ internal int RunAgentInvokers() /// /// Close the context and free applicable resources. /// - /// If is true then the client will be closed. + /// If is true then the client will be + /// closed. /// /// public void Dispose() @@ -2034,34 +2154,35 @@ public void Dispose() public override string ToString() { - return "AeronCluster.Context" + - "\n{" + - "\n isConcluded=" + Concluded + - "\n ownsAeronClient=" + _ownsAeronClient + - "\n aeronDirectoryName='" + _aeronDirectoryName + '\'' + - "\n aeron=" + _aeron + - "\n messageTimeoutNs=" + _messageTimeoutNs + - "\n newLeaderTimeoutNs=" + _newLeaderTimeoutNs + - "\n ingressEndpoints='" + _ingressEndpoints + '\'' + - "\n ingressChannel='" + _ingressChannel + '\'' + - "\n ingressStreamId=" + _ingressStreamId + - "\n egressChannel='" + _egressChannel + '\'' + - "\n egressStreamId=" + _egressStreamId + - "\n idleStrategy=" + _idleStrategy + - "\n credentialsSupplier=" + _credentialsSupplier + - "\n isIngressExclusive=" + _isIngressExclusive + - "\n errorHandler=" + _errorHandler + - "\n isDirectAssemblers=" + _isDirectAssemblers + - "\n egressListener=" + _egressListener + - "\n controlledEgressListener=" + _controlledEgressListener + - "\n}"; + return + "AeronCluster.Context" + + "\n{" + + "\n isConcluded=" + Concluded + + "\n ownsAeronClient=" + _ownsAeronClient + + "\n aeronDirectoryName='" + _aeronDirectoryName + '\'' + + "\n aeron=" + _aeron + + "\n messageTimeoutNs=" + _messageTimeoutNs + + "\n newLeaderTimeoutNs=" + _newLeaderTimeoutNs + + "\n ingressEndpoints='" + _ingressEndpoints + '\'' + + "\n ingressChannel='" + _ingressChannel + '\'' + + "\n ingressStreamId=" + _ingressStreamId + + "\n egressChannel='" + _egressChannel + '\'' + + "\n egressStreamId=" + _egressStreamId + + "\n idleStrategy=" + _idleStrategy + + "\n credentialsSupplier=" + _credentialsSupplier + + "\n isIngressExclusive=" + _isIngressExclusive + + "\n errorHandler=" + _errorHandler + + "\n isDirectAssemblers=" + _isDirectAssemblers + + "\n egressListener=" + _egressListener + + "\n controlledEgressListener=" + _controlledEgressListener + + "\n}"; } } /// - /// Allows for the async establishment of a cluster session. should be called repeatedly until - /// it returns a non-null value with the new client. On error should be called - /// to clean up allocated resources. + /// Allows for the async establishment of a cluster session. should be called + /// repeatedly until it returns a non-null value with the new client. On error + /// should be called to clean up allocated resources. /// public class AsyncConnect : IDisposable { @@ -2103,38 +2224,38 @@ public enum AsyncConnectState /// /// Connection established. /// - DONE = 5 - } - - private Image egressImage; - private readonly long deadlineNs; - private long leaderHeartbeatTimeoutNs; - private long correlationId = NULL_VALUE; - private long clusterSessionId; - private long leadershipTermId; - private int leaderMemberId; - private AsyncConnectState state = CREATE_EGRESS_SUBSCRIPTION; - private int messageLength = 0; - - private readonly Context ctx; - private readonly INanoClock nanoClock; - private readonly ExpandableArrayBuffer buffer = new ExpandableArrayBuffer(); - private readonly MessageHeaderEncoder messageHeaderEncoder = new MessageHeaderEncoder(); - - private Subscription egressSubscription; - private EgressPoller egressPoller; - private long egressRegistrationId = NULL_VALUE; - private Map memberByIdMap; - private long ingressRegistrationId = NULL_VALUE; - private Publication ingressPublication; + DONE = 5, + } + + private Image _egressImage; + private readonly long _deadlineNs; + private long _leaderHeartbeatTimeoutNs; + private long _correlationId = NULL_VALUE; + private long _clusterSessionId; + private long _leadershipTermId; + private int _leaderMemberId; + private AsyncConnectState _state = CREATE_EGRESS_SUBSCRIPTION; + private int _messageLength = 0; + + private readonly Context _ctx; + private readonly INanoClock _nanoClock; + private readonly ExpandableArrayBuffer _buffer = new ExpandableArrayBuffer(); + private readonly MessageHeaderEncoder _messageHeaderEncoder = new MessageHeaderEncoder(); + + private Subscription _egressSubscription; + private EgressPoller _egressPoller; + private long _egressRegistrationId = NULL_VALUE; + private Map _memberByIdMap; + private long _ingressRegistrationId = NULL_VALUE; + private Publication _ingressPublication; internal AsyncConnect(Context ctx, long deadlineNs) { - this.ctx = ctx; + _ctx = ctx; - memberByIdMap = ParseIngressEndpoints(ctx, ctx.IngressEndpoints()); - nanoClock = ctx.AeronClient().Ctx.NanoClock(); - this.deadlineNs = deadlineNs; + _memberByIdMap = ParseIngressEndpoints(ctx, ctx.IngressEndpoints()); + _nanoClock = ctx.AeronClient().Ctx.NanoClock(); + _deadlineNs = deadlineNs; } /// @@ -2142,29 +2263,29 @@ internal AsyncConnect(Context ctx, long deadlineNs) /// public void Dispose() { - if (DONE != state) + if (DONE != _state) { - IErrorHandler errorHandler = ctx.ErrorHandler(); - if (null != ingressPublication) + IErrorHandler errorHandler = _ctx.ErrorHandler(); + if (null != _ingressPublication) { - CloseHelper.Dispose(errorHandler, ingressPublication); + CloseHelper.Dispose(errorHandler, _ingressPublication); } - else if (NULL_VALUE != ingressRegistrationId) + else if (NULL_VALUE != _ingressRegistrationId) { - ctx.AeronClient().AsyncRemovePublication(ingressRegistrationId); + _ctx.AeronClient().AsyncRemovePublication(_ingressRegistrationId); } - if (null != egressSubscription) + if (null != _egressSubscription) { - CloseHelper.Dispose(errorHandler, egressSubscription); + CloseHelper.Dispose(errorHandler, _egressSubscription); } - else if (NULL_VALUE != egressRegistrationId) + else if (NULL_VALUE != _egressRegistrationId) { - ctx.AeronClient().AsyncRemoveSubscription(egressRegistrationId); + _ctx.AeronClient().AsyncRemoveSubscription(_egressRegistrationId); } - CloseHelper.CloseAll(errorHandler, memberByIdMap.Values); - ctx.Dispose(); + CloseHelper.CloseAll(errorHandler, _memberByIdMap.Values); + _ctx.Dispose(); } } @@ -2174,7 +2295,7 @@ public void Dispose() /// which step in the connect process has been reached. public int Step() { - return (int)state; + return (int)_state; } /// @@ -2183,13 +2304,13 @@ public int Step() /// current state. public AsyncConnectState State() { - return state; + return _state; } private void State(AsyncConnectState newState) { - // Console.WriteLine("AeronCluster.AsyncConnect " + state + " -> " + stepName(newState)); - state = newState; + // Console.WriteLine("AeronCluster.AsyncConnect " + _state + " -> " + stepName(newState)); + _state = newState; } /// @@ -2217,9 +2338,9 @@ public static string StepName(int step) public AeronCluster Poll() { CheckDeadline(); - ctx.RunAgentInvokers(); + _ctx.RunAgentInvokers(); - switch (state) + switch (_state) { case CREATE_EGRESS_SUBSCRIPTION: CreateEgressSubscription(); @@ -2250,27 +2371,26 @@ public AeronCluster Poll() private void CheckDeadline() { - if (deadlineNs - nanoClock.NanoTime() < 0) + if (_deadlineNs - _nanoClock.NanoTime() < 0) { - bool isConnected = null != egressSubscription && egressSubscription.IsConnected; - string endpointPort = null != egressSubscription - ? egressSubscription.TryResolveChannelEndpointPort() - : ""; + bool isConnected = null != _egressSubscription && _egressSubscription.IsConnected; + string endpointPort = + null != _egressSubscription ? _egressSubscription.TryResolveChannelEndpointPort() : ""; AeronTimeoutException ex = new AeronTimeoutException( - "cluster connect timeout: state=" + state + - " messageTimeout=" + ctx.MessageTimeoutNs() + "ns" + - " ingressChannel=" + ctx.IngressChannel() + - " ingressEndpoints=" + ctx.IngressEndpoints() + - " ingressPublication=" + ingressPublication + + "cluster connect timeout: state=" + _state + + " messageTimeout=" + _ctx.MessageTimeoutNs() + "ns" + + " ingressChannel=" + _ctx.IngressChannel() + + " ingressEndpoints=" + _ctx.IngressEndpoints() + + " ingressPublication=" + _ingressPublication + " egress.isConnected=" + isConnected + " responseChannel=" + endpointPort); - foreach (MemberIngress member in memberByIdMap.Values) + foreach (MemberIngress member in _memberByIdMap.Values) { - if (null != member.publicationException) + if (null != member._publicationException) { - ex.AddSuppressed(member.publicationException); + ex.AddSuppressed(member._publicationException); } } @@ -2289,18 +2409,19 @@ private void CheckDeadline() private void CreateEgressSubscription() { - if (NULL_VALUE == egressRegistrationId) + if (NULL_VALUE == _egressRegistrationId) { - egressRegistrationId = ctx.AeronClient().AsyncAddSubscription(ctx.EgressChannel(), ctx.EgressStreamId()); + _egressRegistrationId = _ctx.AeronClient() + .AsyncAddSubscription(_ctx.EgressChannel(), _ctx.EgressStreamId()); } try { - egressSubscription = ctx.AeronClient().GetSubscription(egressRegistrationId); + _egressSubscription = _ctx.AeronClient().GetSubscription(_egressRegistrationId); } catch (RegistrationException ex) { - egressRegistrationId = NULL_VALUE; + _egressRegistrationId = NULL_VALUE; if (ErrorCode.RESOURCE_TEMPORARILY_UNAVAILABLE != ex.ErrorCode()) { @@ -2308,39 +2429,42 @@ private void CreateEgressSubscription() } } - if (null != egressSubscription) + if (null != _egressSubscription) { - egressPoller = new EgressPoller(egressSubscription, FRAGMENT_LIMIT); - egressRegistrationId = NULL_VALUE; + _egressPoller = new EgressPoller(_egressSubscription, FragmentLimit); + _egressRegistrationId = NULL_VALUE; State(CREATE_INGRESS_PUBLICATIONS); } } private void CreateIngressPublications() { - if (null == ctx.IngressEndpoints()) + if (null == _ctx.IngressEndpoints()) { - if (null == ingressPublication) + if (null == _ingressPublication) { - if (NULL_VALUE == ingressRegistrationId) + if (NULL_VALUE == _ingressRegistrationId) { - ingressRegistrationId = - AsyncAddIngressPublication(ctx, ctx.IngressChannel(), ctx.IngressStreamId()); + _ingressRegistrationId = AsyncAddIngressPublication( + _ctx, + _ctx.IngressChannel(), + _ctx.IngressStreamId() + ); } try { - ingressPublication = GetIngressPublication(ctx, ingressRegistrationId); + _ingressPublication = GetIngressPublication(_ctx, _ingressRegistrationId); } catch (RegistrationException) { - ingressRegistrationId = NULL_VALUE; + _ingressRegistrationId = NULL_VALUE; throw; } } else { - ingressRegistrationId = NULL_VALUE; + _ingressRegistrationId = NULL_VALUE; State(AWAIT_PUBLICATION_CONNECTED); } } @@ -2348,52 +2472,54 @@ private void CreateIngressPublications() { int publicationCount = 0; int failureCount = 0; - ChannelUri channelUri = ChannelUri.Parse(ctx.IngressChannel()); + ChannelUri channelUri = ChannelUri.Parse(_ctx.IngressChannel()); - foreach (MemberIngress member in memberByIdMap.Values) + foreach (MemberIngress member in _memberByIdMap.Values) { try { - if (null != member.publicationException) + if (null != member._publicationException) { failureCount++; continue; } - if (null == member.publication) + if (null == member._publication) { - if (NULL_VALUE == member.registrationId) + if (NULL_VALUE == member._registrationId) { if (channelUri.IsUdp) { - channelUri.Put(ENDPOINT_PARAM_NAME, member.endpoint); + channelUri.Put(ENDPOINT_PARAM_NAME, member._endpoint); } - member.registrationId = AsyncAddIngressPublication(ctx, channelUri.ToString(), - ctx.IngressStreamId()); + member._registrationId = AsyncAddIngressPublication( + _ctx, + channelUri.ToString(), + _ctx.IngressStreamId() + ); } - member.publication = GetIngressPublication(ctx, member.registrationId); + member._publication = GetIngressPublication(_ctx, member._registrationId); } - - if (null != member.publication) + if (null != member._publication) { - member.registrationId = NULL_VALUE; + member._registrationId = NULL_VALUE; publicationCount++; } } catch (RegistrationException ex) { - member.publicationException = ex; + member._publicationException = ex; } } - if (publicationCount + failureCount == memberByIdMap.Count) + if (publicationCount + failureCount == _memberByIdMap.Count) { if (0 == publicationCount) { - throw memberByIdMap.Values.First().publicationException; + throw _memberByIdMap.Values.First()._publicationException; } State(AWAIT_PUBLICATION_CONNECTED); @@ -2403,58 +2529,57 @@ private void CreateIngressPublications() private void AwaitPublicationConnected() { - string responseChannel = egressSubscription.TryResolveChannelEndpointPort(); + string responseChannel = _egressSubscription.TryResolveChannelEndpointPort(); if (null != responseChannel) { - if (null == ingressPublication) + if (null == _ingressPublication) { - foreach (MemberIngress member in memberByIdMap.Values) + foreach (MemberIngress member in _memberByIdMap.Values) { - if (null == member.publication && NULL_VALUE != member.registrationId) + if (null == member._publication && NULL_VALUE != member._registrationId) { member.AsyncGetPublication(); } - if (null != member.publication && member.publication.IsConnected) + if (null != member._publication && member._publication.IsConnected) { - ingressPublication = member.publication; + _ingressPublication = member._publication; PrepareConnectRequest(responseChannel); break; } } } - else if (ingressPublication.IsConnected) + else if (_ingressPublication.IsConnected) { PrepareConnectRequest(responseChannel); } } } - - private void PrepareConnectRequest(String responseChannel) + private void PrepareConnectRequest(string responseChannel) { - correlationId = ctx.AeronClient().NextCorrelationId(); - var encodedCredentials = ctx.CredentialsSupplier().EncodedCredentials(); + _correlationId = _ctx.AeronClient().NextCorrelationId(); + var encodedCredentials = _ctx.CredentialsSupplier().EncodedCredentials(); + + string clientInfo = "name=" + _ctx.ClientName(); + // + " " + AeronCounters.formatVersionInfo(AeronClusterVersion.VERSION, AeronClusterVersion.GIT_SHA); - string clientInfo = "name=" + ctx.ClientName(); - // + " " + AeronCounters.formatVersionInfo(AeronClusterVersion.VERSION, AeronClusterVersion.GIT_SHA); - var encoder = new SessionConnectRequestEncoder() - .WrapAndApplyHeader(buffer, 0, messageHeaderEncoder) - .CorrelationId(correlationId) - .ResponseStreamId(ctx.EgressStreamId()) + .WrapAndApplyHeader(_buffer, 0, _messageHeaderEncoder) + .CorrelationId(_correlationId) + .ResponseStreamId(_ctx.EgressStreamId()) .Version(PROTOCOL_SEMANTIC_VERSION) .ResponseChannel(responseChannel) .PutEncodedCredentials(encodedCredentials, 0, encodedCredentials.Length) .ClientInfo(clientInfo); - messageLength = MessageHeaderEncoder.ENCODED_LENGTH + encoder.EncodedLength(); + _messageLength = MessageHeaderEncoder.ENCODED_LENGTH + encoder.EncodedLength(); State(SEND_MESSAGE); } private void SendMessage() { - long position = ingressPublication.Offer(buffer, 0, messageLength); + long position = _ingressPublication.Offer(_buffer, 0, _messageLength); if (position > 0) { State(POLL_RESPONSE); @@ -2467,38 +2592,42 @@ private void SendMessage() private void PollResponse() { - if (egressPoller.Poll() > 0 && egressPoller.IsPollComplete() && - egressPoller.CorrelationId() == correlationId) + if ( + _egressPoller.Poll() > 0 + && _egressPoller.IsPollComplete() + && _egressPoller.CorrelationId() == _correlationId + ) { - if (egressPoller.IsChallenged()) + if (_egressPoller.IsChallenged()) { - correlationId = NULL_VALUE; - clusterSessionId = egressPoller.ClusterSessionId(); - PrepareChallengeResponse(ctx.CredentialsSupplier() - .OnChallenge(egressPoller.EncodedChallenge())); + _correlationId = NULL_VALUE; + _clusterSessionId = _egressPoller.ClusterSessionId(); + PrepareChallengeResponse( + _ctx.CredentialsSupplier().OnChallenge(_egressPoller.EncodedChallenge()) + ); return; } - switch (egressPoller.EventCode()) + switch (_egressPoller.EventCode()) { case EventCode.OK: - leadershipTermId = egressPoller.LeadershipTermId(); - leaderMemberId = egressPoller.LeaderMemberId(); - clusterSessionId = egressPoller.ClusterSessionId(); - leaderHeartbeatTimeoutNs = egressPoller.LeaderHeartbeatTimeoutNs(); - egressImage = egressPoller.EgressImage(); + _leadershipTermId = _egressPoller.LeadershipTermId(); + _leaderMemberId = _egressPoller.LeaderMemberId(); + _clusterSessionId = _egressPoller.ClusterSessionId(); + _leaderHeartbeatTimeoutNs = _egressPoller.LeaderHeartbeatTimeoutNs(); + _egressImage = _egressPoller.EgressImage(); State(CONCLUDE_CONNECT); break; case EventCode.ERROR: - throw new ClusterException(egressPoller.Detail()); + throw new ClusterException(_egressPoller.Detail()); case EventCode.REDIRECT: UpdateMembers(); break; case EventCode.AUTHENTICATION_REJECTED: - throw new AuthenticationException(egressPoller.Detail()); + throw new AuthenticationException(_egressPoller.Detail()); case EventCode.CLOSED: case EventCode.NULL_VALUE: @@ -2509,37 +2638,40 @@ private void PollResponse() private void PrepareChallengeResponse(byte[] encodedCredentials) { - correlationId = ctx.AeronClient().NextCorrelationId(); + _correlationId = _ctx.AeronClient().NextCorrelationId(); var encoder = new ChallengeResponseEncoder() - .WrapAndApplyHeader(buffer, 0, messageHeaderEncoder) - .CorrelationId(correlationId).ClusterSessionId(clusterSessionId) + .WrapAndApplyHeader(_buffer, 0, _messageHeaderEncoder) + .CorrelationId(_correlationId) + .ClusterSessionId(_clusterSessionId) .PutEncodedCredentials(encodedCredentials, 0, encodedCredentials.Length); - messageLength = MessageHeaderEncoder.ENCODED_LENGTH + encoder.EncodedLength(); + _messageLength = MessageHeaderEncoder.ENCODED_LENGTH + encoder.EncodedLength(); State(SEND_MESSAGE); } private void UpdateMembers() { - leaderMemberId = egressPoller.LeaderMemberId(); - MemberIngress oldLeader = memberByIdMap.Remove(leaderMemberId); + _leaderMemberId = _egressPoller.LeaderMemberId(); + MemberIngress oldLeader = _memberByIdMap.Remove(_leaderMemberId); - CloseHelper.Dispose(ingressPublication); - ingressPublication = null; - CloseHelper.CloseAll(memberByIdMap.Values); + CloseHelper.Dispose(_ingressPublication); + _ingressPublication = null; + CloseHelper.CloseAll(_memberByIdMap.Values); - memberByIdMap = ParseIngressEndpoints(ctx, egressPoller.Detail()); + _memberByIdMap = ParseIngressEndpoints(_ctx, _egressPoller.Detail()); - MemberIngress newLeader = memberByIdMap.Get(leaderMemberId); - if (null != oldLeader && - null == oldLeader.publicationException && - newLeader.endpoint.Equals(oldLeader.endpoint)) + MemberIngress newLeader = _memberByIdMap.Get(_leaderMemberId); + if ( + null != oldLeader + && null == oldLeader._publicationException + && newLeader._endpoint.Equals(oldLeader._endpoint) + ) { - newLeader.publication = oldLeader.publication; - ingressPublication = oldLeader.publication; - newLeader.registrationId = oldLeader.registrationId; + newLeader._publication = oldLeader._publication; + _ingressPublication = oldLeader._publication; + newLeader._registrationId = oldLeader._registrationId; } else { @@ -2552,17 +2684,33 @@ private void UpdateMembers() private AeronCluster ConcludeConnect() { - if (ctx.NewLeaderTimeoutNs() == NULL_VALUE) + if (_ctx.NewLeaderTimeoutNs() == NULL_VALUE) { - ctx.NewLeaderTimeoutNs(2 * (leaderHeartbeatTimeoutNs != NULL_VALUE ? leaderHeartbeatTimeoutNs : LEADER_HEARTBEAT_TIMEOUT_DEFAULT_NS)); + _ctx.NewLeaderTimeoutNs( + 2 + * ( + _leaderHeartbeatTimeoutNs != NULL_VALUE + ? _leaderHeartbeatTimeoutNs + : LEADER_HEARTBEAT_TIMEOUT_DEFAULT_NS + ) + ); } - - AeronCluster aeronCluster = new AeronCluster(ctx, messageHeaderEncoder, ingressPublication, - egressSubscription, egressImage, memberByIdMap, clusterSessionId, leadershipTermId, leaderMemberId); - ingressPublication = null; - memberByIdMap.Remove(leaderMemberId); - CloseHelper.CloseAll(memberByIdMap.Values); + AeronCluster aeronCluster = new AeronCluster( + _ctx, + _messageHeaderEncoder, + _ingressPublication, + _egressSubscription, + _egressImage, + _memberByIdMap, + _clusterSessionId, + _leadershipTermId, + _leaderMemberId + ); + + _ingressPublication = null; + _memberByIdMap.Remove(_leaderMemberId); + CloseHelper.CloseAll(_memberByIdMap.Values); State(DONE); @@ -2573,82 +2721,86 @@ private AeronCluster ConcludeConnect() internal class MemberIngress : IDisposable { - private readonly AeronCluster.Context ctx; - readonly int memberId; - internal readonly string endpoint; - internal long registrationId = NULL_VALUE; - internal Publication publication; - internal RegistrationException publicationException; + private readonly AeronCluster.Context _ctx; + internal readonly int _memberId; + internal readonly string _endpoint; + internal long _registrationId = NULL_VALUE; + internal Publication _publication; + internal RegistrationException _publicationException; internal MemberIngress(AeronCluster.Context ctx, int memberId, string endpoint) { - this.ctx = ctx; - this.memberId = memberId; - this.endpoint = endpoint; + _ctx = ctx; + _memberId = memberId; + _endpoint = endpoint; } internal void CreateIngressPublication() { - ChannelUri channelUri = ChannelUri.Parse(ctx.IngressChannel()); + ChannelUri channelUri = ChannelUri.Parse(_ctx.IngressChannel()); if (channelUri.IsUdp) { - channelUri.Put(ENDPOINT_PARAM_NAME, endpoint); + channelUri.Put(ENDPOINT_PARAM_NAME, _endpoint); } - publication = AddIngressPublication(ctx, channelUri.ToString(), ctx.IngressStreamId()); + _publication = AddIngressPublication(_ctx, channelUri.ToString(), _ctx.IngressStreamId()); } internal void AsyncAddPublication() { - ChannelUri channelUri = ChannelUri.Parse(ctx.IngressChannel()); + ChannelUri channelUri = ChannelUri.Parse(_ctx.IngressChannel()); if (channelUri.IsUdp) { - channelUri.Put(ENDPOINT_PARAM_NAME, endpoint); + channelUri.Put(ENDPOINT_PARAM_NAME, _endpoint); } - registrationId = AsyncAddIngressPublication(ctx, channelUri.ToString(), ctx.IngressStreamId()); - publication = null; + _registrationId = AsyncAddIngressPublication(_ctx, channelUri.ToString(), _ctx.IngressStreamId()); + _publication = null; } internal void AsyncGetPublication() { try { - publication = GetIngressPublication(ctx, registrationId); - if (null != publication) + _publication = GetIngressPublication(_ctx, _registrationId); + if (null != _publication) { - registrationId = NULL_VALUE; + _registrationId = NULL_VALUE; } } catch (RegistrationException ex) { - publicationException = ex; - registrationId = NULL_VALUE; + _publicationException = ex; + _registrationId = NULL_VALUE; } } - + public void Dispose() { - if (null != publication) + if (null != _publication) { - CloseHelper.Dispose(publication); + CloseHelper.Dispose(_publication); } - else if (NULL_VALUE != registrationId) + else if (NULL_VALUE != _registrationId) { - ctx.AeronClient().AsyncRemovePublication(registrationId); + _ctx.AeronClient().AsyncRemovePublication(_registrationId); } - registrationId = NULL_VALUE; - publication = null; + _registrationId = NULL_VALUE; + _publication = null; } public override string ToString() { - return "MemberEndpoint{" + - "memberId=" + memberId + - ", endpoint='" + endpoint + '\'' + - ", publication=" + publication + - '}'; + return "MemberEndpoint{" + + "memberId=" + + _memberId + + ", endpoint='" + + _endpoint + + '\'' + + ", publication=" + + _publication + + '}'; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Client/ClusterEvent.cs b/src/Adaptive.Cluster/Client/ClusterEvent.cs index ef86b023..501978de 100644 --- a/src/Adaptive.Cluster/Client/ClusterEvent.cs +++ b/src/Adaptive.Cluster/Client/ClusterEvent.cs @@ -1,20 +1,34 @@ -using Adaptive.Aeron.Exceptions; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron.Exceptions; using Adaptive.Agrona.Concurrent.Errors; namespace Adaptive.Cluster.Client { /// - /// A means to capture a Cluster event of significance that does not require a stack trace, so it can be lighter-weight - /// and take up less space in a . + /// A means to capture a Cluster event of significance that does not require a stack trace, so it can be + /// lighter-weight and take up less space in a . /// public class ClusterEvent : AeronEvent { - public ClusterEvent(string message) : base(message) - { - } + public ClusterEvent(string message) + : base(message) { } - public ClusterEvent(string message, Category category) : base(message, category) - { - } + public ClusterEvent(string message, Category category) + : base(message, category) { } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Client/ClusterException.cs b/src/Adaptive.Cluster/Client/ClusterException.cs index aa10da78..0026f4f1 100644 --- a/src/Adaptive.Cluster/Client/ClusterException.cs +++ b/src/Adaptive.Cluster/Client/ClusterException.cs @@ -1,27 +1,41 @@ -using Adaptive.Aeron.Exceptions; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron.Exceptions; namespace Adaptive.Cluster.Client { /// - /// Exceptions specific to Cluster operation. + /// Exceptions specific to Cluster operation. /// public class ClusterException : AeronException { /// - /// Cluster exception with provided message and . + /// Cluster exception with provided message and . /// /// to detail the exception. - public ClusterException(string message) : base(message) - { - } + public ClusterException(string message) + : base(message) { } /// - /// Cluster exception with a detailed message and provided . + /// Cluster exception with a detailed message and provided . /// /// providing detail on the error. /// of the exception. - public ClusterException(string message, Category category) : base(message, category) - { - } + public ClusterException(string message, Category category) + : base(message, category) { } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Client/ControlledEgressAdapter.cs b/src/Adaptive.Cluster/Client/ControlledEgressAdapter.cs index a32866bb..43a89962 100644 --- a/src/Adaptive.Cluster/Client/ControlledEgressAdapter.cs +++ b/src/Adaptive.Cluster/Client/ControlledEgressAdapter.cs @@ -1,4 +1,19 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; @@ -7,165 +22,230 @@ namespace Adaptive.Cluster.Client { - /// - /// Adapter for dispatching egress messages from a cluster to a . - /// - public sealed class ControlledEgressAdapter : IControlledFragmentHandler - { - private readonly long clusterSessionId; - private readonly int fragmentLimit; - private readonly MessageHeaderDecoder messageHeaderDecoder = new MessageHeaderDecoder(); - private readonly SessionEventDecoder sessionEventDecoder = new SessionEventDecoder(); - private readonly NewLeaderEventDecoder newLeaderEventDecoder = new NewLeaderEventDecoder(); - private readonly AdminResponseDecoder adminResponseDecoder = new AdminResponseDecoder(); - private readonly SessionMessageHeaderDecoder sessionMessageHeaderDecoder = new SessionMessageHeaderDecoder(); - private ControlledFragmentAssembler fragmentAssembler; - private readonly IControlledEgressListener listener; - private readonly IControlledEgressListenerExtension listenerExtension; - private readonly Subscription subscription; - - /// - /// Construct an adapter for cluster egress which consumes from the subscription and dispatches to the - /// . - /// - /// to dispatch events to. - /// for the egress. - /// over the egress stream. - /// to poll on each operation. - public ControlledEgressAdapter(IControlledEgressListener listener, long clusterSessionId, - Subscription subscription, int fragmentLimit) : this(listener, null, clusterSessionId, subscription, - fragmentLimit) - { - fragmentAssembler = new ControlledFragmentAssembler(this); - } - - /// - /// Construct an adapter for cluster egress which consumes from the subscription and dispatches to the - /// or extension messages to . - /// - /// to dispatch events to. - /// to dispatch extension messages to - /// for the egress. - /// over the egress stream. - /// to poll on each operation. - public ControlledEgressAdapter(IControlledEgressListener listener, - IControlledEgressListenerExtension listenerExtension, long clusterSessionId, Subscription subscription, - int fragmentLimit) - { - this.clusterSessionId = clusterSessionId; - this.fragmentLimit = fragmentLimit; - this.listener = listener; - this.listenerExtension = listenerExtension; - this.subscription = subscription; - } - - /// - /// Poll the egress subscription and dispatch assembled events to the . - /// - /// the number of fragments consumed. - public int Poll() - { - return subscription.ControlledPoll(fragmentAssembler, fragmentLimit); - } - - /// - /// {@inheritDoc} - /// - public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, Header header) - { - messageHeaderDecoder.Wrap(buffer, offset); - - int templateId = messageHeaderDecoder.TemplateId(); - int schemaId = messageHeaderDecoder.SchemaId(); - if (schemaId != MessageHeaderDecoder.SCHEMA_ID) - { - if (listenerExtension != null) - { - return listenerExtension.OnExtensionMessage(messageHeaderDecoder.BlockLength(), templateId, - schemaId, messageHeaderDecoder.Version(), buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - length - MessageHeaderDecoder.ENCODED_LENGTH); - } - - throw new ClusterException("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + - schemaId); - } - - switch (templateId) - { - case SessionMessageHeaderDecoder.TEMPLATE_ID: - { - sessionMessageHeaderDecoder.Wrap(buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), messageHeaderDecoder.Version()); - - long sessionId = sessionMessageHeaderDecoder.ClusterSessionId(); - if (sessionId == clusterSessionId) - { - return listener.OnMessage(sessionId, sessionMessageHeaderDecoder.Timestamp(), buffer, - offset + SESSION_HEADER_LENGTH, length - SESSION_HEADER_LENGTH, header); - } - - break; - } - - case SessionEventDecoder.TEMPLATE_ID: - { - sessionEventDecoder.Wrap(buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), messageHeaderDecoder.Version()); - - long sessionId = sessionEventDecoder.ClusterSessionId(); - if (sessionId == clusterSessionId) - { - listener.OnSessionEvent(sessionEventDecoder.CorrelationId(), sessionId, - sessionEventDecoder.LeadershipTermId(), sessionEventDecoder.LeaderMemberId(), - sessionEventDecoder.Code(), sessionEventDecoder.Detail()); - } - - break; - } - - case NewLeaderEventDecoder.TEMPLATE_ID: - { - newLeaderEventDecoder.Wrap(buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), messageHeaderDecoder.Version()); - - long sessionId = newLeaderEventDecoder.ClusterSessionId(); - if (sessionId == clusterSessionId) - { - listener.OnNewLeader(sessionId, newLeaderEventDecoder.LeadershipTermId(), - newLeaderEventDecoder.LeaderMemberId(), newLeaderEventDecoder.IngressEndpoints()); - } - - break; - } - - case AdminResponseDecoder.TEMPLATE_ID: - { - adminResponseDecoder.Wrap(buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), messageHeaderDecoder.Version()); - - long sessionId = adminResponseDecoder.ClusterSessionId(); - if (sessionId == clusterSessionId) - { - long correlationId = adminResponseDecoder.CorrelationId(); - AdminRequestType requestType = adminResponseDecoder.RequestType(); - AdminResponseCode responseCode = adminResponseDecoder.ResponseCode(); - string message = adminResponseDecoder.Message(); - int payloadOffset = adminResponseDecoder.Offset() + AdminResponseDecoder.BLOCK_LENGTH + - AdminResponseDecoder.MessageHeaderLength() + message.Length + - AdminResponseDecoder.PayloadHeaderLength(); - int payloadLength = adminResponseDecoder.PayloadLength(); - listener.OnAdminResponse(sessionId, correlationId, requestType, responseCode, message, buffer, - payloadOffset, payloadLength); - } - - break; - } - - default: - break; - } - - return ControlledFragmentHandlerAction.CONTINUE; - } - } -} \ No newline at end of file + /// + /// Adapter for dispatching egress messages from a cluster to a . + /// + public sealed class ControlledEgressAdapter : IControlledFragmentHandler + { + private readonly long _clusterSessionId; + private readonly int _fragmentLimit; + private readonly MessageHeaderDecoder _messageHeaderDecoder = new MessageHeaderDecoder(); + private readonly SessionEventDecoder _sessionEventDecoder = new SessionEventDecoder(); + private readonly NewLeaderEventDecoder _newLeaderEventDecoder = new NewLeaderEventDecoder(); + private readonly AdminResponseDecoder _adminResponseDecoder = new AdminResponseDecoder(); + private readonly SessionMessageHeaderDecoder _sessionMessageHeaderDecoder = new SessionMessageHeaderDecoder(); + private ControlledFragmentAssembler _fragmentAssembler; + private readonly IControlledEgressListener _listener; + private readonly IControlledEgressListenerExtension _listenerExtension; + private readonly Subscription _subscription; + + /// + /// Construct an adapter for cluster egress which consumes from the subscription and dispatches to the + /// . + /// + /// to dispatch events to. + /// for the egress. + /// over the egress stream. + /// to poll on each operation. + public ControlledEgressAdapter( + IControlledEgressListener listener, + long clusterSessionId, + Subscription subscription, + int fragmentLimit + ) + : this(listener, null, clusterSessionId, subscription, fragmentLimit) + { + _fragmentAssembler = new ControlledFragmentAssembler(this); + } + + /// + /// Construct an adapter for cluster egress which consumes from the subscription and dispatches to the + /// or extension messages to + /// . + /// + /// to dispatch events to. + /// to dispatch extension messages to + /// for the egress. + /// over the egress stream. + /// to poll on each operation. + public ControlledEgressAdapter( + IControlledEgressListener listener, + IControlledEgressListenerExtension listenerExtension, + long clusterSessionId, + Subscription subscription, + int fragmentLimit + ) + { + this._clusterSessionId = clusterSessionId; + this._fragmentLimit = fragmentLimit; + this._listener = listener; + this._listenerExtension = listenerExtension; + this._subscription = subscription; + } + + /// + /// Poll the egress subscription and dispatch assembled events to the + /// . + /// + /// the number of fragments consumed. + public int Poll() + { + return _subscription.ControlledPoll(_fragmentAssembler, _fragmentLimit); + } + + /// + /// {@inheritDoc} + /// + // Upstream: io.aeron.cluster.client.ControlledEgressAdapter#onFragment is @SuppressWarnings("MethodLength"). + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S138:Functions should not have too many lines", + Justification = "Upstream Java parity; method is itself @SuppressWarnings(\"MethodLength\")." + )] + public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, Header header) + { + _messageHeaderDecoder.Wrap(buffer, offset); + + int templateId = _messageHeaderDecoder.TemplateId(); + int schemaId = _messageHeaderDecoder.SchemaId(); + if (schemaId != MessageHeaderDecoder.SCHEMA_ID) + { + if (_listenerExtension != null) + { + return _listenerExtension.OnExtensionMessage( + _messageHeaderDecoder.BlockLength(), + templateId, + schemaId, + _messageHeaderDecoder.Version(), + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + length - MessageHeaderDecoder.ENCODED_LENGTH + ); + } + + throw new ClusterException( + "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId + ); + } + + switch (templateId) + { + case SessionMessageHeaderDecoder.TEMPLATE_ID: + { + _sessionMessageHeaderDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + long sessionId = _sessionMessageHeaderDecoder.ClusterSessionId(); + if (sessionId == _clusterSessionId) + { + return _listener.OnMessage( + sessionId, + _sessionMessageHeaderDecoder.Timestamp(), + buffer, + offset + SESSION_HEADER_LENGTH, + length - SESSION_HEADER_LENGTH, + header + ); + } + + break; + } + + case SessionEventDecoder.TEMPLATE_ID: + { + _sessionEventDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + long sessionId = _sessionEventDecoder.ClusterSessionId(); + if (sessionId == _clusterSessionId) + { + _listener.OnSessionEvent( + _sessionEventDecoder.CorrelationId(), + sessionId, + _sessionEventDecoder.LeadershipTermId(), + _sessionEventDecoder.LeaderMemberId(), + _sessionEventDecoder.Code(), + _sessionEventDecoder.Detail() + ); + } + + break; + } + + case NewLeaderEventDecoder.TEMPLATE_ID: + { + _newLeaderEventDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + long sessionId = _newLeaderEventDecoder.ClusterSessionId(); + if (sessionId == _clusterSessionId) + { + _listener.OnNewLeader( + sessionId, + _newLeaderEventDecoder.LeadershipTermId(), + _newLeaderEventDecoder.LeaderMemberId(), + _newLeaderEventDecoder.IngressEndpoints() + ); + } + + break; + } + + case AdminResponseDecoder.TEMPLATE_ID: + { + _adminResponseDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + long sessionId = _adminResponseDecoder.ClusterSessionId(); + if (sessionId == _clusterSessionId) + { + long correlationId = _adminResponseDecoder.CorrelationId(); + AdminRequestType requestType = _adminResponseDecoder.RequestType(); + AdminResponseCode responseCode = _adminResponseDecoder.ResponseCode(); + string message = _adminResponseDecoder.Message(); + int payloadOffset = + _adminResponseDecoder.Offset() + + AdminResponseDecoder.BLOCK_LENGTH + + AdminResponseDecoder.MessageHeaderLength() + + message.Length + + AdminResponseDecoder.PayloadHeaderLength(); + int payloadLength = _adminResponseDecoder.PayloadLength(); + _listener.OnAdminResponse( + sessionId, + correlationId, + requestType, + responseCode, + message, + buffer, + payloadOffset, + payloadLength + ); + } + + break; + } + + default: + break; + } + + return ControlledFragmentHandlerAction.CONTINUE; + } + } +} diff --git a/src/Adaptive.Cluster/Client/EgressAdapter.cs b/src/Adaptive.Cluster/Client/EgressAdapter.cs index 779bb524..9a04b531 100644 --- a/src/Adaptive.Cluster/Client/EgressAdapter.cs +++ b/src/Adaptive.Cluster/Client/EgressAdapter.cs @@ -1,4 +1,20 @@ -using Adaptive.Aeron; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Cluster.Codecs; @@ -6,7 +22,7 @@ namespace Adaptive.Cluster.Client { /// - /// Adapter for dispatching egress messages from a cluster to a . + /// Adapter for dispatching egress messages from a cluster to a . /// public class EgressAdapter : IFragmentHandler { @@ -34,11 +50,10 @@ public EgressAdapter( IEgressListener listener, long clusterSessionId, Subscription subscription, - int fragmentLimit) : this(listener, null, clusterSessionId, subscription, fragmentLimit) - { - - } - + int fragmentLimit + ) + : this(listener, null, clusterSessionId, subscription, fragmentLimit) { } + /// /// Construct an adapter for cluster egress which consumes from the subscription and dispatches to the /// or extension messages to . @@ -53,10 +68,11 @@ public EgressAdapter( IEgressListenerExtension listenerExtension, long clusterSessionId, Subscription subscription, - int fragmentLimit) + int fragmentLimit + ) { _fragmentAssembler = new FragmentAssembler(this); - + _clusterSessionId = clusterSessionId; _fragmentLimit = fragmentLimit; _listener = listener; @@ -65,7 +81,7 @@ public EgressAdapter( } /// - /// Poll the egress subscription and dispatch assembled events to the . + /// Poll the egress subscription and dispatch assembled events to the . /// /// the number of fragments consumed. public int Poll() @@ -74,6 +90,12 @@ public int Poll() } /// + // Upstream: io.aeron.cluster.client.EgressAdapter#onFragment is @SuppressWarnings("MethodLength"). + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S138:Functions should not have too many lines", + Justification = "Upstream Java parity; method is itself @SuppressWarnings(\"MethodLength\")." + )] public void OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { _messageHeaderDecoder.Wrap(buffer, offset); @@ -91,10 +113,13 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head _messageHeaderDecoder.Version(), buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - length - MessageHeaderDecoder.ENCODED_LENGTH); + length - MessageHeaderDecoder.ENCODED_LENGTH + ); return; } - throw new ClusterException("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId); + throw new ClusterException( + "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId + ); } switch (templateId) @@ -105,7 +130,8 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); var sessionId = _sessionMessageHeaderDecoder.ClusterSessionId(); if (sessionId == _clusterSessionId) @@ -116,19 +142,21 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head buffer, offset + AeronCluster.SESSION_HEADER_LENGTH, length - AeronCluster.SESSION_HEADER_LENGTH, - header); + header + ); } break; } - + case SessionEventDecoder.TEMPLATE_ID: { _sessionEventDecoder.Wrap( buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); var sessionId = _sessionEventDecoder.ClusterSessionId(); if (sessionId == _clusterSessionId) @@ -139,7 +167,8 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head _sessionEventDecoder.LeadershipTermId(), _sessionEventDecoder.LeaderMemberId(), _sessionEventDecoder.Code(), - _sessionEventDecoder.Detail()); + _sessionEventDecoder.Detail() + ); } break; @@ -151,7 +180,8 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); var sessionId = _newLeaderEventDecoder.ClusterSessionId(); if (sessionId == _clusterSessionId) @@ -160,7 +190,8 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head sessionId, _newLeaderEventDecoder.LeadershipTermId(), _newLeaderEventDecoder.LeaderMemberId(), - _newLeaderEventDecoder.IngressEndpoints()); + _newLeaderEventDecoder.IngressEndpoints() + ); } break; @@ -172,7 +203,8 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, _messageHeaderDecoder.BlockLength(), - _messageHeaderDecoder.Version()); + _messageHeaderDecoder.Version() + ); long sessionId = _adminResponseDecoder.ClusterSessionId(); if (sessionId == _clusterSessionId) @@ -181,11 +213,12 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head AdminRequestType requestType = _adminResponseDecoder.RequestType(); AdminResponseCode responseCode = _adminResponseDecoder.ResponseCode(); string message = _adminResponseDecoder.Message(); - int payloadOffset = _adminResponseDecoder.Offset() + - AdminResponseDecoder.BLOCK_LENGTH + - AdminResponseDecoder.MessageHeaderLength() + - message.Length + - AdminResponseDecoder.PayloadHeaderLength(); + int payloadOffset = + _adminResponseDecoder.Offset() + + AdminResponseDecoder.BLOCK_LENGTH + + AdminResponseDecoder.MessageHeaderLength() + + message.Length + + AdminResponseDecoder.PayloadHeaderLength(); int payloadLength = _adminResponseDecoder.PayloadLength(); _listener.OnAdminResponse( sessionId, @@ -195,7 +228,8 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head message, buffer, payloadOffset, - payloadLength); + payloadLength + ); } break; @@ -203,4 +237,4 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Client/EgressPoller.cs b/src/Adaptive.Cluster/Client/EgressPoller.cs index e547c941..2ee8a023 100644 --- a/src/Adaptive.Cluster/Client/EgressPoller.cs +++ b/src/Adaptive.Cluster/Client/EgressPoller.cs @@ -1,4 +1,19 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; @@ -13,27 +28,27 @@ namespace Adaptive.Cluster.Client /// public class EgressPoller : IControlledFragmentHandler { - private readonly int fragmentLimit; - private readonly MessageHeaderDecoder messageHeaderDecoder = new MessageHeaderDecoder(); - private readonly SessionEventDecoder sessionEventDecoder = new SessionEventDecoder(); - private readonly ChallengeDecoder challengeDecoder = new ChallengeDecoder(); - private readonly NewLeaderEventDecoder newLeaderEventDecoder = new NewLeaderEventDecoder(); - private readonly SessionMessageHeaderDecoder sessionMessageHeaderDecoder = new SessionMessageHeaderDecoder(); - private readonly ControlledFragmentAssembler fragmentAssembler; - private readonly Subscription subscription; - - private Image egressImage; - private long clusterSessionId = NULL_VALUE; - private long correlationId = NULL_VALUE; - private long leadershipTermId = NULL_VALUE; - private int leaderMemberId = NULL_VALUE; - private int templateId = NULL_VALUE; - private int version = 0; - private long leaderHeartbeatTimeoutNs = NULL_VALUE; - private bool isPollComplete = false; - private EventCode eventCode; - private string detail = ""; - private byte[] encodedChallenge; + private readonly int _fragmentLimit; + private readonly MessageHeaderDecoder _messageHeaderDecoder = new MessageHeaderDecoder(); + private readonly SessionEventDecoder _sessionEventDecoder = new SessionEventDecoder(); + private readonly ChallengeDecoder _challengeDecoder = new ChallengeDecoder(); + private readonly NewLeaderEventDecoder _newLeaderEventDecoder = new NewLeaderEventDecoder(); + private readonly SessionMessageHeaderDecoder _sessionMessageHeaderDecoder = new SessionMessageHeaderDecoder(); + private readonly ControlledFragmentAssembler _fragmentAssembler; + private readonly Subscription _subscription; + + private Image _egressImage; + private long _clusterSessionId = NULL_VALUE; + private long _correlationId = NULL_VALUE; + private long _leadershipTermId = NULL_VALUE; + private int _leaderMemberId = NULL_VALUE; + private int _templateId = NULL_VALUE; + private int _version = 0; + private long _leaderHeartbeatTimeoutNs = NULL_VALUE; + private bool _isPollComplete = false; + private EventCode _eventCode; + private string _detail = ""; + private byte[] _encodedChallenge; /// /// Construct a poller on the egress subscription. @@ -42,10 +57,10 @@ public class EgressPoller : IControlledFragmentHandler /// for each poll operation. public EgressPoller(Subscription subscription, int fragmentLimit) { - this.fragmentAssembler = new ControlledFragmentAssembler(this); + _fragmentAssembler = new ControlledFragmentAssembler(this); - this.subscription = subscription; - this.fragmentLimit = fragmentLimit; + _subscription = subscription; + _fragmentLimit = fragmentLimit; } /// @@ -54,16 +69,18 @@ public EgressPoller(Subscription subscription, int fragmentLimit) /// the used for polling events. public Subscription Subscription() { - return subscription; + return _subscription; } /// - /// for the egress response from the cluster which can be used for connection tracking. + /// for the egress response from the cluster which can be used for connection + /// tracking. /// - /// for the egress response from the cluster which can be used for connection tracking. + /// for the egress response from the cluster which can be used for + /// connection tracking. public Image EgressImage() { - return egressImage; + return _egressImage; } /// @@ -72,43 +89,51 @@ public Image EgressImage() /// the template id of the last received event. public int TemplateId() { - return templateId; + return _templateId; } /// - /// Cluster session id of the last polled event or if poll returned nothing. + /// Cluster session id of the last polled event or if poll + /// returned nothing. /// - /// cluster session id of the last polled event or if not returned. + /// cluster session id of the last polled event or + /// if not returned. public long ClusterSessionId() { - return clusterSessionId; + return _clusterSessionId; } /// - /// Correlation id of the last polled event or if poll returned nothing. + /// Correlation id of the last polled event or if poll returned + /// nothing. /// - /// correlation id of the last polled event or if not returned. + /// correlation id of the last polled event or + /// if not returned. public long CorrelationId() { - return correlationId; + return _correlationId; } /// - /// Leadership term id of the last polled event or if poll returned nothing. + /// Leadership term id of the last polled event or if poll + /// returned nothing. /// - /// leadership term id of the last polled event or if not returned. + /// leadership term id of the last polled event or + /// if not returned. public long LeadershipTermId() { - return leadershipTermId; + return _leadershipTermId; } /// - /// Leader cluster member id of the last polled event or if poll returned nothing. + /// Leader cluster member id of the last polled event or if poll + /// returned nothing. /// - /// leader cluster member id of the last polled event or if poll returned nothing. + /// leader cluster member id of the last polled event or + /// if poll returned nothing. public int LeaderMemberId() { - return leaderMemberId; + return _leaderMemberId; } /// @@ -117,7 +142,7 @@ public int LeaderMemberId() /// the event code returned from the last session event. public EventCode EventCode() { - return eventCode; + return _eventCode; } /// @@ -126,16 +151,17 @@ public EventCode EventCode() /// response from the server in semantic version form. public int Version() { - return version; + return _version; } - + /// /// Leader heartbeat timeout of the last polled event or if not available. /// - /// leader heartbeat timeout of the last polled event or if not available. + /// leader heartbeat timeout of the last polled event or if not + /// available. public long LeaderHeartbeatTimeoutNs() { - return leaderHeartbeatTimeoutNs; + return _leaderHeartbeatTimeoutNs; } /// @@ -144,7 +170,7 @@ public long LeaderHeartbeatTimeoutNs() /// the detail returned from the last session event. public string Detail() { - return detail; + return _detail; } /// @@ -153,7 +179,7 @@ public string Detail() /// the challenge data in the last challenge or null if last message was not a challenge. public byte[] EncodedChallenge() { - return encodedChallenge; + return _encodedChallenge; } /// @@ -162,7 +188,7 @@ public byte[] EncodedChallenge() /// true if the last polling action received a complete event. public bool IsPollComplete() { - return isPollComplete; + return _isPollComplete; } /// @@ -171,7 +197,7 @@ public bool IsPollComplete() /// true if last message was a challenge or false if not. public bool IsChallenged() { - return ChallengeDecoder.TEMPLATE_ID == templateId; + return ChallengeDecoder.TEMPLATE_ID == _templateId; } /// @@ -180,98 +206,117 @@ public bool IsChallenged() /// number of fragments consumed. public int Poll() { - if (isPollComplete) + if (_isPollComplete) { - clusterSessionId = NULL_VALUE; - correlationId = NULL_VALUE; - leadershipTermId = NULL_VALUE; - leaderMemberId = NULL_VALUE; - templateId = NULL_VALUE; - version = 0; - leaderHeartbeatTimeoutNs = NULL_VALUE; - eventCode = Codecs.EventCode.NULL_VALUE; - detail = ""; - encodedChallenge = null; - isPollComplete = false; + _clusterSessionId = NULL_VALUE; + _correlationId = NULL_VALUE; + _leadershipTermId = NULL_VALUE; + _leaderMemberId = NULL_VALUE; + _templateId = NULL_VALUE; + _version = 0; + _leaderHeartbeatTimeoutNs = NULL_VALUE; + _eventCode = Codecs.EventCode.NULL_VALUE; + _detail = ""; + _encodedChallenge = null; + _isPollComplete = false; } - return subscription.ControlledPoll(fragmentAssembler, fragmentLimit); + return _subscription.ControlledPoll(_fragmentAssembler, _fragmentLimit); } /// public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { - if (isPollComplete) + if (_isPollComplete) { return ABORT; } - messageHeaderDecoder.Wrap(buffer, offset); + _messageHeaderDecoder.Wrap(buffer, offset); - int schemaId = messageHeaderDecoder.SchemaId(); + int schemaId = _messageHeaderDecoder.SchemaId(); if (schemaId != MessageHeaderDecoder.SCHEMA_ID) { return CONTINUE; } - templateId = messageHeaderDecoder.TemplateId(); - switch (templateId) + _templateId = _messageHeaderDecoder.TemplateId(); + switch (_templateId) { case SessionMessageHeaderDecoder.TEMPLATE_ID: - sessionMessageHeaderDecoder.Wrap(buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), messageHeaderDecoder.Version()); - - leadershipTermId = sessionMessageHeaderDecoder.LeadershipTermId(); - clusterSessionId = sessionMessageHeaderDecoder.ClusterSessionId(); - isPollComplete = true; + _sessionMessageHeaderDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + _leadershipTermId = _sessionMessageHeaderDecoder.LeadershipTermId(); + _clusterSessionId = _sessionMessageHeaderDecoder.ClusterSessionId(); + _isPollComplete = true; return BREAK; case SessionEventDecoder.TEMPLATE_ID: - sessionEventDecoder.Wrap(buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), messageHeaderDecoder.Version()); - - clusterSessionId = sessionEventDecoder.ClusterSessionId(); - correlationId = sessionEventDecoder.CorrelationId(); - leadershipTermId = sessionEventDecoder.LeadershipTermId(); - leaderMemberId = sessionEventDecoder.LeaderMemberId(); - eventCode = sessionEventDecoder.Code(); - version = sessionEventDecoder.Version(); - leaderHeartbeatTimeoutNs = LeaderHeartbeatTimeoutNs(sessionEventDecoder); - detail = sessionEventDecoder.Detail(); - isPollComplete = true; - egressImage = (Image)header.Context; + _sessionEventDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + _clusterSessionId = _sessionEventDecoder.ClusterSessionId(); + _correlationId = _sessionEventDecoder.CorrelationId(); + _leadershipTermId = _sessionEventDecoder.LeadershipTermId(); + _leaderMemberId = _sessionEventDecoder.LeaderMemberId(); + _eventCode = _sessionEventDecoder.Code(); + _version = _sessionEventDecoder.Version(); + _leaderHeartbeatTimeoutNs = LeaderHeartbeatTimeoutNsInternal(_sessionEventDecoder); + _detail = _sessionEventDecoder.Detail(); + _isPollComplete = true; + _egressImage = (Image)header.Context; return BREAK; case NewLeaderEventDecoder.TEMPLATE_ID: - newLeaderEventDecoder.Wrap(buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), messageHeaderDecoder.Version()); - - clusterSessionId = newLeaderEventDecoder.ClusterSessionId(); - leadershipTermId = newLeaderEventDecoder.LeadershipTermId(); - leaderMemberId = newLeaderEventDecoder.LeaderMemberId(); - detail = newLeaderEventDecoder.IngressEndpoints(); - isPollComplete = true; - egressImage = (Image)header.Context; + _newLeaderEventDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + _clusterSessionId = _newLeaderEventDecoder.ClusterSessionId(); + _leadershipTermId = _newLeaderEventDecoder.LeadershipTermId(); + _leaderMemberId = _newLeaderEventDecoder.LeaderMemberId(); + _detail = _newLeaderEventDecoder.IngressEndpoints(); + _isPollComplete = true; + _egressImage = (Image)header.Context; return BREAK; case ChallengeDecoder.TEMPLATE_ID: - challengeDecoder.Wrap(buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), messageHeaderDecoder.Version()); - - encodedChallenge = new byte[challengeDecoder.EncodedChallengeLength()]; - challengeDecoder.GetEncodedChallenge(encodedChallenge, 0, - challengeDecoder.EncodedChallengeLength()); - - clusterSessionId = challengeDecoder.ClusterSessionId(); - correlationId = challengeDecoder.CorrelationId(); - isPollComplete = true; + _challengeDecoder.Wrap( + buffer, + offset + MessageHeaderDecoder.ENCODED_LENGTH, + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + _encodedChallenge = new byte[_challengeDecoder.EncodedChallengeLength()]; + _challengeDecoder.GetEncodedChallenge( + _encodedChallenge, + 0, + _challengeDecoder.EncodedChallengeLength() + ); + + _clusterSessionId = _challengeDecoder.ClusterSessionId(); + _correlationId = _challengeDecoder.CorrelationId(); + _isPollComplete = true; return BREAK; } return CONTINUE; } - - private static long LeaderHeartbeatTimeoutNs(SessionEventDecoder sessionEventDecoder) + + private static long LeaderHeartbeatTimeoutNsInternal(SessionEventDecoder sessionEventDecoder) { long leaderHeartbeatTimeoutNs = sessionEventDecoder.LeaderHeartbeatTimeoutNs(); @@ -282,6 +327,5 @@ private static long LeaderHeartbeatTimeoutNs(SessionEventDecoder sessionEventDec return leaderHeartbeatTimeoutNs; } - } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Client/IControlledEgressListener.cs b/src/Adaptive.Cluster/Client/IControlledEgressListener.cs index af0eec07..cee32a00 100644 --- a/src/Adaptive.Cluster/Client/IControlledEgressListener.cs +++ b/src/Adaptive.Cluster/Client/IControlledEgressListener.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Cluster.Codecs; @@ -6,8 +22,8 @@ namespace Adaptive.Cluster.Client { /// /// Interface for consuming messages coming from the cluster that also include administrative events in a controlled - /// fashion like . Only session messages may be controlled in - /// controlled in consumption, other are consumed via . + /// fashion like . Only session messages may be controlled in controlled + /// in consumption, other are consumed via . /// public interface IControlledEgressListener { @@ -27,7 +43,8 @@ ControlledFragmentHandlerAction OnMessage( IDirectBuffer buffer, int offset, int length, - Header header); + Header header + ); /// /// Session event emitted from the cluster which after connect can indicate an error or session close. @@ -44,7 +61,8 @@ void OnSessionEvent( long leadershipTermId, int leaderMemberId, EventCode code, - string detail); + string detail + ); /// /// Event indicating a new leader has been elected. @@ -52,7 +70,8 @@ void OnSessionEvent( /// to which the event belongs. /// for identifying the active term of leadership /// identity of the active leader. - /// for connecting to the cluster which can be updated due to dynamic membership. + /// for connecting to the cluster which can be updated due to dynamic + /// membership. void OnNewLeader(long clusterSessionId, long leadershipTermId, int leaderMemberId, string ingressEndpoints); /// @@ -66,7 +85,15 @@ void OnSessionEvent( /// delivered with the response, can be empty. /// into the payload buffer. /// of the payload. - void OnAdminResponse(long clusterSessionId, long correlationId, AdminRequestType requestType, - AdminResponseCode responseCode, string message, IDirectBuffer payload, int payloadOffset, int payloadLength); + void OnAdminResponse( + long clusterSessionId, + long correlationId, + AdminRequestType requestType, + AdminResponseCode responseCode, + string message, + IDirectBuffer payload, + int payloadOffset, + int payloadLength + ); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Client/IControlledEgressListenerExtension.cs b/src/Adaptive.Cluster/Client/IControlledEgressListenerExtension.cs index 7cfa01ce..350bc1eb 100644 --- a/src/Adaptive.Cluster/Client/IControlledEgressListenerExtension.cs +++ b/src/Adaptive.Cluster/Client/IControlledEgressListenerExtension.cs @@ -1,12 +1,27 @@ -using Adaptive.Aeron.LogBuffer; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; namespace Adaptive.Cluster.Client { /// - /// Interface for consuming extension messages coming from the cluster that also - /// include administrative events in a controlled - /// fashion like . + /// Interface for consuming extension messages coming from the cluster that also include administrative events in a + /// controlled fashion like . /// public interface IControlledEgressListenerExtension { @@ -28,6 +43,7 @@ ControlledFragmentHandlerAction OnExtensionMessage( int actingVersion, IDirectBuffer buffer, int offset, - int length); + int length + ); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Client/IEgressListener.cs b/src/Adaptive.Cluster/Client/IEgressListener.cs index 47c61622..4970a01a 100644 --- a/src/Adaptive.Cluster/Client/IEgressListener.cs +++ b/src/Adaptive.Cluster/Client/IEgressListener.cs @@ -1,4 +1,20 @@ -using Adaptive.Aeron.LogBuffer; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Cluster.Codecs; @@ -24,7 +40,8 @@ void OnMessage( IDirectBuffer buffer, int offset, int length, - Header header); + Header header + ); /// /// Session event emitted from the cluster which after connect can indicate an error or session close. @@ -41,7 +58,8 @@ void OnSessionEvent( long leadershipTermId, int leaderMemberId, EventCode code, - string detail); + string detail + ); /// /// Event indicating a new leader has been elected. @@ -49,9 +67,10 @@ void OnSessionEvent( /// to which the event belongs. /// for identifying the active term of leadership /// identity of the active leader. - /// for connecting to the cluster which can be updated due to dynamic membership. + /// for connecting to the cluster which can be updated due to dynamic + /// membership. void OnNewLeader(long clusterSessionId, long leadershipTermId, int leaderMemberId, string ingressEndpoints); - + /// /// Message returned in response to an admin request. /// @@ -63,7 +82,15 @@ void OnSessionEvent( /// delivered with the response, can be empty. /// into the payload buffer. /// of the payload. - void OnAdminResponse(long clusterSessionId, long correlationId, AdminRequestType requestType, - AdminResponseCode responseCode, string message, IDirectBuffer payload, int payloadOffset, int payloadLength); + void OnAdminResponse( + long clusterSessionId, + long correlationId, + AdminRequestType requestType, + AdminResponseCode responseCode, + string message, + IDirectBuffer payload, + int payloadOffset, + int payloadLength + ); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Client/IEgressListenerExtension.cs b/src/Adaptive.Cluster/Client/IEgressListenerExtension.cs index 8115366c..4823b94c 100644 --- a/src/Adaptive.Cluster/Client/IEgressListenerExtension.cs +++ b/src/Adaptive.Cluster/Client/IEgressListenerExtension.cs @@ -1,4 +1,20 @@ -using Adaptive.Agrona; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona; namespace Adaptive.Cluster.Client { @@ -24,6 +40,7 @@ void OnExtensionMessage( int actingVersion, IDirectBuffer buffer, int offset, - int length); + int length + ); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Client/IngressSessionDecorator.cs b/src/Adaptive.Cluster/Client/IngressSessionDecorator.cs index 5ff4d352..4a65f1cb 100644 --- a/src/Adaptive.Cluster/Client/IngressSessionDecorator.cs +++ b/src/Adaptive.Cluster/Client/IngressSessionDecorator.cs @@ -1,4 +1,20 @@ -using Adaptive.Aeron; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron; using Adaptive.Agrona; using Adaptive.Agrona.Concurrent; using Adaptive.Cluster.Codecs; @@ -7,11 +23,11 @@ namespace Adaptive.Cluster.Client { /// /// Encapsulate applying a client message header for ingress to the cluster. - /// - /// The client message header is applied by a vectored offer to the . - /// + /// + /// The client message header is applied by a vectored offer to the . + /// /// Note: This class is NOT threadsafe. Each publisher thread requires its own instance. - /// + /// /// public class IngressSessionDecorator { @@ -21,20 +37,21 @@ public class IngressSessionDecorator /// The client message header is applied to the before the offered buffer. /// /// Note: This class is NOT threadsafe for updating or - /// . Each publisher thread requires its own instance. - /// + /// . Each publisher thread requires its own instance. + /// /// - public static readonly int HEADER_LENGTH = MessageHeaderEncoder.ENCODED_LENGTH + SessionMessageHeaderEncoder.BLOCK_LENGTH; + public static readonly int HEADER_LENGTH = + MessageHeaderEncoder.ENCODED_LENGTH + SessionMessageHeaderEncoder.BLOCK_LENGTH; - private readonly SessionMessageHeaderEncoder sessionMessageHeaderEncoder = new SessionMessageHeaderEncoder(); - private readonly UnsafeBuffer headerBuffer = new UnsafeBuffer(new byte[HEADER_LENGTH]); + private readonly SessionMessageHeaderEncoder _sessionMessageHeaderEncoder = new SessionMessageHeaderEncoder(); + private readonly UnsafeBuffer _headerBuffer = new UnsafeBuffer(new byte[HEADER_LENGTH]); /// - /// Construct a new ingress session header wrapper that defaults all fields to the + /// Construct a new ingress session header wrapper that defaults all fields to the + /// /// - public IngressSessionDecorator() : this(Aeron.Aeron.NULL_VALUE, Aeron.Aeron.NULL_VALUE) - { - } + public IngressSessionDecorator() + : this(Aeron.Aeron.NULL_VALUE, Aeron.Aeron.NULL_VALUE) { } /// /// Construct a new session header wrapper. @@ -43,8 +60,8 @@ public IngressSessionDecorator() : this(Aeron.Aeron.NULL_VALUE, Aeron.Aeron.NULL /// of the current leader. public IngressSessionDecorator(long clusterSessionId, long leadershipTermId) { - sessionMessageHeaderEncoder - .WrapAndApplyHeader(headerBuffer, 0, new MessageHeaderEncoder()) + _sessionMessageHeaderEncoder + .WrapAndApplyHeader(_headerBuffer, 0, new MessageHeaderEncoder()) .LeadershipTermId(leadershipTermId) .ClusterSessionId(clusterSessionId) .Timestamp(Aeron.Aeron.NULL_VALUE); @@ -57,7 +74,7 @@ public IngressSessionDecorator(long clusterSessionId, long leadershipTermId) /// this for a fluent API. public IngressSessionDecorator ClusterSessionId(long clusterSessionId) { - sessionMessageHeaderEncoder.ClusterSessionId(clusterSessionId); + _sessionMessageHeaderEncoder.ClusterSessionId(clusterSessionId); return this; } @@ -68,25 +85,27 @@ public IngressSessionDecorator ClusterSessionId(long clusterSessionId) /// this for a fluent API. public IngressSessionDecorator LeadershipTermId(long leadershipTermId) { - sessionMessageHeaderEncoder.LeadershipTermId(leadershipTermId); + _sessionMessageHeaderEncoder.LeadershipTermId(leadershipTermId); return this; } /// /// Non-blocking publish of a partial buffer containing a message plus session header to a cluster. /// - /// This version of the method will set the timestamp value in the header to . - /// + /// This version of the method will set the timestamp value in the header to + /// . + /// /// /// /// to be offerec to. /// containing message. /// offset in the buffer at which the encoded message begins. /// in bytes of the encoded message. - /// the same as . + /// the same as . + /// public long Offer(Publication publication, IDirectBuffer buffer, int offset, int length) { - return publication.Offer(headerBuffer, 0, HEADER_LENGTH, buffer, offset, length); + return publication.Offer(_headerBuffer, 0, HEADER_LENGTH, buffer, offset, length); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/FodyWeavers.xml b/src/Adaptive.Cluster/FodyWeavers.xml index 5415e271..3dfa4ac2 100644 --- a/src/Adaptive.Cluster/FodyWeavers.xml +++ b/src/Adaptive.Cluster/FodyWeavers.xml @@ -1,5 +1,5 @@ - - + + diff --git a/src/Adaptive.Cluster/PublicAPI.Shipped.txt b/src/Adaptive.Cluster/PublicAPI.Shipped.txt new file mode 100644 index 00000000..3d572c77 --- /dev/null +++ b/src/Adaptive.Cluster/PublicAPI.Shipped.txt @@ -0,0 +1,7550 @@ +Adaptive.Cluster.AppVersionValidator +Adaptive.Cluster.AppVersionValidator.AppVersionValidator() -> void +Adaptive.Cluster.AppVersionValidator.IsVersionCompatible(int contextAppVersion, int appVersionUnderTest) -> bool +Adaptive.Cluster.Client.AeronCluster +Adaptive.Cluster.Client.AeronCluster.AsyncConnect +Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState +Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState.AWAIT_PUBLICATION_CONNECTED = 1 -> Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState +Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState.CONCLUDE_CONNECT = 4 -> Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState +Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState.CREATE_EGRESS_SUBSCRIPTION = -1 -> Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState +Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState.CREATE_INGRESS_PUBLICATIONS = 0 -> Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState +Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState.DONE = 5 -> Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState +Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState.POLL_RESPONSE = 3 -> Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState +Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState.SEND_MESSAGE = 2 -> Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState +Adaptive.Cluster.Client.AeronCluster.AsyncConnect.Dispose() -> void +Adaptive.Cluster.Client.AeronCluster.AsyncConnect.Poll() -> Adaptive.Cluster.Client.AeronCluster +Adaptive.Cluster.Client.AeronCluster.AsyncConnect.State() -> Adaptive.Cluster.Client.AeronCluster.AsyncConnect.AsyncConnectState +Adaptive.Cluster.Client.AeronCluster.AsyncConnect.Step() -> int +Adaptive.Cluster.Client.AeronCluster.Closed.get -> bool +Adaptive.Cluster.Client.AeronCluster.ClusterSessionId.get -> long +Adaptive.Cluster.Client.AeronCluster.Configuration +Adaptive.Cluster.Client.AeronCluster.Configuration.Configuration() -> void +Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.AeronClient() -> Adaptive.Aeron.Aeron +Adaptive.Cluster.Client.AeronCluster.Context.AeronClient(Adaptive.Aeron.Aeron aeron) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.AeronDirectoryName() -> string +Adaptive.Cluster.Client.AeronCluster.Context.AeronDirectoryName(string aeronDirectoryName) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.AgentInvoker() -> Adaptive.Agrona.Concurrent.AgentInvoker +Adaptive.Cluster.Client.AeronCluster.Context.AgentInvoker(Adaptive.Agrona.Concurrent.AgentInvoker agentInvoker) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.ClientName() -> string +Adaptive.Cluster.Client.AeronCluster.Context.ClientName(string clientName) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.Clone() -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.Conclude() -> void +Adaptive.Cluster.Client.AeronCluster.Context.Concluded.get -> bool +Adaptive.Cluster.Client.AeronCluster.Context.Context() -> void +Adaptive.Cluster.Client.AeronCluster.Context.ControlledEgressListener() -> Adaptive.Cluster.Client.IControlledEgressListener +Adaptive.Cluster.Client.AeronCluster.Context.ControlledEgressListener(Adaptive.Cluster.Client.IControlledEgressListener listener) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.CredentialsSupplier() -> Adaptive.Aeron.Security.ICredentialsSupplier +Adaptive.Cluster.Client.AeronCluster.Context.CredentialsSupplier(Adaptive.Aeron.Security.ICredentialsSupplier credentialsSupplier) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.Dispose() -> void +Adaptive.Cluster.Client.AeronCluster.Context.EgressChannel() -> string +Adaptive.Cluster.Client.AeronCluster.Context.EgressChannel(string channel) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.EgressListener() -> Adaptive.Cluster.Client.IEgressListener +Adaptive.Cluster.Client.AeronCluster.Context.EgressListener(Adaptive.Cluster.Client.IEgressListener listener) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.EgressStreamId() -> int +Adaptive.Cluster.Client.AeronCluster.Context.EgressStreamId(int streamId) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.ErrorHandler() -> Adaptive.Agrona.IErrorHandler +Adaptive.Cluster.Client.AeronCluster.Context.ErrorHandler(Adaptive.Agrona.IErrorHandler errorHandler) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.IdleStrategy() -> Adaptive.Agrona.Concurrent.IIdleStrategy +Adaptive.Cluster.Client.AeronCluster.Context.IdleStrategy(Adaptive.Agrona.Concurrent.IIdleStrategy idleStrategy) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.IngressChannel() -> string +Adaptive.Cluster.Client.AeronCluster.Context.IngressChannel(string channel) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.IngressEndpoints() -> string +Adaptive.Cluster.Client.AeronCluster.Context.IngressEndpoints(string clusterMembers) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.IngressStreamId() -> int +Adaptive.Cluster.Client.AeronCluster.Context.IngressStreamId(int streamId) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.IsDirectAssemblers() -> bool +Adaptive.Cluster.Client.AeronCluster.Context.IsDirectAssemblers(bool isDirectAssemblers) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.IsIngressExclusive() -> bool +Adaptive.Cluster.Client.AeronCluster.Context.IsIngressExclusive(bool isIngressExclusive) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.MessageTimeoutNs() -> long +Adaptive.Cluster.Client.AeronCluster.Context.MessageTimeoutNs(long messageTimeoutNs) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.NewLeaderTimeoutNs() -> long +Adaptive.Cluster.Client.AeronCluster.Context.NewLeaderTimeoutNs(long newLeaderTimeoutNs) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Context.OwnsAeronClient() -> bool +Adaptive.Cluster.Client.AeronCluster.Context.OwnsAeronClient(bool ownsAeronClient) -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.ControlledEgressListenerExtension(Adaptive.Cluster.Client.IControlledEgressListenerExtension listenerExtension) -> void +Adaptive.Cluster.Client.AeronCluster.ControlledPollEgress() -> int +Adaptive.Cluster.Client.AeronCluster.Ctx.get -> Adaptive.Cluster.Client.AeronCluster.Context +Adaptive.Cluster.Client.AeronCluster.Dispose() -> void +Adaptive.Cluster.Client.AeronCluster.EgressListenerExtension(Adaptive.Cluster.Client.IEgressListenerExtension listenerExtension) -> void +Adaptive.Cluster.Client.AeronCluster.EgressSubscription.get -> Adaptive.Aeron.Subscription +Adaptive.Cluster.Client.AeronCluster.IngressPublication.get -> Adaptive.Aeron.Publication +Adaptive.Cluster.Client.AeronCluster.LeaderMemberId.get -> int +Adaptive.Cluster.Client.AeronCluster.LeadershipTermId.get -> long +Adaptive.Cluster.Client.AeronCluster.Offer(Adaptive.Aeron.DirectBufferVector[] vectors) -> long +Adaptive.Cluster.Client.AeronCluster.Offer(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> long +Adaptive.Cluster.Client.AeronCluster.OnNewLeader(long clusterSessionId, long leadershipTermId, int leaderMemberId, string ingressEndpoints) -> void +Adaptive.Cluster.Client.AeronCluster.PollEgress() -> int +Adaptive.Cluster.Client.AeronCluster.PollStateChanges() -> int +Adaptive.Cluster.Client.AeronCluster.SendAdminRequestToTakeASnapshot(long correlationId) -> bool +Adaptive.Cluster.Client.AeronCluster.SendKeepAlive() -> bool +Adaptive.Cluster.Client.AeronCluster.TrackIngressPublicationResult(long result) -> void +Adaptive.Cluster.Client.AeronCluster.TryClaim(int length, Adaptive.Aeron.LogBuffer.BufferClaim bufferClaim) -> long +Adaptive.Cluster.Client.ClusterEvent +Adaptive.Cluster.Client.ClusterEvent.ClusterEvent(string message, Adaptive.Aeron.Exceptions.Category category) -> void +Adaptive.Cluster.Client.ClusterEvent.ClusterEvent(string message) -> void +Adaptive.Cluster.Client.ClusterException +Adaptive.Cluster.Client.ClusterException.ClusterException(string message, Adaptive.Aeron.Exceptions.Category category) -> void +Adaptive.Cluster.Client.ClusterException.ClusterException(string message) -> void +Adaptive.Cluster.Client.ControlledEgressAdapter +Adaptive.Cluster.Client.ControlledEgressAdapter.ControlledEgressAdapter(Adaptive.Cluster.Client.IControlledEgressListener listener, Adaptive.Cluster.Client.IControlledEgressListenerExtension listenerExtension, long clusterSessionId, Adaptive.Aeron.Subscription subscription, int fragmentLimit) -> void +Adaptive.Cluster.Client.ControlledEgressAdapter.ControlledEgressAdapter(Adaptive.Cluster.Client.IControlledEgressListener listener, long clusterSessionId, Adaptive.Aeron.Subscription subscription, int fragmentLimit) -> void +Adaptive.Cluster.Client.ControlledEgressAdapter.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Cluster.Client.ControlledEgressAdapter.Poll() -> int +Adaptive.Cluster.Client.EgressAdapter +Adaptive.Cluster.Client.EgressAdapter.EgressAdapter(Adaptive.Cluster.Client.IEgressListener listener, Adaptive.Cluster.Client.IEgressListenerExtension listenerExtension, long clusterSessionId, Adaptive.Aeron.Subscription subscription, int fragmentLimit) -> void +Adaptive.Cluster.Client.EgressAdapter.EgressAdapter(Adaptive.Cluster.Client.IEgressListener listener, long clusterSessionId, Adaptive.Aeron.Subscription subscription, int fragmentLimit) -> void +Adaptive.Cluster.Client.EgressAdapter.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> void +Adaptive.Cluster.Client.EgressAdapter.Poll() -> int +Adaptive.Cluster.Client.EgressPoller +Adaptive.Cluster.Client.EgressPoller.ClusterSessionId() -> long +Adaptive.Cluster.Client.EgressPoller.CorrelationId() -> long +Adaptive.Cluster.Client.EgressPoller.Detail() -> string +Adaptive.Cluster.Client.EgressPoller.EgressImage() -> Adaptive.Aeron.Image +Adaptive.Cluster.Client.EgressPoller.EgressPoller(Adaptive.Aeron.Subscription subscription, int fragmentLimit) -> void +Adaptive.Cluster.Client.EgressPoller.EncodedChallenge() -> byte[] +Adaptive.Cluster.Client.EgressPoller.EventCode() -> Adaptive.Cluster.Codecs.EventCode +Adaptive.Cluster.Client.EgressPoller.IsChallenged() -> bool +Adaptive.Cluster.Client.EgressPoller.IsPollComplete() -> bool +Adaptive.Cluster.Client.EgressPoller.LeaderHeartbeatTimeoutNs() -> long +Adaptive.Cluster.Client.EgressPoller.LeaderMemberId() -> int +Adaptive.Cluster.Client.EgressPoller.LeadershipTermId() -> long +Adaptive.Cluster.Client.EgressPoller.OnFragment(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Cluster.Client.EgressPoller.Poll() -> int +Adaptive.Cluster.Client.EgressPoller.Subscription() -> Adaptive.Aeron.Subscription +Adaptive.Cluster.Client.EgressPoller.TemplateId() -> int +Adaptive.Cluster.Client.EgressPoller.Version() -> int +Adaptive.Cluster.Client.IControlledEgressListener +Adaptive.Cluster.Client.IControlledEgressListener.OnAdminResponse(long clusterSessionId, long correlationId, Adaptive.Cluster.Codecs.AdminRequestType requestType, Adaptive.Cluster.Codecs.AdminResponseCode responseCode, string message, Adaptive.Agrona.IDirectBuffer payload, int payloadOffset, int payloadLength) -> void +Adaptive.Cluster.Client.IControlledEgressListener.OnMessage(long clusterSessionId, long timestamp, Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Cluster.Client.IControlledEgressListener.OnNewLeader(long clusterSessionId, long leadershipTermId, int leaderMemberId, string ingressEndpoints) -> void +Adaptive.Cluster.Client.IControlledEgressListener.OnSessionEvent(long correlationId, long clusterSessionId, long leadershipTermId, int leaderMemberId, Adaptive.Cluster.Codecs.EventCode code, string detail) -> void +Adaptive.Cluster.Client.IControlledEgressListenerExtension +Adaptive.Cluster.Client.IControlledEgressListenerExtension.OnExtensionMessage(int actingBlockLength, int templateId, int schemaId, int actingVersion, Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> Adaptive.Aeron.LogBuffer.ControlledFragmentHandlerAction +Adaptive.Cluster.Client.IEgressListener +Adaptive.Cluster.Client.IEgressListener.OnAdminResponse(long clusterSessionId, long correlationId, Adaptive.Cluster.Codecs.AdminRequestType requestType, Adaptive.Cluster.Codecs.AdminResponseCode responseCode, string message, Adaptive.Agrona.IDirectBuffer payload, int payloadOffset, int payloadLength) -> void +Adaptive.Cluster.Client.IEgressListener.OnMessage(long clusterSessionId, long timestamp, Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> void +Adaptive.Cluster.Client.IEgressListener.OnNewLeader(long clusterSessionId, long leadershipTermId, int leaderMemberId, string ingressEndpoints) -> void +Adaptive.Cluster.Client.IEgressListener.OnSessionEvent(long correlationId, long clusterSessionId, long leadershipTermId, int leaderMemberId, Adaptive.Cluster.Codecs.EventCode code, string detail) -> void +Adaptive.Cluster.Client.IEgressListenerExtension +Adaptive.Cluster.Client.IEgressListenerExtension.OnExtensionMessage(int actingBlockLength, int templateId, int schemaId, int actingVersion, Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> void +Adaptive.Cluster.Client.IngressSessionDecorator +Adaptive.Cluster.Client.IngressSessionDecorator.ClusterSessionId(long clusterSessionId) -> Adaptive.Cluster.Client.IngressSessionDecorator +Adaptive.Cluster.Client.IngressSessionDecorator.IngressSessionDecorator() -> void +Adaptive.Cluster.Client.IngressSessionDecorator.IngressSessionDecorator(long clusterSessionId, long leadershipTermId) -> void +Adaptive.Cluster.Client.IngressSessionDecorator.LeadershipTermId(long leadershipTermId) -> Adaptive.Cluster.Client.IngressSessionDecorator +Adaptive.Cluster.Client.IngressSessionDecorator.Offer(Adaptive.Aeron.Publication publication, Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> long +Adaptive.Cluster.ClusterMarkFile +Adaptive.Cluster.ClusterMarkFile.ActivityTimestampVolatile() -> long +Adaptive.Cluster.ClusterMarkFile.Buffer.get -> Adaptive.Agrona.Concurrent.UnsafeBuffer +Adaptive.Cluster.ClusterMarkFile.CandidateTermId() -> long +Adaptive.Cluster.ClusterMarkFile.ClusterId() -> int +Adaptive.Cluster.ClusterMarkFile.ClusterId(int clusterId) -> void +Adaptive.Cluster.ClusterMarkFile.ClusterMarkFile(System.IO.DirectoryInfo directory, string filename, Adaptive.Agrona.Concurrent.IEpochClock epochClock, long timeoutMs, System.Action logger) -> void +Adaptive.Cluster.ClusterMarkFile.ClusterMarkFile(System.IO.FileInfo file, Adaptive.Cluster.Codecs.Mark.ClusterComponentType type, int errorBufferLength, Adaptive.Agrona.Concurrent.IEpochClock epochClock, long timeoutMs, int filePageSize) -> void +Adaptive.Cluster.ClusterMarkFile.Decoder() -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder +Adaptive.Cluster.ClusterMarkFile.Dispose() -> void +Adaptive.Cluster.ClusterMarkFile.Encoder() -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.ClusterMarkFile.ErrorBuffer.get -> Adaptive.Agrona.Concurrent.UnsafeBuffer +Adaptive.Cluster.ClusterMarkFile.Force() -> void +Adaptive.Cluster.ClusterMarkFile.IsClosed.get -> bool +Adaptive.Cluster.ClusterMarkFile.LoadControlProperties() -> Adaptive.Cluster.Service.ClusterNodeControlProperties +Adaptive.Cluster.ClusterMarkFile.MemberId() -> int +Adaptive.Cluster.ClusterMarkFile.MemberId(int memberId) -> void +Adaptive.Cluster.ClusterMarkFile.ParentDirectory() -> System.IO.DirectoryInfo +Adaptive.Cluster.ClusterMarkFile.SignalFailedStart() -> void +Adaptive.Cluster.ClusterMarkFile.SignalReady() -> void +Adaptive.Cluster.ClusterMarkFile.UpdateActivityTimestamp(long nowMs) -> void +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder._limit -> int +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder._offset -> int +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.AddPassiveMemberDecoder() -> void +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.GetMemberEndpoints(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.GetMemberEndpoints(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.Limit() -> int +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.MemberEndpoints() -> string +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.MemberEndpointsLength() -> int +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.Offset() -> int +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.AddPassiveMemberDecoder +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder._limit -> int +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder._offset -> int +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.AddPassiveMemberEncoder() -> void +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.AddPassiveMemberEncoder +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.Limit() -> int +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.MemberEndpoints(string value) -> Adaptive.Cluster.Codecs.AddPassiveMemberEncoder +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.Offset() -> int +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.PutMemberEndpoints(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.AddPassiveMemberEncoder +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.PutMemberEndpoints(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.AddPassiveMemberEncoder +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.AddPassiveMemberEncoder +Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.AddPassiveMemberEncoder +Adaptive.Cluster.Codecs.AdminRequestDecoder +Adaptive.Cluster.Codecs.AdminRequestDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.AdminRequestDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.AdminRequestDecoder._limit -> int +Adaptive.Cluster.Codecs.AdminRequestDecoder._offset -> int +Adaptive.Cluster.Codecs.AdminRequestDecoder.AdminRequestDecoder() -> void +Adaptive.Cluster.Codecs.AdminRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.AdminRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.AdminRequestDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.AdminRequestDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.AdminRequestDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.AdminRequestDecoder.GetPayload(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.AdminRequestDecoder.GetPayload(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.AdminRequestDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.AdminRequestDecoder.Limit() -> int +Adaptive.Cluster.Codecs.AdminRequestDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.AdminRequestDecoder.Offset() -> int +Adaptive.Cluster.Codecs.AdminRequestDecoder.PayloadLength() -> int +Adaptive.Cluster.Codecs.AdminRequestDecoder.RequestType() -> Adaptive.Cluster.Codecs.AdminRequestType +Adaptive.Cluster.Codecs.AdminRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.AdminRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.AdminRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.AdminRequestDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.AdminRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.AdminRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.AdminRequestDecoder +Adaptive.Cluster.Codecs.AdminRequestEncoder +Adaptive.Cluster.Codecs.AdminRequestEncoder._limit -> int +Adaptive.Cluster.Codecs.AdminRequestEncoder._offset -> int +Adaptive.Cluster.Codecs.AdminRequestEncoder.AdminRequestEncoder() -> void +Adaptive.Cluster.Codecs.AdminRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.AdminRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.AdminRequestEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.AdminRequestEncoder +Adaptive.Cluster.Codecs.AdminRequestEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.AdminRequestEncoder +Adaptive.Cluster.Codecs.AdminRequestEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.AdminRequestEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.AdminRequestEncoder +Adaptive.Cluster.Codecs.AdminRequestEncoder.Limit() -> int +Adaptive.Cluster.Codecs.AdminRequestEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.AdminRequestEncoder.Offset() -> int +Adaptive.Cluster.Codecs.AdminRequestEncoder.PutPayload(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.AdminRequestEncoder +Adaptive.Cluster.Codecs.AdminRequestEncoder.PutPayload(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.AdminRequestEncoder +Adaptive.Cluster.Codecs.AdminRequestEncoder.RequestType(Adaptive.Cluster.Codecs.AdminRequestType value) -> Adaptive.Cluster.Codecs.AdminRequestEncoder +Adaptive.Cluster.Codecs.AdminRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.AdminRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.AdminRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.AdminRequestEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.AdminRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.AdminRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.AdminRequestEncoder +Adaptive.Cluster.Codecs.AdminRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.AdminRequestEncoder +Adaptive.Cluster.Codecs.AdminRequestType +Adaptive.Cluster.Codecs.AdminRequestType.NULL_VALUE = -2147483648 -> Adaptive.Cluster.Codecs.AdminRequestType +Adaptive.Cluster.Codecs.AdminRequestType.SNAPSHOT = 0 -> Adaptive.Cluster.Codecs.AdminRequestType +Adaptive.Cluster.Codecs.AdminResponseCode +Adaptive.Cluster.Codecs.AdminResponseCode.ERROR = 1 -> Adaptive.Cluster.Codecs.AdminResponseCode +Adaptive.Cluster.Codecs.AdminResponseCode.NULL_VALUE = -2147483648 -> Adaptive.Cluster.Codecs.AdminResponseCode +Adaptive.Cluster.Codecs.AdminResponseCode.OK = 0 -> Adaptive.Cluster.Codecs.AdminResponseCode +Adaptive.Cluster.Codecs.AdminResponseCode.UNAUTHORISED_ACCESS = 2 -> Adaptive.Cluster.Codecs.AdminResponseCode +Adaptive.Cluster.Codecs.AdminResponseDecoder +Adaptive.Cluster.Codecs.AdminResponseDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.AdminResponseDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.AdminResponseDecoder._limit -> int +Adaptive.Cluster.Codecs.AdminResponseDecoder._offset -> int +Adaptive.Cluster.Codecs.AdminResponseDecoder.AdminResponseDecoder() -> void +Adaptive.Cluster.Codecs.AdminResponseDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.AdminResponseDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.AdminResponseDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.AdminResponseDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.AdminResponseDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.AdminResponseDecoder.GetMessage(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.AdminResponseDecoder.GetMessage(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.AdminResponseDecoder.GetPayload(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.AdminResponseDecoder.GetPayload(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.AdminResponseDecoder.Limit() -> int +Adaptive.Cluster.Codecs.AdminResponseDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.AdminResponseDecoder.Message() -> string +Adaptive.Cluster.Codecs.AdminResponseDecoder.MessageLength() -> int +Adaptive.Cluster.Codecs.AdminResponseDecoder.Offset() -> int +Adaptive.Cluster.Codecs.AdminResponseDecoder.PayloadLength() -> int +Adaptive.Cluster.Codecs.AdminResponseDecoder.RequestType() -> Adaptive.Cluster.Codecs.AdminRequestType +Adaptive.Cluster.Codecs.AdminResponseDecoder.ResponseCode() -> Adaptive.Cluster.Codecs.AdminResponseCode +Adaptive.Cluster.Codecs.AdminResponseDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.AdminResponseDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.AdminResponseDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.AdminResponseDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.AdminResponseDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.AdminResponseDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.AdminResponseDecoder +Adaptive.Cluster.Codecs.AdminResponseEncoder +Adaptive.Cluster.Codecs.AdminResponseEncoder._limit -> int +Adaptive.Cluster.Codecs.AdminResponseEncoder._offset -> int +Adaptive.Cluster.Codecs.AdminResponseEncoder.AdminResponseEncoder() -> void +Adaptive.Cluster.Codecs.AdminResponseEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.AdminResponseEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.AdminResponseEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.AdminResponseEncoder +Adaptive.Cluster.Codecs.AdminResponseEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.AdminResponseEncoder +Adaptive.Cluster.Codecs.AdminResponseEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.AdminResponseEncoder.Limit() -> int +Adaptive.Cluster.Codecs.AdminResponseEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.AdminResponseEncoder.Message(string value) -> Adaptive.Cluster.Codecs.AdminResponseEncoder +Adaptive.Cluster.Codecs.AdminResponseEncoder.Offset() -> int +Adaptive.Cluster.Codecs.AdminResponseEncoder.PutMessage(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.AdminResponseEncoder +Adaptive.Cluster.Codecs.AdminResponseEncoder.PutMessage(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.AdminResponseEncoder +Adaptive.Cluster.Codecs.AdminResponseEncoder.PutPayload(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.AdminResponseEncoder +Adaptive.Cluster.Codecs.AdminResponseEncoder.PutPayload(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.AdminResponseEncoder +Adaptive.Cluster.Codecs.AdminResponseEncoder.RequestType(Adaptive.Cluster.Codecs.AdminRequestType value) -> Adaptive.Cluster.Codecs.AdminResponseEncoder +Adaptive.Cluster.Codecs.AdminResponseEncoder.ResponseCode(Adaptive.Cluster.Codecs.AdminResponseCode value) -> Adaptive.Cluster.Codecs.AdminResponseEncoder +Adaptive.Cluster.Codecs.AdminResponseEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.AdminResponseEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.AdminResponseEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.AdminResponseEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.AdminResponseEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.AdminResponseEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.AdminResponseEncoder +Adaptive.Cluster.Codecs.AdminResponseEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.AdminResponseEncoder +Adaptive.Cluster.Codecs.AppendPositionDecoder +Adaptive.Cluster.Codecs.AppendPositionDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.AppendPositionDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.AppendPositionDecoder._limit -> int +Adaptive.Cluster.Codecs.AppendPositionDecoder._offset -> int +Adaptive.Cluster.Codecs.AppendPositionDecoder.AppendPositionDecoder() -> void +Adaptive.Cluster.Codecs.AppendPositionDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.AppendPositionDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.AppendPositionDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.AppendPositionDecoder.Flags() -> byte +Adaptive.Cluster.Codecs.AppendPositionDecoder.FollowerMemberId() -> int +Adaptive.Cluster.Codecs.AppendPositionDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.AppendPositionDecoder.Limit() -> int +Adaptive.Cluster.Codecs.AppendPositionDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.AppendPositionDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.AppendPositionDecoder.Offset() -> int +Adaptive.Cluster.Codecs.AppendPositionDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.AppendPositionDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.AppendPositionDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.AppendPositionDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.AppendPositionDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.AppendPositionDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.AppendPositionDecoder +Adaptive.Cluster.Codecs.AppendPositionEncoder +Adaptive.Cluster.Codecs.AppendPositionEncoder._limit -> int +Adaptive.Cluster.Codecs.AppendPositionEncoder._offset -> int +Adaptive.Cluster.Codecs.AppendPositionEncoder.AppendPositionEncoder() -> void +Adaptive.Cluster.Codecs.AppendPositionEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.AppendPositionEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.AppendPositionEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.AppendPositionEncoder.Flags(byte value) -> Adaptive.Cluster.Codecs.AppendPositionEncoder +Adaptive.Cluster.Codecs.AppendPositionEncoder.FollowerMemberId(int value) -> Adaptive.Cluster.Codecs.AppendPositionEncoder +Adaptive.Cluster.Codecs.AppendPositionEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.AppendPositionEncoder +Adaptive.Cluster.Codecs.AppendPositionEncoder.Limit() -> int +Adaptive.Cluster.Codecs.AppendPositionEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.AppendPositionEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.AppendPositionEncoder +Adaptive.Cluster.Codecs.AppendPositionEncoder.Offset() -> int +Adaptive.Cluster.Codecs.AppendPositionEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.AppendPositionEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.AppendPositionEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.AppendPositionEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.AppendPositionEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.AppendPositionEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.AppendPositionEncoder +Adaptive.Cluster.Codecs.AppendPositionEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.AppendPositionEncoder +Adaptive.Cluster.Codecs.BackupQueryDecoder +Adaptive.Cluster.Codecs.BackupQueryDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder._limit -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder._offset -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.BackupQueryDecoder.BackupQueryDecoder() -> void +Adaptive.Cluster.Codecs.BackupQueryDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.BackupQueryDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.BackupQueryDecoder.EncodedCredentialsLength() -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder.GetEncodedCredentials(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder.GetEncodedCredentials(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder.GetResponseChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder.GetResponseChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder.Limit() -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.BackupQueryDecoder.Offset() -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseChannel() -> string +Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseChannelLength() -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseStreamId() -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.BackupQueryDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.BackupQueryDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.BackupQueryDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.BackupQueryDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.BackupQueryDecoder.Version() -> int +Adaptive.Cluster.Codecs.BackupQueryDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.BackupQueryDecoder +Adaptive.Cluster.Codecs.BackupQueryEncoder +Adaptive.Cluster.Codecs.BackupQueryEncoder._limit -> int +Adaptive.Cluster.Codecs.BackupQueryEncoder._offset -> int +Adaptive.Cluster.Codecs.BackupQueryEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.BackupQueryEncoder.BackupQueryEncoder() -> void +Adaptive.Cluster.Codecs.BackupQueryEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.BackupQueryEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.BackupQueryEncoder +Adaptive.Cluster.Codecs.BackupQueryEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.BackupQueryEncoder.Limit() -> int +Adaptive.Cluster.Codecs.BackupQueryEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.BackupQueryEncoder.Offset() -> int +Adaptive.Cluster.Codecs.BackupQueryEncoder.PutEncodedCredentials(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.BackupQueryEncoder +Adaptive.Cluster.Codecs.BackupQueryEncoder.PutEncodedCredentials(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.BackupQueryEncoder +Adaptive.Cluster.Codecs.BackupQueryEncoder.PutResponseChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.BackupQueryEncoder +Adaptive.Cluster.Codecs.BackupQueryEncoder.PutResponseChannel(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.BackupQueryEncoder +Adaptive.Cluster.Codecs.BackupQueryEncoder.ResponseChannel(string value) -> Adaptive.Cluster.Codecs.BackupQueryEncoder +Adaptive.Cluster.Codecs.BackupQueryEncoder.ResponseStreamId(int value) -> Adaptive.Cluster.Codecs.BackupQueryEncoder +Adaptive.Cluster.Codecs.BackupQueryEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.BackupQueryEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.BackupQueryEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.BackupQueryEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.BackupQueryEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.BackupQueryEncoder.Version(int value) -> Adaptive.Cluster.Codecs.BackupQueryEncoder +Adaptive.Cluster.Codecs.BackupQueryEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.BackupQueryEncoder +Adaptive.Cluster.Codecs.BackupQueryEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.BackupQueryEncoder +Adaptive.Cluster.Codecs.BackupResponseDecoder +Adaptive.Cluster.Codecs.BackupResponseDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder._limit -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder._offset -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.BackupResponseDecoder.BackupResponseDecoder() -> void +Adaptive.Cluster.Codecs.BackupResponseDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.BackupResponseDecoder.ClusterMembers() -> string +Adaptive.Cluster.Codecs.BackupResponseDecoder.ClusterMembersLength() -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder.CommitPositionCounterId() -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.BackupResponseDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder.GetClusterMembers(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder.GetClusterMembers(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder.LastLeadershipTermId() -> long +Adaptive.Cluster.Codecs.BackupResponseDecoder.LastTermBaseLogPosition() -> long +Adaptive.Cluster.Codecs.BackupResponseDecoder.LeaderMemberId() -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder.Limit() -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.BackupResponseDecoder.LogLeadershipTermId() -> long +Adaptive.Cluster.Codecs.BackupResponseDecoder.LogRecordingId() -> long +Adaptive.Cluster.Codecs.BackupResponseDecoder.LogTermBaseLogPosition() -> long +Adaptive.Cluster.Codecs.BackupResponseDecoder.MemberId() -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder.Offset() -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.BackupResponseDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.BackupResponseDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.BackupResponseDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.BackupResponseDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.BackupResponseDecoder.Snapshots() -> Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.ActingBlockLength() -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.Count() -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.HasNext() -> bool +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.Next() -> Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.RecordingId() -> long +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.ServiceId() -> int +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.SnapshotsDecoder() -> void +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TermBaseLogPosition() -> long +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.Timestamp() -> long +Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.Wrap(Adaptive.Cluster.Codecs.BackupResponseDecoder parentMessage, Adaptive.Agrona.IDirectBuffer buffer) -> void +Adaptive.Cluster.Codecs.BackupResponseDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.BackupResponseDecoder +Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder._limit -> int +Adaptive.Cluster.Codecs.BackupResponseEncoder._offset -> int +Adaptive.Cluster.Codecs.BackupResponseEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.BackupResponseEncoder.BackupResponseEncoder() -> void +Adaptive.Cluster.Codecs.BackupResponseEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.BackupResponseEncoder.ClusterMembers(string value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.CommitPositionCounterId(int value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.BackupResponseEncoder.LastLeadershipTermId(long value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.LastTermBaseLogPosition(long value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.LeaderMemberId(int value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.Limit() -> int +Adaptive.Cluster.Codecs.BackupResponseEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.BackupResponseEncoder.LogLeadershipTermId(long value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.LogRecordingId(long value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.LogTermBaseLogPosition(long value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.MemberId(int value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.Offset() -> int +Adaptive.Cluster.Codecs.BackupResponseEncoder.PutClusterMembers(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.PutClusterMembers(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.BackupResponseEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.BackupResponseEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.BackupResponseEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.BackupResponseEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsCount(int count) -> Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.Next() -> Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.RecordingId(long value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.ServiceId(int value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.SnapshotsEncoder() -> void +Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.TermBaseLogPosition(long value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.Timestamp(long value) -> Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.Wrap(Adaptive.Cluster.Codecs.BackupResponseEncoder parentMessage, Adaptive.Agrona.IMutableDirectBuffer buffer, int count) -> void +Adaptive.Cluster.Codecs.BackupResponseEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BackupResponseEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.BackupResponseEncoder +Adaptive.Cluster.Codecs.BooleanType +Adaptive.Cluster.Codecs.BooleanType.FALSE = 0 -> Adaptive.Cluster.Codecs.BooleanType +Adaptive.Cluster.Codecs.BooleanType.NULL_VALUE = -2147483648 -> Adaptive.Cluster.Codecs.BooleanType +Adaptive.Cluster.Codecs.BooleanType.TRUE = 1 -> Adaptive.Cluster.Codecs.BooleanType +Adaptive.Cluster.Codecs.CancelTimerDecoder +Adaptive.Cluster.Codecs.CancelTimerDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.CancelTimerDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.CancelTimerDecoder._limit -> int +Adaptive.Cluster.Codecs.CancelTimerDecoder._offset -> int +Adaptive.Cluster.Codecs.CancelTimerDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.CancelTimerDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.CancelTimerDecoder.CancelTimerDecoder() -> void +Adaptive.Cluster.Codecs.CancelTimerDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.CancelTimerDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.CancelTimerDecoder.Limit() -> int +Adaptive.Cluster.Codecs.CancelTimerDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.CancelTimerDecoder.Offset() -> int +Adaptive.Cluster.Codecs.CancelTimerDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.CancelTimerDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.CancelTimerDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.CancelTimerDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.CancelTimerDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.CancelTimerDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.CancelTimerDecoder +Adaptive.Cluster.Codecs.CancelTimerEncoder +Adaptive.Cluster.Codecs.CancelTimerEncoder._limit -> int +Adaptive.Cluster.Codecs.CancelTimerEncoder._offset -> int +Adaptive.Cluster.Codecs.CancelTimerEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.CancelTimerEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.CancelTimerEncoder.CancelTimerEncoder() -> void +Adaptive.Cluster.Codecs.CancelTimerEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.CancelTimerEncoder +Adaptive.Cluster.Codecs.CancelTimerEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.CancelTimerEncoder.Limit() -> int +Adaptive.Cluster.Codecs.CancelTimerEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.CancelTimerEncoder.Offset() -> int +Adaptive.Cluster.Codecs.CancelTimerEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.CancelTimerEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.CancelTimerEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.CancelTimerEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.CancelTimerEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.CancelTimerEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.CancelTimerEncoder +Adaptive.Cluster.Codecs.CancelTimerEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.CancelTimerEncoder +Adaptive.Cluster.Codecs.CanvassPositionDecoder +Adaptive.Cluster.Codecs.CanvassPositionDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.CanvassPositionDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.CanvassPositionDecoder._limit -> int +Adaptive.Cluster.Codecs.CanvassPositionDecoder._offset -> int +Adaptive.Cluster.Codecs.CanvassPositionDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.CanvassPositionDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.CanvassPositionDecoder.CanvassPositionDecoder() -> void +Adaptive.Cluster.Codecs.CanvassPositionDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.CanvassPositionDecoder.FollowerMemberId() -> int +Adaptive.Cluster.Codecs.CanvassPositionDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.CanvassPositionDecoder.Limit() -> int +Adaptive.Cluster.Codecs.CanvassPositionDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogLeadershipTermId() -> long +Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.CanvassPositionDecoder.Offset() -> int +Adaptive.Cluster.Codecs.CanvassPositionDecoder.ProtocolVersion() -> int +Adaptive.Cluster.Codecs.CanvassPositionDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.CanvassPositionDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.CanvassPositionDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.CanvassPositionDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.CanvassPositionDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.CanvassPositionDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.CanvassPositionDecoder +Adaptive.Cluster.Codecs.CanvassPositionEncoder +Adaptive.Cluster.Codecs.CanvassPositionEncoder._limit -> int +Adaptive.Cluster.Codecs.CanvassPositionEncoder._offset -> int +Adaptive.Cluster.Codecs.CanvassPositionEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.CanvassPositionEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.CanvassPositionEncoder.CanvassPositionEncoder() -> void +Adaptive.Cluster.Codecs.CanvassPositionEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.CanvassPositionEncoder.FollowerMemberId(int value) -> Adaptive.Cluster.Codecs.CanvassPositionEncoder +Adaptive.Cluster.Codecs.CanvassPositionEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.CanvassPositionEncoder +Adaptive.Cluster.Codecs.CanvassPositionEncoder.Limit() -> int +Adaptive.Cluster.Codecs.CanvassPositionEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.CanvassPositionEncoder.LogLeadershipTermId(long value) -> Adaptive.Cluster.Codecs.CanvassPositionEncoder +Adaptive.Cluster.Codecs.CanvassPositionEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.CanvassPositionEncoder +Adaptive.Cluster.Codecs.CanvassPositionEncoder.Offset() -> int +Adaptive.Cluster.Codecs.CanvassPositionEncoder.ProtocolVersion(int value) -> Adaptive.Cluster.Codecs.CanvassPositionEncoder +Adaptive.Cluster.Codecs.CanvassPositionEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.CanvassPositionEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.CanvassPositionEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.CanvassPositionEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.CanvassPositionEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.CanvassPositionEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.CanvassPositionEncoder +Adaptive.Cluster.Codecs.CanvassPositionEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.CanvassPositionEncoder +Adaptive.Cluster.Codecs.CatchupPositionDecoder +Adaptive.Cluster.Codecs.CatchupPositionDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.CatchupPositionDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.CatchupPositionDecoder._limit -> int +Adaptive.Cluster.Codecs.CatchupPositionDecoder._offset -> int +Adaptive.Cluster.Codecs.CatchupPositionDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.CatchupPositionDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.CatchupPositionDecoder.CatchupEndpoint() -> string +Adaptive.Cluster.Codecs.CatchupPositionDecoder.CatchupEndpointLength() -> int +Adaptive.Cluster.Codecs.CatchupPositionDecoder.CatchupPositionDecoder() -> void +Adaptive.Cluster.Codecs.CatchupPositionDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.CatchupPositionDecoder.FollowerMemberId() -> int +Adaptive.Cluster.Codecs.CatchupPositionDecoder.GetCatchupEndpoint(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.CatchupPositionDecoder.GetCatchupEndpoint(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.CatchupPositionDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.CatchupPositionDecoder.Limit() -> int +Adaptive.Cluster.Codecs.CatchupPositionDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.CatchupPositionDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.CatchupPositionDecoder.Offset() -> int +Adaptive.Cluster.Codecs.CatchupPositionDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.CatchupPositionDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.CatchupPositionDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.CatchupPositionDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.CatchupPositionDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.CatchupPositionDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.CatchupPositionDecoder +Adaptive.Cluster.Codecs.CatchupPositionEncoder +Adaptive.Cluster.Codecs.CatchupPositionEncoder._limit -> int +Adaptive.Cluster.Codecs.CatchupPositionEncoder._offset -> int +Adaptive.Cluster.Codecs.CatchupPositionEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.CatchupPositionEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.CatchupPositionEncoder.CatchupEndpoint(string value) -> Adaptive.Cluster.Codecs.CatchupPositionEncoder +Adaptive.Cluster.Codecs.CatchupPositionEncoder.CatchupPositionEncoder() -> void +Adaptive.Cluster.Codecs.CatchupPositionEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.CatchupPositionEncoder.FollowerMemberId(int value) -> Adaptive.Cluster.Codecs.CatchupPositionEncoder +Adaptive.Cluster.Codecs.CatchupPositionEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.CatchupPositionEncoder +Adaptive.Cluster.Codecs.CatchupPositionEncoder.Limit() -> int +Adaptive.Cluster.Codecs.CatchupPositionEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.CatchupPositionEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.CatchupPositionEncoder +Adaptive.Cluster.Codecs.CatchupPositionEncoder.Offset() -> int +Adaptive.Cluster.Codecs.CatchupPositionEncoder.PutCatchupEndpoint(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.CatchupPositionEncoder +Adaptive.Cluster.Codecs.CatchupPositionEncoder.PutCatchupEndpoint(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.CatchupPositionEncoder +Adaptive.Cluster.Codecs.CatchupPositionEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.CatchupPositionEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.CatchupPositionEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.CatchupPositionEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.CatchupPositionEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.CatchupPositionEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.CatchupPositionEncoder +Adaptive.Cluster.Codecs.CatchupPositionEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.CatchupPositionEncoder +Adaptive.Cluster.Codecs.ChallengeDecoder +Adaptive.Cluster.Codecs.ChallengeDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ChallengeDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ChallengeDecoder._limit -> int +Adaptive.Cluster.Codecs.ChallengeDecoder._offset -> int +Adaptive.Cluster.Codecs.ChallengeDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ChallengeDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ChallengeDecoder.ChallengeDecoder() -> void +Adaptive.Cluster.Codecs.ChallengeDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.ChallengeDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.ChallengeDecoder.EncodedChallengeLength() -> int +Adaptive.Cluster.Codecs.ChallengeDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ChallengeDecoder.GetEncodedChallenge(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ChallengeDecoder.GetEncodedChallenge(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ChallengeDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ChallengeDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ChallengeDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ChallengeDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ChallengeDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ChallengeDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ChallengeDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ChallengeDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ChallengeDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ChallengeDecoder +Adaptive.Cluster.Codecs.ChallengeEncoder +Adaptive.Cluster.Codecs.ChallengeEncoder._limit -> int +Adaptive.Cluster.Codecs.ChallengeEncoder._offset -> int +Adaptive.Cluster.Codecs.ChallengeEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ChallengeEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ChallengeEncoder.ChallengeEncoder() -> void +Adaptive.Cluster.Codecs.ChallengeEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.ChallengeEncoder +Adaptive.Cluster.Codecs.ChallengeEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.ChallengeEncoder +Adaptive.Cluster.Codecs.ChallengeEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ChallengeEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ChallengeEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ChallengeEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ChallengeEncoder.PutEncodedChallenge(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ChallengeEncoder +Adaptive.Cluster.Codecs.ChallengeEncoder.PutEncodedChallenge(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ChallengeEncoder +Adaptive.Cluster.Codecs.ChallengeEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ChallengeEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ChallengeEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ChallengeEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ChallengeEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ChallengeEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ChallengeEncoder +Adaptive.Cluster.Codecs.ChallengeEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ChallengeEncoder +Adaptive.Cluster.Codecs.ChallengeResponseDecoder +Adaptive.Cluster.Codecs.ChallengeResponseDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ChallengeResponseDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ChallengeResponseDecoder._limit -> int +Adaptive.Cluster.Codecs.ChallengeResponseDecoder._offset -> int +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.ChallengeResponseDecoder() -> void +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.EncodedCredentialsLength() -> int +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.GetEncodedCredentials(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.GetEncodedCredentials(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ChallengeResponseDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ChallengeResponseDecoder +Adaptive.Cluster.Codecs.ChallengeResponseEncoder +Adaptive.Cluster.Codecs.ChallengeResponseEncoder._limit -> int +Adaptive.Cluster.Codecs.ChallengeResponseEncoder._offset -> int +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.ChallengeResponseEncoder() -> void +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.ChallengeResponseEncoder +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.ChallengeResponseEncoder +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.PutEncodedCredentials(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ChallengeResponseEncoder +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.PutEncodedCredentials(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ChallengeResponseEncoder +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ChallengeResponseEncoder +Adaptive.Cluster.Codecs.ChallengeResponseEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ChallengeResponseEncoder +Adaptive.Cluster.Codecs.ChangeType +Adaptive.Cluster.Codecs.ChangeType.JOIN = 0 -> Adaptive.Cluster.Codecs.ChangeType +Adaptive.Cluster.Codecs.ChangeType.NULL_VALUE = -2147483648 -> Adaptive.Cluster.Codecs.ChangeType +Adaptive.Cluster.Codecs.ChangeType.QUIT = 1 -> Adaptive.Cluster.Codecs.ChangeType +Adaptive.Cluster.Codecs.ClientSessionDecoder +Adaptive.Cluster.Codecs.ClientSessionDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder._limit -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder._offset -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClientSessionDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ClientSessionDecoder.ClientSessionDecoder() -> void +Adaptive.Cluster.Codecs.ClientSessionDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.ClientSessionDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder.EncodedPrincipalLength() -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder.GetEncodedPrincipal(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder.GetEncodedPrincipal(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder.GetResponseChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder.GetResponseChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClientSessionDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseChannel() -> string +Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseChannelLength() -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseStreamId() -> int +Adaptive.Cluster.Codecs.ClientSessionDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClientSessionDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClientSessionDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClientSessionDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClientSessionDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClientSessionDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ClientSessionDecoder +Adaptive.Cluster.Codecs.ClientSessionEncoder +Adaptive.Cluster.Codecs.ClientSessionEncoder._limit -> int +Adaptive.Cluster.Codecs.ClientSessionEncoder._offset -> int +Adaptive.Cluster.Codecs.ClientSessionEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClientSessionEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ClientSessionEncoder.ClientSessionEncoder() -> void +Adaptive.Cluster.Codecs.ClientSessionEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.ClientSessionEncoder +Adaptive.Cluster.Codecs.ClientSessionEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClientSessionEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ClientSessionEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClientSessionEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ClientSessionEncoder.PutEncodedPrincipal(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClientSessionEncoder +Adaptive.Cluster.Codecs.ClientSessionEncoder.PutEncodedPrincipal(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClientSessionEncoder +Adaptive.Cluster.Codecs.ClientSessionEncoder.PutResponseChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClientSessionEncoder +Adaptive.Cluster.Codecs.ClientSessionEncoder.PutResponseChannel(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClientSessionEncoder +Adaptive.Cluster.Codecs.ClientSessionEncoder.ResponseChannel(string value) -> Adaptive.Cluster.Codecs.ClientSessionEncoder +Adaptive.Cluster.Codecs.ClientSessionEncoder.ResponseStreamId(int value) -> Adaptive.Cluster.Codecs.ClientSessionEncoder +Adaptive.Cluster.Codecs.ClientSessionEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClientSessionEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClientSessionEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClientSessionEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClientSessionEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClientSessionEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ClientSessionEncoder +Adaptive.Cluster.Codecs.ClientSessionEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ClientSessionEncoder +Adaptive.Cluster.Codecs.CloseReason +Adaptive.Cluster.Codecs.CloseReason.CLIENT_ACTION = 0 -> Adaptive.Cluster.Codecs.CloseReason +Adaptive.Cluster.Codecs.CloseReason.NULL_VALUE = -2147483648 -> Adaptive.Cluster.Codecs.CloseReason +Adaptive.Cluster.Codecs.CloseReason.SERVICE_ACTION = 1 -> Adaptive.Cluster.Codecs.CloseReason +Adaptive.Cluster.Codecs.CloseReason.TIMEOUT = 2 -> Adaptive.Cluster.Codecs.CloseReason +Adaptive.Cluster.Codecs.CloseSessionDecoder +Adaptive.Cluster.Codecs.CloseSessionDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.CloseSessionDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.CloseSessionDecoder._limit -> int +Adaptive.Cluster.Codecs.CloseSessionDecoder._offset -> int +Adaptive.Cluster.Codecs.CloseSessionDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.CloseSessionDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.CloseSessionDecoder.CloseSessionDecoder() -> void +Adaptive.Cluster.Codecs.CloseSessionDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.CloseSessionDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.CloseSessionDecoder.Limit() -> int +Adaptive.Cluster.Codecs.CloseSessionDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.CloseSessionDecoder.Offset() -> int +Adaptive.Cluster.Codecs.CloseSessionDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.CloseSessionDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.CloseSessionDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.CloseSessionDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.CloseSessionDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.CloseSessionDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.CloseSessionDecoder +Adaptive.Cluster.Codecs.CloseSessionEncoder +Adaptive.Cluster.Codecs.CloseSessionEncoder._limit -> int +Adaptive.Cluster.Codecs.CloseSessionEncoder._offset -> int +Adaptive.Cluster.Codecs.CloseSessionEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.CloseSessionEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.CloseSessionEncoder.CloseSessionEncoder() -> void +Adaptive.Cluster.Codecs.CloseSessionEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.CloseSessionEncoder +Adaptive.Cluster.Codecs.CloseSessionEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.CloseSessionEncoder.Limit() -> int +Adaptive.Cluster.Codecs.CloseSessionEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.CloseSessionEncoder.Offset() -> int +Adaptive.Cluster.Codecs.CloseSessionEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.CloseSessionEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.CloseSessionEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.CloseSessionEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.CloseSessionEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.CloseSessionEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.CloseSessionEncoder +Adaptive.Cluster.Codecs.CloseSessionEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.CloseSessionEncoder +Adaptive.Cluster.Codecs.ClusterAction +Adaptive.Cluster.Codecs.ClusterAction.NULL_VALUE = -2147483648 -> Adaptive.Cluster.Codecs.ClusterAction +Adaptive.Cluster.Codecs.ClusterAction.RESUME = 1 -> Adaptive.Cluster.Codecs.ClusterAction +Adaptive.Cluster.Codecs.ClusterAction.SNAPSHOT = 2 -> Adaptive.Cluster.Codecs.ClusterAction +Adaptive.Cluster.Codecs.ClusterAction.SUSPEND = 0 -> Adaptive.Cluster.Codecs.ClusterAction +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder._limit -> int +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder._offset -> int +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.Action() -> Adaptive.Cluster.Codecs.ClusterAction +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.ClusterActionRequestDecoder() -> void +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.Flags() -> int +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.Timestamp() -> long +Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ClusterActionRequestDecoder +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder._limit -> int +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder._offset -> int +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.Action(Adaptive.Cluster.Codecs.ClusterAction value) -> Adaptive.Cluster.Codecs.ClusterActionRequestEncoder +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.ClusterActionRequestEncoder() -> void +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.Flags(int value) -> Adaptive.Cluster.Codecs.ClusterActionRequestEncoder +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.ClusterActionRequestEncoder +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.ClusterActionRequestEncoder +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.Timestamp(long value) -> Adaptive.Cluster.Codecs.ClusterActionRequestEncoder +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ClusterActionRequestEncoder +Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ClusterActionRequestEncoder +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder._limit -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder._offset -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.ActiveMembers() -> string +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.ActiveMembersLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.ClusterMembersChangeDecoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.GetActiveMembers(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.GetActiveMembers(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.GetPassiveMembers(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.GetPassiveMembers(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.LeaderMemberId() -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.PassiveMembers() -> string +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.PassiveMembersLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder._limit -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder._offset -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.ActiveMembers(string value) -> Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.ClusterMembersChangeEncoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.LeaderMemberId(int value) -> Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.PassiveMembers(string value) -> Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.PutActiveMembers(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.PutActiveMembers(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.PutPassiveMembers(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.PutPassiveMembers(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder +Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder +Adaptive.Cluster.Codecs.ClusterMembersDecoder +Adaptive.Cluster.Codecs.ClusterMembersDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ClusterMembersDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ClusterMembersDecoder._limit -> int +Adaptive.Cluster.Codecs.ClusterMembersDecoder._offset -> int +Adaptive.Cluster.Codecs.ClusterMembersDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterMembersDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ClusterMembersDecoder.ClusterMembers() -> string +Adaptive.Cluster.Codecs.ClusterMembersDecoder.ClusterMembersDecoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersDecoder.ClusterMembersLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersDecoder.GetClusterMembers(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersDecoder.GetClusterMembers(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersDecoder.HighMemberId() -> int +Adaptive.Cluster.Codecs.ClusterMembersDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterMembersDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterMembersDecoder.MemberId() -> int +Adaptive.Cluster.Codecs.ClusterMembersDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterMembersDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterMembersDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ClusterMembersDecoder +Adaptive.Cluster.Codecs.ClusterMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersEncoder._limit -> int +Adaptive.Cluster.Codecs.ClusterMembersEncoder._offset -> int +Adaptive.Cluster.Codecs.ClusterMembersEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterMembersEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ClusterMembersEncoder.ClusterMembers(string value) -> Adaptive.Cluster.Codecs.ClusterMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersEncoder.ClusterMembersEncoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersEncoder.HighMemberId(int value) -> Adaptive.Cluster.Codecs.ClusterMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterMembersEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterMembersEncoder.MemberId(int value) -> Adaptive.Cluster.Codecs.ClusterMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterMembersEncoder.PutClusterMembers(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersEncoder.PutClusterMembers(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterMembersEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ClusterMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ClusterMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder._limit -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder._offset -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembers() -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ActingBlockLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ActiveMembersDecoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ArchiveEndpoint() -> string +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ArchiveEndpointLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.CatchupEndpoint() -> string +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.CatchupEndpointLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ConsensusEndpoint() -> string +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ConsensusEndpointLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.Count() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.GetArchiveEndpoint(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.GetArchiveEndpoint(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.GetCatchupEndpoint(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.GetCatchupEndpoint(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.GetConsensusEndpoint(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.GetConsensusEndpoint(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.GetIngressEndpoint(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.GetIngressEndpoint(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.GetLogEndpoint(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.GetLogEndpoint(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.HasNext() -> bool +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.IngressEndpoint() -> string +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.IngressEndpointLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogEndpoint() -> string +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogEndpointLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.MemberId() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.Next() -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.TimeOfLastAppendNs() -> long +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.Wrap(Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder parentMessage, Adaptive.Agrona.IDirectBuffer buffer) -> void +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ClusterMembersExtendedResponseDecoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CurrentTimeNs() -> long +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.LeaderMemberId() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.MemberId() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembers() -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ActingBlockLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ArchiveEndpoint() -> string +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ArchiveEndpointLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.CatchupEndpoint() -> string +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.CatchupEndpointLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ConsensusEndpoint() -> string +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ConsensusEndpointLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.Count() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.GetArchiveEndpoint(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.GetArchiveEndpoint(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.GetCatchupEndpoint(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.GetCatchupEndpoint(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.GetConsensusEndpoint(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.GetConsensusEndpoint(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.GetIngressEndpoint(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.GetIngressEndpoint(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.GetLogEndpoint(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.GetLogEndpoint(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.HasNext() -> bool +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.IngressEndpoint() -> string +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.IngressEndpointLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogEndpoint() -> string +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogEndpointLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.MemberId() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.Next() -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.PassiveMembersDecoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.TimeOfLastAppendNs() -> long +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.Wrap(Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder parentMessage, Adaptive.Agrona.IDirectBuffer buffer) -> void +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder._limit -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder._offset -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersCount(int count) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.ActiveMembersEncoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.ArchiveEndpoint(string value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.CatchupEndpoint(string value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.ConsensusEndpoint(string value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.IngressEndpoint(string value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LogEndpoint(string value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.MemberId(int value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.Next() -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.PutArchiveEndpoint(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.PutArchiveEndpoint(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.PutCatchupEndpoint(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.PutCatchupEndpoint(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.PutConsensusEndpoint(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.PutConsensusEndpoint(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.PutIngressEndpoint(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.PutIngressEndpoint(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.PutLogEndpoint(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.PutLogEndpoint(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.TimeOfLastAppendNs(long value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.Wrap(Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder parentMessage, Adaptive.Agrona.IMutableDirectBuffer buffer, int count) -> void +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ClusterMembersExtendedResponseEncoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.CurrentTimeNs(long value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.LeaderMemberId(int value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.MemberId(int value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersCount(int count) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.ArchiveEndpoint(string value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.CatchupEndpoint(string value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.ConsensusEndpoint(string value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.IngressEndpoint(string value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LogEndpoint(string value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.MemberId(int value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.Next() -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.PassiveMembersEncoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.PutArchiveEndpoint(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.PutArchiveEndpoint(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.PutCatchupEndpoint(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.PutCatchupEndpoint(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.PutConsensusEndpoint(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.PutConsensusEndpoint(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.PutIngressEndpoint(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.PutIngressEndpoint(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.PutLogEndpoint(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.PutLogEndpoint(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.TimeOfLastAppendNs(long value) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.Wrap(Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder parentMessage, Adaptive.Agrona.IMutableDirectBuffer buffer, int count) -> void +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder._limit -> int +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder._offset -> int +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.ClusterMembersQueryDecoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.Extended() -> Adaptive.Cluster.Codecs.BooleanType +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder._limit -> int +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder._offset -> int +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.ClusterMembersQueryEncoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.Extended(Adaptive.Cluster.Codecs.BooleanType value) -> Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder +Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder._limit -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder._offset -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.ActiveMembers() -> string +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.ActiveMembersLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.ClusterMembersResponseDecoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.GetActiveMembers(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.GetActiveMembers(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.GetPassiveFollowers(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.GetPassiveFollowers(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.LeaderMemberId() -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.PassiveFollowers() -> string +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.PassiveFollowersLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder._limit -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder._offset -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.ActiveMembers(string value) -> Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.ClusterMembersResponseEncoder() -> void +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.LeaderMemberId(int value) -> Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.PassiveFollowers(string value) -> Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.PutActiveMembers(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.PutActiveMembers(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.PutPassiveFollowers(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.PutPassiveFollowers(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder +Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder +Adaptive.Cluster.Codecs.ClusterSessionDecoder +Adaptive.Cluster.Codecs.ClusterSessionDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ClusterSessionDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ClusterSessionDecoder._limit -> int +Adaptive.Cluster.Codecs.ClusterSessionDecoder._offset -> int +Adaptive.Cluster.Codecs.ClusterSessionDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterSessionDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ClusterSessionDecoder.CloseReason() -> Adaptive.Cluster.Codecs.CloseReason +Adaptive.Cluster.Codecs.ClusterSessionDecoder.ClusterSessionDecoder() -> void +Adaptive.Cluster.Codecs.ClusterSessionDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.ClusterSessionDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.ClusterSessionDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterSessionDecoder.GetResponseChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterSessionDecoder.GetResponseChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.ClusterSessionDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterSessionDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterSessionDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterSessionDecoder.OpenedLogPosition() -> long +Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseChannel() -> string +Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseChannelLength() -> int +Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseStreamId() -> int +Adaptive.Cluster.Codecs.ClusterSessionDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterSessionDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterSessionDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterSessionDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterSessionDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterSessionDecoder.TimeOfLastActivity() -> long +Adaptive.Cluster.Codecs.ClusterSessionDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ClusterSessionDecoder +Adaptive.Cluster.Codecs.ClusterSessionEncoder +Adaptive.Cluster.Codecs.ClusterSessionEncoder._limit -> int +Adaptive.Cluster.Codecs.ClusterSessionEncoder._offset -> int +Adaptive.Cluster.Codecs.ClusterSessionEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ClusterSessionEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ClusterSessionEncoder.CloseReason(Adaptive.Cluster.Codecs.CloseReason value) -> Adaptive.Cluster.Codecs.ClusterSessionEncoder +Adaptive.Cluster.Codecs.ClusterSessionEncoder.ClusterSessionEncoder() -> void +Adaptive.Cluster.Codecs.ClusterSessionEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.ClusterSessionEncoder +Adaptive.Cluster.Codecs.ClusterSessionEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.ClusterSessionEncoder +Adaptive.Cluster.Codecs.ClusterSessionEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ClusterSessionEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ClusterSessionEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ClusterSessionEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ClusterSessionEncoder.OpenedLogPosition(long value) -> Adaptive.Cluster.Codecs.ClusterSessionEncoder +Adaptive.Cluster.Codecs.ClusterSessionEncoder.PutResponseChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterSessionEncoder +Adaptive.Cluster.Codecs.ClusterSessionEncoder.PutResponseChannel(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.ClusterSessionEncoder +Adaptive.Cluster.Codecs.ClusterSessionEncoder.ResponseChannel(string value) -> Adaptive.Cluster.Codecs.ClusterSessionEncoder +Adaptive.Cluster.Codecs.ClusterSessionEncoder.ResponseStreamId(int value) -> Adaptive.Cluster.Codecs.ClusterSessionEncoder +Adaptive.Cluster.Codecs.ClusterSessionEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ClusterSessionEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ClusterSessionEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ClusterSessionEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ClusterSessionEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ClusterSessionEncoder.TimeOfLastActivity(long value) -> Adaptive.Cluster.Codecs.ClusterSessionEncoder +Adaptive.Cluster.Codecs.ClusterSessionEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ClusterSessionEncoder +Adaptive.Cluster.Codecs.ClusterSessionEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ClusterSessionEncoder +Adaptive.Cluster.Codecs.ClusterTimeUnit +Adaptive.Cluster.Codecs.ClusterTimeUnit.MICROS = 1 -> Adaptive.Cluster.Codecs.ClusterTimeUnit +Adaptive.Cluster.Codecs.ClusterTimeUnit.MILLIS = 0 -> Adaptive.Cluster.Codecs.ClusterTimeUnit +Adaptive.Cluster.Codecs.ClusterTimeUnit.NANOS = 2 -> Adaptive.Cluster.Codecs.ClusterTimeUnit +Adaptive.Cluster.Codecs.ClusterTimeUnit.NULL_VALUE = -2147483648 -> Adaptive.Cluster.Codecs.ClusterTimeUnit +Adaptive.Cluster.Codecs.CommitPositionDecoder +Adaptive.Cluster.Codecs.CommitPositionDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.CommitPositionDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.CommitPositionDecoder._limit -> int +Adaptive.Cluster.Codecs.CommitPositionDecoder._offset -> int +Adaptive.Cluster.Codecs.CommitPositionDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.CommitPositionDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.CommitPositionDecoder.CommitPositionDecoder() -> void +Adaptive.Cluster.Codecs.CommitPositionDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.CommitPositionDecoder.LeaderMemberId() -> int +Adaptive.Cluster.Codecs.CommitPositionDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.CommitPositionDecoder.Limit() -> int +Adaptive.Cluster.Codecs.CommitPositionDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.CommitPositionDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.CommitPositionDecoder.Offset() -> int +Adaptive.Cluster.Codecs.CommitPositionDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.CommitPositionDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.CommitPositionDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.CommitPositionDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.CommitPositionDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.CommitPositionDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.CommitPositionDecoder +Adaptive.Cluster.Codecs.CommitPositionEncoder +Adaptive.Cluster.Codecs.CommitPositionEncoder._limit -> int +Adaptive.Cluster.Codecs.CommitPositionEncoder._offset -> int +Adaptive.Cluster.Codecs.CommitPositionEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.CommitPositionEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.CommitPositionEncoder.CommitPositionEncoder() -> void +Adaptive.Cluster.Codecs.CommitPositionEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.CommitPositionEncoder.LeaderMemberId(int value) -> Adaptive.Cluster.Codecs.CommitPositionEncoder +Adaptive.Cluster.Codecs.CommitPositionEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.CommitPositionEncoder +Adaptive.Cluster.Codecs.CommitPositionEncoder.Limit() -> int +Adaptive.Cluster.Codecs.CommitPositionEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.CommitPositionEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.CommitPositionEncoder +Adaptive.Cluster.Codecs.CommitPositionEncoder.Offset() -> int +Adaptive.Cluster.Codecs.CommitPositionEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.CommitPositionEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.CommitPositionEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.CommitPositionEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.CommitPositionEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.CommitPositionEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.CommitPositionEncoder +Adaptive.Cluster.Codecs.CommitPositionEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.CommitPositionEncoder +Adaptive.Cluster.Codecs.ConsensusModuleDecoder +Adaptive.Cluster.Codecs.ConsensusModuleDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ConsensusModuleDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ConsensusModuleDecoder._limit -> int +Adaptive.Cluster.Codecs.ConsensusModuleDecoder._offset -> int +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.ConsensusModuleDecoder() -> void +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.LogServiceSessionId() -> long +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextServiceSessionId() -> long +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextSessionId() -> long +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.PendingMessageCapacity() -> int +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ConsensusModuleDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ConsensusModuleDecoder +Adaptive.Cluster.Codecs.ConsensusModuleEncoder +Adaptive.Cluster.Codecs.ConsensusModuleEncoder._limit -> int +Adaptive.Cluster.Codecs.ConsensusModuleEncoder._offset -> int +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.ConsensusModuleEncoder() -> void +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.LogServiceSessionId(long value) -> Adaptive.Cluster.Codecs.ConsensusModuleEncoder +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.NextServiceSessionId(long value) -> Adaptive.Cluster.Codecs.ConsensusModuleEncoder +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.NextSessionId(long value) -> Adaptive.Cluster.Codecs.ConsensusModuleEncoder +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.PendingMessageCapacity(int value) -> Adaptive.Cluster.Codecs.ConsensusModuleEncoder +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ConsensusModuleEncoder +Adaptive.Cluster.Codecs.ConsensusModuleEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ConsensusModuleEncoder +Adaptive.Cluster.Codecs.EventCode +Adaptive.Cluster.Codecs.EventCode.AUTHENTICATION_REJECTED = 3 -> Adaptive.Cluster.Codecs.EventCode +Adaptive.Cluster.Codecs.EventCode.CLOSED = 4 -> Adaptive.Cluster.Codecs.EventCode +Adaptive.Cluster.Codecs.EventCode.ERROR = 1 -> Adaptive.Cluster.Codecs.EventCode +Adaptive.Cluster.Codecs.EventCode.NULL_VALUE = -2147483648 -> Adaptive.Cluster.Codecs.EventCode +Adaptive.Cluster.Codecs.EventCode.OK = 0 -> Adaptive.Cluster.Codecs.EventCode +Adaptive.Cluster.Codecs.EventCode.REDIRECT = 2 -> Adaptive.Cluster.Codecs.EventCode +Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder +Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.BlockLength() -> ushort +Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.GroupSizeEncodingDecoder() -> void +Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.NumInGroup() -> ushort +Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.Offset() -> int +Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder +Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder +Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.BlockLength(ushort value) -> Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder +Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.GroupSizeEncodingEncoder() -> void +Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.NumInGroup(ushort value) -> Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder +Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.Offset() -> int +Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder._limit -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder._offset -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.EncodedCredentialsLength() -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.GetEncodedCredentials(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.GetEncodedCredentials(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.GetResponseChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.GetResponseChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.HeartbeatRequestDecoder() -> void +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.Limit() -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.Offset() -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseChannel() -> string +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseChannelLength() -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseStreamId() -> int +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.HeartbeatRequestDecoder +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder._limit -> int +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder._offset -> int +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.HeartbeatRequestEncoder +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.HeartbeatRequestEncoder() -> void +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.Limit() -> int +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.Offset() -> int +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.PutEncodedCredentials(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.HeartbeatRequestEncoder +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.PutEncodedCredentials(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.HeartbeatRequestEncoder +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.PutResponseChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.HeartbeatRequestEncoder +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.PutResponseChannel(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.HeartbeatRequestEncoder +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.ResponseChannel(string value) -> Adaptive.Cluster.Codecs.HeartbeatRequestEncoder +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.ResponseStreamId(int value) -> Adaptive.Cluster.Codecs.HeartbeatRequestEncoder +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.HeartbeatRequestEncoder +Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.HeartbeatRequestEncoder +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder._limit -> int +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder._offset -> int +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.HeartbeatResponseDecoder() -> void +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.Limit() -> int +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.Offset() -> int +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.HeartbeatResponseDecoder +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder._limit -> int +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder._offset -> int +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.HeartbeatResponseEncoder +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.HeartbeatResponseEncoder() -> void +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.Limit() -> int +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.Offset() -> int +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.HeartbeatResponseEncoder +Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.HeartbeatResponseEncoder +Adaptive.Cluster.Codecs.JoinClusterDecoder +Adaptive.Cluster.Codecs.JoinClusterDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.JoinClusterDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.JoinClusterDecoder._limit -> int +Adaptive.Cluster.Codecs.JoinClusterDecoder._offset -> int +Adaptive.Cluster.Codecs.JoinClusterDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.JoinClusterDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.JoinClusterDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.JoinClusterDecoder.JoinClusterDecoder() -> void +Adaptive.Cluster.Codecs.JoinClusterDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.JoinClusterDecoder.Limit() -> int +Adaptive.Cluster.Codecs.JoinClusterDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.JoinClusterDecoder.MemberId() -> int +Adaptive.Cluster.Codecs.JoinClusterDecoder.Offset() -> int +Adaptive.Cluster.Codecs.JoinClusterDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.JoinClusterDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.JoinClusterDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.JoinClusterDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.JoinClusterDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.JoinClusterDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.JoinClusterDecoder +Adaptive.Cluster.Codecs.JoinClusterEncoder +Adaptive.Cluster.Codecs.JoinClusterEncoder._limit -> int +Adaptive.Cluster.Codecs.JoinClusterEncoder._offset -> int +Adaptive.Cluster.Codecs.JoinClusterEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.JoinClusterEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.JoinClusterEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.JoinClusterEncoder.JoinClusterEncoder() -> void +Adaptive.Cluster.Codecs.JoinClusterEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.JoinClusterEncoder +Adaptive.Cluster.Codecs.JoinClusterEncoder.Limit() -> int +Adaptive.Cluster.Codecs.JoinClusterEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.JoinClusterEncoder.MemberId(int value) -> Adaptive.Cluster.Codecs.JoinClusterEncoder +Adaptive.Cluster.Codecs.JoinClusterEncoder.Offset() -> int +Adaptive.Cluster.Codecs.JoinClusterEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.JoinClusterEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.JoinClusterEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.JoinClusterEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.JoinClusterEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.JoinClusterEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.JoinClusterEncoder +Adaptive.Cluster.Codecs.JoinClusterEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.JoinClusterEncoder +Adaptive.Cluster.Codecs.JoinLogDecoder +Adaptive.Cluster.Codecs.JoinLogDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.JoinLogDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.JoinLogDecoder._limit -> int +Adaptive.Cluster.Codecs.JoinLogDecoder._offset -> int +Adaptive.Cluster.Codecs.JoinLogDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.JoinLogDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.JoinLogDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.JoinLogDecoder.GetLogChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.JoinLogDecoder.GetLogChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.JoinLogDecoder.IsStartup() -> Adaptive.Cluster.Codecs.BooleanType +Adaptive.Cluster.Codecs.JoinLogDecoder.JoinLogDecoder() -> void +Adaptive.Cluster.Codecs.JoinLogDecoder.Limit() -> int +Adaptive.Cluster.Codecs.JoinLogDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.JoinLogDecoder.LogChannel() -> string +Adaptive.Cluster.Codecs.JoinLogDecoder.LogChannelLength() -> int +Adaptive.Cluster.Codecs.JoinLogDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.JoinLogDecoder.LogSessionId() -> int +Adaptive.Cluster.Codecs.JoinLogDecoder.LogStreamId() -> int +Adaptive.Cluster.Codecs.JoinLogDecoder.MaxLogPosition() -> long +Adaptive.Cluster.Codecs.JoinLogDecoder.MemberId() -> int +Adaptive.Cluster.Codecs.JoinLogDecoder.Offset() -> int +Adaptive.Cluster.Codecs.JoinLogDecoder.Role() -> int +Adaptive.Cluster.Codecs.JoinLogDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.JoinLogDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.JoinLogDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.JoinLogDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.JoinLogDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.JoinLogDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.JoinLogDecoder +Adaptive.Cluster.Codecs.JoinLogEncoder +Adaptive.Cluster.Codecs.JoinLogEncoder._limit -> int +Adaptive.Cluster.Codecs.JoinLogEncoder._offset -> int +Adaptive.Cluster.Codecs.JoinLogEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.JoinLogEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.JoinLogEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.JoinLogEncoder.IsStartup(Adaptive.Cluster.Codecs.BooleanType value) -> Adaptive.Cluster.Codecs.JoinLogEncoder +Adaptive.Cluster.Codecs.JoinLogEncoder.JoinLogEncoder() -> void +Adaptive.Cluster.Codecs.JoinLogEncoder.Limit() -> int +Adaptive.Cluster.Codecs.JoinLogEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.JoinLogEncoder.LogChannel(string value) -> Adaptive.Cluster.Codecs.JoinLogEncoder +Adaptive.Cluster.Codecs.JoinLogEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.JoinLogEncoder +Adaptive.Cluster.Codecs.JoinLogEncoder.LogSessionId(int value) -> Adaptive.Cluster.Codecs.JoinLogEncoder +Adaptive.Cluster.Codecs.JoinLogEncoder.LogStreamId(int value) -> Adaptive.Cluster.Codecs.JoinLogEncoder +Adaptive.Cluster.Codecs.JoinLogEncoder.MaxLogPosition(long value) -> Adaptive.Cluster.Codecs.JoinLogEncoder +Adaptive.Cluster.Codecs.JoinLogEncoder.MemberId(int value) -> Adaptive.Cluster.Codecs.JoinLogEncoder +Adaptive.Cluster.Codecs.JoinLogEncoder.Offset() -> int +Adaptive.Cluster.Codecs.JoinLogEncoder.PutLogChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.JoinLogEncoder +Adaptive.Cluster.Codecs.JoinLogEncoder.PutLogChannel(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.JoinLogEncoder +Adaptive.Cluster.Codecs.JoinLogEncoder.Role(int value) -> Adaptive.Cluster.Codecs.JoinLogEncoder +Adaptive.Cluster.Codecs.JoinLogEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.JoinLogEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.JoinLogEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.JoinLogEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.JoinLogEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.JoinLogEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.JoinLogEncoder +Adaptive.Cluster.Codecs.JoinLogEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.JoinLogEncoder +Adaptive.Cluster.Codecs.Mark.ClusterComponentType +Adaptive.Cluster.Codecs.Mark.ClusterComponentType.BACKUP = 3 -> Adaptive.Cluster.Codecs.Mark.ClusterComponentType +Adaptive.Cluster.Codecs.Mark.ClusterComponentType.CONSENSUS_MODULE = 1 -> Adaptive.Cluster.Codecs.Mark.ClusterComponentType +Adaptive.Cluster.Codecs.Mark.ClusterComponentType.CONTAINER = 2 -> Adaptive.Cluster.Codecs.Mark.ClusterComponentType +Adaptive.Cluster.Codecs.Mark.ClusterComponentType.NULL_VALUE = -2147483648 -> Adaptive.Cluster.Codecs.Mark.ClusterComponentType +Adaptive.Cluster.Codecs.Mark.ClusterComponentType.STANDBY = 4 -> Adaptive.Cluster.Codecs.Mark.ClusterComponentType +Adaptive.Cluster.Codecs.Mark.ClusterComponentType.UNKNOWN = 0 -> Adaptive.Cluster.Codecs.Mark.ClusterComponentType +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder._initialOffset -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder._limit -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder._offset -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ActivityTimestamp() -> long +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AeronDirectory() -> string +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AeronDirectoryLength() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ArchiveStreamId() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.Authenticator() -> string +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AuthenticatorLength() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.CandidateTermId() -> long +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ClusterId() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ComponentType() -> Adaptive.Cluster.Codecs.Mark.ClusterComponentType +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ConsensusModuleStreamId() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ControlChannel() -> string +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ControlChannelLength() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ErrorBufferLength() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.GetAeronDirectory(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.GetAeronDirectory(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.GetAuthenticator(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.GetAuthenticator(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.GetControlChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.GetControlChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.GetIngressChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.GetIngressChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.GetServiceName(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.GetServiceName(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.GetServicesClusterDir(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.GetServicesClusterDir(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.HeaderLength() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressChannel() -> string +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressChannelLength() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressStreamId() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.Limit() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.MarkFileHeaderDecoder() -> void +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.MemberId() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.Offset() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.Pid() -> long +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.SbeRewind() -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceId() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceName() -> string +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceNameLength() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServicesClusterDir() -> string +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServicesClusterDirLength() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceStreamId() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.StartTimestamp() -> long +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.Version() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.WrapAndApplyHeader(Adaptive.Agrona.IDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder headerDecoder) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder._limit -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder._offset -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ActivityTimestamp(long value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.AeronDirectory(string value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ArchiveStreamId(int value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.Authenticator(string value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.CandidateTermId(long value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ClusterId(int value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ComponentType(Adaptive.Cluster.Codecs.Mark.ClusterComponentType value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ConsensusModuleStreamId(int value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ControlChannel(string value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ErrorBufferLength(int value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.HeaderLength(int value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.IngressChannel(string value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.IngressStreamId(int value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.Limit() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.MarkFileHeaderEncoder() -> void +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.MemberId(int value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.Offset() -> int +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.Pid(long value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PutAeronDirectory(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PutAeronDirectory(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PutAuthenticator(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PutAuthenticator(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PutControlChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PutControlChannel(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PutIngressChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PutIngressChannel(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PutServiceName(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PutServiceName(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PutServicesClusterDir(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PutServicesClusterDir(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceId(int value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceName(string value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServicesClusterDir(string value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceStreamId(int value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.StartTimestamp(long value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.Version(int value) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder +Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.BlockLength() -> ushort +Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.MessageHeaderDecoder() -> void +Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.Offset() -> int +Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.SchemaId() -> ushort +Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.TemplateId() -> ushort +Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.Version() -> ushort +Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder +Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.BlockLength(ushort value) -> Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.MessageHeaderEncoder() -> void +Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.Offset() -> int +Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.SchemaId(ushort value) -> Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.TemplateId(ushort value) -> Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.Version(ushort value) -> Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder +Adaptive.Cluster.Codecs.Mark.MetaAttribute +Adaptive.Cluster.Codecs.Mark.MetaAttribute.EPOCH = 0 -> Adaptive.Cluster.Codecs.Mark.MetaAttribute +Adaptive.Cluster.Codecs.Mark.MetaAttribute.PRESENCE = 3 -> Adaptive.Cluster.Codecs.Mark.MetaAttribute +Adaptive.Cluster.Codecs.Mark.MetaAttribute.SEMANTIC_TYPE = 2 -> Adaptive.Cluster.Codecs.Mark.MetaAttribute +Adaptive.Cluster.Codecs.Mark.MetaAttribute.TIME_UNIT = 1 -> Adaptive.Cluster.Codecs.Mark.MetaAttribute +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.Length() -> uint +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.Offset() -> int +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.VarAsciiEncodingDecoder() -> void +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.Length(uint value) -> Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.Offset() -> int +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.VarAsciiEncodingEncoder() -> void +Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder._limit -> int +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder._offset -> int +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ChangeType() -> Adaptive.Cluster.Codecs.ChangeType +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterMembers() -> string +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterMembersLength() -> int +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterSize() -> int +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.GetClusterMembers(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.GetClusterMembers(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeaderMemberId() -> int +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.Limit() -> int +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.MemberId() -> int +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.MembershipChangeEventDecoder() -> void +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.Offset() -> int +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.Timestamp() -> long +Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.MembershipChangeEventDecoder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder._limit -> int +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder._offset -> int +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ChangeType(Adaptive.Cluster.Codecs.ChangeType value) -> Adaptive.Cluster.Codecs.MembershipChangeEventEncoder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ClusterMembers(string value) -> Adaptive.Cluster.Codecs.MembershipChangeEventEncoder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ClusterSize(int value) -> Adaptive.Cluster.Codecs.MembershipChangeEventEncoder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LeaderMemberId(int value) -> Adaptive.Cluster.Codecs.MembershipChangeEventEncoder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.MembershipChangeEventEncoder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.Limit() -> int +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.MembershipChangeEventEncoder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.MemberId(int value) -> Adaptive.Cluster.Codecs.MembershipChangeEventEncoder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.MembershipChangeEventEncoder() -> void +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.Offset() -> int +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.PutClusterMembers(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.MembershipChangeEventEncoder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.PutClusterMembers(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.MembershipChangeEventEncoder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.Timestamp(long value) -> Adaptive.Cluster.Codecs.MembershipChangeEventEncoder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.MembershipChangeEventEncoder +Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.MembershipChangeEventEncoder +Adaptive.Cluster.Codecs.MessageHeaderDecoder +Adaptive.Cluster.Codecs.MessageHeaderDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.MessageHeaderDecoder.BlockLength() -> ushort +Adaptive.Cluster.Codecs.MessageHeaderDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.MessageHeaderDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.MessageHeaderDecoder.MessageHeaderDecoder() -> void +Adaptive.Cluster.Codecs.MessageHeaderDecoder.Offset() -> int +Adaptive.Cluster.Codecs.MessageHeaderDecoder.SchemaId() -> ushort +Adaptive.Cluster.Codecs.MessageHeaderDecoder.TemplateId() -> ushort +Adaptive.Cluster.Codecs.MessageHeaderDecoder.Version() -> ushort +Adaptive.Cluster.Codecs.MessageHeaderDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.MessageHeaderDecoder +Adaptive.Cluster.Codecs.MessageHeaderEncoder +Adaptive.Cluster.Codecs.MessageHeaderEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.MessageHeaderEncoder.BlockLength(ushort value) -> Adaptive.Cluster.Codecs.MessageHeaderEncoder +Adaptive.Cluster.Codecs.MessageHeaderEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.MessageHeaderEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.MessageHeaderEncoder.MessageHeaderEncoder() -> void +Adaptive.Cluster.Codecs.MessageHeaderEncoder.Offset() -> int +Adaptive.Cluster.Codecs.MessageHeaderEncoder.SchemaId(ushort value) -> Adaptive.Cluster.Codecs.MessageHeaderEncoder +Adaptive.Cluster.Codecs.MessageHeaderEncoder.TemplateId(ushort value) -> Adaptive.Cluster.Codecs.MessageHeaderEncoder +Adaptive.Cluster.Codecs.MessageHeaderEncoder.Version(ushort value) -> Adaptive.Cluster.Codecs.MessageHeaderEncoder +Adaptive.Cluster.Codecs.MessageHeaderEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.MessageHeaderEncoder +Adaptive.Cluster.Codecs.MetaAttribute +Adaptive.Cluster.Codecs.MetaAttribute.EPOCH = 0 -> Adaptive.Cluster.Codecs.MetaAttribute +Adaptive.Cluster.Codecs.MetaAttribute.PRESENCE = 3 -> Adaptive.Cluster.Codecs.MetaAttribute +Adaptive.Cluster.Codecs.MetaAttribute.SEMANTIC_TYPE = 2 -> Adaptive.Cluster.Codecs.MetaAttribute +Adaptive.Cluster.Codecs.MetaAttribute.TIME_UNIT = 1 -> Adaptive.Cluster.Codecs.MetaAttribute +Adaptive.Cluster.Codecs.NewLeaderEventDecoder +Adaptive.Cluster.Codecs.NewLeaderEventDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.NewLeaderEventDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.NewLeaderEventDecoder._limit -> int +Adaptive.Cluster.Codecs.NewLeaderEventDecoder._offset -> int +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.GetIngressEndpoints(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.GetIngressEndpoints(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.IngressEndpoints() -> string +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.IngressEndpointsLength() -> int +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeaderMemberId() -> int +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.Limit() -> int +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.NewLeaderEventDecoder() -> void +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.Offset() -> int +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.NewLeaderEventDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.NewLeaderEventDecoder +Adaptive.Cluster.Codecs.NewLeaderEventEncoder +Adaptive.Cluster.Codecs.NewLeaderEventEncoder._limit -> int +Adaptive.Cluster.Codecs.NewLeaderEventEncoder._offset -> int +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.NewLeaderEventEncoder +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.IngressEndpoints(string value) -> Adaptive.Cluster.Codecs.NewLeaderEventEncoder +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.LeaderMemberId(int value) -> Adaptive.Cluster.Codecs.NewLeaderEventEncoder +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.NewLeaderEventEncoder +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.Limit() -> int +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.NewLeaderEventEncoder() -> void +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.Offset() -> int +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.PutIngressEndpoints(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.NewLeaderEventEncoder +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.PutIngressEndpoints(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.NewLeaderEventEncoder +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.NewLeaderEventEncoder +Adaptive.Cluster.Codecs.NewLeaderEventEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.NewLeaderEventEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder._limit -> int +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder._offset -> int +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.AppVersion() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.IsStartup() -> Adaptive.Cluster.Codecs.BooleanType +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderMemberId() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderRecordingId() -> long +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.Limit() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogLeadershipTermId() -> long +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogSessionId() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NewLeadershipTermDecoder() -> void +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLeadershipTermId() -> long +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLogPosition() -> long +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextTermBaseLogPosition() -> long +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.Offset() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TermBaseLogPosition() -> long +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.Timestamp() -> long +Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.NewLeadershipTermDecoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder._limit -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder._offset -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.AppVersion(int value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.IsStartup(Adaptive.Cluster.Codecs.BooleanType value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeaderMemberId(int value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeaderRecordingId(long value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.Limit() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogLeadershipTermId(long value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogSessionId(int value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NewLeadershipTermEncoder() -> void +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextLeadershipTermId(long value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextLogPosition(long value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextTermBaseLogPosition(long value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.Offset() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.TermBaseLogPosition(long value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.Timestamp(long value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.NewLeadershipTermEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder._limit -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder._offset -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.AppVersion() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeaderMemberId() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.Limit() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogSessionId() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.NewLeadershipTermEventDecoder() -> void +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.Offset() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TermBaseLogPosition() -> long +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.Timestamp() -> long +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimeUnit() -> Adaptive.Cluster.Codecs.ClusterTimeUnit +Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder._limit -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder._offset -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.AppVersion(int value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LeaderMemberId(int value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.Limit() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LogSessionId(int value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.NewLeadershipTermEventEncoder() -> void +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.Offset() -> int +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TermBaseLogPosition(long value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.Timestamp(long value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TimeUnit(Adaptive.Cluster.Codecs.ClusterTimeUnit value) -> Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder +Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder._limit -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder._offset -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.Limit() -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.LogServiceSessionId() -> long +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.NextServiceSessionId() -> long +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.Offset() -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.PendingMessageCapacity() -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.PendingMessageTrackerDecoder() -> void +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.ServiceId() -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder._limit -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder._offset -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.Limit() -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.LogServiceSessionId(long value) -> Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.NextServiceSessionId(long value) -> Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.Offset() -> int +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.PendingMessageCapacity(int value) -> Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.PendingMessageTrackerEncoder() -> void +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.ServiceId(int value) -> Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder +Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder +Adaptive.Cluster.Codecs.RemoveMemberDecoder +Adaptive.Cluster.Codecs.RemoveMemberDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.RemoveMemberDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.RemoveMemberDecoder._limit -> int +Adaptive.Cluster.Codecs.RemoveMemberDecoder._offset -> int +Adaptive.Cluster.Codecs.RemoveMemberDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.RemoveMemberDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.RemoveMemberDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.RemoveMemberDecoder.IsPassive() -> Adaptive.Cluster.Codecs.BooleanType +Adaptive.Cluster.Codecs.RemoveMemberDecoder.Limit() -> int +Adaptive.Cluster.Codecs.RemoveMemberDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.RemoveMemberDecoder.MemberId() -> int +Adaptive.Cluster.Codecs.RemoveMemberDecoder.Offset() -> int +Adaptive.Cluster.Codecs.RemoveMemberDecoder.RemoveMemberDecoder() -> void +Adaptive.Cluster.Codecs.RemoveMemberDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.RemoveMemberDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.RemoveMemberDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.RemoveMemberDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.RemoveMemberDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.RemoveMemberDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.RemoveMemberDecoder +Adaptive.Cluster.Codecs.RemoveMemberEncoder +Adaptive.Cluster.Codecs.RemoveMemberEncoder._limit -> int +Adaptive.Cluster.Codecs.RemoveMemberEncoder._offset -> int +Adaptive.Cluster.Codecs.RemoveMemberEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.RemoveMemberEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.RemoveMemberEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.RemoveMemberEncoder.IsPassive(Adaptive.Cluster.Codecs.BooleanType value) -> Adaptive.Cluster.Codecs.RemoveMemberEncoder +Adaptive.Cluster.Codecs.RemoveMemberEncoder.Limit() -> int +Adaptive.Cluster.Codecs.RemoveMemberEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.RemoveMemberEncoder.MemberId(int value) -> Adaptive.Cluster.Codecs.RemoveMemberEncoder +Adaptive.Cluster.Codecs.RemoveMemberEncoder.Offset() -> int +Adaptive.Cluster.Codecs.RemoveMemberEncoder.RemoveMemberEncoder() -> void +Adaptive.Cluster.Codecs.RemoveMemberEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.RemoveMemberEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.RemoveMemberEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.RemoveMemberEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.RemoveMemberEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.RemoveMemberEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.RemoveMemberEncoder +Adaptive.Cluster.Codecs.RemoveMemberEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.RemoveMemberEncoder +Adaptive.Cluster.Codecs.RequestServiceAckDecoder +Adaptive.Cluster.Codecs.RequestServiceAckDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.RequestServiceAckDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.RequestServiceAckDecoder._limit -> int +Adaptive.Cluster.Codecs.RequestServiceAckDecoder._offset -> int +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.Limit() -> int +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.Offset() -> int +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.RequestServiceAckDecoder() -> void +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.RequestServiceAckDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.RequestServiceAckDecoder +Adaptive.Cluster.Codecs.RequestServiceAckEncoder +Adaptive.Cluster.Codecs.RequestServiceAckEncoder._limit -> int +Adaptive.Cluster.Codecs.RequestServiceAckEncoder._offset -> int +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.Limit() -> int +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.RequestServiceAckEncoder +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.Offset() -> int +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.RequestServiceAckEncoder() -> void +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.RequestServiceAckEncoder +Adaptive.Cluster.Codecs.RequestServiceAckEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.RequestServiceAckEncoder +Adaptive.Cluster.Codecs.RequestVoteDecoder +Adaptive.Cluster.Codecs.RequestVoteDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.RequestVoteDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.RequestVoteDecoder._limit -> int +Adaptive.Cluster.Codecs.RequestVoteDecoder._offset -> int +Adaptive.Cluster.Codecs.RequestVoteDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.RequestVoteDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateMemberId() -> int +Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateTermId() -> long +Adaptive.Cluster.Codecs.RequestVoteDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.RequestVoteDecoder.Limit() -> int +Adaptive.Cluster.Codecs.RequestVoteDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.RequestVoteDecoder.LogLeadershipTermId() -> long +Adaptive.Cluster.Codecs.RequestVoteDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.RequestVoteDecoder.Offset() -> int +Adaptive.Cluster.Codecs.RequestVoteDecoder.ProtocolVersion() -> int +Adaptive.Cluster.Codecs.RequestVoteDecoder.RequestVoteDecoder() -> void +Adaptive.Cluster.Codecs.RequestVoteDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.RequestVoteDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.RequestVoteDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.RequestVoteDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.RequestVoteDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.RequestVoteDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.RequestVoteDecoder +Adaptive.Cluster.Codecs.RequestVoteEncoder +Adaptive.Cluster.Codecs.RequestVoteEncoder._limit -> int +Adaptive.Cluster.Codecs.RequestVoteEncoder._offset -> int +Adaptive.Cluster.Codecs.RequestVoteEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.RequestVoteEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.RequestVoteEncoder.CandidateMemberId(int value) -> Adaptive.Cluster.Codecs.RequestVoteEncoder +Adaptive.Cluster.Codecs.RequestVoteEncoder.CandidateTermId(long value) -> Adaptive.Cluster.Codecs.RequestVoteEncoder +Adaptive.Cluster.Codecs.RequestVoteEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.RequestVoteEncoder.Limit() -> int +Adaptive.Cluster.Codecs.RequestVoteEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.RequestVoteEncoder.LogLeadershipTermId(long value) -> Adaptive.Cluster.Codecs.RequestVoteEncoder +Adaptive.Cluster.Codecs.RequestVoteEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.RequestVoteEncoder +Adaptive.Cluster.Codecs.RequestVoteEncoder.Offset() -> int +Adaptive.Cluster.Codecs.RequestVoteEncoder.ProtocolVersion(int value) -> Adaptive.Cluster.Codecs.RequestVoteEncoder +Adaptive.Cluster.Codecs.RequestVoteEncoder.RequestVoteEncoder() -> void +Adaptive.Cluster.Codecs.RequestVoteEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.RequestVoteEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.RequestVoteEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.RequestVoteEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.RequestVoteEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.RequestVoteEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.RequestVoteEncoder +Adaptive.Cluster.Codecs.RequestVoteEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.RequestVoteEncoder +Adaptive.Cluster.Codecs.ScheduleTimerDecoder +Adaptive.Cluster.Codecs.ScheduleTimerDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ScheduleTimerDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ScheduleTimerDecoder._limit -> int +Adaptive.Cluster.Codecs.ScheduleTimerDecoder._offset -> int +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.Deadline() -> long +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.ScheduleTimerDecoder() -> void +Adaptive.Cluster.Codecs.ScheduleTimerDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ScheduleTimerDecoder +Adaptive.Cluster.Codecs.ScheduleTimerEncoder +Adaptive.Cluster.Codecs.ScheduleTimerEncoder._limit -> int +Adaptive.Cluster.Codecs.ScheduleTimerEncoder._offset -> int +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.ScheduleTimerEncoder +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.Deadline(long value) -> Adaptive.Cluster.Codecs.ScheduleTimerEncoder +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.ScheduleTimerEncoder() -> void +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ScheduleTimerEncoder +Adaptive.Cluster.Codecs.ScheduleTimerEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ScheduleTimerEncoder +Adaptive.Cluster.Codecs.ServiceAckDecoder +Adaptive.Cluster.Codecs.ServiceAckDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ServiceAckDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ServiceAckDecoder._limit -> int +Adaptive.Cluster.Codecs.ServiceAckDecoder._offset -> int +Adaptive.Cluster.Codecs.ServiceAckDecoder.AckId() -> long +Adaptive.Cluster.Codecs.ServiceAckDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ServiceAckDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ServiceAckDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ServiceAckDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ServiceAckDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ServiceAckDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.ServiceAckDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ServiceAckDecoder.RelevantId() -> long +Adaptive.Cluster.Codecs.ServiceAckDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ServiceAckDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ServiceAckDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ServiceAckDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ServiceAckDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ServiceAckDecoder.ServiceAckDecoder() -> void +Adaptive.Cluster.Codecs.ServiceAckDecoder.ServiceId() -> int +Adaptive.Cluster.Codecs.ServiceAckDecoder.Timestamp() -> long +Adaptive.Cluster.Codecs.ServiceAckDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ServiceAckDecoder +Adaptive.Cluster.Codecs.ServiceAckEncoder +Adaptive.Cluster.Codecs.ServiceAckEncoder._limit -> int +Adaptive.Cluster.Codecs.ServiceAckEncoder._offset -> int +Adaptive.Cluster.Codecs.ServiceAckEncoder.AckId(long value) -> Adaptive.Cluster.Codecs.ServiceAckEncoder +Adaptive.Cluster.Codecs.ServiceAckEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ServiceAckEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ServiceAckEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ServiceAckEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ServiceAckEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ServiceAckEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.ServiceAckEncoder +Adaptive.Cluster.Codecs.ServiceAckEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ServiceAckEncoder.RelevantId(long value) -> Adaptive.Cluster.Codecs.ServiceAckEncoder +Adaptive.Cluster.Codecs.ServiceAckEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ServiceAckEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ServiceAckEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ServiceAckEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ServiceAckEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ServiceAckEncoder.ServiceAckEncoder() -> void +Adaptive.Cluster.Codecs.ServiceAckEncoder.ServiceId(int value) -> Adaptive.Cluster.Codecs.ServiceAckEncoder +Adaptive.Cluster.Codecs.ServiceAckEncoder.Timestamp(long value) -> Adaptive.Cluster.Codecs.ServiceAckEncoder +Adaptive.Cluster.Codecs.ServiceAckEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ServiceAckEncoder +Adaptive.Cluster.Codecs.ServiceAckEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ServiceAckEncoder +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder._limit -> int +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder._offset -> int +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.Limit() -> int +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.Offset() -> int +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.ServiceTerminationPositionDecoder() -> void +Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder._limit -> int +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder._offset -> int +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.Limit() -> int +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.Offset() -> int +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.ServiceTerminationPositionEncoder() -> void +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder +Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder +Adaptive.Cluster.Codecs.SessionCloseEventDecoder +Adaptive.Cluster.Codecs.SessionCloseEventDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.SessionCloseEventDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.SessionCloseEventDecoder._limit -> int +Adaptive.Cluster.Codecs.SessionCloseEventDecoder._offset -> int +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.CloseReason() -> Adaptive.Cluster.Codecs.CloseReason +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.SessionCloseEventDecoder() -> void +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.Timestamp() -> long +Adaptive.Cluster.Codecs.SessionCloseEventDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.SessionCloseEventDecoder +Adaptive.Cluster.Codecs.SessionCloseEventEncoder +Adaptive.Cluster.Codecs.SessionCloseEventEncoder._limit -> int +Adaptive.Cluster.Codecs.SessionCloseEventEncoder._offset -> int +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.CloseReason(Adaptive.Cluster.Codecs.CloseReason value) -> Adaptive.Cluster.Codecs.SessionCloseEventEncoder +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.SessionCloseEventEncoder +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.SessionCloseEventEncoder +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.SessionCloseEventEncoder() -> void +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.Timestamp(long value) -> Adaptive.Cluster.Codecs.SessionCloseEventEncoder +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.SessionCloseEventEncoder +Adaptive.Cluster.Codecs.SessionCloseEventEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.SessionCloseEventEncoder +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder._limit -> int +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder._offset -> int +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.SessionCloseRequestDecoder() -> void +Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.SessionCloseRequestDecoder +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder._limit -> int +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder._offset -> int +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.SessionCloseRequestEncoder +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.SessionCloseRequestEncoder +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.SessionCloseRequestEncoder() -> void +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.SessionCloseRequestEncoder +Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.SessionCloseRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder._limit -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder._offset -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ClientInfo() -> string +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ClientInfoLength() -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.EncodedCredentialsLength() -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.GetClientInfo(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.GetClientInfo(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.GetEncodedCredentials(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.GetEncodedCredentials(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.GetResponseChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.GetResponseChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseChannel() -> string +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseChannelLength() -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseStreamId() -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.SessionConnectRequestDecoder() -> void +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.Version() -> int +Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.SessionConnectRequestDecoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder._limit -> int +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder._offset -> int +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ClientInfo(string value) -> Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.PutClientInfo(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.PutClientInfo(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.PutEncodedCredentials(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.PutEncodedCredentials(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.PutResponseChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.PutResponseChannel(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ResponseChannel(string value) -> Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ResponseStreamId(int value) -> Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.SessionConnectRequestEncoder() -> void +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.Version(int value) -> Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.SessionConnectRequestEncoder +Adaptive.Cluster.Codecs.SessionEventDecoder +Adaptive.Cluster.Codecs.SessionEventDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.SessionEventDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.SessionEventDecoder._limit -> int +Adaptive.Cluster.Codecs.SessionEventDecoder._offset -> int +Adaptive.Cluster.Codecs.SessionEventDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionEventDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.SessionEventDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.SessionEventDecoder.Code() -> Adaptive.Cluster.Codecs.EventCode +Adaptive.Cluster.Codecs.SessionEventDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.SessionEventDecoder.Detail() -> string +Adaptive.Cluster.Codecs.SessionEventDecoder.DetailLength() -> int +Adaptive.Cluster.Codecs.SessionEventDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionEventDecoder.GetDetail(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SessionEventDecoder.GetDetail(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderHeartbeatTimeoutNs() -> long +Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderMemberId() -> int +Adaptive.Cluster.Codecs.SessionEventDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.SessionEventDecoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionEventDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionEventDecoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionEventDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionEventDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionEventDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionEventDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionEventDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionEventDecoder.SessionEventDecoder() -> void +Adaptive.Cluster.Codecs.SessionEventDecoder.Version() -> int +Adaptive.Cluster.Codecs.SessionEventDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.SessionEventDecoder +Adaptive.Cluster.Codecs.SessionEventEncoder +Adaptive.Cluster.Codecs.SessionEventEncoder._limit -> int +Adaptive.Cluster.Codecs.SessionEventEncoder._offset -> int +Adaptive.Cluster.Codecs.SessionEventEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionEventEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.SessionEventEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.SessionEventEncoder +Adaptive.Cluster.Codecs.SessionEventEncoder.Code(Adaptive.Cluster.Codecs.EventCode value) -> Adaptive.Cluster.Codecs.SessionEventEncoder +Adaptive.Cluster.Codecs.SessionEventEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.SessionEventEncoder +Adaptive.Cluster.Codecs.SessionEventEncoder.Detail(string value) -> Adaptive.Cluster.Codecs.SessionEventEncoder +Adaptive.Cluster.Codecs.SessionEventEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionEventEncoder.LeaderHeartbeatTimeoutNs(long value) -> Adaptive.Cluster.Codecs.SessionEventEncoder +Adaptive.Cluster.Codecs.SessionEventEncoder.LeaderMemberId(int value) -> Adaptive.Cluster.Codecs.SessionEventEncoder +Adaptive.Cluster.Codecs.SessionEventEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.SessionEventEncoder +Adaptive.Cluster.Codecs.SessionEventEncoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionEventEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionEventEncoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionEventEncoder.PutDetail(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SessionEventEncoder +Adaptive.Cluster.Codecs.SessionEventEncoder.PutDetail(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SessionEventEncoder +Adaptive.Cluster.Codecs.SessionEventEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionEventEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionEventEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionEventEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionEventEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionEventEncoder.SessionEventEncoder() -> void +Adaptive.Cluster.Codecs.SessionEventEncoder.Version(int value) -> Adaptive.Cluster.Codecs.SessionEventEncoder +Adaptive.Cluster.Codecs.SessionEventEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.SessionEventEncoder +Adaptive.Cluster.Codecs.SessionEventEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.SessionEventEncoder +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder._limit -> int +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder._offset -> int +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.SessionKeepAliveDecoder() -> void +Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.SessionKeepAliveDecoder +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder._limit -> int +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder._offset -> int +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.SessionKeepAliveEncoder +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.SessionKeepAliveEncoder +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.SessionKeepAliveEncoder() -> void +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.SessionKeepAliveEncoder +Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.SessionKeepAliveEncoder +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder._limit -> int +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder._offset -> int +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.SessionMessageHeaderDecoder() -> void +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.Timestamp() -> long +Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder._limit -> int +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder._offset -> int +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.SessionMessageHeaderEncoder() -> void +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.Timestamp(long value) -> Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder +Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder +Adaptive.Cluster.Codecs.SessionOpenEventDecoder +Adaptive.Cluster.Codecs.SessionOpenEventDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder._limit -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder._offset -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ClusterSessionId() -> long +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.EncodedPrincipalLength() -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.GetEncodedPrincipal(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.GetEncodedPrincipal(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.GetResponseChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.GetResponseChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseChannel() -> string +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseChannelLength() -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseStreamId() -> int +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.SessionOpenEventDecoder() -> void +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.Timestamp() -> long +Adaptive.Cluster.Codecs.SessionOpenEventDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.SessionOpenEventDecoder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder._limit -> int +Adaptive.Cluster.Codecs.SessionOpenEventEncoder._offset -> int +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ClusterSessionId(long value) -> Adaptive.Cluster.Codecs.SessionOpenEventEncoder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.SessionOpenEventEncoder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.SessionOpenEventEncoder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.Limit() -> int +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.Offset() -> int +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.PutEncodedPrincipal(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SessionOpenEventEncoder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.PutEncodedPrincipal(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SessionOpenEventEncoder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.PutResponseChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SessionOpenEventEncoder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.PutResponseChannel(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SessionOpenEventEncoder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ResponseChannel(string value) -> Adaptive.Cluster.Codecs.SessionOpenEventEncoder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ResponseStreamId(int value) -> Adaptive.Cluster.Codecs.SessionOpenEventEncoder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.SessionOpenEventEncoder() -> void +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.Timestamp(long value) -> Adaptive.Cluster.Codecs.SessionOpenEventEncoder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.SessionOpenEventEncoder +Adaptive.Cluster.Codecs.SessionOpenEventEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.SessionOpenEventEncoder +Adaptive.Cluster.Codecs.SnapshotMark +Adaptive.Cluster.Codecs.SnapshotMark.BEGIN = 0 -> Adaptive.Cluster.Codecs.SnapshotMark +Adaptive.Cluster.Codecs.SnapshotMark.END = 2 -> Adaptive.Cluster.Codecs.SnapshotMark +Adaptive.Cluster.Codecs.SnapshotMark.NULL_VALUE = -2147483648 -> Adaptive.Cluster.Codecs.SnapshotMark +Adaptive.Cluster.Codecs.SnapshotMark.SECTION = 1 -> Adaptive.Cluster.Codecs.SnapshotMark +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder._limit -> int +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder._offset -> int +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.AppVersion() -> int +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.Index() -> int +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.Limit() -> int +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.Mark() -> Adaptive.Cluster.Codecs.SnapshotMark +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.Offset() -> int +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.SnapshotMarkerDecoder() -> void +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TimeUnit() -> Adaptive.Cluster.Codecs.ClusterTimeUnit +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TypeId() -> long +Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.SnapshotMarkerDecoder +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder._limit -> int +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder._offset -> int +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.AppVersion(int value) -> Adaptive.Cluster.Codecs.SnapshotMarkerEncoder +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.Index(int value) -> Adaptive.Cluster.Codecs.SnapshotMarkerEncoder +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.SnapshotMarkerEncoder +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.Limit() -> int +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.SnapshotMarkerEncoder +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.Mark(Adaptive.Cluster.Codecs.SnapshotMark value) -> Adaptive.Cluster.Codecs.SnapshotMarkerEncoder +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.Offset() -> int +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.SnapshotMarkerEncoder() -> void +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.TimeUnit(Adaptive.Cluster.Codecs.ClusterTimeUnit value) -> Adaptive.Cluster.Codecs.SnapshotMarkerEncoder +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.TypeId(long value) -> Adaptive.Cluster.Codecs.SnapshotMarkerEncoder +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.SnapshotMarkerEncoder +Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.SnapshotMarkerEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder._limit -> int +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder._offset -> int +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.Limit() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.Offset() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.RequestMemberId() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.SnapshotRecordingQueryDecoder() -> void +Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder._limit -> int +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder._offset -> int +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.Limit() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.Offset() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.RequestMemberId(int value) -> Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.SnapshotRecordingQueryEncoder() -> void +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder._limit -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder._offset -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.GetMemberEndpoints(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.GetMemberEndpoints(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.Limit() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.MemberEndpoints() -> string +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.MemberEndpointsLength() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.Offset() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotRecordingsDecoder() -> void +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.Snapshots() -> Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.ActingBlockLength() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.Count() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.HasNext() -> bool +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.Next() -> Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.RecordingId() -> long +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.ServiceId() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.SnapshotsDecoder() -> void +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TermBaseLogPosition() -> long +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.Timestamp() -> long +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.Wrap(Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder parentMessage, Adaptive.Agrona.IDirectBuffer buffer) -> void +Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder._limit -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder._offset -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.Limit() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.MemberEndpoints(string value) -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.Offset() -> int +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.PutMemberEndpoints(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.PutMemberEndpoints(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotRecordingsEncoder() -> void +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsCount(int count) -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.Next() -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.RecordingId(long value) -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.ServiceId(int value) -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.SnapshotsEncoder() -> void +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.TermBaseLogPosition(long value) -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.Timestamp(long value) -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.Wrap(Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder parentMessage, Adaptive.Agrona.IMutableDirectBuffer buffer, int count) -> void +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder +Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder +Adaptive.Cluster.Codecs.StandbySnapshotDecoder +Adaptive.Cluster.Codecs.StandbySnapshotDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder._limit -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder._offset -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.EncodedCredentialsLength() -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.GetEncodedCredentials(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.GetEncodedCredentials(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.GetResponseChannel(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.GetResponseChannel(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.Limit() -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.Offset() -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseChannel() -> string +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseChannelLength() -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseStreamId() -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.Snapshots() -> Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ActingBlockLength() -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ArchiveEndpoint() -> string +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ArchiveEndpointLength() -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.Count() -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.GetArchiveEndpoint(Adaptive.Agrona.IMutableDirectBuffer dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.GetArchiveEndpoint(byte[] dst, int dstOffset, int length) -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.HasNext() -> bool +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.Next() -> Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.RecordingId() -> long +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ServiceId() -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.SnapshotsDecoder() -> void +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TermBaseLogPosition() -> long +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.Timestamp() -> long +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.Wrap(Adaptive.Cluster.Codecs.StandbySnapshotDecoder parentMessage, Adaptive.Agrona.IDirectBuffer buffer) -> void +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.StandbySnapshotDecoder() -> void +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.Version() -> int +Adaptive.Cluster.Codecs.StandbySnapshotDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.StandbySnapshotDecoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder._limit -> int +Adaptive.Cluster.Codecs.StandbySnapshotEncoder._offset -> int +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.Limit() -> int +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.Offset() -> int +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.PutEncodedCredentials(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.PutEncodedCredentials(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.PutResponseChannel(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.PutResponseChannel(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.ResponseChannel(string value) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.ResponseStreamId(int value) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsCount(int count) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.ArchiveEndpoint(string value) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.Next() -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.PutArchiveEndpoint(Adaptive.Agrona.IDirectBuffer src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.PutArchiveEndpoint(byte[] src, int srcOffset, int length) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.RecordingId(long value) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.ServiceId(int value) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.SnapshotsEncoder() -> void +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.TermBaseLogPosition(long value) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.Timestamp(long value) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.Wrap(Adaptive.Cluster.Codecs.StandbySnapshotEncoder parentMessage, Adaptive.Agrona.IMutableDirectBuffer buffer, int count) -> void +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.StandbySnapshotEncoder() -> void +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.Version(int value) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder +Adaptive.Cluster.Codecs.StandbySnapshotEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.StandbySnapshotEncoder +Adaptive.Cluster.Codecs.StopCatchupDecoder +Adaptive.Cluster.Codecs.StopCatchupDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.StopCatchupDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.StopCatchupDecoder._limit -> int +Adaptive.Cluster.Codecs.StopCatchupDecoder._offset -> int +Adaptive.Cluster.Codecs.StopCatchupDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.StopCatchupDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.StopCatchupDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.StopCatchupDecoder.FollowerMemberId() -> int +Adaptive.Cluster.Codecs.StopCatchupDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.StopCatchupDecoder.Limit() -> int +Adaptive.Cluster.Codecs.StopCatchupDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.StopCatchupDecoder.Offset() -> int +Adaptive.Cluster.Codecs.StopCatchupDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.StopCatchupDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.StopCatchupDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.StopCatchupDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.StopCatchupDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.StopCatchupDecoder.StopCatchupDecoder() -> void +Adaptive.Cluster.Codecs.StopCatchupDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.StopCatchupDecoder +Adaptive.Cluster.Codecs.StopCatchupEncoder +Adaptive.Cluster.Codecs.StopCatchupEncoder._limit -> int +Adaptive.Cluster.Codecs.StopCatchupEncoder._offset -> int +Adaptive.Cluster.Codecs.StopCatchupEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.StopCatchupEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.StopCatchupEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.StopCatchupEncoder.FollowerMemberId(int value) -> Adaptive.Cluster.Codecs.StopCatchupEncoder +Adaptive.Cluster.Codecs.StopCatchupEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.StopCatchupEncoder +Adaptive.Cluster.Codecs.StopCatchupEncoder.Limit() -> int +Adaptive.Cluster.Codecs.StopCatchupEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.StopCatchupEncoder.Offset() -> int +Adaptive.Cluster.Codecs.StopCatchupEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.StopCatchupEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.StopCatchupEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.StopCatchupEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.StopCatchupEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.StopCatchupEncoder.StopCatchupEncoder() -> void +Adaptive.Cluster.Codecs.StopCatchupEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.StopCatchupEncoder +Adaptive.Cluster.Codecs.StopCatchupEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.StopCatchupEncoder +Adaptive.Cluster.Codecs.TerminationAckDecoder +Adaptive.Cluster.Codecs.TerminationAckDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.TerminationAckDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.TerminationAckDecoder._limit -> int +Adaptive.Cluster.Codecs.TerminationAckDecoder._offset -> int +Adaptive.Cluster.Codecs.TerminationAckDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.TerminationAckDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.TerminationAckDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.TerminationAckDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.TerminationAckDecoder.Limit() -> int +Adaptive.Cluster.Codecs.TerminationAckDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.TerminationAckDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.TerminationAckDecoder.MemberId() -> int +Adaptive.Cluster.Codecs.TerminationAckDecoder.Offset() -> int +Adaptive.Cluster.Codecs.TerminationAckDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.TerminationAckDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.TerminationAckDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.TerminationAckDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.TerminationAckDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.TerminationAckDecoder.TerminationAckDecoder() -> void +Adaptive.Cluster.Codecs.TerminationAckDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.TerminationAckDecoder +Adaptive.Cluster.Codecs.TerminationAckEncoder +Adaptive.Cluster.Codecs.TerminationAckEncoder._limit -> int +Adaptive.Cluster.Codecs.TerminationAckEncoder._offset -> int +Adaptive.Cluster.Codecs.TerminationAckEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.TerminationAckEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.TerminationAckEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.TerminationAckEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.TerminationAckEncoder +Adaptive.Cluster.Codecs.TerminationAckEncoder.Limit() -> int +Adaptive.Cluster.Codecs.TerminationAckEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.TerminationAckEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.TerminationAckEncoder +Adaptive.Cluster.Codecs.TerminationAckEncoder.MemberId(int value) -> Adaptive.Cluster.Codecs.TerminationAckEncoder +Adaptive.Cluster.Codecs.TerminationAckEncoder.Offset() -> int +Adaptive.Cluster.Codecs.TerminationAckEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.TerminationAckEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.TerminationAckEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.TerminationAckEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.TerminationAckEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.TerminationAckEncoder.TerminationAckEncoder() -> void +Adaptive.Cluster.Codecs.TerminationAckEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.TerminationAckEncoder +Adaptive.Cluster.Codecs.TerminationAckEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.TerminationAckEncoder +Adaptive.Cluster.Codecs.TerminationPositionDecoder +Adaptive.Cluster.Codecs.TerminationPositionDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.TerminationPositionDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.TerminationPositionDecoder._limit -> int +Adaptive.Cluster.Codecs.TerminationPositionDecoder._offset -> int +Adaptive.Cluster.Codecs.TerminationPositionDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.TerminationPositionDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.TerminationPositionDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.TerminationPositionDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.TerminationPositionDecoder.Limit() -> int +Adaptive.Cluster.Codecs.TerminationPositionDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.TerminationPositionDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.TerminationPositionDecoder.Offset() -> int +Adaptive.Cluster.Codecs.TerminationPositionDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.TerminationPositionDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.TerminationPositionDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.TerminationPositionDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.TerminationPositionDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.TerminationPositionDecoder.TerminationPositionDecoder() -> void +Adaptive.Cluster.Codecs.TerminationPositionDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.TerminationPositionDecoder +Adaptive.Cluster.Codecs.TerminationPositionEncoder +Adaptive.Cluster.Codecs.TerminationPositionEncoder._limit -> int +Adaptive.Cluster.Codecs.TerminationPositionEncoder._offset -> int +Adaptive.Cluster.Codecs.TerminationPositionEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.TerminationPositionEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.TerminationPositionEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.TerminationPositionEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.TerminationPositionEncoder +Adaptive.Cluster.Codecs.TerminationPositionEncoder.Limit() -> int +Adaptive.Cluster.Codecs.TerminationPositionEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.TerminationPositionEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.TerminationPositionEncoder +Adaptive.Cluster.Codecs.TerminationPositionEncoder.Offset() -> int +Adaptive.Cluster.Codecs.TerminationPositionEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.TerminationPositionEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.TerminationPositionEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.TerminationPositionEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.TerminationPositionEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.TerminationPositionEncoder.TerminationPositionEncoder() -> void +Adaptive.Cluster.Codecs.TerminationPositionEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.TerminationPositionEncoder +Adaptive.Cluster.Codecs.TerminationPositionEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.TerminationPositionEncoder +Adaptive.Cluster.Codecs.TimerDecoder +Adaptive.Cluster.Codecs.TimerDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.TimerDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.TimerDecoder._limit -> int +Adaptive.Cluster.Codecs.TimerDecoder._offset -> int +Adaptive.Cluster.Codecs.TimerDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.TimerDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.TimerDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.TimerDecoder.Deadline() -> long +Adaptive.Cluster.Codecs.TimerDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.TimerDecoder.Limit() -> int +Adaptive.Cluster.Codecs.TimerDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.TimerDecoder.Offset() -> int +Adaptive.Cluster.Codecs.TimerDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.TimerDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.TimerDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.TimerDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.TimerDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.TimerDecoder.TimerDecoder() -> void +Adaptive.Cluster.Codecs.TimerDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.TimerDecoder +Adaptive.Cluster.Codecs.TimerEncoder +Adaptive.Cluster.Codecs.TimerEncoder._limit -> int +Adaptive.Cluster.Codecs.TimerEncoder._offset -> int +Adaptive.Cluster.Codecs.TimerEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.TimerEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.TimerEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.TimerEncoder +Adaptive.Cluster.Codecs.TimerEncoder.Deadline(long value) -> Adaptive.Cluster.Codecs.TimerEncoder +Adaptive.Cluster.Codecs.TimerEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.TimerEncoder.Limit() -> int +Adaptive.Cluster.Codecs.TimerEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.TimerEncoder.Offset() -> int +Adaptive.Cluster.Codecs.TimerEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.TimerEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.TimerEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.TimerEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.TimerEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.TimerEncoder.TimerEncoder() -> void +Adaptive.Cluster.Codecs.TimerEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.TimerEncoder +Adaptive.Cluster.Codecs.TimerEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.TimerEncoder +Adaptive.Cluster.Codecs.TimerEventDecoder +Adaptive.Cluster.Codecs.TimerEventDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.TimerEventDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.TimerEventDecoder._limit -> int +Adaptive.Cluster.Codecs.TimerEventDecoder._offset -> int +Adaptive.Cluster.Codecs.TimerEventDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.TimerEventDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.TimerEventDecoder.CorrelationId() -> long +Adaptive.Cluster.Codecs.TimerEventDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.TimerEventDecoder.LeadershipTermId() -> long +Adaptive.Cluster.Codecs.TimerEventDecoder.Limit() -> int +Adaptive.Cluster.Codecs.TimerEventDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.TimerEventDecoder.Offset() -> int +Adaptive.Cluster.Codecs.TimerEventDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.TimerEventDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.TimerEventDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.TimerEventDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.TimerEventDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.TimerEventDecoder.TimerEventDecoder() -> void +Adaptive.Cluster.Codecs.TimerEventDecoder.Timestamp() -> long +Adaptive.Cluster.Codecs.TimerEventDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.TimerEventDecoder +Adaptive.Cluster.Codecs.TimerEventEncoder +Adaptive.Cluster.Codecs.TimerEventEncoder._limit -> int +Adaptive.Cluster.Codecs.TimerEventEncoder._offset -> int +Adaptive.Cluster.Codecs.TimerEventEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.TimerEventEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.TimerEventEncoder.CorrelationId(long value) -> Adaptive.Cluster.Codecs.TimerEventEncoder +Adaptive.Cluster.Codecs.TimerEventEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.TimerEventEncoder.LeadershipTermId(long value) -> Adaptive.Cluster.Codecs.TimerEventEncoder +Adaptive.Cluster.Codecs.TimerEventEncoder.Limit() -> int +Adaptive.Cluster.Codecs.TimerEventEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.TimerEventEncoder.Offset() -> int +Adaptive.Cluster.Codecs.TimerEventEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.TimerEventEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.TimerEventEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.TimerEventEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.TimerEventEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.TimerEventEncoder.TimerEventEncoder() -> void +Adaptive.Cluster.Codecs.TimerEventEncoder.Timestamp(long value) -> Adaptive.Cluster.Codecs.TimerEventEncoder +Adaptive.Cluster.Codecs.TimerEventEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.TimerEventEncoder +Adaptive.Cluster.Codecs.TimerEventEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.TimerEventEncoder +Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder +Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.Length() -> uint +Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.Offset() -> int +Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.VarAsciiEncodingDecoder() -> void +Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder +Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder +Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.Length(uint value) -> Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder +Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.Offset() -> int +Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.VarAsciiEncodingEncoder() -> void +Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder +Adaptive.Cluster.Codecs.VarDataEncodingDecoder +Adaptive.Cluster.Codecs.VarDataEncodingDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.VarDataEncodingDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.VarDataEncodingDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.VarDataEncodingDecoder.Length() -> uint +Adaptive.Cluster.Codecs.VarDataEncodingDecoder.Offset() -> int +Adaptive.Cluster.Codecs.VarDataEncodingDecoder.VarDataEncodingDecoder() -> void +Adaptive.Cluster.Codecs.VarDataEncodingDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.VarDataEncodingDecoder +Adaptive.Cluster.Codecs.VarDataEncodingEncoder +Adaptive.Cluster.Codecs.VarDataEncodingEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.VarDataEncodingEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.VarDataEncodingEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.VarDataEncodingEncoder.Length(uint value) -> Adaptive.Cluster.Codecs.VarDataEncodingEncoder +Adaptive.Cluster.Codecs.VarDataEncodingEncoder.Offset() -> int +Adaptive.Cluster.Codecs.VarDataEncodingEncoder.VarDataEncodingEncoder() -> void +Adaptive.Cluster.Codecs.VarDataEncodingEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.VarDataEncodingEncoder +Adaptive.Cluster.Codecs.VoteDecoder +Adaptive.Cluster.Codecs.VoteDecoder._actingBlockLength -> int +Adaptive.Cluster.Codecs.VoteDecoder._actingVersion -> int +Adaptive.Cluster.Codecs.VoteDecoder._limit -> int +Adaptive.Cluster.Codecs.VoteDecoder._offset -> int +Adaptive.Cluster.Codecs.VoteDecoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.VoteDecoder.Buffer() -> Adaptive.Agrona.IDirectBuffer +Adaptive.Cluster.Codecs.VoteDecoder.CandidateMemberId() -> int +Adaptive.Cluster.Codecs.VoteDecoder.CandidateTermId() -> long +Adaptive.Cluster.Codecs.VoteDecoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.VoteDecoder.FollowerMemberId() -> int +Adaptive.Cluster.Codecs.VoteDecoder.Limit() -> int +Adaptive.Cluster.Codecs.VoteDecoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.VoteDecoder.LogLeadershipTermId() -> long +Adaptive.Cluster.Codecs.VoteDecoder.LogPosition() -> long +Adaptive.Cluster.Codecs.VoteDecoder.Offset() -> int +Adaptive.Cluster.Codecs.VoteDecoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.VoteDecoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.VoteDecoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.VoteDecoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.VoteDecoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.VoteDecoder.Vote() -> Adaptive.Cluster.Codecs.BooleanType +Adaptive.Cluster.Codecs.VoteDecoder.VoteDecoder() -> void +Adaptive.Cluster.Codecs.VoteDecoder.Wrap(Adaptive.Agrona.IDirectBuffer buffer, int offset, int actingBlockLength, int actingVersion) -> Adaptive.Cluster.Codecs.VoteDecoder +Adaptive.Cluster.Codecs.VoteEncoder +Adaptive.Cluster.Codecs.VoteEncoder._limit -> int +Adaptive.Cluster.Codecs.VoteEncoder._offset -> int +Adaptive.Cluster.Codecs.VoteEncoder.AppendTo(System.Text.StringBuilder builder) -> System.Text.StringBuilder +Adaptive.Cluster.Codecs.VoteEncoder.Buffer() -> Adaptive.Agrona.IMutableDirectBuffer +Adaptive.Cluster.Codecs.VoteEncoder.CandidateMemberId(int value) -> Adaptive.Cluster.Codecs.VoteEncoder +Adaptive.Cluster.Codecs.VoteEncoder.CandidateTermId(long value) -> Adaptive.Cluster.Codecs.VoteEncoder +Adaptive.Cluster.Codecs.VoteEncoder.EncodedLength() -> int +Adaptive.Cluster.Codecs.VoteEncoder.FollowerMemberId(int value) -> Adaptive.Cluster.Codecs.VoteEncoder +Adaptive.Cluster.Codecs.VoteEncoder.Limit() -> int +Adaptive.Cluster.Codecs.VoteEncoder.Limit(int limit) -> void +Adaptive.Cluster.Codecs.VoteEncoder.LogLeadershipTermId(long value) -> Adaptive.Cluster.Codecs.VoteEncoder +Adaptive.Cluster.Codecs.VoteEncoder.LogPosition(long value) -> Adaptive.Cluster.Codecs.VoteEncoder +Adaptive.Cluster.Codecs.VoteEncoder.Offset() -> int +Adaptive.Cluster.Codecs.VoteEncoder.SbeBlockLength() -> ushort +Adaptive.Cluster.Codecs.VoteEncoder.SbeSchemaId() -> ushort +Adaptive.Cluster.Codecs.VoteEncoder.SbeSchemaVersion() -> ushort +Adaptive.Cluster.Codecs.VoteEncoder.SbeSemanticType() -> string +Adaptive.Cluster.Codecs.VoteEncoder.SbeTemplateId() -> ushort +Adaptive.Cluster.Codecs.VoteEncoder.Vote(Adaptive.Cluster.Codecs.BooleanType value) -> Adaptive.Cluster.Codecs.VoteEncoder +Adaptive.Cluster.Codecs.VoteEncoder.VoteEncoder() -> void +Adaptive.Cluster.Codecs.VoteEncoder.Wrap(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset) -> Adaptive.Cluster.Codecs.VoteEncoder +Adaptive.Cluster.Codecs.VoteEncoder.WrapAndApplyHeader(Adaptive.Agrona.IMutableDirectBuffer buffer, int offset, Adaptive.Cluster.Codecs.MessageHeaderEncoder headerEncoder) -> Adaptive.Cluster.Codecs.VoteEncoder +Adaptive.Cluster.Service.ClientSessionConstants +Adaptive.Cluster.Service.ClusterCounters +Adaptive.Cluster.Service.ClusterCounters.ClusterCounters() -> void +Adaptive.Cluster.Service.ClusteredServiceContainer +Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration +Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.Configuration() -> void +Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.AeronClient() -> Adaptive.Aeron.Aeron +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.AeronClient(Adaptive.Aeron.Aeron aeron) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.AeronDirectoryName() -> string +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.AeronDirectoryName(string aeronDirectoryName) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.AppVersion() -> int +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.AppVersion(int appVersion) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.AppVersionValidator() -> Adaptive.Cluster.AppVersionValidator +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.AppVersionValidator(Adaptive.Cluster.AppVersionValidator appVersionValidator) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ArchiveContext() -> Adaptive.Archiver.AeronArchive.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ArchiveContext(Adaptive.Archiver.AeronArchive.Context archiveContext) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.Clone() -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ClusterDir() -> System.IO.DirectoryInfo +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ClusterDir(System.IO.DirectoryInfo clusterDir) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ClusterDirectoryName() -> string +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ClusterDirectoryName(string clusterDirectoryName) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ClusteredService() -> Adaptive.Cluster.Service.IClusteredService +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ClusteredService(Adaptive.Cluster.Service.IClusteredService clusteredService) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ClusterId() -> int +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ClusterId(int clusterId) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ClusterMarkFile() -> Adaptive.Cluster.ClusterMarkFile +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ClusterMarkFile(Adaptive.Cluster.ClusterMarkFile cncFile) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.Conclude() -> void +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.Concluded.get -> bool +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ConsensusModuleStreamId() -> int +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ConsensusModuleStreamId(int streamId) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.Context() -> void +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ControlChannel() -> string +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ControlChannel(string channel) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.CountedErrorHandler() -> Adaptive.Agrona.Concurrent.CountedErrorHandler +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.CountedErrorHandler(Adaptive.Agrona.Concurrent.CountedErrorHandler countedErrorHandler) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.CycleThresholdNs() -> long +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.CycleThresholdNs(long thresholdNs) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.DelegatingErrorHandler() -> Adaptive.Agrona.DelegatingErrorHandler +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.DelegatingErrorHandler(Adaptive.Agrona.DelegatingErrorHandler delegatingErrorHandler) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.DeleteDirectory() -> void +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.Dispose() -> void +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.DutyCycleTracker() -> Adaptive.Aeron.DutyCycleTracker +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.DutyCycleTracker(Adaptive.Aeron.DutyCycleTracker dutyCycleTracker) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.EpochClock() -> Adaptive.Agrona.Concurrent.IEpochClock +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.EpochClock(Adaptive.Agrona.Concurrent.IEpochClock clock) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ErrorBufferLength() -> int +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ErrorBufferLength(int errorBufferLength) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ErrorCounter() -> Adaptive.Agrona.Concurrent.Status.AtomicCounter +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ErrorCounter(Adaptive.Agrona.Concurrent.Status.AtomicCounter errorCounter) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ErrorHandler() -> Adaptive.Agrona.IErrorHandler +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ErrorHandler(Adaptive.Agrona.IErrorHandler errorHandler) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ErrorLog() -> Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ErrorLog(Adaptive.Agrona.Concurrent.Errors.DistinctErrorLog errorLog) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.IdleStrategy() -> Adaptive.Agrona.Concurrent.IIdleStrategy +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.IdleStrategySupplier(System.Func idleStrategySupplier) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.IsRespondingService() -> bool +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.IsRespondingService(bool isRespondingService) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.LogFragmentLimit() -> int +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.LogFragmentLimit(int logFragmentLimit) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.MarkFileDir() -> System.IO.DirectoryInfo +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.MarkFileDir(System.IO.DirectoryInfo markFileDir) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.NanoClock() -> Adaptive.Agrona.Concurrent.INanoClock +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.NanoClock(Adaptive.Agrona.Concurrent.INanoClock clock) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.OwnsAeronClient() -> bool +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.OwnsAeronClient(bool ownsAeronClient) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ReplayChannel() -> string +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ReplayChannel(string channel) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ReplayStreamId() -> int +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ReplayStreamId(int streamId) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ServiceId() -> int +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ServiceId(int serviceId) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ServiceName() -> string +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ServiceName(string serviceName) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ServiceStreamId() -> int +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ServiceStreamId(int streamId) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.SnapshotChannel() -> string +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.SnapshotChannel(string channel) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.SnapshotDurationThresholdNs() -> long +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.SnapshotDurationThresholdNs(long thresholdNs) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.SnapshotDurationTracker() -> Adaptive.Cluster.Service.SnapshotDurationTracker +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.SnapshotDurationTracker(Adaptive.Cluster.Service.SnapshotDurationTracker snapshotDurationTracker) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.SnapshotStreamId() -> int +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.SnapshotStreamId(int streamId) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.StandbySnapshotEnabled() -> bool +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.StandbySnapshotEnabled(bool standbySnapshotEnabled) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.TerminationHook() -> System.Action +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.TerminationHook(System.Action terminationHook) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ThreadFactory() -> Adaptive.Agrona.Concurrent.IThreadFactory +Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ThreadFactory(Adaptive.Agrona.Concurrent.IThreadFactory threadFactory) -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Ctx() -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ClusteredServiceContainer.Dispose() -> void +Adaptive.Cluster.Service.ClusterNodeControlProperties +Adaptive.Cluster.Service.ClusterNodeControlProperties.ClusterNodeControlProperties(int memberId, int serviceStreamId, int consensusModuleStreamId, string aeronDirectoryName, string controlChannel) -> void +Adaptive.Cluster.Service.ClusterRole +Adaptive.Cluster.Service.ClusterRole.Candidate = 1 -> Adaptive.Cluster.Service.ClusterRole +Adaptive.Cluster.Service.ClusterRole.Follower = 0 -> Adaptive.Cluster.Service.ClusterRole +Adaptive.Cluster.Service.ClusterRole.Leader = 2 -> Adaptive.Cluster.Service.ClusterRole +Adaptive.Cluster.Service.ClusterTerminationException +Adaptive.Cluster.Service.ClusterTerminationException.ClusterTerminationException() -> void +Adaptive.Cluster.Service.ClusterTerminationException.ClusterTerminationException(bool isExpected) -> void +Adaptive.Cluster.Service.ClusterTerminationException.Expected.get -> bool +Adaptive.Cluster.Service.ConsensusModuleProxy +Adaptive.Cluster.Service.ConsensusModuleProxy.ClusterMembersQuery(long correlationId) -> bool +Adaptive.Cluster.Service.ConsensusModuleProxy.ConsensusModuleProxy(Adaptive.Aeron.Publication publication) -> void +Adaptive.Cluster.Service.ConsensusModuleProxy.Dispose() -> void +Adaptive.Cluster.Service.ConsensusModuleProxy.ScheduleTimer(long correlationId, long deadline) -> bool +Adaptive.Cluster.Service.ContainerClientSession +Adaptive.Cluster.Service.ContainerClientSession.Close() -> void +Adaptive.Cluster.Service.ContainerClientSession.EncodedPrincipal.get -> byte[] +Adaptive.Cluster.Service.ContainerClientSession.Id.get -> long +Adaptive.Cluster.Service.ContainerClientSession.IsClosing.get -> bool +Adaptive.Cluster.Service.ContainerClientSession.Offer(Adaptive.Aeron.DirectBufferVector[] vectors) -> long +Adaptive.Cluster.Service.ContainerClientSession.Offer(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> long +Adaptive.Cluster.Service.ContainerClientSession.ResponseChannel.get -> string +Adaptive.Cluster.Service.ContainerClientSession.ResponseStreamId.get -> int +Adaptive.Cluster.Service.ContainerClientSession.TryClaim(int length, Adaptive.Aeron.LogBuffer.BufferClaim bufferClaim) -> long +Adaptive.Cluster.Service.IClientSession +Adaptive.Cluster.Service.IClientSession.Close() -> void +Adaptive.Cluster.Service.IClientSession.EncodedPrincipal.get -> byte[] +Adaptive.Cluster.Service.IClientSession.Id.get -> long +Adaptive.Cluster.Service.IClientSession.IsClosing.get -> bool +Adaptive.Cluster.Service.IClientSession.Offer(Adaptive.Aeron.DirectBufferVector[] vectors) -> long +Adaptive.Cluster.Service.IClientSession.Offer(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> long +Adaptive.Cluster.Service.IClientSession.ResponseChannel.get -> string +Adaptive.Cluster.Service.IClientSession.ResponseStreamId.get -> int +Adaptive.Cluster.Service.IClientSession.TryClaim(int length, Adaptive.Aeron.LogBuffer.BufferClaim bufferClaim) -> long +Adaptive.Cluster.Service.ICluster +Adaptive.Cluster.Service.ICluster.Aeron.get -> Adaptive.Aeron.Aeron +Adaptive.Cluster.Service.ICluster.CancelTimer(long correlationId) -> bool +Adaptive.Cluster.Service.ICluster.ClientSessions.get -> System.Collections.Generic.ICollection +Adaptive.Cluster.Service.ICluster.CloseClientSession(long clusterSessionId) -> bool +Adaptive.Cluster.Service.ICluster.Context.get -> Adaptive.Cluster.Service.ClusteredServiceContainer.Context +Adaptive.Cluster.Service.ICluster.ForEachClientSession(System.Action action) -> void +Adaptive.Cluster.Service.ICluster.GetClientSession(long clusterSessionId) -> Adaptive.Cluster.Service.IClientSession +Adaptive.Cluster.Service.ICluster.IdleStrategy() -> Adaptive.Agrona.Concurrent.IIdleStrategy +Adaptive.Cluster.Service.ICluster.LogPosition() -> long +Adaptive.Cluster.Service.ICluster.MemberId.get -> int +Adaptive.Cluster.Service.ICluster.Offer(Adaptive.Aeron.DirectBufferVector[] vectors) -> long +Adaptive.Cluster.Service.ICluster.Offer(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> long +Adaptive.Cluster.Service.ICluster.Role.get -> Adaptive.Cluster.Service.ClusterRole +Adaptive.Cluster.Service.ICluster.ScheduleTimer(long correlationId, long deadline) -> bool +Adaptive.Cluster.Service.ICluster.Time.get -> long +Adaptive.Cluster.Service.ICluster.TimeUnit() -> Adaptive.Cluster.Codecs.ClusterTimeUnit +Adaptive.Cluster.Service.ICluster.TryClaim(int length, Adaptive.Aeron.LogBuffer.BufferClaim bufferClaim) -> long +Adaptive.Cluster.Service.IClusteredService +Adaptive.Cluster.Service.IClusteredService.DoBackgroundWork(long nowNs) -> int +Adaptive.Cluster.Service.IClusteredService.OnNewLeadershipTermEvent(long leadershipTermId, long logPosition, long timestamp, long termBaseLogPosition, int leaderMemberId, int logSessionId, Adaptive.Cluster.Codecs.ClusterTimeUnit timeUnit, int appVersion) -> void +Adaptive.Cluster.Service.IClusteredService.OnRoleChange(Adaptive.Cluster.Service.ClusterRole newRole) -> void +Adaptive.Cluster.Service.IClusteredService.OnSessionClose(Adaptive.Cluster.Service.IClientSession session, long timestamp, Adaptive.Cluster.Codecs.CloseReason closeReason) -> void +Adaptive.Cluster.Service.IClusteredService.OnSessionMessage(Adaptive.Cluster.Service.IClientSession session, long timestamp, Adaptive.Agrona.IDirectBuffer buffer, int offset, int length, Adaptive.Aeron.LogBuffer.Header header) -> void +Adaptive.Cluster.Service.IClusteredService.OnSessionOpen(Adaptive.Cluster.Service.IClientSession session, long timestamp) -> void +Adaptive.Cluster.Service.IClusteredService.OnStart(Adaptive.Cluster.Service.ICluster cluster, Adaptive.Aeron.Image snapshotImage) -> void +Adaptive.Cluster.Service.IClusteredService.OnTakeSnapshot(Adaptive.Aeron.ExclusivePublication snapshotPublication) -> void +Adaptive.Cluster.Service.IClusteredService.OnTerminate(Adaptive.Cluster.Service.ICluster cluster) -> void +Adaptive.Cluster.Service.IClusteredService.OnTimerEvent(long correlationId, long timestamp) -> void +Adaptive.Cluster.Service.RecoveryState +Adaptive.Cluster.Service.SnapshotDurationTracker +Adaptive.Cluster.Service.SnapshotDurationTracker.MaxSnapshotDuration() -> Adaptive.Agrona.Concurrent.Status.AtomicCounter +Adaptive.Cluster.Service.SnapshotDurationTracker.OnSnapshotBegin(long timeNanos) -> void +Adaptive.Cluster.Service.SnapshotDurationTracker.OnSnapshotEnd(long timeNanos) -> void +Adaptive.Cluster.Service.SnapshotDurationTracker.SnapshotDurationThresholdExceededCount() -> Adaptive.Agrona.Concurrent.Status.AtomicCounter +Adaptive.Cluster.Service.SnapshotDurationTracker.SnapshotDurationTracker(Adaptive.Agrona.Concurrent.Status.AtomicCounter maxSnapshotDuration, Adaptive.Agrona.Concurrent.Status.AtomicCounter snapshotDurationThresholdExceededCount, long durationThresholdNs) -> void +Adaptive.Cluster.Service.SnapshotTaker +Adaptive.Cluster.Service.SnapshotTaker.CheckResultAndIdle(long position) -> void +Adaptive.Cluster.Service.SnapshotTaker.MarkBegin(long snapshotTypeId, long logPosition, long leadershipTermId, int snapshotIndex, Adaptive.Cluster.Codecs.ClusterTimeUnit timeUnit, int appVersion) -> void +Adaptive.Cluster.Service.SnapshotTaker.MarkEnd(long snapshotTypeId, long logPosition, long leadershipTermId, int snapshotIndex, Adaptive.Cluster.Codecs.ClusterTimeUnit timeUnit, int appVersion) -> void +Adaptive.Cluster.Service.SnapshotTaker.MarkSnapshot(long snapshotTypeId, long logPosition, long leadershipTermId, int snapshotIndex, Adaptive.Cluster.Codecs.SnapshotMark snapshotMark, Adaptive.Cluster.Codecs.ClusterTimeUnit timeUnit, int appVersion) -> void +Adaptive.Cluster.Service.SnapshotTaker.Offer(Adaptive.Agrona.IDirectBuffer buffer, int offset, int length) -> void +Adaptive.Cluster.Service.SnapshotTaker.SnapshotTaker(Adaptive.Aeron.ExclusivePublication publication, Adaptive.Agrona.Concurrent.IIdleStrategy idleStrategy, Adaptive.Agrona.Concurrent.AgentInvoker aeronAgentInvoker) -> void +const Adaptive.Cluster.Client.AeronCluster.Configuration.CLIENT_NAME_PROP_NAME = "aeron.cluster.client.name" -> string +const Adaptive.Cluster.Client.AeronCluster.Configuration.EGRESS_CHANNEL_DEFAULT = null -> string +const Adaptive.Cluster.Client.AeronCluster.Configuration.EGRESS_CHANNEL_PROP_NAME = "aeron.cluster.egress.channel" -> string +const Adaptive.Cluster.Client.AeronCluster.Configuration.EGRESS_STREAM_ID_DEFAULT = 102 -> int +const Adaptive.Cluster.Client.AeronCluster.Configuration.EGRESS_STREAM_ID_PROP_NAME = "aeron.cluster.egress.stream.id" -> string +const Adaptive.Cluster.Client.AeronCluster.Configuration.INGRESS_CHANNEL_DEFAULT = null -> string +const Adaptive.Cluster.Client.AeronCluster.Configuration.INGRESS_CHANNEL_PROP_NAME = "aeron.cluster.ingress.channel" -> string +const Adaptive.Cluster.Client.AeronCluster.Configuration.INGRESS_ENDPOINTS_DEFAULT = null -> string +const Adaptive.Cluster.Client.AeronCluster.Configuration.INGRESS_ENDPOINTS_PROP_NAME = "aeron.cluster.ingress.endpoints" -> string +const Adaptive.Cluster.Client.AeronCluster.Configuration.INGRESS_STREAM_ID_DEFAULT = 101 -> int +const Adaptive.Cluster.Client.AeronCluster.Configuration.INGRESS_STREAM_ID_PROP_NAME = "aeron.cluster.ingress.stream.id" -> string +const Adaptive.Cluster.Client.AeronCluster.Configuration.LEADER_HEARTBEAT_TIMEOUT_DEFAULT_NS = 10000000000 -> long +const Adaptive.Cluster.Client.AeronCluster.Configuration.MESSAGE_TIMEOUT_PROP_NAME = "aeron.cluster.message.timeout" -> string +const Adaptive.Cluster.Client.AeronCluster.Configuration.PROTOCOL_MAJOR_VERSION = 0 -> int +const Adaptive.Cluster.Client.AeronCluster.Configuration.PROTOCOL_MINOR_VERSION = 3 -> int +const Adaptive.Cluster.Client.AeronCluster.Configuration.PROTOCOL_PATCH_VERSION = 0 -> int +const Adaptive.Cluster.ClusterMarkFile.ERROR_BUFFER_MAX_LENGTH = 2147475455 -> int +const Adaptive.Cluster.ClusterMarkFile.ERROR_BUFFER_MIN_LENGTH = 1048576 -> int +const Adaptive.Cluster.ClusterMarkFile.FILE_EXTENSION = ".dat" -> string +const Adaptive.Cluster.ClusterMarkFile.FILENAME = "cluster-mark.dat" -> string +const Adaptive.Cluster.ClusterMarkFile.HEADER_LENGTH = 8192 -> int +const Adaptive.Cluster.ClusterMarkFile.LINK_FILE_EXTENSION = ".lnk" -> string +const Adaptive.Cluster.ClusterMarkFile.LINK_FILENAME = "cluster-mark.lnk" -> string +const Adaptive.Cluster.ClusterMarkFile.MAJOR_VERSION = 0 -> int +const Adaptive.Cluster.ClusterMarkFile.MINOR_VERSION = 3 -> int +const Adaptive.Cluster.ClusterMarkFile.PATCH_VERSION = 0 -> int +const Adaptive.Cluster.ClusterMarkFile.SERVICE_FILENAME_PREFIX = "cluster-mark-service-" -> string +const Adaptive.Cluster.ClusterMarkFile.VERSION_FAILED = -1 -> int +const Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.TEMPLATE_ID = 70 -> ushort +const Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.TEMPLATE_ID = 70 -> ushort +const Adaptive.Cluster.Codecs.AdminRequestDecoder.BLOCK_LENGTH = 28 -> ushort +const Adaptive.Cluster.Codecs.AdminRequestDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.AdminRequestDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.AdminRequestDecoder.TEMPLATE_ID = 26 -> ushort +const Adaptive.Cluster.Codecs.AdminRequestEncoder.BLOCK_LENGTH = 28 -> ushort +const Adaptive.Cluster.Codecs.AdminRequestEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.AdminRequestEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.AdminRequestEncoder.TEMPLATE_ID = 26 -> ushort +const Adaptive.Cluster.Codecs.AdminResponseDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Cluster.Codecs.AdminResponseDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.AdminResponseDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.AdminResponseDecoder.TEMPLATE_ID = 27 -> ushort +const Adaptive.Cluster.Codecs.AdminResponseEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Cluster.Codecs.AdminResponseEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.AdminResponseEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.AdminResponseEncoder.TEMPLATE_ID = 27 -> ushort +const Adaptive.Cluster.Codecs.AppendPositionDecoder.BLOCK_LENGTH = 21 -> ushort +const Adaptive.Cluster.Codecs.AppendPositionDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.AppendPositionDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.AppendPositionDecoder.TEMPLATE_ID = 54 -> ushort +const Adaptive.Cluster.Codecs.AppendPositionEncoder.BLOCK_LENGTH = 21 -> ushort +const Adaptive.Cluster.Codecs.AppendPositionEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.AppendPositionEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.AppendPositionEncoder.TEMPLATE_ID = 54 -> ushort +const Adaptive.Cluster.Codecs.BackupQueryDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.BackupQueryDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.BackupQueryDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.BackupQueryDecoder.TEMPLATE_ID = 77 -> ushort +const Adaptive.Cluster.Codecs.BackupQueryEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.BackupQueryEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.BackupQueryEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.BackupQueryEncoder.TEMPLATE_ID = 77 -> ushort +const Adaptive.Cluster.Codecs.BackupResponseDecoder.BLOCK_LENGTH = 60 -> ushort +const Adaptive.Cluster.Codecs.BackupResponseDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.BackupResponseDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.BackupResponseDecoder.TEMPLATE_ID = 78 -> ushort +const Adaptive.Cluster.Codecs.BackupResponseEncoder.BLOCK_LENGTH = 60 -> ushort +const Adaptive.Cluster.Codecs.BackupResponseEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.BackupResponseEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.BackupResponseEncoder.TEMPLATE_ID = 78 -> ushort +const Adaptive.Cluster.Codecs.CancelTimerDecoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.CancelTimerDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.CancelTimerDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.CancelTimerDecoder.TEMPLATE_ID = 32 -> ushort +const Adaptive.Cluster.Codecs.CancelTimerEncoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.CancelTimerEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.CancelTimerEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.CancelTimerEncoder.TEMPLATE_ID = 32 -> ushort +const Adaptive.Cluster.Codecs.CanvassPositionDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Cluster.Codecs.CanvassPositionDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.CanvassPositionDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.CanvassPositionDecoder.TEMPLATE_ID = 50 -> ushort +const Adaptive.Cluster.Codecs.CanvassPositionEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Cluster.Codecs.CanvassPositionEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.CanvassPositionEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.CanvassPositionEncoder.TEMPLATE_ID = 50 -> ushort +const Adaptive.Cluster.Codecs.CatchupPositionDecoder.BLOCK_LENGTH = 20 -> ushort +const Adaptive.Cluster.Codecs.CatchupPositionDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.CatchupPositionDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.CatchupPositionDecoder.TEMPLATE_ID = 56 -> ushort +const Adaptive.Cluster.Codecs.CatchupPositionEncoder.BLOCK_LENGTH = 20 -> ushort +const Adaptive.Cluster.Codecs.CatchupPositionEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.CatchupPositionEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.CatchupPositionEncoder.TEMPLATE_ID = 56 -> ushort +const Adaptive.Cluster.Codecs.ChallengeDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.ChallengeDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ChallengeDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ChallengeDecoder.TEMPLATE_ID = 7 -> ushort +const Adaptive.Cluster.Codecs.ChallengeEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.ChallengeEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ChallengeEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ChallengeEncoder.TEMPLATE_ID = 7 -> ushort +const Adaptive.Cluster.Codecs.ChallengeResponseDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.ChallengeResponseDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ChallengeResponseDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ChallengeResponseDecoder.TEMPLATE_ID = 8 -> ushort +const Adaptive.Cluster.Codecs.ChallengeResponseEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.ChallengeResponseEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ChallengeResponseEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ChallengeResponseEncoder.TEMPLATE_ID = 8 -> ushort +const Adaptive.Cluster.Codecs.ClientSessionDecoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.ClientSessionDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClientSessionDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClientSessionDecoder.TEMPLATE_ID = 102 -> ushort +const Adaptive.Cluster.Codecs.ClientSessionEncoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.ClientSessionEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClientSessionEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClientSessionEncoder.TEMPLATE_ID = 102 -> ushort +const Adaptive.Cluster.Codecs.CloseSessionDecoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.CloseSessionDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.CloseSessionDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.CloseSessionDecoder.TEMPLATE_ID = 30 -> ushort +const Adaptive.Cluster.Codecs.CloseSessionEncoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.CloseSessionEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.CloseSessionEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.CloseSessionEncoder.TEMPLATE_ID = 30 -> ushort +const Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.TEMPLATE_ID = 23 -> ushort +const Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.TEMPLATE_ID = 23 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.TEMPLATE_ID = 71 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.TEMPLATE_ID = 71 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersDecoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersDecoder.TEMPLATE_ID = 106 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersEncoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersEncoder.TEMPLATE_ID = 106 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.TEMPLATE_ID = 43 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.TEMPLATE_ID = 43 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.TEMPLATE_ID = 34 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.TEMPLATE_ID = 34 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.TEMPLATE_ID = 41 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.TEMPLATE_ID = 41 -> ushort +const Adaptive.Cluster.Codecs.ClusterSessionDecoder.BLOCK_LENGTH = 40 -> ushort +const Adaptive.Cluster.Codecs.ClusterSessionDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterSessionDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterSessionDecoder.TEMPLATE_ID = 103 -> ushort +const Adaptive.Cluster.Codecs.ClusterSessionEncoder.BLOCK_LENGTH = 40 -> ushort +const Adaptive.Cluster.Codecs.ClusterSessionEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ClusterSessionEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ClusterSessionEncoder.TEMPLATE_ID = 103 -> ushort +const Adaptive.Cluster.Codecs.CommitPositionDecoder.BLOCK_LENGTH = 20 -> ushort +const Adaptive.Cluster.Codecs.CommitPositionDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.CommitPositionDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.CommitPositionDecoder.TEMPLATE_ID = 55 -> ushort +const Adaptive.Cluster.Codecs.CommitPositionEncoder.BLOCK_LENGTH = 20 -> ushort +const Adaptive.Cluster.Codecs.CommitPositionEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.CommitPositionEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.CommitPositionEncoder.TEMPLATE_ID = 55 -> ushort +const Adaptive.Cluster.Codecs.ConsensusModuleDecoder.BLOCK_LENGTH = 28 -> ushort +const Adaptive.Cluster.Codecs.ConsensusModuleDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ConsensusModuleDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ConsensusModuleDecoder.TEMPLATE_ID = 105 -> ushort +const Adaptive.Cluster.Codecs.ConsensusModuleEncoder.BLOCK_LENGTH = 28 -> ushort +const Adaptive.Cluster.Codecs.ConsensusModuleEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ConsensusModuleEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ConsensusModuleEncoder.TEMPLATE_ID = 105 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.TEMPLATE_ID = 79 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.TEMPLATE_ID = 79 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.TEMPLATE_ID = 80 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.TEMPLATE_ID = 80 -> ushort +const Adaptive.Cluster.Codecs.JoinClusterDecoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.JoinClusterDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.JoinClusterDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.JoinClusterDecoder.TEMPLATE_ID = 74 -> ushort +const Adaptive.Cluster.Codecs.JoinClusterEncoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.JoinClusterEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.JoinClusterEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.JoinClusterEncoder.TEMPLATE_ID = 74 -> ushort +const Adaptive.Cluster.Codecs.JoinLogDecoder.BLOCK_LENGTH = 36 -> ushort +const Adaptive.Cluster.Codecs.JoinLogDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.JoinLogDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.JoinLogDecoder.TEMPLATE_ID = 40 -> ushort +const Adaptive.Cluster.Codecs.JoinLogEncoder.BLOCK_LENGTH = 36 -> ushort +const Adaptive.Cluster.Codecs.JoinLogEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.JoinLogEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.JoinLogEncoder.TEMPLATE_ID = 40 -> ushort +const Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.BLOCK_LENGTH = 128 -> ushort +const Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.SCHEMA_ID = 110 -> ushort +const Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.SCHEMA_VERSION = 2 -> ushort +const Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.TEMPLATE_ID = 200 -> ushort +const Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.BLOCK_LENGTH = 128 -> ushort +const Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.SCHEMA_ID = 110 -> ushort +const Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.SCHEMA_VERSION = 2 -> ushort +const Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.TEMPLATE_ID = 200 -> ushort +const Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.BLOCK_LENGTH = 40 -> ushort +const Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.TEMPLATE_ID = 25 -> ushort +const Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.BLOCK_LENGTH = 40 -> ushort +const Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.TEMPLATE_ID = 25 -> ushort +const Adaptive.Cluster.Codecs.MessageHeaderDecoder.SCHEMA_ID = 111 -> int +const Adaptive.Cluster.Codecs.NewLeaderEventDecoder.BLOCK_LENGTH = 20 -> ushort +const Adaptive.Cluster.Codecs.NewLeaderEventDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.NewLeaderEventDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.NewLeaderEventDecoder.TEMPLATE_ID = 6 -> ushort +const Adaptive.Cluster.Codecs.NewLeaderEventEncoder.BLOCK_LENGTH = 20 -> ushort +const Adaptive.Cluster.Codecs.NewLeaderEventEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.NewLeaderEventEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.NewLeaderEventEncoder.TEMPLATE_ID = 6 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.BLOCK_LENGTH = 88 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TEMPLATE_ID = 53 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.BLOCK_LENGTH = 88 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.TEMPLATE_ID = 53 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.BLOCK_LENGTH = 48 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TEMPLATE_ID = 24 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.BLOCK_LENGTH = 48 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TEMPLATE_ID = 24 -> ushort +const Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.TEMPLATE_ID = 107 -> ushort +const Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.TEMPLATE_ID = 107 -> ushort +const Adaptive.Cluster.Codecs.RemoveMemberDecoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.RemoveMemberDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.RemoveMemberDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.RemoveMemberDecoder.TEMPLATE_ID = 35 -> ushort +const Adaptive.Cluster.Codecs.RemoveMemberEncoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.RemoveMemberEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.RemoveMemberEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.RemoveMemberEncoder.TEMPLATE_ID = 35 -> ushort +const Adaptive.Cluster.Codecs.RequestServiceAckDecoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.RequestServiceAckDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.RequestServiceAckDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.RequestServiceAckDecoder.TEMPLATE_ID = 108 -> ushort +const Adaptive.Cluster.Codecs.RequestServiceAckEncoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.RequestServiceAckEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.RequestServiceAckEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.RequestServiceAckEncoder.TEMPLATE_ID = 108 -> ushort +const Adaptive.Cluster.Codecs.RequestVoteDecoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Cluster.Codecs.RequestVoteDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.RequestVoteDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.RequestVoteDecoder.TEMPLATE_ID = 51 -> ushort +const Adaptive.Cluster.Codecs.RequestVoteEncoder.BLOCK_LENGTH = 32 -> ushort +const Adaptive.Cluster.Codecs.RequestVoteEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.RequestVoteEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.RequestVoteEncoder.TEMPLATE_ID = 51 -> ushort +const Adaptive.Cluster.Codecs.ScheduleTimerDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.ScheduleTimerDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ScheduleTimerDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ScheduleTimerDecoder.TEMPLATE_ID = 31 -> ushort +const Adaptive.Cluster.Codecs.ScheduleTimerEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.ScheduleTimerEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ScheduleTimerEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ScheduleTimerEncoder.TEMPLATE_ID = 31 -> ushort +const Adaptive.Cluster.Codecs.ServiceAckDecoder.BLOCK_LENGTH = 36 -> ushort +const Adaptive.Cluster.Codecs.ServiceAckDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ServiceAckDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ServiceAckDecoder.TEMPLATE_ID = 33 -> ushort +const Adaptive.Cluster.Codecs.ServiceAckEncoder.BLOCK_LENGTH = 36 -> ushort +const Adaptive.Cluster.Codecs.ServiceAckEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ServiceAckEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ServiceAckEncoder.TEMPLATE_ID = 33 -> ushort +const Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.TEMPLATE_ID = 42 -> ushort +const Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.TEMPLATE_ID = 42 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseEventDecoder.BLOCK_LENGTH = 28 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseEventDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseEventDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseEventDecoder.TEMPLATE_ID = 22 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseEventEncoder.BLOCK_LENGTH = 28 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseEventEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseEventEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseEventEncoder.TEMPLATE_ID = 22 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.TEMPLATE_ID = 4 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.TEMPLATE_ID = 4 -> ushort +const Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.TEMPLATE_ID = 3 -> ushort +const Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.TEMPLATE_ID = 3 -> ushort +const Adaptive.Cluster.Codecs.SessionEventDecoder.BLOCK_LENGTH = 44 -> ushort +const Adaptive.Cluster.Codecs.SessionEventDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionEventDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionEventDecoder.TEMPLATE_ID = 2 -> ushort +const Adaptive.Cluster.Codecs.SessionEventEncoder.BLOCK_LENGTH = 44 -> ushort +const Adaptive.Cluster.Codecs.SessionEventEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionEventEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionEventEncoder.TEMPLATE_ID = 2 -> ushort +const Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.TEMPLATE_ID = 5 -> ushort +const Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.TEMPLATE_ID = 5 -> ushort +const Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.TEMPLATE_ID = 1 -> ushort +const Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.TEMPLATE_ID = 1 -> ushort +const Adaptive.Cluster.Codecs.SessionOpenEventDecoder.BLOCK_LENGTH = 36 -> ushort +const Adaptive.Cluster.Codecs.SessionOpenEventDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionOpenEventDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionOpenEventDecoder.TEMPLATE_ID = 21 -> ushort +const Adaptive.Cluster.Codecs.SessionOpenEventEncoder.BLOCK_LENGTH = 36 -> ushort +const Adaptive.Cluster.Codecs.SessionOpenEventEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SessionOpenEventEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SessionOpenEventEncoder.TEMPLATE_ID = 21 -> ushort +const Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.BLOCK_LENGTH = 40 -> ushort +const Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TEMPLATE_ID = 100 -> ushort +const Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.BLOCK_LENGTH = 40 -> ushort +const Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.TEMPLATE_ID = 100 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.TEMPLATE_ID = 72 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.TEMPLATE_ID = 72 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.TEMPLATE_ID = 73 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.BLOCK_LENGTH = 8 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.TEMPLATE_ID = 73 -> ushort +const Adaptive.Cluster.Codecs.StandbySnapshotDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.StandbySnapshotDecoder.TEMPLATE_ID = 81 -> ushort +const Adaptive.Cluster.Codecs.StandbySnapshotEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.StandbySnapshotEncoder.TEMPLATE_ID = 81 -> ushort +const Adaptive.Cluster.Codecs.StopCatchupDecoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.StopCatchupDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.StopCatchupDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.StopCatchupDecoder.TEMPLATE_ID = 57 -> ushort +const Adaptive.Cluster.Codecs.StopCatchupEncoder.BLOCK_LENGTH = 12 -> ushort +const Adaptive.Cluster.Codecs.StopCatchupEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.StopCatchupEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.StopCatchupEncoder.TEMPLATE_ID = 57 -> ushort +const Adaptive.Cluster.Codecs.TerminationAckDecoder.BLOCK_LENGTH = 20 -> ushort +const Adaptive.Cluster.Codecs.TerminationAckDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.TerminationAckDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.TerminationAckDecoder.TEMPLATE_ID = 76 -> ushort +const Adaptive.Cluster.Codecs.TerminationAckEncoder.BLOCK_LENGTH = 20 -> ushort +const Adaptive.Cluster.Codecs.TerminationAckEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.TerminationAckEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.TerminationAckEncoder.TEMPLATE_ID = 76 -> ushort +const Adaptive.Cluster.Codecs.TerminationPositionDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.TerminationPositionDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.TerminationPositionDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.TerminationPositionDecoder.TEMPLATE_ID = 75 -> ushort +const Adaptive.Cluster.Codecs.TerminationPositionEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.TerminationPositionEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.TerminationPositionEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.TerminationPositionEncoder.TEMPLATE_ID = 75 -> ushort +const Adaptive.Cluster.Codecs.TimerDecoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.TimerDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.TimerDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.TimerDecoder.TEMPLATE_ID = 104 -> ushort +const Adaptive.Cluster.Codecs.TimerEncoder.BLOCK_LENGTH = 16 -> ushort +const Adaptive.Cluster.Codecs.TimerEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.TimerEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.TimerEncoder.TEMPLATE_ID = 104 -> ushort +const Adaptive.Cluster.Codecs.TimerEventDecoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Cluster.Codecs.TimerEventDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.TimerEventDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.TimerEventDecoder.TEMPLATE_ID = 20 -> ushort +const Adaptive.Cluster.Codecs.TimerEventEncoder.BLOCK_LENGTH = 24 -> ushort +const Adaptive.Cluster.Codecs.TimerEventEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.TimerEventEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.TimerEventEncoder.TEMPLATE_ID = 20 -> ushort +const Adaptive.Cluster.Codecs.VoteDecoder.BLOCK_LENGTH = 36 -> ushort +const Adaptive.Cluster.Codecs.VoteDecoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.VoteDecoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.VoteDecoder.TEMPLATE_ID = 52 -> ushort +const Adaptive.Cluster.Codecs.VoteEncoder.BLOCK_LENGTH = 36 -> ushort +const Adaptive.Cluster.Codecs.VoteEncoder.SCHEMA_ID = 111 -> ushort +const Adaptive.Cluster.Codecs.VoteEncoder.SCHEMA_VERSION = 14 -> ushort +const Adaptive.Cluster.Codecs.VoteEncoder.TEMPLATE_ID = 52 -> ushort +const Adaptive.Cluster.Service.ClientSessionConstants.MOCKED_OFFER = 1 -> long +const Adaptive.Cluster.Service.ClusterCounters.CLUSTER_ID_LABEL_SUFFIX = " - clusterId=" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.CLUSTER_ACTION_FLAGS_DEFAULT = 0 -> int +const Adaptive.Cluster.Service.ClusteredServiceContainer.CLUSTER_ACTION_FLAGS_STANDBY_SNAPSHOT = 1 -> int +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CLUSTER_DIR_DEFAULT = "aeron-cluster" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CLUSTER_DIR_PROP_NAME = "aeron.cluster.dir" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CLUSTER_ID_DEFAULT = 0 -> int +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CLUSTER_ID_PROP_NAME = "aeron.cluster.id" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CLUSTER_IDLE_STRATEGY_PROP_NAME = "aeron.cluster.idle.strategy" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CLUSTER_NODE_ROLE_TYPE_ID = 201 -> int +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CLUSTER_SERVICES_DIR_PROP_NAME = "aeron.cluster.services.dir" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CLUSTERED_SERVICE_ERROR_COUNT_TYPE_ID = 215 -> int +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.COMMIT_POSITION_TYPE_ID = 203 -> int +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CONSENSUS_MODULE_STREAM_ID_DEFAULT = 105 -> int +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CONSENSUS_MODULE_STREAM_ID_PROP_NAME = "aeron.cluster.consensus.module.stream.id" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CONTROL_CHANNEL_DEFAULT = "aeron:ipc?term-length=128k" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CONTROL_CHANNEL_PROP_NAME = "aeron.cluster.control.channel" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CYCLE_THRESHOLD_DEFAULT_NS = 1000000 -> long +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CYCLE_THRESHOLD_PROP_NAME = "aeron.cluster.service.cycle.threshold" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.DEFAULT_IDLE_STRATEGY = "BackoffIdleStrategy" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.DELEGATING_ERROR_HANDLER_PROP_NAME = "aeron.cluster.service.delegating.error.handler" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.ERROR_BUFFER_LENGTH_DEFAULT = 1048576 -> int +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.ERROR_BUFFER_LENGTH_PROP_NAME = "aeron.cluster.service.error.buffer.length" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.LOG_FRAGMENT_LIMIT_DEFAULT = 50 -> int +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.LOG_FRAGMENT_LIMIT_PROP_NAME = "aeron.cluster.log.fragment.limit" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.MARK_FILE_DIR_PROP_NAME = "aeron.cluster.mark.file.dir" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.REPLAY_CHANNEL_PROP_NAME = "aeron.cluster.replay.channel" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.REPLAY_STREAM_ID_DEFAULT = 103 -> int +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.REPLAY_STREAM_ID_PROP_NAME = "aeron.cluster.replay.stream.id" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.RESPONDER_SERVICE_DEFAULT = true -> bool +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.RESPONDER_SERVICE_PROP_NAME = "aeron.cluster.service.responder" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SERVICE_CLASS_NAME_PROP_NAME = "aeron.cluster.service.class.name" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SERVICE_ID_DEFAULT = 0 -> int +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SERVICE_ID_PROP_NAME = "aeron.cluster.service.id" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SERVICE_NAME_DEFAULT = "clustered-service" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SERVICE_NAME_PROP_NAME = "aeron.cluster.service.name" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SERVICE_STREAM_ID_DEFAULT = 104 -> int +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SERVICE_STREAM_ID_PROP_NAME = "aeron.cluster.service.stream.id" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SNAPSHOT_CHANNEL_PROP_NAME = "aeron.cluster.snapshot.channel" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SNAPSHOT_DURATION_THRESHOLD_PROP_NAME = "aeron.cluster.service.snapshot.threshold" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SNAPSHOT_STREAM_ID_DEFAULT = 106 -> int +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SNAPSHOT_STREAM_ID_PROP_NAME = "aeron.cluster.snapshot.stream.id" -> string +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SNAPSHOT_TYPE_ID = 2 -> long +const Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.STANDBY_SNAPSHOT_ENABLED_PROP_NAME = "aeron.cluster.standby.snapshot.enabled" -> string +const Adaptive.Cluster.Service.RecoveryState.CLUSTER_ID_OFFSET = 24 -> int +const Adaptive.Cluster.Service.RecoveryState.LEADERSHIP_TERM_ID_OFFSET = 0 -> int +const Adaptive.Cluster.Service.RecoveryState.LOG_POSITION_OFFSET = 8 -> int +const Adaptive.Cluster.Service.RecoveryState.NAME = "Cluster recovery: leadershipTermId=" -> string +const Adaptive.Cluster.Service.RecoveryState.RECOVERY_STATE_TYPE_ID = 204 -> int +const Adaptive.Cluster.Service.RecoveryState.SERVICE_COUNT_OFFSET = 28 -> int +const Adaptive.Cluster.Service.RecoveryState.SNAPSHOT_RECORDING_IDS_OFFSET = 32 -> int +const Adaptive.Cluster.Service.RecoveryState.TIMESTAMP_OFFSET = 16 -> int +override Adaptive.Cluster.Client.AeronCluster.Context.ToString() -> string +override Adaptive.Cluster.ClusterMarkFile.ToString() -> string +override Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.AdminRequestDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.AdminRequestEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.AdminResponseDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.AdminResponseEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.AppendPositionDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.AppendPositionEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.BackupQueryDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.BackupQueryEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.BackupResponseDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.BackupResponseEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.CancelTimerDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.CancelTimerEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.CanvassPositionDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.CanvassPositionEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.CatchupPositionDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.CatchupPositionEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ChallengeDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ChallengeEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ChallengeResponseDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ChallengeResponseEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClientSessionDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClientSessionEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.CloseSessionDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.CloseSessionEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterMembersDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterMembersEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterSessionDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ClusterSessionEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.CommitPositionDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.CommitPositionEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ConsensusModuleDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ConsensusModuleEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.JoinClusterDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.JoinClusterEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.JoinLogDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.JoinLogEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.MessageHeaderDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.MessageHeaderEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.NewLeaderEventDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.NewLeaderEventEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.RemoveMemberDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.RemoveMemberEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.RequestServiceAckDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.RequestServiceAckEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.RequestVoteDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.RequestVoteEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ScheduleTimerDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ScheduleTimerEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ServiceAckDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ServiceAckEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionCloseEventDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionCloseEventEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionEventDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionEventEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.StandbySnapshotEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.StopCatchupDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.StopCatchupEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.TerminationAckDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.TerminationAckEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.TerminationPositionDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.TerminationPositionEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.TimerDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.TimerEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.TimerEventDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.TimerEventEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.VarDataEncodingDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.VarDataEncodingEncoder.ToString() -> string +override Adaptive.Cluster.Codecs.VoteDecoder.ToString() -> string +override Adaptive.Cluster.Codecs.VoteEncoder.ToString() -> string +override Adaptive.Cluster.Service.ClusteredServiceContainer.Context.ToString() -> string +override Adaptive.Cluster.Service.ContainerClientSession.ToString() -> string +override Adaptive.Cluster.Service.SnapshotDurationTracker.ToString() -> string +readonly Adaptive.Cluster.Service.ClusterNodeControlProperties.aeronDirectoryName -> string +readonly Adaptive.Cluster.Service.ClusterNodeControlProperties.consensusModuleStreamId -> int +readonly Adaptive.Cluster.Service.ClusterNodeControlProperties.controlChannel -> string +readonly Adaptive.Cluster.Service.ClusterNodeControlProperties.memberId -> int +readonly Adaptive.Cluster.Service.ClusterNodeControlProperties.serviceStreamId -> int +readonly Adaptive.Cluster.Service.SnapshotTaker.bufferClaim -> Adaptive.Aeron.LogBuffer.BufferClaim +readonly Adaptive.Cluster.Service.SnapshotTaker.idleStrategy -> Adaptive.Agrona.Concurrent.IIdleStrategy +readonly Adaptive.Cluster.Service.SnapshotTaker.messageHeaderEncoder -> Adaptive.Cluster.Codecs.MessageHeaderEncoder +readonly Adaptive.Cluster.Service.SnapshotTaker.publication -> Adaptive.Aeron.ExclusivePublication +static Adaptive.Cluster.Client.AeronCluster.AsyncConnect.StepName(int step) -> string +static Adaptive.Cluster.Client.AeronCluster.Configuration.ClientName() -> string +static Adaptive.Cluster.Client.AeronCluster.Configuration.EgressChannel() -> string +static Adaptive.Cluster.Client.AeronCluster.Configuration.EgressStreamId() -> int +static Adaptive.Cluster.Client.AeronCluster.Configuration.IngressChannel() -> string +static Adaptive.Cluster.Client.AeronCluster.Configuration.IngressEndpoints() -> string +static Adaptive.Cluster.Client.AeronCluster.Configuration.IngressStreamId() -> int +static Adaptive.Cluster.Client.AeronCluster.Configuration.MessageTimeoutNs() -> long +static Adaptive.Cluster.Client.AeronCluster.Connect() -> Adaptive.Cluster.Client.AeronCluster +static Adaptive.Cluster.Client.AeronCluster.Connect(Adaptive.Cluster.Client.AeronCluster.Context ctx) -> Adaptive.Cluster.Client.AeronCluster +static Adaptive.Cluster.Client.AeronCluster.ConnectAsync() -> Adaptive.Cluster.Client.AeronCluster.AsyncConnect +static Adaptive.Cluster.Client.AeronCluster.ConnectAsync(Adaptive.Cluster.Client.AeronCluster.Context ctx) -> Adaptive.Cluster.Client.AeronCluster.AsyncConnect +static Adaptive.Cluster.ClusterMarkFile.CheckHeaderLength(string aeronDirectory, string controlChannel, string ingressChannel, string serviceName, string authenticator) -> void +static Adaptive.Cluster.ClusterMarkFile.IsConsensusModuleMarkFile(System.IO.FileInfo path) -> bool +static Adaptive.Cluster.ClusterMarkFile.IsServiceMarkFile(System.IO.FileInfo path) -> bool +static Adaptive.Cluster.ClusterMarkFile.LinkFilenameForService(int serviceId) -> string +static Adaptive.Cluster.ClusterMarkFile.MarkFilenameForService(int serviceId) -> string +static Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.MemberEndpointsCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.MemberEndpointsHeaderLength() -> int +static Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.MemberEndpointsId() -> int +static Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.MemberEndpointsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AddPassiveMemberDecoder.MemberEndpointsSinceVersion() -> int +static Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.MemberEndpointsCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.MemberEndpointsHeaderLength() -> int +static Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.MemberEndpointsId() -> int +static Adaptive.Cluster.Codecs.AddPassiveMemberEncoder.MemberEndpointsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminRequestDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminRequestDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminRequestDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.PayloadHeaderLength() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.PayloadId() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.PayloadMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminRequestDecoder.PayloadSinceVersion() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.RequestTypeEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.RequestTypeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.RequestTypeId() -> int +static Adaptive.Cluster.Codecs.AdminRequestDecoder.RequestTypeMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminRequestDecoder.RequestTypeSinceVersion() -> int +static Adaptive.Cluster.Codecs.AdminRequestEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminRequestEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminRequestEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminRequestEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminRequestEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.AdminRequestEncoder.PayloadHeaderLength() -> int +static Adaptive.Cluster.Codecs.AdminRequestEncoder.PayloadId() -> int +static Adaptive.Cluster.Codecs.AdminRequestEncoder.PayloadMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminRequestEncoder.RequestTypeEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminRequestEncoder.RequestTypeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AdminResponseDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminResponseDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.AdminResponseDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.AdminResponseDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AdminResponseDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminResponseDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.AdminResponseDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.AdminResponseDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.MessageCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.AdminResponseDecoder.MessageHeaderLength() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.MessageId() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.MessageMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminResponseDecoder.MessageSinceVersion() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.PayloadHeaderLength() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.PayloadId() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.PayloadMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminResponseDecoder.PayloadSinceVersion() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.RequestTypeEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.RequestTypeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.RequestTypeId() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.RequestTypeMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminResponseDecoder.RequestTypeSinceVersion() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.ResponseCodeEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.ResponseCodeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.ResponseCodeId() -> int +static Adaptive.Cluster.Codecs.AdminResponseDecoder.ResponseCodeMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminResponseDecoder.ResponseCodeSinceVersion() -> int +static Adaptive.Cluster.Codecs.AdminResponseEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminResponseEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminResponseEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AdminResponseEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.AdminResponseEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.AdminResponseEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminResponseEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminResponseEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AdminResponseEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.AdminResponseEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.AdminResponseEncoder.MessageCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.AdminResponseEncoder.MessageHeaderLength() -> int +static Adaptive.Cluster.Codecs.AdminResponseEncoder.MessageId() -> int +static Adaptive.Cluster.Codecs.AdminResponseEncoder.MessageMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminResponseEncoder.PayloadHeaderLength() -> int +static Adaptive.Cluster.Codecs.AdminResponseEncoder.PayloadId() -> int +static Adaptive.Cluster.Codecs.AdminResponseEncoder.PayloadMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AdminResponseEncoder.RequestTypeEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminResponseEncoder.RequestTypeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AdminResponseEncoder.ResponseCodeEncodingLength() -> int +static Adaptive.Cluster.Codecs.AdminResponseEncoder.ResponseCodeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FlagsEncodingLength() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FlagsEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FlagsId() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FlagsMaxValue() -> byte +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FlagsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FlagsMinValue() -> byte +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FlagsNullValue() -> byte +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FlagsSinceVersion() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FollowerMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FollowerMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FollowerMemberIdId() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FollowerMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FollowerMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FollowerMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FollowerMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.FollowerMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.AppendPositionDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.AppendPositionEncoder.FlagsEncodingLength() -> int +static Adaptive.Cluster.Codecs.AppendPositionEncoder.FlagsEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AppendPositionEncoder.FlagsMaxValue() -> byte +static Adaptive.Cluster.Codecs.AppendPositionEncoder.FlagsMinValue() -> byte +static Adaptive.Cluster.Codecs.AppendPositionEncoder.FlagsNullValue() -> byte +static Adaptive.Cluster.Codecs.AppendPositionEncoder.FollowerMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AppendPositionEncoder.FollowerMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AppendPositionEncoder.FollowerMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.AppendPositionEncoder.FollowerMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.AppendPositionEncoder.FollowerMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.AppendPositionEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.AppendPositionEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AppendPositionEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.AppendPositionEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.AppendPositionEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.AppendPositionEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.AppendPositionEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.AppendPositionEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.AppendPositionEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.AppendPositionEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.BackupQueryDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupQueryDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupQueryDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupQueryDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupQueryDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.EncodedCredentialsId() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.EncodedCredentialsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupQueryDecoder.EncodedCredentialsSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseChannelSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseStreamIdId() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseStreamIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.ResponseStreamIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.VersionId() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.VersionMaxValue() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.VersionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupQueryDecoder.VersionMinValue() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.VersionNullValue() -> int +static Adaptive.Cluster.Codecs.BackupQueryDecoder.VersionSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupQueryEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupQueryEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupQueryEncoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.EncodedCredentialsId() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.EncodedCredentialsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupQueryEncoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.BackupQueryEncoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupQueryEncoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.VersionMaxValue() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.VersionMinValue() -> int +static Adaptive.Cluster.Codecs.BackupQueryEncoder.VersionNullValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.ClusterMembersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.ClusterMembersHeaderLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.ClusterMembersId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.ClusterMembersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.ClusterMembersSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CommitPositionCounterIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CommitPositionCounterIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CommitPositionCounterIdId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CommitPositionCounterIdMaxValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CommitPositionCounterIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CommitPositionCounterIdMinValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CommitPositionCounterIdNullValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CommitPositionCounterIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastLeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastLeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastLeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastTermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastTermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastTermBaseLogPositionId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastTermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastTermBaseLogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastTermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastTermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LastTermBaseLogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LeaderMemberIdId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LeaderMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LeaderMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogLeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogLeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogLeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogRecordingIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogRecordingIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogRecordingIdId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogRecordingIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogRecordingIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogRecordingIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogRecordingIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogRecordingIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogTermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogTermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogTermBaseLogPositionId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogTermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogTermBaseLogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogTermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogTermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.LogTermBaseLogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.MemberIdId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.MemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.MemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.RecordingIdId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.RecordingIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.RecordingIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.RecordingIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.RecordingIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.SbeBlockLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.SbeHeaderSize() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.ServiceIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.ServiceIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.ServiceIdId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.ServiceIdMaxValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.ServiceIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.ServiceIdMinValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.ServiceIdNullValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.ServiceIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TermBaseLogPositionId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TermBaseLogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TermBaseLogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TimestampId() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TimestampMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoder.TimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoderId() -> long +static Adaptive.Cluster.Codecs.BackupResponseDecoder.SnapshotsDecoderSinceVersion() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.ClusterMembersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.BackupResponseEncoder.ClusterMembersHeaderLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.ClusterMembersId() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.ClusterMembersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.BackupResponseEncoder.CommitPositionCounterIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.CommitPositionCounterIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.CommitPositionCounterIdMaxValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.CommitPositionCounterIdMinValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.CommitPositionCounterIdNullValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LastLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LastLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LastLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LastLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LastLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LastTermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LastTermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LastTermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LastTermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LastTermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogRecordingIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogRecordingIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogRecordingIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogRecordingIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogRecordingIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogTermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogTermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogTermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogTermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.LogTermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.RecordingIdMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.RecordingIdMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.RecordingIdNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.SbeBlockLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.SbeHeaderSize() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.ServiceIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.ServiceIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.ServiceIdMaxValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.ServiceIdMinValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.ServiceIdNullValue() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.TermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.TermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.TermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.TermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.TermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsEncoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.BackupResponseEncoder.SnapshotsId() -> long +static Adaptive.Cluster.Codecs.CancelTimerDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CancelTimerDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CancelTimerDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.CancelTimerDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.CancelTimerDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CancelTimerDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.CancelTimerDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.CancelTimerDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.CancelTimerEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CancelTimerEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CancelTimerEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.CancelTimerEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.CancelTimerEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.FollowerMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.FollowerMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.FollowerMemberIdId() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.FollowerMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.FollowerMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.FollowerMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.FollowerMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.FollowerMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogLeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogLeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogLeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.ProtocolVersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.ProtocolVersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.ProtocolVersionId() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.ProtocolVersionMaxValue() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.ProtocolVersionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.ProtocolVersionMinValue() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.ProtocolVersionNullValue() -> int +static Adaptive.Cluster.Codecs.CanvassPositionDecoder.ProtocolVersionSinceVersion() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.FollowerMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.FollowerMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.FollowerMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.FollowerMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.FollowerMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LogLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LogLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LogLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LogLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LogLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.ProtocolVersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.ProtocolVersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.ProtocolVersionMaxValue() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.ProtocolVersionMinValue() -> int +static Adaptive.Cluster.Codecs.CanvassPositionEncoder.ProtocolVersionNullValue() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.CatchupEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.CatchupEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.CatchupEndpointId() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.CatchupEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.CatchupEndpointSinceVersion() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.FollowerMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.FollowerMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.FollowerMemberIdId() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.FollowerMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.FollowerMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.FollowerMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.FollowerMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.FollowerMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.CatchupPositionDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.CatchupEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.CatchupEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.CatchupEndpointId() -> int +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.CatchupEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.FollowerMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.FollowerMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.FollowerMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.FollowerMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.FollowerMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.CatchupPositionEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.ChallengeDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ChallengeDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ChallengeDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.ChallengeDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ChallengeDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ChallengeDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ChallengeDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ChallengeDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ChallengeDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ChallengeDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ChallengeDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.ChallengeDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ChallengeDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ChallengeDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ChallengeDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ChallengeDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ChallengeDecoder.EncodedChallengeHeaderLength() -> int +static Adaptive.Cluster.Codecs.ChallengeDecoder.EncodedChallengeId() -> int +static Adaptive.Cluster.Codecs.ChallengeDecoder.EncodedChallengeMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ChallengeDecoder.EncodedChallengeSinceVersion() -> int +static Adaptive.Cluster.Codecs.ChallengeEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ChallengeEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ChallengeEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ChallengeEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ChallengeEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ChallengeEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ChallengeEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ChallengeEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ChallengeEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ChallengeEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ChallengeEncoder.EncodedChallengeHeaderLength() -> int +static Adaptive.Cluster.Codecs.ChallengeEncoder.EncodedChallengeId() -> int +static Adaptive.Cluster.Codecs.ChallengeEncoder.EncodedChallengeMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.EncodedCredentialsId() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.EncodedCredentialsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ChallengeResponseDecoder.EncodedCredentialsSinceVersion() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ChallengeResponseEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ChallengeResponseEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ChallengeResponseEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ChallengeResponseEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ChallengeResponseEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ChallengeResponseEncoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseEncoder.EncodedCredentialsId() -> int +static Adaptive.Cluster.Codecs.ChallengeResponseEncoder.EncodedCredentialsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.EncodedPrincipalHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.EncodedPrincipalId() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.EncodedPrincipalMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClientSessionDecoder.EncodedPrincipalSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseChannelSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseStreamIdId() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseStreamIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClientSessionDecoder.ResponseStreamIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClientSessionEncoder.EncodedPrincipalHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClientSessionEncoder.EncodedPrincipalId() -> int +static Adaptive.Cluster.Codecs.ClientSessionEncoder.EncodedPrincipalMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClientSessionEncoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.CloseSessionDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CloseSessionDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CloseSessionDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.CloseSessionDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.CloseSessionDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CloseSessionDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.CloseSessionDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.CloseSessionDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.CloseSessionEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CloseSessionEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CloseSessionEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.CloseSessionEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.CloseSessionEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.ActionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.ActionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.ActionId() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.ActionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.ActionSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.FlagsEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.FlagsEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.FlagsId() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.FlagsMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.FlagsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.FlagsMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.FlagsNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.FlagsSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.TimestampId() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.TimestampMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestDecoder.TimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.ActionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.ActionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.FlagsEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.FlagsEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.FlagsMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.FlagsMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.FlagsNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterActionRequestEncoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.ActiveMembersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.ActiveMembersHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.ActiveMembersId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.ActiveMembersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.ActiveMembersSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.LeaderMemberIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.LeaderMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.LeaderMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.PassiveMembersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.PassiveMembersHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.PassiveMembersId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.PassiveMembersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersChangeDecoder.PassiveMembersSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.ActiveMembersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.ActiveMembersHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.ActiveMembersId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.ActiveMembersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.PassiveMembersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.PassiveMembersHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.PassiveMembersId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersChangeEncoder.PassiveMembersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.ClusterMembersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.ClusterMembersHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.ClusterMembersId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.ClusterMembersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.ClusterMembersSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.HighMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.HighMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.HighMemberIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.HighMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.HighMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.HighMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.HighMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.HighMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.MemberIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.MemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersDecoder.MemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.ClusterMembersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.ClusterMembersHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.ClusterMembersId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.ClusterMembersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.HighMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.HighMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.HighMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.HighMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.HighMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersEncoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ArchiveEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ArchiveEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ArchiveEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ArchiveEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ArchiveEndpointSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.CatchupEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.CatchupEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.CatchupEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.CatchupEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.CatchupEndpointSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ConsensusEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ConsensusEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ConsensusEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ConsensusEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.ConsensusEndpointSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.IngressEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.IngressEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.IngressEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.IngressEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.IngressEndpointSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogEndpointSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.MemberIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.MemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.MemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.SbeBlockLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.SbeHeaderSize() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.TimeOfLastAppendNsEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.TimeOfLastAppendNsEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.TimeOfLastAppendNsId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.TimeOfLastAppendNsMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.TimeOfLastAppendNsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.TimeOfLastAppendNsMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.TimeOfLastAppendNsNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoder.TimeOfLastAppendNsSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoderId() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.ActiveMembersDecoderSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CurrentTimeNsEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CurrentTimeNsEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CurrentTimeNsId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CurrentTimeNsMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CurrentTimeNsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CurrentTimeNsMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CurrentTimeNsNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.CurrentTimeNsSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.LeaderMemberIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.LeaderMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.LeaderMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.MemberIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.MemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.MemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ArchiveEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ArchiveEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ArchiveEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ArchiveEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ArchiveEndpointSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.CatchupEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.CatchupEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.CatchupEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.CatchupEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.CatchupEndpointSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ConsensusEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ConsensusEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ConsensusEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ConsensusEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.ConsensusEndpointSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.IngressEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.IngressEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.IngressEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.IngressEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.IngressEndpointSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogEndpointSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.MemberIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.MemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.MemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.SbeBlockLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.SbeHeaderSize() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.TimeOfLastAppendNsEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.TimeOfLastAppendNsEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.TimeOfLastAppendNsId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.TimeOfLastAppendNsMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.TimeOfLastAppendNsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.TimeOfLastAppendNsMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.TimeOfLastAppendNsNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoder.TimeOfLastAppendNsSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoderId() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseDecoder.PassiveMembersDecoderSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.ArchiveEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.ArchiveEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.ArchiveEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.ArchiveEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.CatchupEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.CatchupEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.CatchupEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.CatchupEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.ConsensusEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.ConsensusEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.ConsensusEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.ConsensusEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.IngressEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.IngressEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.IngressEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.IngressEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LogEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LogEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LogEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LogEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.SbeBlockLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.SbeHeaderSize() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.TimeOfLastAppendNsEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.TimeOfLastAppendNsEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.TimeOfLastAppendNsMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.TimeOfLastAppendNsMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersEncoder.TimeOfLastAppendNsNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.ActiveMembersId() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.CurrentTimeNsEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.CurrentTimeNsEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.CurrentTimeNsMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.CurrentTimeNsMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.CurrentTimeNsNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.ArchiveEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.ArchiveEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.ArchiveEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.ArchiveEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.CatchupEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.CatchupEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.CatchupEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.CatchupEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.ConsensusEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.ConsensusEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.ConsensusEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.ConsensusEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.IngressEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.IngressEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.IngressEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.IngressEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LogEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LogEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LogEndpointId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LogEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.SbeBlockLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.SbeHeaderSize() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.TimeOfLastAppendNsEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.TimeOfLastAppendNsEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.TimeOfLastAppendNsMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.TimeOfLastAppendNsMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersEncoder.TimeOfLastAppendNsNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersExtendedResponseEncoder.PassiveMembersId() -> long +static Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.ExtendedEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.ExtendedEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.ExtendedId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.ExtendedMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersQueryDecoder.ExtendedSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.ExtendedEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersQueryEncoder.ExtendedEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.ActiveMembersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.ActiveMembersHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.ActiveMembersId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.ActiveMembersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.ActiveMembersSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.LeaderMemberIdId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.LeaderMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.LeaderMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.PassiveFollowersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.PassiveFollowersHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.PassiveFollowersId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.PassiveFollowersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersResponseDecoder.PassiveFollowersSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.ActiveMembersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.ActiveMembersHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.ActiveMembersId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.ActiveMembersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.PassiveFollowersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.PassiveFollowersHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.PassiveFollowersId() -> int +static Adaptive.Cluster.Codecs.ClusterMembersResponseEncoder.PassiveFollowersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.CloseReasonEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.CloseReasonEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.CloseReasonId() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.CloseReasonMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.CloseReasonSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.OpenedLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.OpenedLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.OpenedLogPositionId() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.OpenedLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.OpenedLogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.OpenedLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.OpenedLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.OpenedLogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseChannelSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseStreamIdId() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseStreamIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.ResponseStreamIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.TimeOfLastActivityEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.TimeOfLastActivityEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.TimeOfLastActivityId() -> int +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.TimeOfLastActivityMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.TimeOfLastActivityMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.TimeOfLastActivityMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.TimeOfLastActivityNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionDecoder.TimeOfLastActivitySinceVersion() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.CloseReasonEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.CloseReasonEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.OpenedLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.OpenedLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.OpenedLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.OpenedLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.OpenedLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.TimeOfLastActivityEncodingLength() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.TimeOfLastActivityEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.TimeOfLastActivityMaxValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.TimeOfLastActivityMinValue() -> long +static Adaptive.Cluster.Codecs.ClusterSessionEncoder.TimeOfLastActivityNullValue() -> long +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeaderMemberIdId() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeaderMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeaderMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.CommitPositionDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.CommitPositionEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.LogServiceSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.LogServiceSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.LogServiceSessionIdId() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.LogServiceSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.LogServiceSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.LogServiceSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.LogServiceSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.LogServiceSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextServiceSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextServiceSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextServiceSessionIdId() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextServiceSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextServiceSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextServiceSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextServiceSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextServiceSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextSessionIdId() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.NextSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.PendingMessageCapacityEncodingLength() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.PendingMessageCapacityEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.PendingMessageCapacityId() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.PendingMessageCapacityMaxValue() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.PendingMessageCapacityMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.PendingMessageCapacityMinValue() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.PendingMessageCapacityNullValue() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleDecoder.PendingMessageCapacitySinceVersion() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.LogServiceSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.LogServiceSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.LogServiceSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.LogServiceSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.LogServiceSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.NextServiceSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.NextServiceSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.NextServiceSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.NextServiceSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.NextServiceSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.NextSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.NextSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.NextSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.NextSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.NextSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.PendingMessageCapacityEncodingLength() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.PendingMessageCapacityEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.PendingMessageCapacityMaxValue() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.PendingMessageCapacityMinValue() -> int +static Adaptive.Cluster.Codecs.ConsensusModuleEncoder.PendingMessageCapacityNullValue() -> int +static Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.BlockLengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.BlockLengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.BlockLengthMaxValue() -> ushort +static Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.BlockLengthMinValue() -> ushort +static Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.BlockLengthNullValue() -> ushort +static Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.ENCODED_LENGTH -> int +static Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.NumInGroupEncodingLength() -> int +static Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.NumInGroupEncodingOffset() -> int +static Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.NumInGroupMaxValue() -> ushort +static Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.NumInGroupMinValue() -> ushort +static Adaptive.Cluster.Codecs.GroupSizeEncodingDecoder.NumInGroupNullValue() -> ushort +static Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.BlockLengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.BlockLengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.BlockLengthMaxValue() -> ushort +static Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.BlockLengthMinValue() -> ushort +static Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.BlockLengthNullValue() -> ushort +static Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.ENCODED_LENGTH -> int +static Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.NumInGroupEncodingLength() -> int +static Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.NumInGroupEncodingOffset() -> int +static Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.NumInGroupMaxValue() -> ushort +static Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.NumInGroupMinValue() -> ushort +static Adaptive.Cluster.Codecs.GroupSizeEncodingEncoder.NumInGroupNullValue() -> ushort +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.EncodedCredentialsId() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.EncodedCredentialsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.EncodedCredentialsSinceVersion() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseChannelSinceVersion() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseStreamIdId() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseStreamIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestDecoder.ResponseStreamIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.EncodedCredentialsId() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.EncodedCredentialsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.HeartbeatRequestEncoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.HeartbeatResponseDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.HeartbeatResponseEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.JoinClusterDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinClusterDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinClusterDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.JoinClusterDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.JoinClusterDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.JoinClusterDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.JoinClusterDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.JoinClusterDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.JoinClusterDecoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinClusterDecoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinClusterDecoder.MemberIdId() -> int +static Adaptive.Cluster.Codecs.JoinClusterDecoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.JoinClusterDecoder.MemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.JoinClusterDecoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.JoinClusterDecoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.JoinClusterDecoder.MemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.JoinClusterEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinClusterEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinClusterEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.JoinClusterEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.JoinClusterEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.JoinClusterEncoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinClusterEncoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinClusterEncoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.JoinClusterEncoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.JoinClusterEncoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.IsStartupEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.IsStartupEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.IsStartupId() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.IsStartupMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.JoinLogDecoder.IsStartupSinceVersion() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogChannelId() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogChannelSinceVersion() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogSessionIdId() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogSessionIdMaxValue() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogSessionIdMinValue() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogSessionIdNullValue() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogStreamIdId() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogStreamIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.LogStreamIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.MaxLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.MaxLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.MaxLogPositionId() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.MaxLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.JoinLogDecoder.MaxLogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.JoinLogDecoder.MaxLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.JoinLogDecoder.MaxLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.JoinLogDecoder.MaxLogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.MemberIdId() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.MemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.JoinLogDecoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.MemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.RoleEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.RoleEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.RoleId() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.RoleMaxValue() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.RoleMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.JoinLogDecoder.RoleMinValue() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.RoleNullValue() -> int +static Adaptive.Cluster.Codecs.JoinLogDecoder.RoleSinceVersion() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.IsStartupEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.IsStartupEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogChannelId() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogSessionIdMaxValue() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogSessionIdMinValue() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogSessionIdNullValue() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.LogStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.MaxLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.MaxLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.MaxLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.JoinLogEncoder.MaxLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.JoinLogEncoder.MaxLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.JoinLogEncoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.RoleEncodingLength() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.RoleEncodingOffset() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.RoleMaxValue() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.RoleMinValue() -> int +static Adaptive.Cluster.Codecs.JoinLogEncoder.RoleNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ActivityTimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ActivityTimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ActivityTimestampId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ActivityTimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ActivityTimestampMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ActivityTimestampMinValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ActivityTimestampNullValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ActivityTimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AeronDirectoryCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AeronDirectoryHeaderLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AeronDirectoryId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AeronDirectoryMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AeronDirectorySinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ArchiveStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ArchiveStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ArchiveStreamIdId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ArchiveStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ArchiveStreamIdMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ArchiveStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ArchiveStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ArchiveStreamIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AuthenticatorCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AuthenticatorHeaderLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AuthenticatorId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AuthenticatorMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.AuthenticatorSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.CandidateTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.CandidateTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.CandidateTermIdId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.CandidateTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.CandidateTermIdMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.CandidateTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.CandidateTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.CandidateTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ClusterIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ClusterIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ClusterIdId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ClusterIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ClusterIdMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ClusterIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ClusterIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ClusterIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ComponentTypeEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ComponentTypeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ComponentTypeId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ComponentTypeMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ComponentTypeSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ConsensusModuleStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ConsensusModuleStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ConsensusModuleStreamIdId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ConsensusModuleStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ConsensusModuleStreamIdMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ConsensusModuleStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ConsensusModuleStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ConsensusModuleStreamIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ControlChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ControlChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ControlChannelId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ControlChannelMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ControlChannelSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ErrorBufferLengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ErrorBufferLengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ErrorBufferLengthId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ErrorBufferLengthMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ErrorBufferLengthMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ErrorBufferLengthMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ErrorBufferLengthNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ErrorBufferLengthSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.HeaderLengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.HeaderLengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.HeaderLengthId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.HeaderLengthMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.HeaderLengthMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.HeaderLengthMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.HeaderLengthNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.HeaderLengthSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressChannelId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressChannelMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressChannelSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressStreamIdId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressStreamIdMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.IngressStreamIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.MemberIdId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.MemberIdMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.MemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.PidEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.PidEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.PidId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.PidMaxValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.PidMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.PidMinValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.PidNullValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.PidSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceIdId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceIdMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceNameCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceNameHeaderLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceNameId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceNameMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceNameSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServicesClusterDirCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServicesClusterDirHeaderLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServicesClusterDirId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServicesClusterDirMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServicesClusterDirSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceStreamIdId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceStreamIdMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.ServiceStreamIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.StartTimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.StartTimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.StartTimestampId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.StartTimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.StartTimestampMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.StartTimestampMinValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.StartTimestampNullValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.StartTimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.VersionId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.VersionMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.VersionMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.VersionMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.VersionNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderDecoder.VersionSinceVersion() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ActivityTimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ActivityTimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ActivityTimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ActivityTimestampMinValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ActivityTimestampNullValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.AeronDirectoryCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.AeronDirectoryHeaderLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.AeronDirectoryId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.AeronDirectoryMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ArchiveStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ArchiveStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ArchiveStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ArchiveStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ArchiveStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.AuthenticatorCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.AuthenticatorHeaderLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.AuthenticatorId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.AuthenticatorMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.CandidateTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.CandidateTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.CandidateTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.CandidateTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.CandidateTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ClusterIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ClusterIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ClusterIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ClusterIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ClusterIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ComponentTypeEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ComponentTypeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ConsensusModuleStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ConsensusModuleStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ConsensusModuleStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ConsensusModuleStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ConsensusModuleStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ControlChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ControlChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ControlChannelId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ControlChannelMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ErrorBufferLengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ErrorBufferLengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ErrorBufferLengthMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ErrorBufferLengthMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ErrorBufferLengthNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.HeaderLengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.HeaderLengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.HeaderLengthMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.HeaderLengthMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.HeaderLengthNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.IngressChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.IngressChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.IngressChannelId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.IngressChannelMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.IngressStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.IngressStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.IngressStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.IngressStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.IngressStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PidEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PidEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PidMaxValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PidMinValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.PidNullValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceNameCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceNameHeaderLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceNameId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceNameMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServicesClusterDirCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServicesClusterDirHeaderLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServicesClusterDirId() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServicesClusterDirMetaAttribute(Adaptive.Cluster.Codecs.Mark.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.ServiceStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.StartTimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.StartTimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.StartTimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.StartTimestampMinValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.StartTimestampNullValue() -> long +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.VersionMaxValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.VersionMinValue() -> int +static Adaptive.Cluster.Codecs.Mark.MarkFileHeaderEncoder.VersionNullValue() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.BlockLengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.BlockLengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.BlockLengthMaxValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.BlockLengthMinValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.BlockLengthNullValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.ENCODED_LENGTH -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.SchemaIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.SchemaIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.SchemaIdMaxValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.SchemaIdMinValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.SchemaIdNullValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.TemplateIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.TemplateIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.TemplateIdMaxValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.TemplateIdMinValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.TemplateIdNullValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.VersionMaxValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.VersionMinValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderDecoder.VersionNullValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.BlockLengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.BlockLengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.BlockLengthMaxValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.BlockLengthMinValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.BlockLengthNullValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.ENCODED_LENGTH -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.SchemaIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.SchemaIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.SchemaIdMaxValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.SchemaIdMinValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.SchemaIdNullValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.TemplateIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.TemplateIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.TemplateIdMaxValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.TemplateIdMinValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.TemplateIdNullValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.VersionMaxValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.VersionMinValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.MessageHeaderEncoder.VersionNullValue() -> ushort +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.ENCODED_LENGTH -> int +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.LengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.LengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.LengthMaxValue() -> uint +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.LengthMinValue() -> uint +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.LengthNullValue() -> uint +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.VarDataEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.VarDataEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.VarDataMaxValue() -> byte +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.VarDataMinValue() -> byte +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingDecoder.VarDataNullValue() -> byte +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.ENCODED_LENGTH -> int +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.LengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.LengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.LengthMaxValue() -> uint +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.LengthMinValue() -> uint +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.LengthNullValue() -> uint +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.VarDataEncodingLength() -> int +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.VarDataEncodingOffset() -> int +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.VarDataMaxValue() -> byte +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.VarDataMinValue() -> byte +static Adaptive.Cluster.Codecs.Mark.VarAsciiEncodingEncoder.VarDataNullValue() -> byte +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ChangeTypeEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ChangeTypeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ChangeTypeId() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ChangeTypeMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ChangeTypeSinceVersion() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterMembersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterMembersHeaderLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterMembersId() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterMembersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterMembersSinceVersion() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterSizeEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterSizeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterSizeId() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterSizeMaxValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterSizeMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterSizeMinValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterSizeNullValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.ClusterSizeSinceVersion() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeaderMemberIdId() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeaderMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeaderMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.MemberIdId() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.MemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.MemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.TimestampId() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.TimestampMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventDecoder.TimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ChangeTypeEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ChangeTypeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ClusterMembersCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ClusterMembersHeaderLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ClusterMembersId() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ClusterMembersMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ClusterSizeEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ClusterSizeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ClusterSizeMaxValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ClusterSizeMinValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.ClusterSizeNullValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.MembershipChangeEventEncoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.BlockLengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.BlockLengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.BlockLengthMaxValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.BlockLengthMinValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.BlockLengthNullValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.ENCODED_LENGTH -> int +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.SchemaIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.SchemaIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.SchemaIdMaxValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.SchemaIdMinValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.SchemaIdNullValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.TemplateIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.TemplateIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.TemplateIdMaxValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.TemplateIdMinValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.TemplateIdNullValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.VersionMaxValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.VersionMinValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderDecoder.VersionNullValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.BlockLengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.BlockLengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.BlockLengthMaxValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.BlockLengthMinValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.BlockLengthNullValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.ENCODED_LENGTH -> int +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.SchemaIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.SchemaIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.SchemaIdMaxValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.SchemaIdMinValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.SchemaIdNullValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.TemplateIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.TemplateIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.TemplateIdMaxValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.TemplateIdMinValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.TemplateIdNullValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.VersionMaxValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.VersionMinValue() -> ushort +static Adaptive.Cluster.Codecs.MessageHeaderEncoder.VersionNullValue() -> ushort +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.IngressEndpointsCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.IngressEndpointsHeaderLength() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.IngressEndpointsId() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.IngressEndpointsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.IngressEndpointsSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeaderMemberIdId() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeaderMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeaderMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeaderEventDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.IngressEndpointsCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.IngressEndpointsHeaderLength() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.IngressEndpointsId() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.IngressEndpointsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeaderEventEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.AppVersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.AppVersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.AppVersionId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.AppVersionMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.AppVersionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.AppVersionMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.AppVersionNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.AppVersionSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.IsStartupEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.IsStartupEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.IsStartupId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.IsStartupMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.IsStartupSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderMemberIdId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderRecordingIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderRecordingIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderRecordingIdId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderRecordingIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderRecordingIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderRecordingIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderRecordingIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeaderRecordingIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogLeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogLeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogLeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogSessionIdId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogSessionIdMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogSessionIdMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogSessionIdNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.LogSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLogPositionId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextLogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextTermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextTermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextTermBaseLogPositionId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextTermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextTermBaseLogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextTermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextTermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.NextTermBaseLogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TermBaseLogPositionId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TermBaseLogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TermBaseLogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TimestampId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TimestampMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermDecoder.TimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.AppVersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.AppVersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.AppVersionMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.AppVersionMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.AppVersionNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.IsStartupEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.IsStartupEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeaderRecordingIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeaderRecordingIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeaderRecordingIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeaderRecordingIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeaderRecordingIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogSessionIdMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogSessionIdMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.LogSessionIdNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextTermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextTermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextTermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextTermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.NextTermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.TermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.TermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.TermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.TermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.TermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEncoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.AppVersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.AppVersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.AppVersionId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.AppVersionMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.AppVersionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.AppVersionMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.AppVersionNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.AppVersionSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeaderMemberIdId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeaderMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeaderMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogSessionIdId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogSessionIdMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogSessionIdMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogSessionIdNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.LogSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TermBaseLogPositionId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TermBaseLogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TermBaseLogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimestampId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimestampMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimeUnitEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimeUnitEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimeUnitId() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimeUnitMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.NewLeadershipTermEventDecoder.TimeUnitSinceVersion() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.AppVersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.AppVersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.AppVersionMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.AppVersionMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.AppVersionNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LogSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LogSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LogSessionIdMaxValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LogSessionIdMinValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.LogSessionIdNullValue() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TimeUnitEncodingLength() -> int +static Adaptive.Cluster.Codecs.NewLeadershipTermEventEncoder.TimeUnitEncodingOffset() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.LogServiceSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.LogServiceSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.LogServiceSessionIdId() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.LogServiceSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.LogServiceSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.LogServiceSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.LogServiceSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.LogServiceSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.NextServiceSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.NextServiceSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.NextServiceSessionIdId() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.NextServiceSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.NextServiceSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.NextServiceSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.NextServiceSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.NextServiceSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.PendingMessageCapacityEncodingLength() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.PendingMessageCapacityEncodingOffset() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.PendingMessageCapacityId() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.PendingMessageCapacityMaxValue() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.PendingMessageCapacityMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.PendingMessageCapacityMinValue() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.PendingMessageCapacityNullValue() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.PendingMessageCapacitySinceVersion() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.ServiceIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.ServiceIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.ServiceIdId() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.ServiceIdMaxValue() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.ServiceIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.ServiceIdMinValue() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.ServiceIdNullValue() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerDecoder.ServiceIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.LogServiceSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.LogServiceSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.LogServiceSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.LogServiceSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.LogServiceSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.NextServiceSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.NextServiceSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.NextServiceSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.NextServiceSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.NextServiceSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.PendingMessageCapacityEncodingLength() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.PendingMessageCapacityEncodingOffset() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.PendingMessageCapacityMaxValue() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.PendingMessageCapacityMinValue() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.PendingMessageCapacityNullValue() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.ServiceIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.ServiceIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.ServiceIdMaxValue() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.ServiceIdMinValue() -> int +static Adaptive.Cluster.Codecs.PendingMessageTrackerEncoder.ServiceIdNullValue() -> int +static Adaptive.Cluster.Codecs.RemoveMemberDecoder.IsPassiveEncodingLength() -> int +static Adaptive.Cluster.Codecs.RemoveMemberDecoder.IsPassiveEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RemoveMemberDecoder.IsPassiveId() -> int +static Adaptive.Cluster.Codecs.RemoveMemberDecoder.IsPassiveMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.RemoveMemberDecoder.IsPassiveSinceVersion() -> int +static Adaptive.Cluster.Codecs.RemoveMemberDecoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.RemoveMemberDecoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RemoveMemberDecoder.MemberIdId() -> int +static Adaptive.Cluster.Codecs.RemoveMemberDecoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.RemoveMemberDecoder.MemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.RemoveMemberDecoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.RemoveMemberDecoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.RemoveMemberDecoder.MemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.RemoveMemberEncoder.IsPassiveEncodingLength() -> int +static Adaptive.Cluster.Codecs.RemoveMemberEncoder.IsPassiveEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RemoveMemberEncoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.RemoveMemberEncoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RemoveMemberEncoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.RemoveMemberEncoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.RemoveMemberEncoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.RequestServiceAckDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.RequestServiceAckDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RequestServiceAckDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.RequestServiceAckDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.RequestServiceAckDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.RequestServiceAckDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.RequestServiceAckDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.RequestServiceAckDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.RequestServiceAckEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.RequestServiceAckEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RequestServiceAckEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.RequestServiceAckEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.RequestServiceAckEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateMemberIdId() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateTermIdId() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteDecoder.CandidateTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogLeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogLeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogLeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.ProtocolVersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.ProtocolVersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.ProtocolVersionId() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.ProtocolVersionMaxValue() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.ProtocolVersionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.RequestVoteDecoder.ProtocolVersionMinValue() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.ProtocolVersionNullValue() -> int +static Adaptive.Cluster.Codecs.RequestVoteDecoder.ProtocolVersionSinceVersion() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.CandidateMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.CandidateMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.CandidateMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.CandidateMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.CandidateMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.CandidateTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.CandidateTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.CandidateTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteEncoder.CandidateTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteEncoder.CandidateTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteEncoder.LogLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.LogLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.LogLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteEncoder.LogLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteEncoder.LogLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.RequestVoteEncoder.ProtocolVersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.ProtocolVersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.ProtocolVersionMaxValue() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.ProtocolVersionMinValue() -> int +static Adaptive.Cluster.Codecs.RequestVoteEncoder.ProtocolVersionNullValue() -> int +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.DeadlineEncodingLength() -> int +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.DeadlineEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.DeadlineId() -> int +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.DeadlineMaxValue() -> long +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.DeadlineMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.DeadlineMinValue() -> long +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.DeadlineNullValue() -> long +static Adaptive.Cluster.Codecs.ScheduleTimerDecoder.DeadlineSinceVersion() -> int +static Adaptive.Cluster.Codecs.ScheduleTimerEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ScheduleTimerEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ScheduleTimerEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ScheduleTimerEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.ScheduleTimerEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.ScheduleTimerEncoder.DeadlineEncodingLength() -> int +static Adaptive.Cluster.Codecs.ScheduleTimerEncoder.DeadlineEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ScheduleTimerEncoder.DeadlineMaxValue() -> long +static Adaptive.Cluster.Codecs.ScheduleTimerEncoder.DeadlineMinValue() -> long +static Adaptive.Cluster.Codecs.ScheduleTimerEncoder.DeadlineNullValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckDecoder.AckIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.AckIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.AckIdId() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.AckIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckDecoder.AckIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ServiceAckDecoder.AckIdMinValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckDecoder.AckIdNullValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckDecoder.AckIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ServiceAckDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.RelevantIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.RelevantIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.RelevantIdId() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.RelevantIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckDecoder.RelevantIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ServiceAckDecoder.RelevantIdMinValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckDecoder.RelevantIdNullValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckDecoder.RelevantIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.ServiceIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.ServiceIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.ServiceIdId() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.ServiceIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.ServiceIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ServiceAckDecoder.ServiceIdMinValue() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.ServiceIdNullValue() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.ServiceIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.TimestampId() -> int +static Adaptive.Cluster.Codecs.ServiceAckDecoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckDecoder.TimestampMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ServiceAckDecoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckDecoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckDecoder.TimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.AckIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.AckIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.AckIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckEncoder.AckIdMinValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckEncoder.AckIdNullValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckEncoder.RelevantIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.RelevantIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.RelevantIdMaxValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckEncoder.RelevantIdMinValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckEncoder.RelevantIdNullValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckEncoder.ServiceIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.ServiceIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.ServiceIdMaxValue() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.ServiceIdMinValue() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.ServiceIdNullValue() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ServiceAckEncoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckEncoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.ServiceAckEncoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.ServiceTerminationPositionDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.ServiceTerminationPositionEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.CloseReasonEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.CloseReasonEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.CloseReasonId() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.CloseReasonMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.CloseReasonSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.TimestampId() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.TimestampMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventDecoder.TimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.CloseReasonEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.CloseReasonEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseEventEncoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseRequestDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionCloseRequestEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ClientInfoCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ClientInfoHeaderLength() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ClientInfoId() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ClientInfoMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ClientInfoSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.EncodedCredentialsId() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.EncodedCredentialsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.EncodedCredentialsSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseChannelSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseStreamIdId() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseStreamIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.ResponseStreamIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.VersionId() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.VersionMaxValue() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.VersionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.VersionMinValue() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.VersionNullValue() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestDecoder.VersionSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ClientInfoCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ClientInfoHeaderLength() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ClientInfoId() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ClientInfoMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.EncodedCredentialsId() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.EncodedCredentialsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.VersionMaxValue() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.VersionMinValue() -> int +static Adaptive.Cluster.Codecs.SessionConnectRequestEncoder.VersionNullValue() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionEventDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionEventDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionEventDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionEventDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.CodeEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.CodeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.CodeId() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.CodeMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionEventDecoder.CodeSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionEventDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionEventDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionEventDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionEventDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.DetailCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.SessionEventDecoder.DetailHeaderLength() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.DetailId() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.DetailMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionEventDecoder.DetailSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderHeartbeatTimeoutNsEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderHeartbeatTimeoutNsEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderHeartbeatTimeoutNsId() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderHeartbeatTimeoutNsMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderHeartbeatTimeoutNsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderHeartbeatTimeoutNsMinValue() -> long +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderHeartbeatTimeoutNsNullValue() -> long +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderHeartbeatTimeoutNsSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderMemberIdId() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeaderMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionEventDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.VersionId() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.VersionMaxValue() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.VersionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionEventDecoder.VersionMinValue() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.VersionNullValue() -> int +static Adaptive.Cluster.Codecs.SessionEventDecoder.VersionSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionEventEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionEventEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionEventEncoder.CodeEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.CodeEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionEventEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionEventEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionEventEncoder.DetailCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.SessionEventEncoder.DetailHeaderLength() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.DetailId() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.DetailMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeaderHeartbeatTimeoutNsEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeaderHeartbeatTimeoutNsEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeaderHeartbeatTimeoutNsMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeaderHeartbeatTimeoutNsMinValue() -> long +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeaderHeartbeatTimeoutNsNullValue() -> long +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeaderMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeaderMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeaderMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeaderMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeaderMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionEventEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionEventEncoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.VersionMaxValue() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.VersionMinValue() -> int +static Adaptive.Cluster.Codecs.SessionEventEncoder.VersionNullValue() -> int +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionKeepAliveDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionKeepAliveEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.TimestampId() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.TimestampMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderDecoder.TimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.SessionMessageHeaderEncoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ClusterSessionIdId() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ClusterSessionIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ClusterSessionIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.EncodedPrincipalHeaderLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.EncodedPrincipalId() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.EncodedPrincipalMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.EncodedPrincipalSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseChannelSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseStreamIdId() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseStreamIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.ResponseStreamIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.TimestampId() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.TimestampMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventDecoder.TimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ClusterSessionIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ClusterSessionIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ClusterSessionIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ClusterSessionIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ClusterSessionIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.EncodedPrincipalHeaderLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.EncodedPrincipalId() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.EncodedPrincipalMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.SessionOpenEventEncoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.AppVersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.AppVersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.AppVersionId() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.AppVersionMaxValue() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.AppVersionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.AppVersionMinValue() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.AppVersionNullValue() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.AppVersionSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.IndexEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.IndexEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.IndexId() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.IndexMaxValue() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.IndexMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.IndexMinValue() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.IndexNullValue() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.IndexSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.MarkEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.MarkEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.MarkId() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.MarkMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.MarkSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TimeUnitEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TimeUnitEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TimeUnitId() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TimeUnitMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TimeUnitSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TypeIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TypeIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TypeIdId() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TypeIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TypeIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TypeIdMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TypeIdNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerDecoder.TypeIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.AppVersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.AppVersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.AppVersionMaxValue() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.AppVersionMinValue() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.AppVersionNullValue() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.IndexEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.IndexEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.IndexMaxValue() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.IndexMinValue() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.IndexNullValue() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.MarkEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.MarkEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.TimeUnitEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.TimeUnitEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.TypeIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.TypeIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.TypeIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.TypeIdMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotMarkerEncoder.TypeIdNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.RequestMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.RequestMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.RequestMemberIdId() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.RequestMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.RequestMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.RequestMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.RequestMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryDecoder.RequestMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.RequestMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.RequestMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.RequestMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.RequestMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingQueryEncoder.RequestMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.MemberEndpointsCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.MemberEndpointsHeaderLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.MemberEndpointsId() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.MemberEndpointsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.MemberEndpointsSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.RecordingIdId() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.RecordingIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.RecordingIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.RecordingIdMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.RecordingIdNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.SbeBlockLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.SbeHeaderSize() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.ServiceIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.ServiceIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.ServiceIdId() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.ServiceIdMaxValue() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.ServiceIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.ServiceIdMinValue() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.ServiceIdNullValue() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.ServiceIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TermBaseLogPositionId() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TermBaseLogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TermBaseLogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TimestampId() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TimestampMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoder.TimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoderId() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsDecoder.SnapshotsDecoderSinceVersion() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.MemberEndpointsCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.MemberEndpointsHeaderLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.MemberEndpointsId() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.MemberEndpointsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.RecordingIdMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.RecordingIdMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.RecordingIdNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.SbeBlockLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.SbeHeaderSize() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.ServiceIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.ServiceIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.ServiceIdMaxValue() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.ServiceIdMinValue() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.ServiceIdNullValue() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.TermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.TermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.TermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.TermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.TermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsEncoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.SnapshotRecordingsEncoder.SnapshotsId() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.EncodedCredentialsId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.EncodedCredentialsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.EncodedCredentialsSinceVersion() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseChannelSinceVersion() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseStreamIdId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseStreamIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.ResponseStreamIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ArchiveEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ArchiveEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ArchiveEndpointId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ArchiveEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ArchiveEndpointSinceVersion() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.RecordingIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.RecordingIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.RecordingIdId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.RecordingIdMaxValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.RecordingIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.RecordingIdMinValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.RecordingIdNullValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.RecordingIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.SbeBlockLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.SbeHeaderSize() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ServiceIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ServiceIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ServiceIdId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ServiceIdMaxValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ServiceIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ServiceIdMinValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ServiceIdNullValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.ServiceIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TermBaseLogPositionId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TermBaseLogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TermBaseLogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TimestampId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TimestampMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoder.TimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoderId() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.SnapshotsDecoderSinceVersion() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.VersionId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.VersionMaxValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.VersionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.VersionMinValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.VersionNullValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotDecoder.VersionSinceVersion() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.EncodedCredentialsHeaderLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.EncodedCredentialsId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.EncodedCredentialsMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.ResponseChannelCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.ResponseChannelHeaderLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.ResponseChannelId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.ResponseChannelMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.ResponseStreamIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.ResponseStreamIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.ResponseStreamIdMaxValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.ResponseStreamIdMinValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.ResponseStreamIdNullValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.ArchiveEndpointCharacterEncoding() -> string +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.ArchiveEndpointHeaderLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.ArchiveEndpointId() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.ArchiveEndpointMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.RecordingIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.RecordingIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.RecordingIdMaxValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.RecordingIdMinValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.RecordingIdNullValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.SbeBlockLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.SbeHeaderSize() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.ServiceIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.ServiceIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.ServiceIdMaxValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.ServiceIdMinValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.ServiceIdNullValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.TermBaseLogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.TermBaseLogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.TermBaseLogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.TermBaseLogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.TermBaseLogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsEncoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.SnapshotsId() -> long +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.VersionEncodingLength() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.VersionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.VersionMaxValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.VersionMinValue() -> int +static Adaptive.Cluster.Codecs.StandbySnapshotEncoder.VersionNullValue() -> int +static Adaptive.Cluster.Codecs.StopCatchupDecoder.FollowerMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StopCatchupDecoder.FollowerMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StopCatchupDecoder.FollowerMemberIdId() -> int +static Adaptive.Cluster.Codecs.StopCatchupDecoder.FollowerMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.StopCatchupDecoder.FollowerMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StopCatchupDecoder.FollowerMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.StopCatchupDecoder.FollowerMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.StopCatchupDecoder.FollowerMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.StopCatchupDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StopCatchupDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StopCatchupDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.StopCatchupDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.StopCatchupDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.StopCatchupDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.StopCatchupDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.StopCatchupDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.StopCatchupEncoder.FollowerMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StopCatchupEncoder.FollowerMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StopCatchupEncoder.FollowerMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.StopCatchupEncoder.FollowerMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.StopCatchupEncoder.FollowerMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.StopCatchupEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.StopCatchupEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.StopCatchupEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.StopCatchupEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.StopCatchupEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.TerminationAckDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.MemberIdId() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.MemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.TerminationAckDecoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.TerminationAckDecoder.MemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.TerminationAckEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.TerminationAckEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TerminationAckEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.TerminationAckEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.TerminationAckEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.TerminationAckEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.TerminationAckEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TerminationAckEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.TerminationAckEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.TerminationAckEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.TerminationAckEncoder.MemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.TerminationAckEncoder.MemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TerminationAckEncoder.MemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.TerminationAckEncoder.MemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.TerminationAckEncoder.MemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.TerminationPositionDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.TerminationPositionEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.TerminationPositionEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TerminationPositionEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.TerminationPositionEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.TerminationPositionEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.TerminationPositionEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.TerminationPositionEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TerminationPositionEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.TerminationPositionEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.TerminationPositionEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.TimerDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.TimerDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TimerDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.TimerDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.TimerDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.TimerDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.TimerDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.TimerDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.TimerDecoder.DeadlineEncodingLength() -> int +static Adaptive.Cluster.Codecs.TimerDecoder.DeadlineEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TimerDecoder.DeadlineId() -> int +static Adaptive.Cluster.Codecs.TimerDecoder.DeadlineMaxValue() -> long +static Adaptive.Cluster.Codecs.TimerDecoder.DeadlineMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.TimerDecoder.DeadlineMinValue() -> long +static Adaptive.Cluster.Codecs.TimerDecoder.DeadlineNullValue() -> long +static Adaptive.Cluster.Codecs.TimerDecoder.DeadlineSinceVersion() -> int +static Adaptive.Cluster.Codecs.TimerEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.TimerEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TimerEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.TimerEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.TimerEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.TimerEncoder.DeadlineEncodingLength() -> int +static Adaptive.Cluster.Codecs.TimerEncoder.DeadlineEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TimerEncoder.DeadlineMaxValue() -> long +static Adaptive.Cluster.Codecs.TimerEncoder.DeadlineMinValue() -> long +static Adaptive.Cluster.Codecs.TimerEncoder.DeadlineNullValue() -> long +static Adaptive.Cluster.Codecs.TimerEventDecoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.TimerEventDecoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TimerEventDecoder.CorrelationIdId() -> int +static Adaptive.Cluster.Codecs.TimerEventDecoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.TimerEventDecoder.CorrelationIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.TimerEventDecoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.TimerEventDecoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.TimerEventDecoder.CorrelationIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.TimerEventDecoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.TimerEventDecoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TimerEventDecoder.LeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.TimerEventDecoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.TimerEventDecoder.LeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.TimerEventDecoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.TimerEventDecoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.TimerEventDecoder.LeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.TimerEventDecoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.TimerEventDecoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TimerEventDecoder.TimestampId() -> int +static Adaptive.Cluster.Codecs.TimerEventDecoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.TimerEventDecoder.TimestampMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.TimerEventDecoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.TimerEventDecoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.TimerEventDecoder.TimestampSinceVersion() -> int +static Adaptive.Cluster.Codecs.TimerEventEncoder.CorrelationIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.TimerEventEncoder.CorrelationIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TimerEventEncoder.CorrelationIdMaxValue() -> long +static Adaptive.Cluster.Codecs.TimerEventEncoder.CorrelationIdMinValue() -> long +static Adaptive.Cluster.Codecs.TimerEventEncoder.CorrelationIdNullValue() -> long +static Adaptive.Cluster.Codecs.TimerEventEncoder.LeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.TimerEventEncoder.LeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TimerEventEncoder.LeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.TimerEventEncoder.LeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.TimerEventEncoder.LeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.TimerEventEncoder.TimestampEncodingLength() -> int +static Adaptive.Cluster.Codecs.TimerEventEncoder.TimestampEncodingOffset() -> int +static Adaptive.Cluster.Codecs.TimerEventEncoder.TimestampMaxValue() -> long +static Adaptive.Cluster.Codecs.TimerEventEncoder.TimestampMinValue() -> long +static Adaptive.Cluster.Codecs.TimerEventEncoder.TimestampNullValue() -> long +static Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.ENCODED_LENGTH -> int +static Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.LengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.LengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.LengthMaxValue() -> uint +static Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.LengthMinValue() -> uint +static Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.LengthNullValue() -> uint +static Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.VarDataEncodingLength() -> int +static Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.VarDataEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.VarDataMaxValue() -> byte +static Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.VarDataMinValue() -> byte +static Adaptive.Cluster.Codecs.VarAsciiEncodingDecoder.VarDataNullValue() -> byte +static Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.ENCODED_LENGTH -> int +static Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.LengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.LengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.LengthMaxValue() -> uint +static Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.LengthMinValue() -> uint +static Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.LengthNullValue() -> uint +static Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.VarDataEncodingLength() -> int +static Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.VarDataEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.VarDataMaxValue() -> byte +static Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.VarDataMinValue() -> byte +static Adaptive.Cluster.Codecs.VarAsciiEncodingEncoder.VarDataNullValue() -> byte +static Adaptive.Cluster.Codecs.VarDataEncodingDecoder.ENCODED_LENGTH -> int +static Adaptive.Cluster.Codecs.VarDataEncodingDecoder.LengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.VarDataEncodingDecoder.LengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VarDataEncodingDecoder.LengthMaxValue() -> uint +static Adaptive.Cluster.Codecs.VarDataEncodingDecoder.LengthMinValue() -> uint +static Adaptive.Cluster.Codecs.VarDataEncodingDecoder.LengthNullValue() -> uint +static Adaptive.Cluster.Codecs.VarDataEncodingDecoder.VarDataEncodingLength() -> int +static Adaptive.Cluster.Codecs.VarDataEncodingDecoder.VarDataEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VarDataEncodingDecoder.VarDataMaxValue() -> byte +static Adaptive.Cluster.Codecs.VarDataEncodingDecoder.VarDataMinValue() -> byte +static Adaptive.Cluster.Codecs.VarDataEncodingDecoder.VarDataNullValue() -> byte +static Adaptive.Cluster.Codecs.VarDataEncodingEncoder.ENCODED_LENGTH -> int +static Adaptive.Cluster.Codecs.VarDataEncodingEncoder.LengthEncodingLength() -> int +static Adaptive.Cluster.Codecs.VarDataEncodingEncoder.LengthEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VarDataEncodingEncoder.LengthMaxValue() -> uint +static Adaptive.Cluster.Codecs.VarDataEncodingEncoder.LengthMinValue() -> uint +static Adaptive.Cluster.Codecs.VarDataEncodingEncoder.LengthNullValue() -> uint +static Adaptive.Cluster.Codecs.VarDataEncodingEncoder.VarDataEncodingLength() -> int +static Adaptive.Cluster.Codecs.VarDataEncodingEncoder.VarDataEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VarDataEncodingEncoder.VarDataMaxValue() -> byte +static Adaptive.Cluster.Codecs.VarDataEncodingEncoder.VarDataMinValue() -> byte +static Adaptive.Cluster.Codecs.VarDataEncodingEncoder.VarDataNullValue() -> byte +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateMemberIdId() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateTermIdId() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.VoteDecoder.CandidateTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.FollowerMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.FollowerMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.FollowerMemberIdId() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.FollowerMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.FollowerMemberIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.VoteDecoder.FollowerMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.FollowerMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.FollowerMemberIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.LogLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.LogLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.LogLeadershipTermIdId() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.LogLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.VoteDecoder.LogLeadershipTermIdMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.VoteDecoder.LogLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.VoteDecoder.LogLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.VoteDecoder.LogLeadershipTermIdSinceVersion() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.LogPositionId() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.VoteDecoder.LogPositionMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.VoteDecoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.VoteDecoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.VoteDecoder.LogPositionSinceVersion() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.VoteEncodingLength() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.VoteEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.VoteId() -> int +static Adaptive.Cluster.Codecs.VoteDecoder.VoteMetaAttribute(Adaptive.Cluster.Codecs.MetaAttribute metaAttribute) -> string +static Adaptive.Cluster.Codecs.VoteDecoder.VoteSinceVersion() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.CandidateMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.CandidateMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.CandidateMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.CandidateMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.CandidateMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.CandidateTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.CandidateTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.CandidateTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.VoteEncoder.CandidateTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.VoteEncoder.CandidateTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.VoteEncoder.FollowerMemberIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.FollowerMemberIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.FollowerMemberIdMaxValue() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.FollowerMemberIdMinValue() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.FollowerMemberIdNullValue() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.LogLeadershipTermIdEncodingLength() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.LogLeadershipTermIdEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.LogLeadershipTermIdMaxValue() -> long +static Adaptive.Cluster.Codecs.VoteEncoder.LogLeadershipTermIdMinValue() -> long +static Adaptive.Cluster.Codecs.VoteEncoder.LogLeadershipTermIdNullValue() -> long +static Adaptive.Cluster.Codecs.VoteEncoder.LogPositionEncodingLength() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.LogPositionEncodingOffset() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.LogPositionMaxValue() -> long +static Adaptive.Cluster.Codecs.VoteEncoder.LogPositionMinValue() -> long +static Adaptive.Cluster.Codecs.VoteEncoder.LogPositionNullValue() -> long +static Adaptive.Cluster.Codecs.VoteEncoder.VoteEncodingLength() -> int +static Adaptive.Cluster.Codecs.VoteEncoder.VoteEncodingOffset() -> int +static Adaptive.Cluster.Service.ClusterCounters.AllocateServiceCounter(Adaptive.Aeron.Aeron aeron, Adaptive.Agrona.IMutableDirectBuffer tempBuffer, string name, int typeId, int clusterId, int serviceId) -> Adaptive.Aeron.Counter +static Adaptive.Cluster.Service.ClusterCounters.Find(Adaptive.Agrona.Concurrent.Status.CountersReader counters, int typeId, int clusterId) -> int +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.ClusterDirName() -> string +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.ClusterId() -> int +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.ClusterServicesDirName() -> string +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.ConsensusModuleStreamId() -> int +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.ControlChannel() -> string +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.CycleThresholdNs() -> long +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.ErrorBufferLength() -> int +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.IdleStrategySupplier(Adaptive.Agrona.Concurrent.StatusIndicator controllableStatus) -> System.Func +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.IsRespondingService() -> bool +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.LogFragmentLimit() -> int +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.MarkFileDir() -> string +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.NewClusteredService() -> Adaptive.Cluster.Service.IClusteredService +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.NewDelegatingErrorHandler() -> Adaptive.Agrona.DelegatingErrorHandler +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.ReplayChannel() -> string +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.ReplayStreamId() -> int +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.ServiceId() -> int +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.ServiceName() -> string +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.ServiceStreamId() -> int +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SnapshotChannel() -> string +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SnapshotDurationThresholdNs() -> long +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SnapshotStreamId() -> int +static Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.StandbySnapshotEnabled() -> bool +static Adaptive.Cluster.Service.ClusteredServiceContainer.Launch() -> Adaptive.Cluster.Service.ClusteredServiceContainer +static Adaptive.Cluster.Service.ClusteredServiceContainer.Launch(Adaptive.Cluster.Service.ClusteredServiceContainer.Context ctx) -> Adaptive.Cluster.Service.ClusteredServiceContainer +static Adaptive.Cluster.Service.ClusteredServiceContainer.Main(string[] args) -> void +static Adaptive.Cluster.Service.RecoveryState.FindCounterId(Adaptive.Agrona.Concurrent.Status.CountersReader counters, int clusterId) -> int +static Adaptive.Cluster.Service.RecoveryState.GetLeadershipTermId(Adaptive.Agrona.Concurrent.Status.CountersReader counters, int counterId) -> long +static Adaptive.Cluster.Service.RecoveryState.GetLogPosition(Adaptive.Agrona.Concurrent.Status.CountersReader counters, int counterId) -> long +static Adaptive.Cluster.Service.RecoveryState.GetSnapshotRecordingId(Adaptive.Agrona.Concurrent.Status.CountersReader counters, int counterId, int serviceId) -> long +static Adaptive.Cluster.Service.RecoveryState.GetTimestamp(Adaptive.Agrona.Concurrent.Status.CountersReader counters, int counterId) -> long +static Adaptive.Cluster.Service.SnapshotTaker.CheckInterruptStatus() -> void +static Adaptive.Cluster.Service.SnapshotTaker.CheckResult(long position, Adaptive.Aeron.Publication publication) -> void +static readonly Adaptive.Cluster.AppVersionValidator.SEMANTIC_VERSIONING_VALIDATOR -> Adaptive.Cluster.AppVersionValidator +static readonly Adaptive.Cluster.Client.AeronCluster.Configuration.MESSAGE_TIMEOUT_DEFAULT_NS -> long +static readonly Adaptive.Cluster.Client.AeronCluster.Configuration.PROTOCOL_SEMANTIC_VERSION -> int +static readonly Adaptive.Cluster.Client.AeronCluster.SESSION_HEADER_LENGTH -> int +static readonly Adaptive.Cluster.Client.IngressSessionDecorator.HEADER_LENGTH -> int +static readonly Adaptive.Cluster.ClusterMarkFile.SEMANTIC_VERSION -> int +static readonly Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.LIVENESS_TIMEOUT_MS -> long +static readonly Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.MARK_FILE_UPDATE_INTERVAL_NS -> long +static readonly Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.REPLAY_CHANNEL_DEFAULT -> string +static readonly Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SNAPSHOT_CHANNEL_DEFAULT -> string +static readonly Adaptive.Cluster.Service.ClusteredServiceContainer.Configuration.SNAPSHOT_DURATION_THRESHOLD_DEFAULT_NS -> long diff --git a/src/Adaptive.Cluster/PublicAPI.Unshipped.txt b/src/Adaptive.Cluster/PublicAPI.Unshipped.txt new file mode 100644 index 00000000..e69de29b diff --git a/src/Adaptive.Cluster/Service/ActiveLogEvent.cs b/src/Adaptive.Cluster/Service/ActiveLogEvent.cs index db78659c..96ba0d29 100644 --- a/src/Adaptive.Cluster/Service/ActiveLogEvent.cs +++ b/src/Adaptive.Cluster/Service/ActiveLogEvent.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Cluster.Service +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Cluster.Service { /// /// Event to signal a change of active log to follow. @@ -22,7 +38,8 @@ internal ActiveLogEvent( int streamId, bool isStartup, ClusterRole role, - string channel) + string channel + ) { this.logPosition = logPosition; this.maxLogPosition = maxLogPosition; @@ -36,16 +53,16 @@ internal ActiveLogEvent( public override string ToString() { - return "NewActiveLogEvent{" - + "logPosition=" + logPosition - + ", maxLogPosition=" + maxLogPosition - + ", memberId=" + memberId - + ", sessionId=" + sessionId - + ", streamId=" + streamId - + ", isStartup=" + isStartup - + ", role=" + role - + ", channel='" + channel + "'" - + '}'; + return "NewActiveLogEvent{" + + "logPosition=" + logPosition + + ", maxLogPosition=" + maxLogPosition + + ", memberId=" + memberId + + ", sessionId=" + sessionId + + ", streamId=" + streamId + + ", isStartup=" + isStartup + + ", role=" + role + + ", channel='" + channel + "'" + + '}'; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/BoundedLogAdapter.cs b/src/Adaptive.Cluster/Service/BoundedLogAdapter.cs index 487ad7b7..06d98b92 100644 --- a/src/Adaptive.Cluster/Service/BoundedLogAdapter.cs +++ b/src/Adaptive.Cluster/Service/BoundedLogAdapter.cs @@ -1,7 +1,22 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; -using Adaptive.Aeron.Status; using Adaptive.Agrona; using Adaptive.Cluster.Client; using Adaptive.Cluster.Codecs; @@ -15,32 +30,32 @@ namespace Adaptive.Cluster.Service /// internal sealed class BoundedLogAdapter : IControlledFragmentHandler, IDisposable { - private readonly int fragmentLimit; - private long maxLogPosition; - private Image image; - private readonly ClusteredServiceAgent agent; - private readonly BufferBuilder builder = new BufferBuilder(); - private readonly MessageHeaderDecoder messageHeaderDecoder = new MessageHeaderDecoder(); - private readonly SessionMessageHeaderDecoder sessionHeaderDecoder = new SessionMessageHeaderDecoder(); - private readonly TimerEventDecoder timerEventDecoder = new TimerEventDecoder(); - private readonly SessionOpenEventDecoder openEventDecoder = new SessionOpenEventDecoder(); - private readonly SessionCloseEventDecoder closeEventDecoder = new SessionCloseEventDecoder(); - private readonly ClusterActionRequestDecoder actionRequestDecoder = new ClusterActionRequestDecoder(); - private readonly NewLeadershipTermEventDecoder newLeadershipTermEventDecoder = + private readonly int _fragmentLimit; + private long _maxLogPosition; + private Image _image; + private readonly ClusteredServiceAgent _agent; + private readonly BufferBuilder _builder = new BufferBuilder(); + private readonly MessageHeaderDecoder _messageHeaderDecoder = new MessageHeaderDecoder(); + private readonly SessionMessageHeaderDecoder _sessionHeaderDecoder = new SessionMessageHeaderDecoder(); + private readonly TimerEventDecoder _timerEventDecoder = new TimerEventDecoder(); + private readonly SessionOpenEventDecoder _openEventDecoder = new SessionOpenEventDecoder(); + private readonly SessionCloseEventDecoder _closeEventDecoder = new SessionCloseEventDecoder(); + private readonly ClusterActionRequestDecoder _actionRequestDecoder = new ClusterActionRequestDecoder(); + private readonly NewLeadershipTermEventDecoder _newLeadershipTermEventDecoder = new NewLeadershipTermEventDecoder(); internal BoundedLogAdapter(ClusteredServiceAgent agent, int fragmentLimit) { - this.agent = agent; - this.fragmentLimit = fragmentLimit; + this._agent = agent; + this._fragmentLimit = fragmentLimit; } public void Dispose() { - if (null != image) + if (null != _image) { - image.Subscription?.Dispose(); - image = null; + _image.Subscription?.Dispose(); + _image = null; } } @@ -55,38 +70,39 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs } else if ((flags & BEGIN_FRAG_FLAG) == BEGIN_FRAG_FLAG) { - builder.Reset() + _builder + .Reset() .CaptureHeader(header) .Append(buffer, offset, length) .NextTermOffset(BitUtil.Align(offset + length + HEADER_LENGTH, FRAME_ALIGNMENT)); } - else if (offset == builder.NextTermOffset()) + else if (offset == _builder.NextTermOffset()) { - int limit = builder.Limit(); + int limit = _builder.Limit(); - builder.Append(buffer, offset, length); + _builder.Append(buffer, offset, length); if ((flags & END_FRAG_FLAG) == END_FRAG_FLAG) { - action = OnMessage(builder.Buffer(), 0, builder.Limit(), builder.CompleteHeader(header)); + action = OnMessage(_builder.Buffer(), 0, _builder.Limit(), _builder.CompleteHeader(header)); if (ControlledFragmentHandlerAction.ABORT == action) { - builder.Limit(limit); + _builder.Limit(limit); } else { - builder.Reset(); + _builder.Reset(); } } else { - builder.NextTermOffset(BitUtil.Align(offset + length + HEADER_LENGTH, FRAME_ALIGNMENT)); + _builder.NextTermOffset(BitUtil.Align(offset + length + HEADER_LENGTH, FRAME_ALIGNMENT)); } } else { - builder.Reset(); + _builder.Reset(); } return action; @@ -94,152 +110,171 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs internal void MaxLogPosition(long position) { - maxLogPosition = position; + _maxLogPosition = position; } public bool IsDone() { - return image.Position >= maxLogPosition || image.IsEndOfStream || image.Closed; + return _image.Position >= _maxLogPosition || _image.IsEndOfStream || _image.Closed; } internal void Image(Image image) { - this.image = image; + this._image = image; } internal Image Image() { - return image; + return _image; } public int Poll(long limit) { - return image.BoundedControlledPoll(this, limit, fragmentLimit); + return _image.BoundedControlledPoll(this, limit, _fragmentLimit); } + // Upstream: io.aeron.cluster.service.BoundedLogAdapter#onFragment is @SuppressWarnings("MethodLength"). + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S138:Functions should not have too many lines", + Justification = "Upstream Java parity; method is itself @SuppressWarnings(\"MethodLength\")." + )] private ControlledFragmentHandlerAction OnMessage(IDirectBuffer buffer, int offset, int length, Header header) { - messageHeaderDecoder.Wrap(buffer, offset); - int templateId = messageHeaderDecoder.TemplateId(); + _messageHeaderDecoder.Wrap(buffer, offset); + int templateId = _messageHeaderDecoder.TemplateId(); - int schemaId = messageHeaderDecoder.SchemaId(); + int schemaId = _messageHeaderDecoder.SchemaId(); if (schemaId != MessageHeaderDecoder.SCHEMA_ID) { - throw new ClusterException("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + - schemaId); + throw new ClusterException( + "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId + ); } if (templateId == SessionMessageHeaderEncoder.TEMPLATE_ID) { - sessionHeaderDecoder.Wrap( + _sessionHeaderDecoder.Wrap( buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - agent.OnSessionMessage( + _agent.OnSessionMessage( header.Position, - sessionHeaderDecoder.ClusterSessionId(), - sessionHeaderDecoder.Timestamp(), + _sessionHeaderDecoder.ClusterSessionId(), + _sessionHeaderDecoder.Timestamp(), buffer, offset + AeronCluster.SESSION_HEADER_LENGTH, length - AeronCluster.SESSION_HEADER_LENGTH, - header); + header + ); return ControlledFragmentHandlerAction.CONTINUE; } - switch (templateId) { case TimerEventDecoder.TEMPLATE_ID: - timerEventDecoder.Wrap( + _timerEventDecoder.Wrap( buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - agent.OnTimerEvent( + _agent.OnTimerEvent( header.Position, - timerEventDecoder.CorrelationId(), - timerEventDecoder.Timestamp() + _timerEventDecoder.CorrelationId(), + _timerEventDecoder.Timestamp() ); break; case SessionOpenEventDecoder.TEMPLATE_ID: - openEventDecoder.Wrap( + _openEventDecoder.Wrap( buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - string responseChannel = openEventDecoder.ResponseChannel(); - byte[] encodedPrincipal = new byte[openEventDecoder.EncodedPrincipalLength()]; - openEventDecoder.GetEncodedPrincipal(encodedPrincipal, 0, encodedPrincipal.Length); + string responseChannel = _openEventDecoder.ResponseChannel(); + byte[] encodedPrincipal = new byte[_openEventDecoder.EncodedPrincipalLength()]; + _openEventDecoder.GetEncodedPrincipal(encodedPrincipal, 0, encodedPrincipal.Length); - agent.OnSessionOpen( - openEventDecoder.LeadershipTermId(), + _agent.OnSessionOpen( + _openEventDecoder.LeadershipTermId(), header.Position, - openEventDecoder.ClusterSessionId(), - openEventDecoder.Timestamp(), - openEventDecoder.ResponseStreamId(), + _openEventDecoder.ClusterSessionId(), + _openEventDecoder.Timestamp(), + _openEventDecoder.ResponseStreamId(), responseChannel, - encodedPrincipal); + encodedPrincipal + ); break; case SessionCloseEventDecoder.TEMPLATE_ID: - closeEventDecoder.Wrap( + _closeEventDecoder.Wrap( buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - agent.OnSessionClose( - closeEventDecoder.LeadershipTermId(), + _agent.OnSessionClose( + _closeEventDecoder.LeadershipTermId(), header.Position, - closeEventDecoder.ClusterSessionId(), - closeEventDecoder.Timestamp(), - closeEventDecoder.CloseReason()); + _closeEventDecoder.ClusterSessionId(), + _closeEventDecoder.Timestamp(), + _closeEventDecoder.CloseReason() + ); break; case ClusterActionRequestDecoder.TEMPLATE_ID: - actionRequestDecoder.Wrap( + _actionRequestDecoder.Wrap( buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); - - var flags = ClusterActionRequestDecoder.FlagsNullValue() != actionRequestDecoder.Flags() ? - actionRequestDecoder.Flags() : ClusteredServiceContainer.CLUSTER_ACTION_FLAGS_DEFAULT; - - agent.OnServiceAction( - actionRequestDecoder.LeadershipTermId(), - actionRequestDecoder.LogPosition(), - actionRequestDecoder.Timestamp(), - actionRequestDecoder.Action(), - flags); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + var flags = + ClusterActionRequestDecoder.FlagsNullValue() != _actionRequestDecoder.Flags() + ? _actionRequestDecoder.Flags() + : ClusteredServiceContainer.CLUSTER_ACTION_FLAGS_DEFAULT; + + _agent.OnServiceAction( + _actionRequestDecoder.LeadershipTermId(), + _actionRequestDecoder.LogPosition(), + _actionRequestDecoder.Timestamp(), + _actionRequestDecoder.Action(), + flags + ); break; case NewLeadershipTermEventDecoder.TEMPLATE_ID: - newLeadershipTermEventDecoder.Wrap( + _newLeadershipTermEventDecoder.Wrap( buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); - - var clusterTimeUnit = newLeadershipTermEventDecoder.TimeUnit() == ClusterTimeUnit.NULL_VALUE - ? ClusterTimeUnit.MILLIS - : newLeadershipTermEventDecoder.TimeUnit(); - - agent.OnNewLeadershipTermEvent( - newLeadershipTermEventDecoder.LeadershipTermId(), - newLeadershipTermEventDecoder.LogPosition(), - newLeadershipTermEventDecoder.Timestamp(), - newLeadershipTermEventDecoder.TermBaseLogPosition(), - newLeadershipTermEventDecoder.LeaderMemberId(), - newLeadershipTermEventDecoder.LogSessionId(), + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); + + var clusterTimeUnit = + _newLeadershipTermEventDecoder.TimeUnit() == ClusterTimeUnit.NULL_VALUE + ? ClusterTimeUnit.MILLIS + : _newLeadershipTermEventDecoder.TimeUnit(); + + _agent.OnNewLeadershipTermEvent( + _newLeadershipTermEventDecoder.LeadershipTermId(), + _newLeadershipTermEventDecoder.LogPosition(), + _newLeadershipTermEventDecoder.Timestamp(), + _newLeadershipTermEventDecoder.TermBaseLogPosition(), + _newLeadershipTermEventDecoder.LeaderMemberId(), + _newLeadershipTermEventDecoder.LogSessionId(), clusterTimeUnit, - newLeadershipTermEventDecoder.AppVersion() + _newLeadershipTermEventDecoder.AppVersion() ); break; @@ -251,4 +286,4 @@ private ControlledFragmentHandlerAction OnMessage(IDirectBuffer buffer, int offs return ControlledFragmentHandlerAction.CONTINUE; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ClientSession.cs b/src/Adaptive.Cluster/Service/ClientSession.cs index 23b3fcde..6efa5e20 100644 --- a/src/Adaptive.Cluster/Service/ClientSession.cs +++ b/src/Adaptive.Cluster/Service/ClientSession.cs @@ -1,6 +1,21 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using Adaptive.Aeron; -using Adaptive.Aeron.Exceptions; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Cluster.Client; @@ -56,56 +71,51 @@ public interface IClientSession /// containing message. /// offset in the buffer at which the encoded message begins. /// in bytes of the encoded message. - /// the same as when in , - /// otherwise when a follower. + /// the same as + /// when in , otherwise + /// when a follower. long Offer(IDirectBuffer buffer, int offset, int length); /// - /// Non-blocking publish by gathering buffer vectors into a message. The first vector will be replaced by the cluster - /// egress header so must be left unused. + /// Non-blocking publish by gathering buffer vectors into a message. The first vector will be replaced by the + /// cluster egress header so must be left unused. /// /// which make up the message. - /// the same as . - /// when in , + /// the same as . + /// + /// when in + /// , /// otherwise when a follower. long Offer(DirectBufferVector[] vectors); /// /// Try to claim a range in the publication log into which a message can be written with zero copy semantics. - /// Once the message has been written then should be called thus making it available. + /// Once the message has been written then should be called thus making + /// it available. /// /// On successful claim, the Cluster egress header will be written to the start of the claimed buffer section. - /// Clients MUST write into the claimed buffer region at offset + . - ///
{@code
-        ///     final IDirectBuffer srcBuffer = AcquireMessage();
-        ///    
-        ///     if (clientSession.TryClaim(length, bufferClaim) > 0L)
-        ///     {
-        ///         try
-        ///         {
-        ///              final IMutableDirectBuffer buffer = bufferClaim.Buffer;
-        ///              final int offset = bufferClaim.Offset;
-        ///              // ensure that data is written at the correct offset
-        ///              buffer.PutBytes(offset + AeronCluster.SESSION_HEADER_LENGTH, srcBuffer, 0, length);
-        ///         }
-        ///         finally
-        ///         {
-        ///             bufferClaim.Commit();
-        ///         }
-        ///     }
-        /// }
- /// + /// Clients MUST write into the claimed buffer region at offset + + /// . + ///
{@code final IDirectBuffer srcBuffer = AcquireMessage();
+        ///
+        /// if (clientSession.TryClaim(length, bufferClaim) > 0L) { try { final IMutableDirectBuffer buffer =
+        /// bufferClaim.Buffer; final int offset = bufferClaim.Offset; // ensure that data is written at the correct
+        /// offset buffer.PutBytes(offset + AeronCluster.SESSION_HEADER_LENGTH, srcBuffer, 0, length); } finally {
+        /// bufferClaim.Commit(); } } }
+ /// ///
///
- /// of the range to claim in bytes. The additional bytes for the session header will be added. + /// of the range to claim in bytes. The additional bytes for the session header will be + /// added. /// to be populated if the claim succeeds. /// The new stream position, otherwise a negative error value as specified in - /// .when in , - /// otherwise when a follower. - /// if the length is greater than . + /// .when in , + /// otherwise when a follower. + /// if the length is greater than + /// . /// /// /// long TryClaim(int length, BufferClaim bufferClaim); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ClientSessionConstants.cs b/src/Adaptive.Cluster/Service/ClientSessionConstants.cs index b6a312a4..afce171b 100644 --- a/src/Adaptive.Cluster/Service/ClientSessionConstants.cs +++ b/src/Adaptive.Cluster/Service/ClientSessionConstants.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + namespace Adaptive.Cluster.Service { public static class ClientSessionConstants @@ -7,4 +23,4 @@ public static class ClientSessionConstants ///
public const long MOCKED_OFFER = 1; } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ClusterCounters.cs b/src/Adaptive.Cluster/Service/ClusterCounters.cs index 3613ae98..47e6a667 100644 --- a/src/Adaptive.Cluster/Service/ClusterCounters.cs +++ b/src/Adaptive.Cluster/Service/ClusterCounters.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; using Adaptive.Agrona; using Adaptive.Agrona.Concurrent; @@ -5,98 +21,122 @@ namespace Adaptive.Cluster.Service { - /// - /// For allocating and finding cluster associated counters identified by - /// . - /// - public class ClusterCounters - { - /// - /// Suffix for `clusterId` in the counter label. - /// - public const string CLUSTER_ID_LABEL_SUFFIX = " - clusterId="; - internal const string SERVICE_ID_SUFFIX = " serviceId="; - - /// - /// Find the counter id for a type of counter in a cluster. - /// - /// to search within. - /// of the counter. - /// to which the allocated counter belongs. - /// the matching counter id or if not found. - public static int Find(CountersReader counters, int typeId, int clusterId) - { - IAtomicBuffer buffer = counters.MetaDataBuffer; + /// + /// For allocating and finding cluster associated counters identified by + /// . + /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] + public class ClusterCounters + { + /// + /// Suffix for `clusterId` in the counter label. + /// + public const string CLUSTER_ID_LABEL_SUFFIX = " - clusterId="; + internal const string ServiceIdSuffix = " serviceId="; + + /// + /// Find the counter id for a type of counter in a cluster. + /// + /// to search within. + /// of the counter. + /// to which the allocated counter belongs. + /// the matching counter id or if not found. + /// + public static int Find(CountersReader counters, int typeId, int clusterId) + { + IAtomicBuffer buffer = counters.MetaDataBuffer; - for (int i = 0, size = counters.MaxCounterId; i < size; i++) - { - int recordOffset = CountersReader.MetaDataOffset(i); + for (int i = 0, size = counters.MaxCounterId; i < size; i++) + { + int recordOffset = CountersReader.MetaDataOffset(i); - var counterState = counters.GetCounterState(i); + var counterState = counters.GetCounterState(i); - if (CountersReader.RECORD_ALLOCATED == counterState) - { - if (counters.GetCounterTypeId(i) == typeId && - buffer.GetInt(recordOffset + CountersReader.KEY_OFFSET) == clusterId) - { - return i; - } - } - else if (CountersReader.RECORD_UNUSED == counterState) - { - break; - } - } + if (CountersReader.RECORD_ALLOCATED == counterState) + { + if ( + counters.GetCounterTypeId(i) == typeId + && buffer.GetInt(recordOffset + CountersReader.KEY_OFFSET) == clusterId + ) + { + return i; + } + } + else if (CountersReader.RECORD_UNUSED == counterState) + { + break; + } + } - return Aeron.Aeron.NULL_VALUE; - } + return Aeron.Aeron.NULL_VALUE; + } - /// - /// Allocate a counter to represent component state within a cluster. - /// - /// to allocate the counter. - /// temporary storage to create label and metadata. - /// of the counter for the label. - /// for the counter. - /// to which the allocated counter belongs. - /// to which the allocated counter belongs. - /// the for the commit position. - public static Counter AllocateServiceCounter(Aeron.Aeron aeron, IMutableDirectBuffer tempBuffer, string name, - int typeId, int clusterId, int serviceId) - { - int index = 0; - tempBuffer.PutInt(index, clusterId); - index += BitUtil.SIZE_OF_INT; - tempBuffer.PutInt(index, serviceId); - index += BitUtil.SIZE_OF_INT; - int keyLength = index; + /// + /// Allocate a counter to represent component state within a cluster. + /// + /// to allocate the counter. + /// temporary storage to create label and metadata. + /// of the counter for the label. + /// for the counter. + /// to which the allocated counter belongs. + /// to which the allocated counter belongs. + /// the for the commit position. + public static Counter AllocateServiceCounter( + Aeron.Aeron aeron, + IMutableDirectBuffer tempBuffer, + string name, + int typeId, + int clusterId, + int serviceId + ) + { + int index = 0; + tempBuffer.PutInt(index, clusterId); + index += BitUtil.SIZE_OF_INT; + tempBuffer.PutInt(index, serviceId); + index += BitUtil.SIZE_OF_INT; + int keyLength = index; - index += tempBuffer.PutStringWithoutLengthAscii(index, name); - index += tempBuffer.PutStringWithoutLengthAscii(index, CLUSTER_ID_LABEL_SUFFIX + clusterId); - index += tempBuffer.PutStringWithoutLengthAscii(index, SERVICE_ID_SUFFIX + serviceId); + index += tempBuffer.PutStringWithoutLengthAscii(index, name); + index += tempBuffer.PutStringWithoutLengthAscii(index, CLUSTER_ID_LABEL_SUFFIX + clusterId); + index += tempBuffer.PutStringWithoutLengthAscii(index, ServiceIdSuffix + serviceId); - return aeron.AddCounter(typeId, tempBuffer, 0, keyLength, tempBuffer, keyLength, index - keyLength); - } + return aeron.AddCounter(typeId, tempBuffer, 0, keyLength, tempBuffer, keyLength, index - keyLength); + } - internal static Counter AllocateServiceErrorCounter(Aeron.Aeron aeron, IMutableDirectBuffer tempBuffer, - int clusterId, - int serviceId) - { - int index = 0; - tempBuffer.PutInt(index, clusterId); - index += BitUtil.SIZE_OF_INT; - tempBuffer.PutInt(index, serviceId); - index += BitUtil.SIZE_OF_INT; - int keyLength = index; + internal static Counter AllocateServiceErrorCounter( + Aeron.Aeron aeron, + IMutableDirectBuffer tempBuffer, + int clusterId, + int serviceId + ) + { + int index = 0; + tempBuffer.PutInt(index, clusterId); + index += BitUtil.SIZE_OF_INT; + tempBuffer.PutInt(index, serviceId); + index += BitUtil.SIZE_OF_INT; + int keyLength = index; - index += tempBuffer.PutStringWithoutLengthAscii(index, "Cluster Container Errors"); - index += tempBuffer.PutStringWithoutLengthAscii(index, CLUSTER_ID_LABEL_SUFFIX + clusterId); - index += tempBuffer.PutStringWithoutLengthAscii(index, SERVICE_ID_SUFFIX + serviceId); - // index += AeronCounters.AppendVersionInfo(tempBuffer, index, ClusteredServiceContainerVersion.VERSION, - // ClusteredServiceContainerVersion.GIT_SHA); + index += tempBuffer.PutStringWithoutLengthAscii(index, "Cluster Container Errors"); + index += tempBuffer.PutStringWithoutLengthAscii(index, CLUSTER_ID_LABEL_SUFFIX + clusterId); + index += tempBuffer.PutStringWithoutLengthAscii(index, ServiceIdSuffix + serviceId); + // index += AeronCounters.AppendVersionInfo(tempBuffer, index, ClusteredServiceContainerVersion.VERSION, + // ClusteredServiceContainerVersion.GIT_SHA); - return aeron.AddCounter(AeronCounters.CLUSTER_CLUSTERED_SERVICE_ERROR_COUNT_TYPE_ID, tempBuffer, 0, - keyLength, tempBuffer, keyLength, index - keyLength); - } - } -} \ No newline at end of file + return aeron.AddCounter( + AeronCounters.CLUSTER_CLUSTERED_SERVICE_ERROR_COUNT_TYPE_ID, + tempBuffer, + 0, + keyLength, + tempBuffer, + keyLength, + index - keyLength + ); + } + } +} diff --git a/src/Adaptive.Cluster/Service/ClusterMarkFile.cs b/src/Adaptive.Cluster/Service/ClusterMarkFile.cs index 7359040f..88de741b 100644 --- a/src/Adaptive.Cluster/Service/ClusterMarkFile.cs +++ b/src/Adaptive.Cluster/Service/ClusterMarkFile.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Diagnostics; using System.IO; using Adaptive.Aeron.LogBuffer; @@ -13,8 +29,8 @@ namespace Adaptive.Cluster { /// - /// Used to indicate if a cluster component is running and what configuration it is using. Errors encountered by - /// the service are recorded in within this file by a + /// Used to indicate if a cluster component is running and what configuration it is using. Errors encountered by the + /// service are recorded in within this file by a /// public class ClusterMarkFile : IDisposable { @@ -22,66 +38,81 @@ public class ClusterMarkFile : IDisposable /// Major version. ///
public const int MAJOR_VERSION = 0; + /// /// Minor version. /// public const int MINOR_VERSION = 3; + /// /// Patch version. /// public const int PATCH_VERSION = 0; + /// /// Full semantic version. /// - public static readonly int SEMANTIC_VERSION = - SemanticVersion.Compose(MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION); + public static readonly int SEMANTIC_VERSION = SemanticVersion.Compose( + MAJOR_VERSION, + MINOR_VERSION, + PATCH_VERSION + ); + /// /// Length of the header section. /// public const int HEADER_LENGTH = 8 * 1024; + /// /// Special version to indicate that component failed to start. /// public const int VERSION_FAILED = -1; + /// /// Min length for the error log buffer. /// public const int ERROR_BUFFER_MIN_LENGTH = 1024 * 1024; + /// /// File extension used by the mark file. /// public const int ERROR_BUFFER_MAX_LENGTH = int.MaxValue - HEADER_LENGTH; + /// /// Special version to indicate that component failed to start. /// public const string FILE_EXTENSION = ".dat"; + /// /// File extension used by the link file. /// public const string LINK_FILE_EXTENSION = ".lnk"; + /// /// Mark file name. /// public const string FILENAME = "cluster-mark" + FILE_EXTENSION; + /// /// Link file name. /// public const string LINK_FILENAME = "cluster-mark" + LINK_FILE_EXTENSION; + /// /// Service mark file name. /// public const string SERVICE_FILENAME_PREFIX = "cluster-mark-service-"; - - private static readonly UnsafeBuffer EMPTY_BUFFER = new UnsafeBuffer((IntPtr)0, 0); - private static readonly int HEADER_OFFSET = MessageHeaderDecoder.ENCODED_LENGTH; + private static readonly UnsafeBuffer EmptyBuffer = new UnsafeBuffer((IntPtr)0, 0); + + private static readonly int HeaderFieldOffset = MessageHeaderDecoder.ENCODED_LENGTH; - private readonly MarkFileHeaderDecoder headerDecoder = new MarkFileHeaderDecoder(); - private readonly MarkFileHeaderEncoder headerEncoder = new MarkFileHeaderEncoder(); - private readonly MarkFile markFile; - private readonly UnsafeBuffer buffer; - private readonly UnsafeBuffer errorBuffer; - private readonly int headerOffset; + private readonly MarkFileHeaderDecoder _headerDecoder = new MarkFileHeaderDecoder(); + private readonly MarkFileHeaderEncoder _headerEncoder = new MarkFileHeaderEncoder(); + private readonly MarkFile _markFile; + private readonly UnsafeBuffer _buffer; + private readonly UnsafeBuffer _errorBuffer; + private readonly int _headerOffset; /// /// Create new for a cluster component but check if an existing service is active. @@ -92,19 +123,28 @@ public class ClusterMarkFile : IDisposable /// for checking liveness against. /// for the activity check on an existing . /// for aligning file length to. + // Upstream: io.aeron.cluster.service.ClusterMarkFile ctor is ~142 lines. + // Java Checkstyle MethodLength scopes to METHOD_DEF only (no CTOR_DEF), so + // upstream needs no annotation; Sonar S138 covers ctors. + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S138:Functions should not have too many lines", + Justification = "Upstream Java parity; ctor mirrors upstream which Checkstyle does not flag." + )] public ClusterMarkFile( FileInfo file, ClusterComponentType type, int errorBufferLength, IEpochClock epochClock, long timeoutMs, - int filePageSize) + int filePageSize + ) { if (errorBufferLength < ERROR_BUFFER_MIN_LENGTH || errorBufferLength > ERROR_BUFFER_MAX_LENGTH) { throw new ArgumentException("Invalid errorBufferLength: " + errorBufferLength); } - + LogBufferDescriptor.CheckPageSize(filePageSize); bool markFileExists = file.Exists; @@ -116,10 +156,12 @@ public ClusterMarkFile( if (markFileExists) { int currentHeaderOffset = HeaderOffset(file); - MarkFile existingMarkFile = new MarkFile(file, true, + MarkFile existingMarkFile = new MarkFile( + file, + true, currentHeaderOffset + MarkFileHeaderDecoder.VersionEncodingOffset(), - currentHeaderOffset + MarkFileHeaderDecoder.ActivityTimestampEncodingOffset(), - totalFileLength, + currentHeaderOffset + MarkFileHeaderDecoder.ActivityTimestampEncodingOffset(), + totalFileLength, timeoutMs, epochClock, (version) => @@ -130,91 +172,114 @@ public ClusterMarkFile( } else if (SemanticVersion.Major(version) != MAJOR_VERSION) { - throw new ClusterException("mark file major version " + SemanticVersion.Major(version) + - " does not match software: " + MAJOR_VERSION); + throw new ClusterException( + "mark file major version " + + SemanticVersion.Major(version) + + " does not match software: " + + MAJOR_VERSION + ); } - }, null); + }, + null + ); UnsafeBuffer existingBuffer = existingMarkFile.Buffer(); if (0 != currentHeaderOffset) { - headerDecoder.WrapAndApplyHeader(existingBuffer, 0, messageHeaderDecoder); + _headerDecoder.WrapAndApplyHeader(existingBuffer, 0, messageHeaderDecoder); } else { - headerDecoder.Wrap( - existingBuffer, 0, MarkFileHeaderDecoder.BLOCK_LENGTH, MarkFileHeaderDecoder.SCHEMA_VERSION); + _headerDecoder.Wrap( + existingBuffer, + 0, + MarkFileHeaderDecoder.BLOCK_LENGTH, + MarkFileHeaderDecoder.SCHEMA_VERSION + ); } - ClusterComponentType existingType = headerDecoder.ComponentType(); - if (existingType != ClusterComponentType.UNKNOWN && existingType != type) + ClusterComponentType existingType = _headerDecoder.ComponentType(); + if ( + existingType != ClusterComponentType.UNKNOWN + && existingType != type + && (existingType != ClusterComponentType.BACKUP || ClusterComponentType.CONSENSUS_MODULE != type) + ) { - if (existingType != ClusterComponentType.BACKUP || ClusterComponentType.CONSENSUS_MODULE != type) - { - throw new ClusterException("existing Mark file type " + existingType + - " not same as required type " + type); - } + throw new ClusterException( + "existing Mark file type " + existingType + " not same as required type " + type + ); } - int existingErrorBufferLength = headerDecoder.ErrorBufferLength(); - var headerLength = headerDecoder.HeaderLength(); - UnsafeBuffer existingErrorBuffer = - new UnsafeBuffer(existingBuffer, headerLength, existingErrorBufferLength); + int existingErrorBufferLength = _headerDecoder.ErrorBufferLength(); + var headerLength = _headerDecoder.HeaderLength(); + UnsafeBuffer existingErrorBuffer = new UnsafeBuffer( + existingBuffer, + headerLength, + existingErrorBufferLength + ); SaveExistingErrors(file, existingErrorBuffer, type, Aeron.Aeron.Context.FallbackLogger()); existingErrorBuffer.SetMemory(0, existingErrorBufferLength, 0); - candidateTermId = headerDecoder.CandidateTermId(); + candidateTermId = _headerDecoder.CandidateTermId(); if (0 != currentHeaderOffset) { - markFile = existingMarkFile; - buffer = existingBuffer; + _markFile = existingMarkFile; + _buffer = existingBuffer; } else { - headerDecoder.Wrap(EMPTY_BUFFER, 0, 0, 0); + _headerDecoder.Wrap(EmptyBuffer, 0, 0, 0); CloseHelper.Dispose(existingMarkFile); - markFile = new MarkFile( - file, + _markFile = new MarkFile( + file, false, - HEADER_OFFSET + MarkFileHeaderDecoder.VersionEncodingOffset(), - HEADER_OFFSET + MarkFileHeaderDecoder.ActivityTimestampEncodingOffset(), + HeaderFieldOffset + MarkFileHeaderDecoder.VersionEncodingOffset(), + HeaderFieldOffset + MarkFileHeaderDecoder.ActivityTimestampEncodingOffset(), totalFileLength, - timeoutMs, - epochClock, - null, - null); - buffer = existingMarkFile.Buffer(); - buffer.SetMemory(0, headerLength, 0); + timeoutMs, + epochClock, + null, + null + ); + _buffer = existingMarkFile.Buffer(); + _buffer.SetMemory(0, headerLength, 0); } } else { - markFile = new MarkFile(file, false, HEADER_OFFSET + MarkFileHeaderDecoder.VersionEncodingOffset(), - HEADER_OFFSET + MarkFileHeaderDecoder.ActivityTimestampEncodingOffset(), totalFileLength, timeoutMs, - epochClock, null, null); - buffer = markFile.Buffer(); + _markFile = new MarkFile( + file, + false, + HeaderFieldOffset + MarkFileHeaderDecoder.VersionEncodingOffset(), + HeaderFieldOffset + MarkFileHeaderDecoder.ActivityTimestampEncodingOffset(), + totalFileLength, + timeoutMs, + epochClock, + null, + null + ); + _buffer = _markFile.Buffer(); candidateTermId = Aeron.Aeron.NULL_VALUE; } - headerOffset = HEADER_OFFSET; + _headerOffset = HeaderFieldOffset; - errorBuffer = new UnsafeBuffer(buffer, HEADER_LENGTH, errorBufferLength); + _errorBuffer = new UnsafeBuffer(_buffer, HEADER_LENGTH, errorBufferLength); - headerEncoder - .WrapAndApplyHeader(buffer, 0, new MessageHeaderEncoder()) + _headerEncoder + .WrapAndApplyHeader(_buffer, 0, new MessageHeaderEncoder()) .ComponentType(type) .StartTimestamp(epochClock.Time()) .Pid(Process.GetCurrentProcess().Id) .CandidateTermId(candidateTermId) - .HeaderLength(HEADER_LENGTH - ).ErrorBufferLength(errorBufferLength); + .HeaderLength(HEADER_LENGTH) + .ErrorBufferLength(errorBufferLength); - headerDecoder.WrapAndApplyHeader(buffer, 0, messageHeaderDecoder); + _headerDecoder.WrapAndApplyHeader(_buffer, 0, messageHeaderDecoder); } - /// /// Construct to read the status of an existing for a cluster component. /// @@ -228,32 +293,33 @@ public ClusterMarkFile( string filename, IEpochClock epochClock, long timeoutMs, - Action logger) : this(OpenExistingMarkFile(directory, - filename, - epochClock, - timeoutMs, - logger)) - { - } + Action logger + ) + : this(OpenExistingMarkFile(directory, filename, epochClock, timeoutMs, logger)) { } internal ClusterMarkFile(MarkFile markFile) { - this.markFile = markFile; - buffer = markFile.Buffer(); + this._markFile = markFile; + _buffer = markFile.Buffer(); - headerOffset = HeaderOffset(buffer); - if (0 != headerOffset) + _headerOffset = HeaderOffset(_buffer); + if (0 != _headerOffset) { - headerEncoder.Wrap(buffer, headerOffset); - headerDecoder.WrapAndApplyHeader(buffer, 0, new MessageHeaderDecoder()); + _headerEncoder.Wrap(_buffer, _headerOffset); + _headerDecoder.WrapAndApplyHeader(_buffer, 0, new MessageHeaderDecoder()); } else { - headerEncoder.Wrap(buffer, 0); - headerDecoder.Wrap(buffer, 0, MarkFileHeaderDecoder.BLOCK_LENGTH, MarkFileHeaderDecoder.SCHEMA_VERSION); + _headerEncoder.Wrap(_buffer, 0); + _headerDecoder.Wrap( + _buffer, + 0, + MarkFileHeaderDecoder.BLOCK_LENGTH, + MarkFileHeaderDecoder.SCHEMA_VERSION + ); } - errorBuffer = new UnsafeBuffer(buffer, headerDecoder.HeaderLength(), headerDecoder.ErrorBufferLength()); + _errorBuffer = new UnsafeBuffer(_buffer, _headerDecoder.HeaderLength(), _headerDecoder.ErrorBufferLength()); } /// @@ -263,10 +329,9 @@ internal ClusterMarkFile(MarkFile markFile) /// public DirectoryInfo ParentDirectory() { - return markFile.ParentDirectory(); + return _markFile.ParentDirectory(); } - /// /// Determines if this path name matches the service mark file name pattern /// @@ -275,8 +340,8 @@ public DirectoryInfo ParentDirectory() public static bool IsServiceMarkFile(FileInfo path) { string fileName = path.Name; - return fileName.StartsWith(SERVICE_FILENAME_PREFIX, StringComparison.Ordinal) && - fileName.EndsWith(FILE_EXTENSION, StringComparison.Ordinal); + return fileName.StartsWith(SERVICE_FILENAME_PREFIX, StringComparison.Ordinal) + && fileName.EndsWith(FILE_EXTENSION, StringComparison.Ordinal); } /// @@ -292,12 +357,12 @@ public static bool IsConsensusModuleMarkFile(FileInfo path) /// public void Dispose() { - if (!markFile.IsClosed()) + if (!_markFile.IsClosed()) { - headerEncoder.Wrap(EMPTY_BUFFER, 0); - headerDecoder.Wrap(EMPTY_BUFFER, 0, 0, 0); - errorBuffer.Wrap(0, 0); - CloseHelper.Dispose(markFile); + _headerEncoder.Wrap(EmptyBuffer, 0); + _headerDecoder.Wrap(EmptyBuffer, 0, 0, 0); + _errorBuffer.Wrap(0, 0); + CloseHelper.Dispose(_markFile); } } @@ -307,19 +372,20 @@ public void Dispose() /// true if the is closed. public bool IsClosed { - get { return markFile.IsClosed(); } + get { return _markFile.IsClosed(); } } /// /// Get the current value of a candidate term id if a vote is placed in an election with volatile semantics. /// - /// the current candidate term id within an election after voting or if + /// the current candidate term id within an election after voting or + /// if /// no voting phase of an election is currently active. public long CandidateTermId() { - return markFile.IsClosed() + return _markFile.IsClosed() ? Aeron.Aeron.NULL_VALUE - : buffer.GetLongVolatile(headerOffset + MarkFileHeaderDecoder.CandidateTermIdEncodingOffset()); + : _buffer.GetLongVolatile(_headerOffset + MarkFileHeaderDecoder.CandidateTermIdEncodingOffset()); } /// @@ -328,7 +394,7 @@ public long CandidateTermId() /// cluster member id. public int MemberId() { - return markFile.IsClosed() ? Aeron.Aeron.NULL_VALUE : headerDecoder.MemberId(); + return _markFile.IsClosed() ? Aeron.Aeron.NULL_VALUE : _headerDecoder.MemberId(); } /// @@ -337,9 +403,9 @@ public int MemberId() /// assigned as part of active join to the log in a clustered service. public void MemberId(int memberId) { - if (!markFile.IsClosed()) + if (!_markFile.IsClosed()) { - buffer.PutInt(MarkFileHeaderEncoder.MemberIdEncodingOffset(), memberId); + _buffer.PutInt(MarkFileHeaderEncoder.MemberIdEncodingOffset(), memberId); } } @@ -349,7 +415,7 @@ public void MemberId(int memberId) /// id of the cluster instance so multiple clusters can run on the same driver. public int ClusterId() { - return markFile.IsClosed() ? Aeron.Aeron.NULL_VALUE : headerDecoder.ClusterId(); + return _markFile.IsClosed() ? Aeron.Aeron.NULL_VALUE : _headerDecoder.ClusterId(); } /// @@ -358,9 +424,9 @@ public int ClusterId() /// of the cluster instance so multiple clusters can run on the same driver. public void ClusterId(int clusterId) { - if (!markFile.IsClosed()) + if (!_markFile.IsClosed()) { - buffer.PutInt(MarkFileHeaderEncoder.ClusterIdEncodingOffset(), clusterId); + _buffer.PutInt(MarkFileHeaderEncoder.ClusterIdEncodingOffset(), clusterId); } } @@ -369,9 +435,9 @@ public void ClusterId(int clusterId) /// public void SignalReady() { - if (!markFile.IsClosed()) + if (!_markFile.IsClosed()) { - markFile.SignalReady(SEMANTIC_VERSION); + _markFile.SignalReady(SEMANTIC_VERSION); } } @@ -380,9 +446,9 @@ public void SignalReady() /// public void SignalFailedStart() { - if (!markFile.IsClosed()) + if (!_markFile.IsClosed()) { - markFile.SignalReady(VERSION_FAILED); + _markFile.SignalReady(VERSION_FAILED); } } @@ -392,9 +458,9 @@ public void SignalFailedStart() /// activity timestamp as a proof of life. public void UpdateActivityTimestamp(long nowMs) { - if (!markFile.IsClosed()) + if (!_markFile.IsClosed()) { - markFile.TimestampRelease(nowMs); + _markFile.TimestampRelease(nowMs); } } @@ -404,7 +470,7 @@ public void UpdateActivityTimestamp(long nowMs) /// the activity timestamp of the cluster component with volatile semantics. public long ActivityTimestampVolatile() { - return markFile.IsClosed() ? Aeron.Aeron.NULL_VALUE : markFile.TimestampVolatile(); + return _markFile.IsClosed() ? Aeron.Aeron.NULL_VALUE : _markFile.TimestampVolatile(); } /// @@ -413,7 +479,7 @@ public long ActivityTimestampVolatile() /// the encoder for writing the header. public MarkFileHeaderEncoder Encoder() { - return headerEncoder; + return _headerEncoder; } /// @@ -422,20 +488,24 @@ public MarkFileHeaderEncoder Encoder() /// the decoder for reading the header. public MarkFileHeaderDecoder Decoder() { - return headerDecoder; + return _headerDecoder; } - - public UnsafeBuffer Buffer => buffer; + public UnsafeBuffer Buffer => _buffer; /// /// The direct buffer which wraps the region of the which contains the error log. /// - /// the direct buffer which wraps the region of the which contains the error log. - public UnsafeBuffer ErrorBuffer => errorBuffer; + /// the direct buffer which wraps the region of the which contains the + /// error log. + public UnsafeBuffer ErrorBuffer => _errorBuffer; - private static void SaveExistingErrors(FileInfo markFile, IAtomicBuffer errorBuffer, ClusterComponentType type, - TextWriter logger) + private static void SaveExistingErrors( + FileInfo markFile, + IAtomicBuffer errorBuffer, + ClusterComponentType type, + TextWriter logger + ) { var str = new MemoryStream(); var writer = new StreamWriter(str); @@ -445,8 +515,10 @@ private static void SaveExistingErrors(FileInfo markFile, IAtomicBuffer errorBuf if (observations > 0) { - var errorLogFilename = Path.Combine(markFile.DirectoryName, - type + "-" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-fff") + "-error.log"); + var errorLogFilename = Path.Combine( + markFile.DirectoryName, + type + "-" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-fff") + "-error.log" + ); logger?.WriteLine("WARNING: existing errors saved to: " + errorLogFilename); @@ -472,22 +544,24 @@ public static void CheckHeaderLength( string controlChannel, string ingressChannel, string serviceName, - string authenticator) + string authenticator + ) { var length = - HEADER_OFFSET + - MarkFileHeaderEncoder.BLOCK_LENGTH + - 5 * VarAsciiEncodingEncoder.LengthEncodingLength() + - (aeronDirectory?.Length ?? 0) + - (controlChannel?.Length ?? 0) + - (ingressChannel?.Length ?? 0) + - (serviceName?.Length ?? 0) + - (authenticator?.Length ?? 0); + HeaderFieldOffset + + MarkFileHeaderEncoder.BLOCK_LENGTH + + 5 * VarAsciiEncodingEncoder.LengthEncodingLength() + + (aeronDirectory?.Length ?? 0) + + (controlChannel?.Length ?? 0) + + (ingressChannel?.Length ?? 0) + + (serviceName?.Length ?? 0) + + (authenticator?.Length ?? 0); if (length > HEADER_LENGTH) { throw new ClusterException( - $"ClusterMarkFile headerLength={length} > headerLengthCapacity={HEADER_LENGTH}."); + $"ClusterMarkFile headerLength={length} > headerLengthCapacity={HEADER_LENGTH}." + ); } } @@ -514,19 +588,21 @@ public static string LinkFilenameForService(int serviceId) /// /// The control properties for communicating between the consensus module and the services. /// - /// the control properties for communicating between the consensus module and the services or null + /// the control properties for communicating between the consensus module and the services or + /// null /// if mark file was already closed. public ClusterNodeControlProperties LoadControlProperties() { - if (!markFile.IsClosed()) + if (!_markFile.IsClosed()) { - headerDecoder.SbeRewind(); + _headerDecoder.SbeRewind(); return new ClusterNodeControlProperties( - headerDecoder.MemberId(), - headerDecoder.ServiceStreamId(), - headerDecoder.ConsensusModuleStreamId(), - headerDecoder.AeronDirectory(), - headerDecoder.ControlChannel()); + _headerDecoder.MemberId(), + _headerDecoder.ServiceStreamId(), + _headerDecoder.ConsensusModuleStreamId(), + _headerDecoder.AeronDirectory(), + _headerDecoder.ControlChannel() + ); } return null; @@ -537,10 +613,12 @@ public ClusterNodeControlProperties LoadControlProperties() /// public override string ToString() { - return "ClusterMarkFile{" + - "semanticVersion=" + SemanticVersion.ToString(SEMANTIC_VERSION) + - ", markFile=" + markFile.FileName() + - '}'; + return "ClusterMarkFile{" + + "semanticVersion=" + + SemanticVersion.ToString(SEMANTIC_VERSION) + + ", markFile=" + + _markFile.FileName() + + '}'; } /// @@ -550,9 +628,9 @@ public override string ToString() /// Since 1.44.0 public void Force() { - if (!markFile.IsClosed()) + if (!_markFile.IsClosed()) { - MappedByteBuffer mappedByteBuffer = markFile.MappedByteBuffer(); + MappedByteBuffer mappedByteBuffer = _markFile.MappedByteBuffer(); mappedByteBuffer.Force(); } } @@ -562,7 +640,7 @@ private static int HeaderOffset(FileInfo file) MappedByteBuffer mappedByteBuffer = IoUtil.MapExistingFile(file, FILENAME); try { - UnsafeBuffer unsafeBuffer = new UnsafeBuffer(mappedByteBuffer, 0, HEADER_OFFSET); + UnsafeBuffer unsafeBuffer = new UnsafeBuffer(mappedByteBuffer, 0, HeaderFieldOffset); return HeaderOffset(unsafeBuffer); } finally @@ -575,14 +653,20 @@ private static int HeaderOffset(UnsafeBuffer headerBuffer) { MessageHeaderDecoder decoder = new MessageHeaderDecoder(); decoder.Wrap(headerBuffer, 0); - return MarkFileHeaderDecoder.TEMPLATE_ID == decoder.TemplateId() && - MarkFileHeaderDecoder.SCHEMA_ID == decoder.SchemaId() - ? HEADER_OFFSET + return + MarkFileHeaderDecoder.TEMPLATE_ID == decoder.TemplateId() + && MarkFileHeaderDecoder.SCHEMA_ID == decoder.SchemaId() + ? HeaderFieldOffset : 0; } - private static MarkFile OpenExistingMarkFile(DirectoryInfo directory, string filename, IEpochClock epochClock, - long timeoutMs, Action logger) + private static MarkFile OpenExistingMarkFile( + DirectoryInfo directory, + string filename, + IEpochClock epochClock, + long timeoutMs, + Action logger + ) { int headerOffset = HeaderOffset(new FileInfo(Path.Combine(directory.FullName, filename))); return new MarkFile( @@ -596,11 +680,16 @@ private static MarkFile OpenExistingMarkFile(DirectoryInfo directory, string fil { if (SemanticVersion.Major(version) != MAJOR_VERSION) { - throw new ClusterException("mark file major version " + SemanticVersion.Major(version) + - " does not match software: " + MAJOR_VERSION); + throw new ClusterException( + "mark file major version " + + SemanticVersion.Major(version) + + " does not match software: " + + MAJOR_VERSION + ); } }, - logger); + logger + ); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ClusterNodeControlProperties.cs b/src/Adaptive.Cluster/Service/ClusterNodeControlProperties.cs index c9a48f0a..3b5d4fdd 100644 --- a/src/Adaptive.Cluster/Service/ClusterNodeControlProperties.cs +++ b/src/Adaptive.Cluster/Service/ClusterNodeControlProperties.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + namespace Adaptive.Cluster.Service { /// @@ -36,7 +52,8 @@ public class ClusterNodeControlProperties /// /// of the cluster to which the properties belong. /// in the control channel on which the services listen. - /// in the control channel on which the consensus module listens. + /// in the control channel on which the consensus module listens. + /// /// where the Aeron Media Driver is running. /// for the services and consensus module. public ClusterNodeControlProperties( @@ -44,7 +61,8 @@ public ClusterNodeControlProperties( int serviceStreamId, int consensusModuleStreamId, string aeronDirectoryName, - string controlChannel) + string controlChannel + ) { this.memberId = memberId; this.serviceStreamId = serviceStreamId; @@ -53,4 +71,4 @@ public ClusterNodeControlProperties( this.controlChannel = controlChannel; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ClusterRole.cs b/src/Adaptive.Cluster/Service/ClusterRole.cs index ab2fb89c..a3addcef 100644 --- a/src/Adaptive.Cluster/Service/ClusterRole.cs +++ b/src/Adaptive.Cluster/Service/ClusterRole.cs @@ -1,4 +1,20 @@ -namespace Adaptive.Cluster.Service +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace Adaptive.Cluster.Service { /// /// Role of the node in the cluster. @@ -9,7 +25,7 @@ public enum ClusterRole : long /// The cluster node is a follower in the current leadership term. /// Follower = 0, - + /// /// The cluster node is a candidate to become a leader in an election. /// @@ -18,6 +34,6 @@ public enum ClusterRole : long /// /// The cluster node is the leader for the current leadership term. /// - Leader = 2 + Leader = 2, } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ClusterTerminationException.cs b/src/Adaptive.Cluster/Service/ClusterTerminationException.cs index 287bb56b..e5070360 100644 --- a/src/Adaptive.Cluster/Service/ClusterTerminationException.cs +++ b/src/Adaptive.Cluster/Service/ClusterTerminationException.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Agrona.Concurrent; namespace Adaptive.Cluster.Service @@ -12,30 +28,26 @@ public class ClusterTerminationException : AgentTerminationException /// /// Construct an exception used to terminate the cluster with {@link #isExpected()} set to true. /// - public ClusterTerminationException() : this(true) - { - } + public ClusterTerminationException() + : this(true) { } /// /// Construct an exception used to terminate the cluster. /// /// true if the termination is expected, i.e. it was requested. - public ClusterTerminationException(bool isExpected) : base(isExpected ? "expected termination" : "unexpected termination") + public ClusterTerminationException(bool isExpected) + : base(isExpected ? "expected termination" : "unexpected termination") { _isExpected = isExpected; } - + /// /// Whether the termination is expected. /// /// true if expected otherwise false. public bool Expected { - get - { - return _isExpected; - } + get { return _isExpected; } } - } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ClusteredServiceAgent.cs b/src/Adaptive.Cluster/Service/ClusteredServiceAgent.cs index 75e2df2f..84b6048f 100644 --- a/src/Adaptive.Cluster/Service/ClusteredServiceAgent.cs +++ b/src/Adaptive.Cluster/Service/ClusteredServiceAgent.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Collections.Generic; using System.Runtime.ExceptionServices; using System.Threading; @@ -25,141 +41,146 @@ namespace Adaptive.Cluster.Service { internal sealed class ClusteredServiceAgent : IAgent, ICluster, IIdleStrategy { - static long ONE_MILLISECOND_NS = Agrona.TimeUnit.MILLIS.ToNanos(1); + static long s_oneMillisecondNs = Agrona.TimeUnit.MILLIS.ToNanos(1); - static long MARK_FILE_UPDATE_INTERVAL_MS = - Agrona.TimeUnit.NANOSECONDS.ToMillis(ClusteredServiceContainer.Configuration.MARK_FILE_UPDATE_INTERVAL_NS); + static long s_markFileUpdateIntervalMs = Agrona.TimeUnit.NANOSECONDS.ToMillis( + ClusteredServiceContainer.Configuration.MARK_FILE_UPDATE_INTERVAL_NS + ); - private static readonly int MAX_UDP_PAYLOAD_LENGTH = 65504; + private static readonly int MaxUdpPayloadLength = 65504; - const int LIFECYCLE_CALLBACK_NONE = 0; - const int LIFECYCLE_CALLBACK_ON_START = 1; - const int LIFECYCLE_CALLBACK_ON_TERMINATE = 2; - const int LIFECYCLE_CALLBACK_ON_ROLE_CHANGE = 3; - const int LIFECYCLE_CALLBACK_DO_BACKGROUND_WORK = 4; + const int LifecycleCallbackNone = 0; + const int LifecycleCallbackOnStart = 1; + const int LifecycleCallbackOnTerminate = 2; + const int LifecycleCallbackOnRoleChange = 3; + const int LifecycleCallbackDoBackgroundWork = 4; static String LifecycleName(int activeLifecycleCallback) { switch (activeLifecycleCallback) { - case LIFECYCLE_CALLBACK_NONE: + case LifecycleCallbackNone: return "none"; - case LIFECYCLE_CALLBACK_ON_START: + case LifecycleCallbackOnStart: return "onStart"; - case LIFECYCLE_CALLBACK_ON_TERMINATE: + case LifecycleCallbackOnTerminate: return "onTerminate"; - case LIFECYCLE_CALLBACK_ON_ROLE_CHANGE: + case LifecycleCallbackOnRoleChange: return "onRoleChange"; - case LIFECYCLE_CALLBACK_DO_BACKGROUND_WORK: + case LifecycleCallbackDoBackgroundWork: return "doBackgroundWork"; default: return "unknown"; } } - private int activeLifecycleCallback; - - private volatile bool isAbort; - private bool isServiceActive; - private readonly int serviceId; - private int memberId = NULL_VALUE; - private long closeHandlerRegistrationid; - private long ackId = 0; - private long terminationPosition = NULL_POSITION; - private long markFileUpdateDeadlineMs; - private long lastSlowTickNs; - private long clusterTime; - private long logPosition = NULL_POSITION; - - private readonly IIdleStrategy idleStrategy; - private readonly ClusterMarkFile markFile; - private readonly ClusteredServiceContainer.Context ctx; - private readonly Aeron.Aeron aeron; - private readonly AgentInvoker aeronAgentInvoker; - private readonly IClusteredService service; + private int _activeLifecycleCallback; + + private volatile bool _isAbort; + private bool _isServiceActive; + private readonly int _serviceId; + private int _memberId = NULL_VALUE; + private long _closeHandlerRegistrationid; + private long _ackId = 0; + private long _terminationPosition = NULL_POSITION; + private long _markFileUpdateDeadlineMs; + private long _lastSlowTickNs; + private long _clusterTime; + private long _logPosition = NULL_POSITION; + + private readonly IIdleStrategy _idleStrategy; + private readonly ClusterMarkFile _markFile; + private readonly ClusteredServiceContainer.Context _ctx; + private readonly Aeron.Aeron _aeron; + private readonly AgentInvoker _aeronAgentInvoker; + private readonly IClusteredService _service; private readonly ConsensusModuleProxy _consensusModuleProxy; private readonly ServiceAdapter _serviceAdapter; - private readonly IEpochClock epochClock; - private readonly INanoClock nanoClock; - private readonly UnsafeBuffer messageBuffer = new UnsafeBuffer(new byte[MAX_UDP_PAYLOAD_LENGTH]); - private readonly UnsafeBuffer headerBuffer; // set in constructor - private readonly DirectBufferVector headerVector; // set in constructor + private readonly IEpochClock _epochClock; + private readonly INanoClock _nanoClock; + private readonly UnsafeBuffer _messageBuffer = new UnsafeBuffer(new byte[MaxUdpPayloadLength]); + private readonly UnsafeBuffer _headerBuffer; // set in constructor + private readonly DirectBufferVector _headerVector; // set in constructor private readonly SessionMessageHeaderEncoder _sessionMessageHeaderEncoder = new SessionMessageHeaderEncoder(); - private readonly List sessions = new List(); - private readonly Map sessionByIdMap = new Map(); - private readonly BoundedLogAdapter logAdapter; - private readonly DutyCycleTracker dutyCycleTracker; - private readonly SnapshotDurationTracker snapshotDurationTracker; - private readonly String subscriptionAlias; - private readonly int standbySnapshotFlags; - - private ReadableCounter commitPosition; - private ActiveLogEvent activeLogEvent; - private ClusterRole role = ClusterRole.Follower; - private ClusterTimeUnit timeUnit = ClusterTimeUnit.NULL_VALUE; - private long requestedAckPosition = NULL_POSITION; + private readonly List _sessions = new List(); + private readonly Map _sessionByIdMap = new Map(); + private readonly BoundedLogAdapter _logAdapter; + private readonly DutyCycleTracker _dutyCycleTracker; + private readonly SnapshotDurationTracker _snapshotDurationTracker; + private readonly String _subscriptionAlias; + private readonly int _standbySnapshotFlags; + + private ReadableCounter _commitPosition; + private ActiveLogEvent _activeLogEvent; + private ClusterRole _role = ClusterRole.Follower; + private ClusterTimeUnit _timeUnit = ClusterTimeUnit.NULL_VALUE; + private long _requestedAckPosition = NULL_POSITION; internal ClusteredServiceAgent(ClusteredServiceContainer.Context ctx) { - headerBuffer = new UnsafeBuffer(messageBuffer, DataHeaderFlyweight.HEADER_LENGTH, - MAX_UDP_PAYLOAD_LENGTH - DataHeaderFlyweight.HEADER_LENGTH); - headerVector = new DirectBufferVector(headerBuffer, 0, SESSION_HEADER_LENGTH); - - logAdapter = new BoundedLogAdapter(this, ctx.LogFragmentLimit()); - this.ctx = ctx; - - markFile = ctx.ClusterMarkFile(); - aeron = ctx.AeronClient(); - aeronAgentInvoker = ctx.AeronClient().ConductorAgentInvoker; - service = ctx.ClusteredService(); - idleStrategy = ctx.IdleStrategy(); - serviceId = ctx.ServiceId(); - epochClock = ctx.EpochClock(); - nanoClock = ctx.NanoClock(); - dutyCycleTracker = ctx.DutyCycleTracker(); - snapshotDurationTracker = ctx.SnapshotDurationTracker(); - subscriptionAlias = "log-sc-" + ctx.ServiceId(); + _headerBuffer = new UnsafeBuffer( + _messageBuffer, + DataHeaderFlyweight.HEADER_LENGTH, + MaxUdpPayloadLength - DataHeaderFlyweight.HEADER_LENGTH + ); + _headerVector = new DirectBufferVector(_headerBuffer, 0, SESSION_HEADER_LENGTH); + + _logAdapter = new BoundedLogAdapter(this, ctx.LogFragmentLimit()); + this._ctx = ctx; + + _markFile = ctx.ClusterMarkFile(); + _aeron = ctx.AeronClient(); + _aeronAgentInvoker = ctx.AeronClient().ConductorAgentInvoker; + _service = ctx.ClusteredService(); + _idleStrategy = ctx.IdleStrategy(); + _serviceId = ctx.ServiceId(); + _epochClock = ctx.EpochClock(); + _nanoClock = ctx.NanoClock(); + _dutyCycleTracker = ctx.DutyCycleTracker(); + _snapshotDurationTracker = ctx.SnapshotDurationTracker(); + _subscriptionAlias = "log-sc-" + ctx.ServiceId(); var channel = ctx.ControlChannel(); - _consensusModuleProxy = - new ConsensusModuleProxy(aeron.AddPublication(channel, ctx.ConsensusModuleStreamId())); - _serviceAdapter = new ServiceAdapter(aeron.AddSubscription(channel, ctx.ServiceStreamId()), this); - _sessionMessageHeaderEncoder.WrapAndApplyHeader(headerBuffer, 0, new MessageHeaderEncoder()); - this.standbySnapshotFlags = ctx.StandbySnapshotEnabled() + _consensusModuleProxy = new ConsensusModuleProxy( + _aeron.AddPublication(channel, ctx.ConsensusModuleStreamId()) + ); + _serviceAdapter = new ServiceAdapter(_aeron.AddSubscription(channel, ctx.ServiceStreamId()), this); + _sessionMessageHeaderEncoder.WrapAndApplyHeader(_headerBuffer, 0, new MessageHeaderEncoder()); + this._standbySnapshotFlags = ctx.StandbySnapshotEnabled() ? CLUSTER_ACTION_FLAGS_STANDBY_SNAPSHOT : CLUSTER_ACTION_FLAGS_DEFAULT; } public void OnStart() { - closeHandlerRegistrationid = aeron.AddCloseHandler(Abort); - aeron.AddUnavailableCounterHandler(CounterUnavailable); - CountersReader counters = aeron.CountersReader; - commitPosition = AwaitCommitPositionCounter(counters, ctx.ClusterId()); + _closeHandlerRegistrationid = _aeron.AddCloseHandler(Abort); + _aeron.AddUnavailableCounterHandler(CounterUnavailable); + CountersReader counters = _aeron.CountersReader; + _commitPosition = AwaitCommitPositionCounter(counters, _ctx.ClusterId()); RecoverState(counters); - dutyCycleTracker.Update(nanoClock.NanoTime()); - isServiceActive = true; + _dutyCycleTracker.Update(_nanoClock.NanoTime()); + _isServiceActive = true; } public void OnClose() { - aeron.RemoveCloseHandler(closeHandlerRegistrationid); + _aeron.RemoveCloseHandler(_closeHandlerRegistrationid); - if (isAbort) + if (_isAbort) { - ctx.AbortLatch().Signal(); + _ctx.AbortLatch().Signal(); } else { - ErrorHandler errorHandler = ctx.CountedErrorHandler().OnError; + ErrorHandler errorHandler = _ctx.CountedErrorHandler().OnError; - if (isServiceActive) + if (_isServiceActive) { - isServiceActive = false; + _isServiceActive = false; try { - service.OnTerminate(this); + _service.OnTerminate(this); } catch (Exception ex) { @@ -167,9 +188,9 @@ public void OnClose() } } - CloseHelper.Dispose(errorHandler, logAdapter); + CloseHelper.Dispose(errorHandler, _logAdapter); - if (!ctx.OwnsAeronClient() && !aeron.IsClosed) + if (!_ctx.OwnsAeronClient() && !_aeron.IsClosed) { CloseHelper.Dispose(errorHandler, _serviceAdapter); CloseHelper.Dispose(errorHandler, _consensusModuleProxy); @@ -177,17 +198,17 @@ public void OnClose() } } - markFile.UpdateActivityTimestamp(NULL_VALUE); - markFile.Force(); - ctx.Dispose(); + _markFile.UpdateActivityTimestamp(NULL_VALUE); + _markFile.Force(); + _ctx.Dispose(); } public int DoWork() { int workCount = 0; - long nowNs = nanoClock.NanoTime(); - dutyCycleTracker.MeasureAndUpdate(nanoClock.NanoTime()); + long nowNs = _nanoClock.NanoTime(); + _dutyCycleTracker.MeasureAndUpdate(_nanoClock.NanoTime()); try { @@ -196,12 +217,12 @@ public int DoWork() workCount += PollServiceAdapter(); } - if (null != logAdapter.Image()) + if (null != _logAdapter.Image()) { - int polled = logAdapter.Poll(commitPosition.Get()); + int polled = _logAdapter.Poll(_commitPosition.Get()); workCount += polled; - if (0 == polled && logAdapter.IsDone()) + if (0 == polled && _logAdapter.IsDone()) { CloseLog(); } @@ -218,45 +239,45 @@ public int DoWork() return workCount; } - public string RoleName() => ctx.ServiceName(); + public string RoleName() => _ctx.ServiceName(); public ClusterRole Role { - get => role; + get => _role; private set { - if (value != role) + if (value != _role) { - role = value; - activeLifecycleCallback = LIFECYCLE_CALLBACK_ON_ROLE_CHANGE; + _role = value; + _activeLifecycleCallback = LifecycleCallbackOnRoleChange; try { - service.OnRoleChange(value); + _service.OnRoleChange(value); } finally { - activeLifecycleCallback = LIFECYCLE_CALLBACK_NONE; + _activeLifecycleCallback = LifecycleCallbackNone; } } } } - public int MemberId => memberId; + public int MemberId => _memberId; - public Aeron.Aeron Aeron => aeron; + public Aeron.Aeron Aeron => _aeron; - public ClusteredServiceContainer.Context Context => ctx; + public ClusteredServiceContainer.Context Context => _ctx; public IClientSession GetClientSession(long clusterSessionId) { - return sessionByIdMap.Get(clusterSessionId); + return _sessionByIdMap.Get(clusterSessionId); } - public ICollection ClientSessions => sessionByIdMap.Values; + public ICollection ClientSessions => _sessionByIdMap.Values; public void ForEachClientSession(Action action) { - foreach (var clientSession in sessions) + foreach (var clientSession in _sessions) { action(clientSession); } @@ -266,12 +287,12 @@ public bool CloseClientSession(long clusterSessionId) { CheckForValidInvocation(); - if (!sessionByIdMap.ContainsKey(clusterSessionId)) + if (!_sessionByIdMap.ContainsKey(clusterSessionId)) { throw new ClusterException("unknown clusterSessionId: " + clusterSessionId); } - ContainerClientSession clientSession = (ContainerClientSession)sessionByIdMap.Get(clusterSessionId); + ContainerClientSession clientSession = (ContainerClientSession)_sessionByIdMap.Get(clusterSessionId); if (clientSession.IsClosing) { @@ -295,14 +316,14 @@ public bool CloseClientSession(long clusterSessionId) public ClusterTimeUnit TimeUnit() { - return timeUnit; + return _timeUnit; } - public long Time => clusterTime; + public long Time => _clusterTime; public long LogPosition() { - return logPosition; + return _logPosition; } public bool ScheduleTimer(long correlationId, long deadline) @@ -324,14 +345,14 @@ public long Offer(IDirectBuffer buffer, int offset, int length) CheckForValidInvocation(); _sessionMessageHeaderEncoder.ClusterSessionId(Context.ServiceId()); - return _consensusModuleProxy.Offer(headerBuffer, 0, SESSION_HEADER_LENGTH, buffer, offset, length); + return _consensusModuleProxy.Offer(_headerBuffer, 0, SESSION_HEADER_LENGTH, buffer, offset, length); } public long Offer(DirectBufferVector[] vectors) { CheckForValidInvocation(); _sessionMessageHeaderEncoder.ClusterSessionId(Context.ServiceId()); - vectors[0] = headerVector; + vectors[0] = _headerVector; return _consensusModuleProxy.Offer(vectors); } @@ -341,7 +362,7 @@ public long TryClaim(int length, BufferClaim bufferClaim) CheckForValidInvocation(); _sessionMessageHeaderEncoder.ClusterSessionId(Context.ServiceId()); - return _consensusModuleProxy.TryClaim(length + SESSION_HEADER_LENGTH, bufferClaim, headerBuffer); + return _consensusModuleProxy.TryClaim(length + SESSION_HEADER_LENGTH, bufferClaim, _headerBuffer); } public IIdleStrategy IdleStrategy() @@ -351,18 +372,18 @@ public IIdleStrategy IdleStrategy() public void Reset() { - idleStrategy.Reset(); + _idleStrategy.Reset(); } public void Idle() { - idleStrategy.Idle(); + _idleStrategy.Idle(); DoIdleWork(); } public void Idle(int workCount) { - idleStrategy.Idle(workCount); + _idleStrategy.Idle(workCount); if (workCount <= 0) { @@ -381,11 +402,11 @@ private void DoIdleWork() throw new AgentTerminationException(); } - long nowNs = nanoClock.NanoTime(); + long nowNs = _nanoClock.NanoTime(); CheckForClockTick(nowNs); - if (isServiceActive) + if (_isServiceActive) { InvokeBackgroundWork(nowNs); } @@ -399,10 +420,11 @@ public void OnJoinLog( int logStreamId, bool isStartup, ClusterRole role, - string logChannel) + string logChannel + ) { - logAdapter.MaxLogPosition(logPosition); - activeLogEvent = new ActiveLogEvent( + _logAdapter.MaxLogPosition(logPosition); + _activeLogEvent = new ActiveLogEvent( logPosition, maxLogPosition, memberId, @@ -410,17 +432,18 @@ public void OnJoinLog( logStreamId, isStartup, role, - logChannel); + logChannel + ); } internal void OnServiceTerminationPosition(long logPosition) { - terminationPosition = logPosition; + _terminationPosition = logPosition; } internal void OnRequestServiceAck(long logPosition) { - requestedAckPosition = logPosition; + _requestedAckPosition = logPosition; } internal void OnSessionMessage( @@ -430,21 +453,22 @@ internal void OnSessionMessage( IDirectBuffer buffer, int offset, int length, - Header header) + Header header + ) { - this.logPosition = logPosition; - clusterTime = timestamp; + this._logPosition = logPosition; + _clusterTime = timestamp; - var clientSession = sessionByIdMap.Get(clusterSessionId); - service.OnSessionMessage(clientSession, timestamp, buffer, offset, length, header); + var clientSession = _sessionByIdMap.Get(clusterSessionId); + _service.OnSessionMessage(clientSession, timestamp, buffer, offset, length, header); } internal void OnTimerEvent(long logPosition, long correlationId, long timestampMs) { - this.logPosition = logPosition; - clusterTime = timestampMs; + this._logPosition = logPosition; + _clusterTime = timestampMs; - service.OnTimerEvent(correlationId, timestampMs); + _service.OnTimerEvent(correlationId, timestampMs); } internal void OnSessionOpen( @@ -454,57 +478,82 @@ internal void OnSessionOpen( long timestamp, int responseStreamId, string responseChannel, - byte[] encodedPrincipal) + byte[] encodedPrincipal + ) { - this.logPosition = logPosition; - clusterTime = timestamp; + this._logPosition = logPosition; + _clusterTime = timestamp; - if (sessionByIdMap.ContainsKey(clusterSessionId)) + if (_sessionByIdMap.ContainsKey(clusterSessionId)) { - throw new ClusterException("clashing open clusterSessionId=" + clusterSessionId + - " leadershipTermId=" + leadershipTermId + " logPosition=" + logPosition); + throw new ClusterException( + "clashing open clusterSessionId=" + + clusterSessionId + + " leadershipTermId=" + + leadershipTermId + + " logPosition=" + + logPosition + ); } ContainerClientSession session = new ContainerClientSession( - clusterSessionId, responseStreamId, responseChannel, encodedPrincipal, this); + clusterSessionId, + responseStreamId, + responseChannel, + encodedPrincipal, + this + ); - if (ClusterRole.Leader == role && ctx.IsRespondingService()) + if (ClusterRole.Leader == _role && _ctx.IsRespondingService()) { - session.Connect(aeron); + session.Connect(_aeron); } AddSession(session); - service.OnSessionOpen(session, timestamp); + _service.OnSessionOpen(session, timestamp); } - internal void OnSessionClose(long leadershipTermId, long logPosition, long clusterSessionId, long timestamp, - CloseReason closeReason) + internal void OnSessionClose( + long leadershipTermId, + long logPosition, + long clusterSessionId, + long timestamp, + CloseReason closeReason + ) { - this.logPosition = logPosition; - clusterTime = timestamp; - var session = sessionByIdMap.Remove(clusterSessionId); + this._logPosition = logPosition; + _clusterTime = timestamp; + var session = _sessionByIdMap.Remove(clusterSessionId); if (null == session) { - ctx.CountedErrorHandler().OnError( - new ClusterEvent( - "unknown clusterSessionId=" + clusterSessionId + " for close reason=" + closeReason + - " leadershipTermId=" + leadershipTermId + " logPosition=" + logPosition) - ); + _ctx.CountedErrorHandler() + .OnError( + new ClusterEvent( + "unknown clusterSessionId=" + + clusterSessionId + + " for close reason=" + + closeReason + + " leadershipTermId=" + + leadershipTermId + + " logPosition=" + + logPosition + ) + ); } else { - for (int i = 0, size = sessions.Count; i < size; i++) + for (int i = 0, size = _sessions.Count; i < size; i++) { - if (sessions[i].Id == clusterSessionId) + if (_sessions[i].Id == clusterSessionId) { - sessions.RemoveAt(i); + _sessions.RemoveAt(i); break; } } - ((ContainerClientSession)session).Disconnect(ctx.CountedErrorHandler().OnError); - service.OnSessionClose(session, timestamp, closeReason); + ((ContainerClientSession)session).Disconnect(_ctx.CountedErrorHandler().OnError); + _service.OnSessionClose(session, timestamp, closeReason); } } @@ -513,10 +562,11 @@ internal void OnServiceAction( long logPosition, long timestamp, ClusterAction action, - int flags) + int flags + ) { - this.logPosition = logPosition; - clusterTime = timestamp; + this._logPosition = logPosition; + _clusterTime = timestamp; ExecuteAction(action, logPosition, leadershipTermId, flags); } @@ -528,23 +578,29 @@ internal void OnNewLeadershipTermEvent( int leaderMemberId, int logSessionId, ClusterTimeUnit timeUnit, - int appVersion) + int appVersion + ) { - if (!ctx.AppVersionValidator().IsVersionCompatible(ctx.AppVersion(), appVersion)) - { - ctx.CountedErrorHandler().OnError(new ClusterException("incompatible version: " + - SemanticVersion.ToString(ctx.AppVersion()) + - " log=" + - SemanticVersion.ToString(appVersion))); + if (!_ctx.AppVersionValidator().IsVersionCompatible(_ctx.AppVersion(), appVersion)) + { + _ctx.CountedErrorHandler() + .OnError( + new ClusterException( + "incompatible version: " + + SemanticVersion.ToString(_ctx.AppVersion()) + + " log=" + + SemanticVersion.ToString(appVersion) + ) + ); throw new AgentTerminationException(); } _sessionMessageHeaderEncoder.LeadershipTermId(leadershipTermId); - this.logPosition = logPosition; - clusterTime = timestamp; - this.timeUnit = timeUnit; + this._logPosition = logPosition; + _clusterTime = timestamp; + this._timeUnit = timeUnit; - service.OnNewLeadershipTermEvent( + _service.OnNewLeadershipTermEvent( leadershipTermId, logPosition, timestamp, @@ -552,14 +608,24 @@ internal void OnNewLeadershipTermEvent( leaderMemberId, logSessionId, timeUnit, - appVersion); + appVersion + ); } - internal void AddSession(long clusterSessionId, int responseStreamId, string responseChannel, - byte[] encodedPrincipal) + internal void AddSession( + long clusterSessionId, + int responseStreamId, + string responseChannel, + byte[] encodedPrincipal + ) { ContainerClientSession session = new ContainerClientSession( - clusterSessionId, responseStreamId, responseChannel, encodedPrincipal, this); + clusterSessionId, + responseStreamId, + responseChannel, + encodedPrincipal, + this + ); AddSession(session); } @@ -567,13 +633,13 @@ internal void AddSession(long clusterSessionId, int responseStreamId, string res private void AddSession(ContainerClientSession session) { long clusterSessionId = session.Id; - sessionByIdMap.Put(clusterSessionId, session); + _sessionByIdMap.Put(clusterSessionId, session); - int size = sessions.Count; + int size = _sessions.Count; int addIndex = size; for (int i = size - 1; i >= 0; i--) { - if (sessions[i].Id < clusterSessionId) + if (_sessions[i].Id < clusterSessionId) { addIndex = i + 1; break; @@ -582,25 +648,30 @@ private void AddSession(ContainerClientSession session) if (size == addIndex) { - sessions.Add(session); + _sessions.Add(session); } else { - sessions.Insert(addIndex, session); + _sessions.Insert(addIndex, session); } } internal void HandleError(Exception ex) { - ctx.CountedErrorHandler().OnError(ex); + _ctx.CountedErrorHandler().OnError(ex); } - internal long Offer(long clusterSessionId, Publication publication, IDirectBuffer buffer, int offset, - int length) + internal long Offer( + long clusterSessionId, + Publication publication, + IDirectBuffer buffer, + int offset, + int length + ) { CheckForValidInvocation(); - if (ClusterRole.Leader != role) + if (ClusterRole.Leader != _role) { return ClientSessionConstants.MOCKED_OFFER; } @@ -610,16 +681,16 @@ internal long Offer(long clusterSessionId, Publication publication, IDirectBuffe return Publication.NOT_CONNECTED; } - _sessionMessageHeaderEncoder.ClusterSessionId(clusterSessionId).Timestamp(clusterTime); + _sessionMessageHeaderEncoder.ClusterSessionId(clusterSessionId).Timestamp(_clusterTime); - return publication.Offer(headerBuffer, 0, SESSION_HEADER_LENGTH, buffer, offset, length, null); + return publication.Offer(_headerBuffer, 0, SESSION_HEADER_LENGTH, buffer, offset, length, null); } internal long Offer(long clusterSessionId, Publication publication, DirectBufferVector[] vectors) { CheckForValidInvocation(); - if (ClusterRole.Leader != role) + if (ClusterRole.Leader != _role) { return ClientSessionConstants.MOCKED_OFFER; } @@ -629,9 +700,9 @@ internal long Offer(long clusterSessionId, Publication publication, DirectBuffer return Publication.NOT_CONNECTED; } - _sessionMessageHeaderEncoder.ClusterSessionId(clusterSessionId).Timestamp(clusterTime); + _sessionMessageHeaderEncoder.ClusterSessionId(clusterSessionId).Timestamp(_clusterTime); - vectors[0] = headerVector; + vectors[0] = _headerVector; return publication.Offer(vectors, null); } @@ -640,18 +711,17 @@ internal long TryClaim(long clusterSessionId, Publication publication, int lengt { CheckForValidInvocation(); - if (ClusterRole.Leader != role) + if (ClusterRole.Leader != _role) { - int maxPayloadLength = headerBuffer.Capacity - SESSION_HEADER_LENGTH; + int maxPayloadLength = _headerBuffer.Capacity - SESSION_HEADER_LENGTH; if (length > maxPayloadLength) { throw new ArgumentException( - "claim exceeds maxPayloadLength=" + maxPayloadLength + ", length=" + length); + "claim exceeds maxPayloadLength=" + maxPayloadLength + ", length=" + length + ); } - bufferClaim.Wrap( - messageBuffer, 0, DataHeaderFlyweight.HEADER_LENGTH + SESSION_HEADER_LENGTH + length - ); + bufferClaim.Wrap(_messageBuffer, 0, DataHeaderFlyweight.HEADER_LENGTH + SESSION_HEADER_LENGTH + length); return ClientSessionConstants.MOCKED_OFFER; } @@ -663,9 +733,9 @@ internal long TryClaim(long clusterSessionId, Publication publication, int lengt long offset = publication.TryClaim(SESSION_HEADER_LENGTH + length, bufferClaim); if (offset > 0) { - _sessionMessageHeaderEncoder.ClusterSessionId(clusterSessionId).Timestamp(clusterTime); + _sessionMessageHeaderEncoder.ClusterSessionId(clusterSessionId).Timestamp(_clusterTime); - bufferClaim.PutBytes(headerBuffer, 0, SESSION_HEADER_LENGTH); + bufferClaim.PutBytes(_headerBuffer, 0, SESSION_HEADER_LENGTH); } return offset; @@ -674,31 +744,31 @@ internal long TryClaim(long clusterSessionId, Publication publication, int lengt private void RecoverState(CountersReader counters) { int recoveryCounterId = AwaitRecoveryCounter(counters); - logPosition = RecoveryState.GetLogPosition(counters, recoveryCounterId); - clusterTime = RecoveryState.GetTimestamp(counters, recoveryCounterId); + _logPosition = RecoveryState.GetLogPosition(counters, recoveryCounterId); + _clusterTime = RecoveryState.GetTimestamp(counters, recoveryCounterId); long leadershipTermId = RecoveryState.GetLeadershipTermId(counters, recoveryCounterId); _sessionMessageHeaderEncoder.LeadershipTermId(leadershipTermId); - activeLifecycleCallback = LIFECYCLE_CALLBACK_ON_START; + _activeLifecycleCallback = LifecycleCallbackOnStart; try { if (NULL_VALUE != leadershipTermId) { - LoadSnapshot(RecoveryState.GetSnapshotRecordingId(counters, recoveryCounterId, serviceId)); + LoadSnapshot(RecoveryState.GetSnapshotRecordingId(counters, recoveryCounterId, _serviceId)); } else { - service.OnStart(this, null); + _service.OnStart(this, null); } } finally { - activeLifecycleCallback = LIFECYCLE_CALLBACK_NONE; + _activeLifecycleCallback = LifecycleCallbackNone; } - long id = ackId++; - idleStrategy.Reset(); - while (!_consensusModuleProxy.Ack(logPosition, clusterTime, id, aeron.ClientId, serviceId)) + long id = _ackId++; + _idleStrategy.Reset(); + while (!_consensusModuleProxy.Ack(_logPosition, _clusterTime, id, _aeron.ClientId, _serviceId)) { Idle(); } @@ -706,12 +776,12 @@ private void RecoverState(CountersReader counters) private int AwaitRecoveryCounter(CountersReader counters) { - idleStrategy.Reset(); - int counterId = RecoveryState.FindCounterId(counters, ctx.ClusterId()); + _idleStrategy.Reset(); + int counterId = RecoveryState.FindCounterId(counters, _ctx.ClusterId()); while (CountersReader.NULL_COUNTER_ID == counterId) { Idle(); - counterId = RecoveryState.FindCounterId(counters, ctx.ClusterId()); + counterId = RecoveryState.FindCounterId(counters, _ctx.ClusterId()); } return counterId; @@ -719,56 +789,61 @@ private int AwaitRecoveryCounter(CountersReader counters) private void CloseLog() { - logPosition = Math.Max(logAdapter.Image().Position, logPosition); - CloseHelper.Dispose(ctx.CountedErrorHandler().OnError, logAdapter); - DisconnectEgress(ctx.CountedErrorHandler().AsErrorHandler); + _logPosition = Math.Max(_logAdapter.Image().Position, _logPosition); + CloseHelper.Dispose(_ctx.CountedErrorHandler().OnError, _logAdapter); + DisconnectEgress(_ctx.CountedErrorHandler().AsErrorHandler); Role = ClusterRole.Follower; } private void DisconnectEgress(ErrorHandler errorHandler) { - for (int i = 0, size = sessions.Count; i < size; i++) + for (int i = 0, size = _sessions.Count; i < size; i++) { - sessions[i].Disconnect(errorHandler); + _sessions[i].Disconnect(errorHandler); } } - private void JoinActiveLog(ActiveLogEvent activeLog) { if (ClusterRole.Leader != activeLog.role) { - DisconnectEgress(ctx.CountedErrorHandler().AsErrorHandler); + DisconnectEgress(_ctx.CountedErrorHandler().AsErrorHandler); } - String channel = new ChannelUriStringBuilder(activeLog.channel) - .Alias(subscriptionAlias) - .Build(); + String channel = new ChannelUriStringBuilder(activeLog.channel).Alias(_subscriptionAlias).Build(); - Subscription logSubscription = aeron.AddSubscription(channel, activeLog.streamId); + Subscription logSubscription = _aeron.AddSubscription(channel, activeLog.streamId); try { Image image = AwaitImage(activeLog.sessionId, logSubscription); - if (image.JoinPosition != logPosition) + if (image.JoinPosition != _logPosition) { - throw new ClusterException("Cluster log must be contiguous for joining image: " + - "expectedPosition=" + logPosition + " joinPosition=" + - image.JoinPosition); + throw new ClusterException( + "Cluster log must be contiguous for joining image: " + + "expectedPosition=" + + _logPosition + + " joinPosition=" + + image.JoinPosition + ); } - if (activeLog.logPosition != logPosition) + if (activeLog.logPosition != _logPosition) { - throw new ClusterException("Cluster log must be contiguous for active log event: " + - "expectedPosition=" + logPosition + " eventPosition=" + - activeLog.logPosition); + throw new ClusterException( + "Cluster log must be contiguous for active log event: " + + "expectedPosition=" + + _logPosition + + " eventPosition=" + + activeLog.logPosition + ); } - logAdapter.Image(image); - logAdapter.MaxLogPosition(activeLog.maxLogPosition); + _logAdapter.Image(image); + _logAdapter.MaxLogPosition(activeLog.maxLogPosition); logSubscription = null; - long id = ackId++; - while (!_consensusModuleProxy.Ack(activeLog.logPosition, clusterTime, id, NULL_VALUE, serviceId)) + long id = _ackId++; + while (!_consensusModuleProxy.Ack(activeLog.logPosition, _clusterTime, id, NULL_VALUE, _serviceId)) { Idle(); } @@ -778,18 +853,18 @@ private void JoinActiveLog(ActiveLogEvent activeLog) CloseHelper.QuietDispose(logSubscription); } - memberId = activeLog.memberId; - markFile.MemberId(memberId); + _memberId = activeLog.memberId; + _markFile.MemberId(_memberId); if (ClusterRole.Leader == activeLog.role) { - for (var i = 0; i < sessions.Count; i++) + for (var i = 0; i < _sessions.Count; i++) { - var session = sessions[i]; + var session = _sessions[i]; - if (ctx.IsRespondingService() && !activeLog.isStartup) + if (_ctx.IsRespondingService() && !activeLog.isStartup) { - session.Connect(aeron); + session.Connect(_aeron); } session.ResetClosing(); @@ -801,7 +876,7 @@ private void JoinActiveLog(ActiveLogEvent activeLog) private Image AwaitImage(int sessionId, Subscription subscription) { - idleStrategy.Reset(); + _idleStrategy.Reset(); Image image; while ((image = subscription.ImageBySessionId(sessionId)) == null) { @@ -813,14 +888,20 @@ private Image AwaitImage(int sessionId, Subscription subscription) private ReadableCounter AwaitCommitPositionCounter(CountersReader counters, int clusterId) { - idleStrategy.Reset(); - int counterId = ClusterCounters.Find(counters, - ClusteredServiceContainer.Configuration.COMMIT_POSITION_TYPE_ID, clusterId); + _idleStrategy.Reset(); + int counterId = ClusterCounters.Find( + counters, + ClusteredServiceContainer.Configuration.COMMIT_POSITION_TYPE_ID, + clusterId + ); while (CountersReader.NULL_COUNTER_ID == counterId) { Idle(); - counterId = ClusterCounters.Find(counters, - ClusteredServiceContainer.Configuration.COMMIT_POSITION_TYPE_ID, clusterId); + counterId = ClusterCounters.Find( + counters, + ClusteredServiceContainer.Configuration.COMMIT_POSITION_TYPE_ID, + clusterId + ); } return new ReadableCounter(counters, counters.GetCounterRegistrationId(counterId), counterId); @@ -828,18 +909,18 @@ private ReadableCounter AwaitCommitPositionCounter(CountersReader counters, int private void LoadSnapshot(long recordingId) { - using (AeronArchive archive = Connect(ctx.ArchiveContext().Clone())) + using (AeronArchive archive = Connect(_ctx.ArchiveContext().Clone())) { - string channel = ctx.ReplayChannel(); - int streamId = ctx.ReplayStreamId(); + string channel = _ctx.ReplayChannel(); + int streamId = _ctx.ReplayStreamId(); int sessionId = (int)archive.StartReplay(recordingId, 0, NULL_VALUE, channel, streamId); string replaySessionChannel = ChannelUri.AddSessionId(channel, sessionId); - using (Subscription subscription = aeron.AddSubscription(replaySessionChannel, streamId)) + using (Subscription subscription = _aeron.AddSubscription(replaySessionChannel, streamId)) { Image image = AwaitImage(sessionId, subscription); LoadState(image, archive); - service.OnStart(this, image); + _service.OnStart(this, image); } } } @@ -864,39 +945,46 @@ private void LoadState(Image image, AeronArchive archive) } } - idleStrategy.Idle(fragments); + _idleStrategy.Idle(fragments); } int appVersion = snapshotLoader.AppVersion(); - if (!ctx.AppVersionValidator().IsVersionCompatible(ctx.AppVersion(), appVersion)) + if (!_ctx.AppVersionValidator().IsVersionCompatible(_ctx.AppVersion(), appVersion)) { throw new ClusterException( - "incompatible app version: " + SemanticVersion.ToString(ctx.AppVersion()) + - " snapshot=" + SemanticVersion.ToString(appVersion)); + "incompatible app version: " + + SemanticVersion.ToString(_ctx.AppVersion()) + + " snapshot=" + + SemanticVersion.ToString(appVersion) + ); } - timeUnit = snapshotLoader.TimeUnit(); + _timeUnit = snapshotLoader.TimeUnit(); } private long OnTakeSnapshot(long logPosition, long leadershipTermId) { try { - using (AeronArchive archive = Connect(ctx.ArchiveContext().Clone())) - using (ExclusivePublication publication = - aeron.AddExclusivePublication(ctx.SnapshotChannel(), ctx.SnapshotStreamId())) + using (AeronArchive archive = Connect(_ctx.ArchiveContext().Clone())) + using ( + ExclusivePublication publication = _aeron.AddExclusivePublication( + _ctx.SnapshotChannel(), + _ctx.SnapshotStreamId() + ) + ) { - string channel = ChannelUri.AddSessionId(ctx.SnapshotChannel(), publication.SessionId); - archive.StartRecording(channel, ctx.SnapshotStreamId(), SourceLocation.LOCAL, true); - CountersReader counters = aeron.CountersReader; + string channel = ChannelUri.AddSessionId(_ctx.SnapshotChannel(), publication.SessionId); + archive.StartRecording(channel, _ctx.SnapshotStreamId(), SourceLocation.LOCAL, true); + CountersReader counters = _aeron.CountersReader; int counterId = AwaitRecordingCounter(publication.SessionId, counters, archive); long recordingId = RecordingPos.GetRecordingId(counters, counterId); SnapshotState(publication, logPosition, leadershipTermId); - CheckForClockTick(nanoClock.NanoTime()); + CheckForClockTick(_nanoClock.NanoTime()); archive.CheckForErrorResponse(); - service.OnTakeSnapshot(publication); + _service.OnTakeSnapshot(publication); AwaitRecordingComplete(recordingId, publication.Position, counters, counterId, archive); @@ -919,9 +1007,10 @@ private void AwaitRecordingComplete( long position, CountersReader counters, int counterId, - AeronArchive archive) + AeronArchive archive + ) { - idleStrategy.Reset(); + _idleStrategy.Reset(); while (counters.GetCounterValue(counterId) < position) { Idle(); @@ -936,20 +1025,30 @@ private void AwaitRecordingComplete( private void SnapshotState(ExclusivePublication publication, long logPosition, long leadershipTermId) { - var snapshotTaker = new ServiceSnapshotTaker(publication, idleStrategy, aeronAgentInvoker); + var snapshotTaker = new ServiceSnapshotTaker(publication, _idleStrategy, _aeronAgentInvoker); - snapshotTaker.MarkBegin(ClusteredServiceContainer.Configuration.SNAPSHOT_TYPE_ID, logPosition, - leadershipTermId, 0, - timeUnit, ctx.AppVersion()); + snapshotTaker.MarkBegin( + ClusteredServiceContainer.Configuration.SNAPSHOT_TYPE_ID, + logPosition, + leadershipTermId, + 0, + _timeUnit, + _ctx.AppVersion() + ); - for (int i = 0, size = sessions.Count; i < size; i++) + for (int i = 0, size = _sessions.Count; i < size; i++) { - snapshotTaker.SnapshotSession(sessions[i]); + snapshotTaker.SnapshotSession(_sessions[i]); } - snapshotTaker.MarkEnd(ClusteredServiceContainer.Configuration.SNAPSHOT_TYPE_ID, logPosition, - leadershipTermId, 0, - timeUnit, ctx.AppVersion()); + snapshotTaker.MarkEnd( + ClusteredServiceContainer.Configuration.SNAPSHOT_TYPE_ID, + logPosition, + leadershipTermId, + 0, + _timeUnit, + _ctx.AppVersion() + ); } private void ExecuteAction(ClusterAction action, long logPosition, long leadershipTermId, int flags) @@ -958,7 +1057,7 @@ private void ExecuteAction(ClusterAction action, long logPosition, long leadersh { long recordingId = NULL_VALUE; Exception exception = null; - snapshotDurationTracker.OnSnapshotBegin(nanoClock.NanoTime()); + _snapshotDurationTracker.OnSnapshotBegin(_nanoClock.NanoTime()); try { recordingId = OnTakeSnapshot(logPosition, leadershipTermId); @@ -969,11 +1068,11 @@ private void ExecuteAction(ClusterAction action, long logPosition, long leadersh } finally { - snapshotDurationTracker.OnSnapshotEnd(nanoClock.NanoTime()); + _snapshotDurationTracker.OnSnapshotEnd(_nanoClock.NanoTime()); } - long id = ackId++; - while (!_consensusModuleProxy.Ack(logPosition, clusterTime, id, recordingId, serviceId)) + long id = _ackId++; + while (!_consensusModuleProxy.Ack(logPosition, _clusterTime, id, recordingId, _serviceId)) { Idle(); } @@ -987,12 +1086,12 @@ private void ExecuteAction(ClusterAction action, long logPosition, long leadersh private bool ShouldSnapshot(int flags) { - return CLUSTER_ACTION_FLAGS_DEFAULT == flags || 0 != (flags & standbySnapshotFlags); + return CLUSTER_ACTION_FLAGS_DEFAULT == flags || 0 != (flags & _standbySnapshotFlags); } private int AwaitRecordingCounter(int sessionId, CountersReader counters, AeronArchive archive) { - idleStrategy.Reset(); + _idleStrategy.Reset(); long archiveId = archive.ArchiveId(); int counterId = RecordingPos.FindCounterIdBySession(counters, sessionId, archiveId); while (CountersReader.NULL_COUNTER_ID == counterId) @@ -1007,40 +1106,40 @@ private int AwaitRecordingCounter(int sessionId, CountersReader counters, AeronA private bool CheckForClockTick(long nowNs) { - if (isAbort || aeron.IsClosed) + if (_isAbort || _aeron.IsClosed) { - isAbort = true; + _isAbort = true; throw new AgentTerminationException("unexpected Aeron close"); } - if (nowNs - lastSlowTickNs > ONE_MILLISECOND_NS) + if (nowNs - _lastSlowTickNs > s_oneMillisecondNs) { - lastSlowTickNs = nowNs; + _lastSlowTickNs = nowNs; - if (null != aeronAgentInvoker) + if (null != _aeronAgentInvoker) { - aeronAgentInvoker.Invoke(); + _aeronAgentInvoker.Invoke(); - if (isAbort || aeron.IsClosed) + if (_isAbort || _aeron.IsClosed) { - isAbort = true; + _isAbort = true; throw new AgentTerminationException("unexpected Aeron close"); } } - if (null != commitPosition && commitPosition.IsClosed) + if (null != _commitPosition && _commitPosition.IsClosed) { - ctx.ErrorLog().Record(new AeronEvent("commit-pos counter unexpectedly closed, terminating", - Category.WARN)); + _ctx.ErrorLog() + .Record(new AeronEvent("commit-pos counter unexpectedly closed, terminating", Category.WARN)); throw new ClusterTerminationException(true); } - long nowMs = epochClock.Time(); - if (nowMs >= markFileUpdateDeadlineMs) + long nowMs = _epochClock.Time(); + if (nowMs >= _markFileUpdateDeadlineMs) { - markFileUpdateDeadlineMs = nowMs + MARK_FILE_UPDATE_INTERVAL_MS; - ctx.ClusterMarkFile().UpdateActivityTimestamp(nowMs); + _markFileUpdateDeadlineMs = nowMs + s_markFileUpdateIntervalMs; + _ctx.ClusterMarkFile().UpdateActivityTimestamp(nowMs); } return true; @@ -1055,41 +1154,53 @@ private int PollServiceAdapter() workCount += _serviceAdapter.Poll(); - if (null != activeLogEvent && null == logAdapter.Image()) + if (null != _activeLogEvent && null == _logAdapter.Image()) { - ActiveLogEvent @event = activeLogEvent; - activeLogEvent = null; + ActiveLogEvent @event = _activeLogEvent; + _activeLogEvent = null; JoinActiveLog(@event); } - if (NULL_POSITION != terminationPosition && logPosition >= terminationPosition) + if (NULL_POSITION != _terminationPosition && _logPosition >= _terminationPosition) { - if (logPosition > terminationPosition) + if (_logPosition > _terminationPosition) { - ctx.CountedErrorHandler().OnError(new ClusterException( - "service terminate: logPosition=" + logPosition + " > terminationPosition=" + - terminationPosition)); + _ctx.CountedErrorHandler() + .OnError( + new ClusterException( + "service terminate: logPosition=" + + _logPosition + + " > terminationPosition=" + + _terminationPosition + ) + ); } - Terminate(logPosition == terminationPosition); + Terminate(_logPosition == _terminationPosition); } - if (NULL_POSITION != requestedAckPosition && logPosition >= requestedAckPosition) + if (NULL_POSITION != _requestedAckPosition && _logPosition >= _requestedAckPosition) { - if (logPosition > requestedAckPosition) + if (_logPosition > _requestedAckPosition) { - ctx.CountedErrorHandler().OnError(new ClusterEvent( - "invalid ack request: logPosition=" + logPosition + - " > requestedAckPosition=" + requestedAckPosition)); + _ctx.CountedErrorHandler() + .OnError( + new ClusterEvent( + "invalid ack request: logPosition=" + + _logPosition + + " > requestedAckPosition=" + + _requestedAckPosition + ) + ); } - long id = ackId++; - while (!_consensusModuleProxy.Ack(logPosition, clusterTime, id, NULL_VALUE, serviceId)) + long id = _ackId++; + while (!_consensusModuleProxy.Ack(_logPosition, _clusterTime, id, NULL_VALUE, _serviceId)) { Idle(); } - requestedAckPosition = NULL_POSITION; + _requestedAckPosition = NULL_POSITION; } return workCount; @@ -1097,26 +1208,26 @@ private int PollServiceAdapter() private void Terminate(bool isTerminationExpected) { - isServiceActive = false; - activeLifecycleCallback = LIFECYCLE_CALLBACK_ON_TERMINATE; + _isServiceActive = false; + _activeLifecycleCallback = LifecycleCallbackOnTerminate; try { - service.OnTerminate(this); + _service.OnTerminate(this); } catch (Exception ex) { - ctx.CountedErrorHandler().OnError(ex); + _ctx.CountedErrorHandler().OnError(ex); } finally { - activeLifecycleCallback = LIFECYCLE_CALLBACK_NONE; + _activeLifecycleCallback = LifecycleCallbackNone; } try { int attempts = 5; - long id = ackId++; - while (!_consensusModuleProxy.Ack(logPosition, clusterTime, id, NULL_VALUE, serviceId)) + long id = _ackId++; + while (!_consensusModuleProxy.Ack(_logPosition, _clusterTime, id, NULL_VALUE, _serviceId)) { if (0 == --attempts) { @@ -1128,34 +1239,33 @@ private void Terminate(bool isTerminationExpected) } catch (Exception ex) { - ctx.CountedErrorHandler().OnError(ex); + _ctx.CountedErrorHandler().OnError(ex); } - terminationPosition = NULL_VALUE; + _terminationPosition = NULL_VALUE; throw new ClusterTerminationException(isTerminationExpected); } - private void CheckForValidInvocation() { - if (LIFECYCLE_CALLBACK_NONE != activeLifecycleCallback) + if (LifecycleCallbackNone != _activeLifecycleCallback) { + var lifecycleName = LifecycleName(_activeLifecycleCallback); throw new ClusterException( - "sending messages or scheduling timers is not allowed from " + - LifecycleName(activeLifecycleCallback)); + "sending messages or scheduling timers is not allowed from " + lifecycleName); } } private void Abort() { - isAbort = true; + _isAbort = true; try { - if (!ctx.AbortLatch().Wait(TimeSpan.FromMilliseconds(AgentRunner.RETRY_CLOSE_TIMEOUT_MS * 3L))) + if (!_ctx.AbortLatch().Wait(TimeSpan.FromMilliseconds(AgentRunner.RETRY_CLOSE_TIMEOUT_MS * 3L))) { - ctx.CountedErrorHandler().OnError( - new AeronTimeoutException("awaiting abort latch", Category.WARN)); + _ctx.CountedErrorHandler() + .OnError(new AeronTimeoutException("awaiting abort latch", Category.WARN)); } } catch (ThreadInterruptedException) @@ -1166,9 +1276,12 @@ private void Abort() private void CounterUnavailable(CountersReader countersReader, long registrationId, int counterId) { - ReadableCounter commitPosition = this.commitPosition; - if (null != commitPosition && commitPosition.CounterId == counterId && - commitPosition.RegistrationId == registrationId) + ReadableCounter commitPosition = this._commitPosition; + if ( + null != commitPosition + && commitPosition.CounterId == counterId + && commitPosition.RegistrationId == registrationId + ) { commitPosition.Dispose(); } @@ -1178,12 +1291,12 @@ private int InvokeBackgroundWork(long nowNs) { try { - activeLifecycleCallback = LIFECYCLE_CALLBACK_DO_BACKGROUND_WORK; - return service.DoBackgroundWork(nowNs); + _activeLifecycleCallback = LifecycleCallbackDoBackgroundWork; + return _service.DoBackgroundWork(nowNs); } finally { - activeLifecycleCallback = LIFECYCLE_CALLBACK_NONE; + _activeLifecycleCallback = LifecycleCallbackNone; } } @@ -1191,12 +1304,12 @@ private void RunTerminationHook() { try { - ctx.TerminationHook()(); + _ctx.TerminationHook()(); } catch (Exception ex) { - ctx.CountedErrorHandler().OnError(ex); + _ctx.CountedErrorHandler().OnError(ex); } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ClusteredServiceContainer.cs b/src/Adaptive.Cluster/Service/ClusteredServiceContainer.cs index 2df5d8f4..a9ac2660 100644 --- a/src/Adaptive.Cluster/Service/ClusteredServiceContainer.cs +++ b/src/Adaptive.Cluster/Service/ClusteredServiceContainer.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.IO; using System.Threading; using Adaptive.Aeron; @@ -38,12 +54,14 @@ public sealed class ClusteredServiceContainer : IDisposable /// /// Launch the clustered service container and await a shutdown signal. /// - /// command line argument which is a list for properties files as URLs or filenames. + /// command line argument which is a list for properties files as URLs or filenames. + /// public static void Main(string[] args) { using (ShutdownSignalBarrier barrier = new ShutdownSignalBarrier()) - using (ClusteredServiceContainer container = - Launch(new Context().TerminationHook(() => barrier.SignalAll()))) + using ( + ClusteredServiceContainer container = Launch(new Context().TerminationHook(() => barrier.SignalAll())) + ) { barrier.Await(); @@ -51,12 +69,12 @@ public static void Main(string[] args) } } - private readonly Context ctx; - private readonly AgentRunner serviceAgentRunner; + private readonly Context _ctx; + private readonly AgentRunner _serviceAgentRunner; private ClusteredServiceContainer(Context ctx) { - this.ctx = ctx; + this._ctx = ctx; try { @@ -75,7 +93,7 @@ private ClusteredServiceContainer(Context ctx) } ClusteredServiceAgent agent = new ClusteredServiceAgent(ctx); - serviceAgentRunner = new AgentRunner(ctx.IdleStrategy(), ctx.ErrorHandler(), ctx.ErrorCounter(), agent); + _serviceAgentRunner = new AgentRunner(ctx.IdleStrategy(), ctx.ErrorHandler(), ctx.ErrorCounter(), agent); } /// @@ -95,8 +113,10 @@ public static ClusteredServiceContainer Launch() public static ClusteredServiceContainer Launch(Context ctx) { ClusteredServiceContainer clusteredServiceContainer = new ClusteredServiceContainer(ctx); - AgentRunner.StartOnThread(clusteredServiceContainer.serviceAgentRunner, - clusteredServiceContainer.ctx.ThreadFactory()); + AgentRunner.StartOnThread( + clusteredServiceContainer._serviceAgentRunner, + clusteredServiceContainer._ctx.ThreadFactory() + ); return clusteredServiceContainer; } @@ -104,20 +124,26 @@ public static ClusteredServiceContainer Launch(Context ctx) /// /// Get the that is used by this . /// - /// the that is used by this . + /// the that is used by this . + /// public Context Ctx() { - return ctx; + return _ctx; } public void Dispose() { - serviceAgentRunner?.Dispose(); + _serviceAgentRunner?.Dispose(); } /// /// Configuration options for the consensus module and service container within a cluster. /// + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S1118:Utility classes should not have public constructors", + Justification = "Public ctor in shipped API surface; marking static would break consumers." + )] public class Configuration { /// @@ -198,7 +224,7 @@ public class Configuration public const string CONTROL_CHANNEL_PROP_NAME = "aeron.cluster.control.channel"; /// - /// Default channel for communications between the local consensus module and services. This should be IPC. + /// Default channel for communications between the local consensus module and services. This should be IPC. /// public const string CONTROL_CHANNEL_DEFAULT = "aeron:ipc?term-length=128k"; @@ -208,7 +234,8 @@ public class Configuration public const string SERVICE_STREAM_ID_PROP_NAME = "aeron.cluster.service.stream.id"; /// - /// Default stream id within the control channel for communications from the consensus module to the services. + /// Default stream id within the control channel for communications from the consensus module to the + /// services. /// public const int SERVICE_STREAM_ID_DEFAULT = 104; @@ -238,7 +265,7 @@ public class Configuration public const string SNAPSHOT_STREAM_ID_PROP_NAME = "aeron.cluster.snapshot.stream.id"; /// - /// Default stream id for the archived snapshots within a channel. + /// Default stream id for the archived snapshots within a channel. /// public const int SNAPSHOT_STREAM_ID_DEFAULT = 106; @@ -253,8 +280,8 @@ public class Configuration public const string CLUSTER_DIR_DEFAULT = "aeron-cluster"; /// - /// Directory to use for the aeron cluster services, will default to if not - /// specified. + /// Directory to use for the aeron cluster services, will default to + /// if not specified. /// public const string CLUSTER_SERVICES_DIR_PROP_NAME = "aeron.cluster.services.dir"; @@ -300,8 +327,7 @@ public class Configuration public const string DELEGATING_ERROR_HANDLER_PROP_NAME = "aeron.cluster.service.delegating.error.handler"; /// - /// Property name for threshold value for the container work cycle threshold to track - /// for being exceeded. + /// Property name for threshold value for the container work cycle threshold to track for being exceeded. /// public const string CYCLE_THRESHOLD_PROP_NAME = "aeron.cluster.service.cycle.threshold"; @@ -319,12 +345,11 @@ public class Configuration /// /// Default threshold value, which is used for tracking snapshot duration breaches. - /// + /// /// Since 1.44.0 /// public static readonly long SNAPSHOT_DURATION_THRESHOLD_DEFAULT_NS = TimeUnit.MILLIS.ToNanos(1000); - /// /// Counter type id for the cluster node role. /// @@ -342,46 +367,56 @@ public class Configuration AeronCounters.CLUSTER_CLUSTERED_SERVICE_ERROR_COUNT_TYPE_ID; /// - /// The value or system property if set. + /// The value or system property + /// if set. /// - /// or system property if set. + /// or system property + /// if set. public static int ClusterId() { return Config.GetInteger(CLUSTER_ID_PROP_NAME, CLUSTER_ID_DEFAULT); } /// - /// The value or system property if set. + /// The value or system property + /// if set. /// - /// or system property if set. + /// or system property + /// if set. public static int ServiceId() { return Config.GetInteger(SERVICE_ID_PROP_NAME, SERVICE_ID_DEFAULT); } /// - /// The value or system property if set. + /// The value or system property + /// if set. /// - /// or system property if set. + /// or system property + /// if set. public static string ServiceName() { return Config.GetProperty(SERVICE_NAME_PROP_NAME, SERVICE_NAME_DEFAULT); } /// - /// The value or system property if set. + /// The value or system property + /// if set. /// - /// or system property if set. + /// or system property + /// if set. public static string ReplayChannel() { return Config.GetProperty(REPLAY_CHANNEL_PROP_NAME, REPLAY_CHANNEL_DEFAULT); } /// - /// The value or system property + /// The value or system property + /// /// if set. /// - /// or system property + /// or system property + /// /// if set. public static int ReplayStreamId() { @@ -422,19 +457,23 @@ public static int ServiceStreamId() } /// - /// The value or system property if set. + /// The value or system property + /// if set. /// - /// or system property if set. + /// or system property + /// if set. public static string SnapshotChannel() { return Config.GetProperty(SNAPSHOT_CHANNEL_PROP_NAME, SNAPSHOT_CHANNEL_DEFAULT); } /// - /// The value or system property + /// The value or system property + /// /// if set. /// - /// or system property if set. + /// or system property + /// if set. public static int SnapshotStreamId() { return Config.GetInteger(SNAPSHOT_STREAM_ID_PROP_NAME, SNAPSHOT_STREAM_ID_DEFAULT); @@ -471,9 +510,11 @@ public static Func IdleStrategySupplier(StatusIndicator controlla } /// - /// The value or system property if set. + /// The value or system property + /// if set. /// - /// or system property if set. + /// or system property + /// if set. public static string ClusterDirName() { return Config.GetProperty(CLUSTER_DIR_PROP_NAME, CLUSTER_DIR_DEFAULT); @@ -499,9 +540,11 @@ public static int ErrorBufferLength() } /// - /// The value or system property if set. + /// The value or system property + /// if set. /// - /// or system property if set. + /// or system property + /// if set. public static bool IsRespondingService() { var property = Config.GetProperty(RESPONDER_SERVICE_PROP_NAME); @@ -540,11 +583,12 @@ public static long CycleThresholdNs() /// threshold value in nanoseconds. public static long SnapshotDurationThresholdNs() { - return Config.GetDurationInNanos(SNAPSHOT_DURATION_THRESHOLD_PROP_NAME, - SNAPSHOT_DURATION_THRESHOLD_DEFAULT_NS); + return Config.GetDurationInNanos( + SNAPSHOT_DURATION_THRESHOLD_PROP_NAME, + SNAPSHOT_DURATION_THRESHOLD_DEFAULT_NS + ); } - /// /// Get the configuration value to determine if this node should take standby snapshots be enabled. /// @@ -555,9 +599,11 @@ public static bool StandbySnapshotEnabled() } /// - /// Create a new based on the configured . + /// Create a new based on the configured + /// . /// - /// a new based on the configured . + /// a new based on the configured + /// . public static IClusteredService NewClusteredService() { string className = Config.GetProperty(SERVICE_CLASS_NAME_PROP_NAME); @@ -570,9 +616,11 @@ public static IClusteredService NewClusteredService() } /// - /// Create a new defined by . + /// Create a new defined by + /// . /// - /// a new defined by or + /// a new defined by + /// or /// null if property not set. public static DelegatingErrorHandler NewDelegatingErrorHandler() { @@ -597,53 +645,54 @@ public static string MarkFileDir() /// /// The context will be owned by after a successful - /// and closed via . + /// and closed via + /// . /// public class Context { private int _isConcluded = 0; - private int appVersion = SemanticVersion.Compose(0, 0, 1); - private int clusterId = Configuration.ClusterId(); - private int serviceId = Configuration.ServiceId(); - private string serviceName = Config.GetProperty(SERVICE_NAME_PROP_NAME); - private string replayChannel = Configuration.ReplayChannel(); - private int replayStreamId = Configuration.ReplayStreamId(); - private string controlChannel = Configuration.ControlChannel(); - private int consensusModuleStreamId = Configuration.ConsensusModuleStreamId(); - private int serviceStreamId = Configuration.ServiceStreamId(); - private string snapshotChannel = Configuration.SnapshotChannel(); - private int snapshotStreamId = Configuration.SnapshotStreamId(); - private int errorBufferLength = Configuration.ErrorBufferLength(); - private bool isRespondingService = Configuration.IsRespondingService(); - private int logFragmentLimit = Configuration.LogFragmentLimit(); - private long cycleThresholdNs = Configuration.CycleThresholdNs(); - private long snapshotDurationThresholdNs = Configuration.SnapshotDurationThresholdNs(); - private bool standbySnapshotEnabled = Configuration.StandbySnapshotEnabled(); - - private CountdownEvent abortLatch; - private IThreadFactory threadFactory; - private Func idleStrategySupplier; - private IEpochClock epochClock; - private INanoClock nanoClock; - private DistinctErrorLog errorLog; - private IErrorHandler errorHandler; - private DelegatingErrorHandler delegatingErrorHandler; - private AtomicCounter errorCounter; - private CountedErrorHandler countedErrorHandler; - private AeronArchive.Context archiveContext; - private string clusterDirectoryName = ClusterDirName(); - private DirectoryInfo clusterDir; - private DirectoryInfo markFileDir; - private string aeronDirectoryName = GetAeronDirectoryName(); - private Aeron.Aeron aeron; - private DutyCycleTracker dutyCycleTracker; - private SnapshotDurationTracker snapshotDurationTracker; - private AppVersionValidator appVersionValidator; - private bool ownsAeronClient; - - private IClusteredService clusteredService; - private Action terminationHook; - private ClusterMarkFile markFile; + private int _appVersion = SemanticVersion.Compose(0, 0, 1); + private int _clusterId = Configuration.ClusterId(); + private int _serviceId = Configuration.ServiceId(); + private string _serviceName = Config.GetProperty(SERVICE_NAME_PROP_NAME); + private string _replayChannel = Configuration.ReplayChannel(); + private int _replayStreamId = Configuration.ReplayStreamId(); + private string _controlChannel = Configuration.ControlChannel(); + private int _consensusModuleStreamId = Configuration.ConsensusModuleStreamId(); + private int _serviceStreamId = Configuration.ServiceStreamId(); + private string _snapshotChannel = Configuration.SnapshotChannel(); + private int _snapshotStreamId = Configuration.SnapshotStreamId(); + private int _errorBufferLength = Configuration.ErrorBufferLength(); + private bool _isRespondingService = Configuration.IsRespondingService(); + private int _logFragmentLimit = Configuration.LogFragmentLimit(); + private long _cycleThresholdNs = Configuration.CycleThresholdNs(); + private long _snapshotDurationThresholdNs = Configuration.SnapshotDurationThresholdNs(); + private bool _standbySnapshotEnabled = Configuration.StandbySnapshotEnabled(); + + private CountdownEvent _abortLatch; + private IThreadFactory _threadFactory; + private Func _idleStrategySupplier; + private IEpochClock _epochClock; + private INanoClock _nanoClock; + private DistinctErrorLog _errorLog; + private IErrorHandler _errorHandler; + private DelegatingErrorHandler _delegatingErrorHandler; + private AtomicCounter _errorCounter; + private CountedErrorHandler _countedErrorHandler; + private AeronArchive.Context _archiveContext; + private string _clusterDirectoryName = ClusterDirName(); + private DirectoryInfo _clusterDir; + private DirectoryInfo _markFileDir; + private string _aeronDirectoryName = GetAeronDirectoryName(); + private Aeron.Aeron _aeron; + private DutyCycleTracker _dutyCycleTracker; + private SnapshotDurationTracker _snapshotDurationTracker; + private AppVersionValidator _appVersionValidator; + private bool _ownsAeronClient; + + private IClusteredService _clusteredService; + private Action _terminationHook; + private ClusterMarkFile _markFile; /// /// Perform a shallow copy of the object. @@ -657,6 +706,23 @@ public Context Clone() /// /// Conclude configuration by setting up defaults when specifics are not provided. /// + // Upstream: io.aeron.cluster.service.ClusteredServiceContainer.Context#conclude + // is @SuppressWarnings("MethodLength"). + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Major Code Smell", + "S138:Functions should not have too many lines", + Justification = "Upstream Java parity; method is itself @SuppressWarnings(\"MethodLength\")." + )] + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Maintainability", + "CA1502:Avoid excessive complexity", + Justification = "Branch shape mirrors upstream Java (see Upstream comment above)." + )] + [System.Diagnostics.CodeAnalysis.SuppressMessage( + "Maintainability", + "CA1506:Avoid excessive class coupling", + Justification = "Coupling mirrors upstream Java context-conclude (see Upstream comment above)." + )] public void Conclude() { if (0 != Interlocked.Exchange(ref _isConcluded, 1)) @@ -664,222 +730,248 @@ public void Conclude() throw new ConcurrentConcludeException(); } - if (serviceId < 0 || serviceId > 127) + if (_serviceId < 0 || _serviceId > 127) { - throw new ConfigurationException("service id outside allowed range (0-127): " + serviceId); + throw new ConfigurationException("service id outside allowed range (0-127): " + _serviceId); } - if (null == threadFactory) + if (null == _threadFactory) { - threadFactory = new DefaultThreadFactory(); + _threadFactory = new DefaultThreadFactory(); } - if (null == idleStrategySupplier) + if (null == _idleStrategySupplier) { - idleStrategySupplier = Configuration.IdleStrategySupplier(null); + _idleStrategySupplier = Configuration.IdleStrategySupplier(null); } - if (null == appVersionValidator) + if (null == _appVersionValidator) { - appVersionValidator = Cluster.AppVersionValidator.SEMANTIC_VERSIONING_VALIDATOR; + _appVersionValidator = Cluster.AppVersionValidator.SEMANTIC_VERSIONING_VALIDATOR; } - if (null == epochClock) + if (null == _epochClock) { - epochClock = SystemEpochClock.INSTANCE; + _epochClock = SystemEpochClock.INSTANCE; } - if (null == nanoClock) + if (null == _nanoClock) { - nanoClock = SystemNanoClock.INSTANCE; + _nanoClock = SystemNanoClock.INSTANCE; } - if (null == clusterDir) + if (null == _clusterDir) { - clusterDir = new DirectoryInfo(clusterDirectoryName); + _clusterDir = new DirectoryInfo(_clusterDirectoryName); } - if (null == markFileDir) + if (null == _markFileDir) { String dir = Configuration.MarkFileDir(); - markFileDir = string.IsNullOrEmpty(dir) ? clusterDir : new DirectoryInfo(dir); + _markFileDir = string.IsNullOrEmpty(dir) ? _clusterDir : new DirectoryInfo(dir); } - clusterDir = new DirectoryInfo(Path.GetFullPath(clusterDir.FullName)); - clusterDirectoryName = Path.GetFullPath(clusterDir.FullName); - markFileDir = new DirectoryInfo(Path.GetFullPath(markFileDir.FullName)); + _clusterDir = new DirectoryInfo(Path.GetFullPath(_clusterDir.FullName)); + _clusterDirectoryName = Path.GetFullPath(_clusterDir.FullName); + _markFileDir = new DirectoryInfo(Path.GetFullPath(_markFileDir.FullName)); - IoUtil.EnsureDirectoryExists(clusterDir, "cluster"); - IoUtil.EnsureDirectoryExists(markFileDir, "mark file"); + IoUtil.EnsureDirectoryExists(_clusterDir, "cluster"); + IoUtil.EnsureDirectoryExists(_markFileDir, "mark file"); - if (null == markFile) + if (null == _markFile) { - int filePageSize = null != aeron - ? aeron.Ctx.FilePageSize() - : DriverFilePageSize(new DirectoryInfo(aeronDirectoryName), epochClock, - new Aeron.Aeron.Context().DriverTimeoutMs()); - markFile = new ClusterMarkFile( - new FileInfo(Path.Combine(markFileDir.FullName, MarkFilenameForService(serviceId))), + int filePageSize = + null != _aeron + ? _aeron.Ctx.FilePageSize() + : DriverFilePageSize( + new DirectoryInfo(_aeronDirectoryName), + _epochClock, + new Aeron.Aeron.Context().DriverTimeoutMs() + ); + _markFile = new ClusterMarkFile( + new FileInfo(Path.Combine(_markFileDir.FullName, MarkFilenameForService(_serviceId))), ClusterComponentType.CONTAINER, - errorBufferLength, - epochClock, + _errorBufferLength, + _epochClock, LIVENESS_TIMEOUT_MS, - filePageSize); + filePageSize + ); } MarkFile.EnsureMarkFileLink( - clusterDir, - new FileInfo(Path.Combine(markFileDir.FullName, - MarkFilenameForService(serviceId))), - LinkFilenameForService(serviceId)); + _clusterDir, + new FileInfo(Path.Combine(_markFileDir.FullName, MarkFilenameForService(_serviceId))), + LinkFilenameForService(_serviceId) + ); - if (null == errorLog) + if (null == _errorLog) { - errorLog = new DistinctErrorLog(markFile.ErrorBuffer, epochClock); // US_ASCII + _errorLog = new DistinctErrorLog(_markFile.ErrorBuffer, _epochClock); // US_ASCII } - errorHandler = SetupErrorHandler(errorHandler, errorLog); + _errorHandler = SetupErrorHandler(_errorHandler, _errorLog); - if (null == delegatingErrorHandler) + if (null == _delegatingErrorHandler) { - delegatingErrorHandler = NewDelegatingErrorHandler(); - if (null != delegatingErrorHandler) + _delegatingErrorHandler = NewDelegatingErrorHandler(); + if (null != _delegatingErrorHandler) { - delegatingErrorHandler.Next(errorHandler); - errorHandler = delegatingErrorHandler; + _delegatingErrorHandler.Next(_errorHandler); + _errorHandler = _delegatingErrorHandler; } } else { - delegatingErrorHandler.Next(errorHandler); - errorHandler = delegatingErrorHandler; + _delegatingErrorHandler.Next(_errorHandler); + _errorHandler = _delegatingErrorHandler; } - if (string.IsNullOrEmpty(serviceName)) + if (string.IsNullOrEmpty(_serviceName)) { - serviceName = "clustered-service-" + clusterId + "-" + serviceId; + _serviceName = "clustered-service-" + _clusterId + "-" + _serviceId; } - if (null == aeron) + if (null == _aeron) { - aeron = Connect( + _aeron = Connect( new Aeron.Aeron.Context() - .AeronDirectoryName(aeronDirectoryName) - .ErrorHandler(errorHandler) + .AeronDirectoryName(_aeronDirectoryName) + .ErrorHandler(_errorHandler) .SubscriberErrorHandler(RethrowingErrorHandler.INSTANCE) .AwaitingIdleStrategy(YieldingIdleStrategy.INSTANCE) - .EpochClock(epochClock) - .ClientName(serviceName)); + .EpochClock(_epochClock) + .ClientName(_serviceName) + ); - ownsAeronClient = true; + _ownsAeronClient = true; } - if (aeron.Ctx.SubscriberErrorHandler() != RethrowingErrorHandler.INSTANCE) + if (_aeron.Ctx.SubscriberErrorHandler() != RethrowingErrorHandler.INSTANCE) { throw new ClusterException("Aeron client must use a RethrowingErrorHandler"); } ExpandableArrayBuffer tempBuffer = new ExpandableArrayBuffer(); - if (null == errorCounter) + if (null == _errorCounter) { - errorCounter = ClusterCounters.AllocateServiceErrorCounter(aeron, tempBuffer, clusterId, serviceId); + _errorCounter = ClusterCounters.AllocateServiceErrorCounter( + _aeron, + tempBuffer, + _clusterId, + _serviceId + ); } - if (null == countedErrorHandler) + if (null == _countedErrorHandler) { - countedErrorHandler = new CountedErrorHandler(errorHandler, errorCounter); - if (ownsAeronClient) + _countedErrorHandler = new CountedErrorHandler(_errorHandler, _errorCounter); + if (_ownsAeronClient) { - aeron.Ctx.ErrorHandler(countedErrorHandler); + _aeron.Ctx.ErrorHandler(_countedErrorHandler); } } - if (null == dutyCycleTracker) + if (null == _dutyCycleTracker) { - dutyCycleTracker = new DutyCycleStallTracker( + _dutyCycleTracker = new DutyCycleStallTracker( ClusterCounters.AllocateServiceCounter( - aeron, + _aeron, tempBuffer, "Cluster container max cycle time in ns", AeronCounters.CLUSTER_CLUSTERED_SERVICE_MAX_CYCLE_TIME_TYPE_ID, - clusterId, - serviceId), + _clusterId, + _serviceId + ), ClusterCounters.AllocateServiceCounter( - aeron, + _aeron, tempBuffer, - "Cluster container work cycle time exceeded count: threshold=" + cycleThresholdNs + "ns", + "Cluster container work cycle time exceeded count: threshold=" + _cycleThresholdNs + "ns", AeronCounters.CLUSTER_CLUSTERED_SERVICE_CYCLE_TIME_THRESHOLD_EXCEEDED_TYPE_ID, - clusterId, - serviceId), - cycleThresholdNs); + _clusterId, + _serviceId + ), + _cycleThresholdNs + ); } - if (null == snapshotDurationTracker) + if (null == _snapshotDurationTracker) { - snapshotDurationTracker = new SnapshotDurationTracker( + _snapshotDurationTracker = new SnapshotDurationTracker( ClusterCounters.AllocateServiceCounter( - aeron, + _aeron, tempBuffer, "Clustered service max snapshot duration in ns", AeronCounters.CLUSTERED_SERVICE_MAX_SNAPSHOT_DURATION_TYPE_ID, - clusterId, - serviceId), - ClusterCounters.AllocateServiceCounter(aeron, + _clusterId, + _serviceId + ), + ClusterCounters.AllocateServiceCounter( + _aeron, tempBuffer, - "Clustered service max snapshot duration exceeded count: threshold=" + - snapshotDurationThresholdNs, + "Clustered service max snapshot duration exceeded count: threshold=" + + _snapshotDurationThresholdNs, AeronCounters.CLUSTERED_SERVICE_SNAPSHOT_DURATION_THRESHOLD_EXCEEDED_TYPE_ID, - clusterId, - serviceId), - snapshotDurationThresholdNs); + _clusterId, + _serviceId + ), + _snapshotDurationThresholdNs + ); } - if (null == archiveContext) + if (null == _archiveContext) { - archiveContext = new AeronArchive.Context() + _archiveContext = new AeronArchive.Context() .ControlRequestChannel(AeronArchive.Configuration.LocalControlChannel()) .ControlResponseChannel(AeronArchive.Configuration.LocalControlChannel()) .ControlRequestStreamId(AeronArchive.Configuration.LocalControlStreamId()) .ControlResponseStreamId( - clusterId * 100 + 100 + AeronArchive.Configuration.ControlResponseStreamId() + - (serviceId + 1)); - ; + _clusterId * 100 + + 100 + + AeronArchive.Configuration.ControlResponseStreamId() + + (_serviceId + 1) + ); } - if (!archiveContext.ControlRequestChannel().StartsWith(IPC_CHANNEL)) + if (!_archiveContext.ControlRequestChannel().StartsWith(IPC_CHANNEL)) { throw new ClusterException("local archive control must be IPC"); } - if (!archiveContext.ControlResponseChannel().StartsWith(IPC_CHANNEL)) + if (!_archiveContext.ControlResponseChannel().StartsWith(IPC_CHANNEL)) { throw new ClusterException("local archive control must be IPC"); } - archiveContext - .AeronClient(aeron) + _archiveContext + .AeronClient(_aeron) .OwnsAeronClient(false) .Lock(NoOpLock.Instance) - .ErrorHandler(countedErrorHandler) - .ControlRequestChannel(AddAliasIfAbsent( - archiveContext.ControlRequestChannel(), - "sc-" + serviceId + "-archive-ctrl-req-cluster-" + clusterId)) - .ControlResponseChannel(AddAliasIfAbsent( - archiveContext.ControlResponseChannel(), - "sc-" + serviceId + "-archive-ctrl-resp-cluster-" + clusterId)) - .ClientName(serviceName); - - if (null == terminationHook) + .ErrorHandler(_countedErrorHandler) + .ControlRequestChannel( + AddAliasIfAbsent( + _archiveContext.ControlRequestChannel(), + "sc-" + _serviceId + "-archive-ctrl-req-cluster-" + _clusterId + ) + ) + .ControlResponseChannel( + AddAliasIfAbsent( + _archiveContext.ControlResponseChannel(), + "sc-" + _serviceId + "-archive-ctrl-resp-cluster-" + _clusterId + ) + ) + .ClientName(_serviceName); + + if (null == _terminationHook) { - terminationHook = () => { }; + _terminationHook = () => { }; } - if (null == clusteredService) + if (null == _clusteredService) { - clusteredService = NewClusteredService(); + _clusteredService = NewClusteredService(); } - abortLatch = new CountdownEvent(aeron.Ctx.UseConductorAgentInvoker() ? 1 : 0); + _abortLatch = new CountdownEvent(_aeron.Ctx.UseConductorAgentInvoker() ? 1 : 0); ConcludeMarkFile(); if (ShouldPrintConfigurationOnStart()) @@ -897,45 +989,45 @@ public void Conclude() /// /// User assigned application version which appended to the log as the appVersion in new leadership events. /// - /// This can be validated using to ensure only application nodes of the same - /// major version communicate with each other. - /// + /// This can be validated using to ensure only application nodes of the + /// same major version communicate with each other. + /// /// /// /// for user application. /// this for a fluent API. public Context AppVersion(int appVersion) { - this.appVersion = appVersion; + this._appVersion = appVersion; return this; } /// /// User assigned application version which appended to the log as the appVersion in new leadership events. /// - /// This can be validated using to ensure only application nodes of the same - /// major version communicate with each other. - /// + /// This can be validated using to ensure only application nodes of the + /// same major version communicate with each other. + /// /// /// /// appVersion for user application. public int AppVersion() { - return appVersion; + return _appVersion; } /// /// User assigned application version validator implementation used to check version compatibility. /// /// The default validator uses semantics. - /// + /// /// /// /// for user application. /// this for fluent API. public Context AppVersionValidator(AppVersionValidator appVersionValidator) { - this.appVersionValidator = appVersionValidator; + this._appVersionValidator = appVersionValidator; return this; } @@ -943,13 +1035,13 @@ public Context AppVersionValidator(AppVersionValidator appVersionValidator) /// User assigned application version validator implementation used to check version compatibility. /// /// The default is to use major version for checking compatibility. - /// + /// /// /// /// AppVersionValidator in use. public AppVersionValidator AppVersionValidator() { - return appVersionValidator; + return _appVersionValidator; } /// @@ -960,7 +1052,7 @@ public AppVersionValidator AppVersionValidator() /// public Context ClusterId(int clusterId) { - this.clusterId = clusterId; + this._clusterId = clusterId; return this; } @@ -971,7 +1063,7 @@ public Context ClusterId(int clusterId) /// public int ClusterId() { - return clusterId; + return _clusterId; } /// @@ -982,7 +1074,7 @@ public int ClusterId() /// public Context ServiceId(int serviceId) { - this.serviceId = serviceId; + this._serviceId = serviceId; return this; } @@ -993,32 +1085,34 @@ public Context ServiceId(int serviceId) /// public int ServiceId() { - return serviceId; + return _serviceId; } /// - /// Set the name for a clustered service to be the for the . + /// Set the name for a clustered service to be the for the + /// . /// - /// for a clustered service to be the role for the . + /// for a clustered service to be the role for the . + /// /// this for a fluent API. /// public Context ServiceName(string serviceName) { - this.serviceName = serviceName; + this._serviceName = serviceName; return this; } /// - /// Get the name for a clustered service to be the for the . + /// Get the name for a clustered service to be the for the + /// . /// /// the name for a clustered service to be the role of the . /// public string ServiceName() { - return serviceName; + return _serviceName; } - /// /// Set the channel parameter for the cluster log and snapshot replay channel. /// @@ -1027,7 +1121,7 @@ public string ServiceName() /// public Context ReplayChannel(string channel) { - replayChannel = channel; + _replayChannel = channel; return this; } @@ -1038,7 +1132,7 @@ public Context ReplayChannel(string channel) /// public string ReplayChannel() { - return replayChannel; + return _replayChannel; } /// @@ -1049,7 +1143,7 @@ public string ReplayChannel() /// public Context ReplayStreamId(int streamId) { - replayStreamId = streamId; + _replayStreamId = streamId; return this; } @@ -1060,7 +1154,7 @@ public Context ReplayStreamId(int streamId) /// public int ReplayStreamId() { - return replayStreamId; + return _replayStreamId; } /// @@ -1071,7 +1165,7 @@ public int ReplayStreamId() /// public Context ControlChannel(string channel) { - controlChannel = channel; + _controlChannel = channel; return this; } @@ -1082,7 +1176,7 @@ public Context ControlChannel(string channel) /// public string ControlChannel() { - return controlChannel; + return _controlChannel; } /// @@ -1093,7 +1187,7 @@ public string ControlChannel() /// public Context ServiceStreamId(int streamId) { - serviceStreamId = streamId; + _serviceStreamId = streamId; return this; } @@ -1104,7 +1198,7 @@ public Context ServiceStreamId(int streamId) /// public int ServiceStreamId() { - return serviceStreamId; + return _serviceStreamId; } /// @@ -1115,7 +1209,7 @@ public int ServiceStreamId() /// public Context ConsensusModuleStreamId(int streamId) { - consensusModuleStreamId = streamId; + _consensusModuleStreamId = streamId; return this; } @@ -1126,7 +1220,7 @@ public Context ConsensusModuleStreamId(int streamId) /// public int ConsensusModuleStreamId() { - return consensusModuleStreamId; + return _consensusModuleStreamId; } /// @@ -1137,7 +1231,7 @@ public int ConsensusModuleStreamId() /// public Context SnapshotChannel(string channel) { - snapshotChannel = channel; + _snapshotChannel = channel; return this; } @@ -1148,7 +1242,7 @@ public Context SnapshotChannel(string channel) /// public string SnapshotChannel() { - return snapshotChannel; + return _snapshotChannel; } /// @@ -1159,7 +1253,7 @@ public string SnapshotChannel() /// public Context SnapshotStreamId(int streamId) { - snapshotStreamId = streamId; + _snapshotStreamId = streamId; return this; } @@ -1170,18 +1264,19 @@ public Context SnapshotStreamId(int streamId) /// public int SnapshotStreamId() { - return snapshotStreamId; + return _snapshotStreamId; } /// /// Set if this a service that responds to client requests. /// - /// true if this service responds to client requests, otherwise false. + /// true if this service responds to client requests, otherwise false. + /// /// this for a fluent API. /// public Context IsRespondingService(bool isRespondingService) { - this.isRespondingService = isRespondingService; + this._isRespondingService = isRespondingService; return this; } @@ -1193,7 +1288,7 @@ public Context IsRespondingService(bool isRespondingService) /// public Context LogFragmentLimit(int logFragmentLimit) { - this.logFragmentLimit = logFragmentLimit; + this._logFragmentLimit = logFragmentLimit; return this; } @@ -1204,7 +1299,7 @@ public Context LogFragmentLimit(int logFragmentLimit) /// public int LogFragmentLimit() { - return logFragmentLimit; + return _logFragmentLimit; } /// @@ -1214,7 +1309,7 @@ public int LogFragmentLimit() /// public bool IsRespondingService() { - return isRespondingService; + return _isRespondingService; } /// @@ -1223,7 +1318,7 @@ public bool IsRespondingService() /// thread factory used for creating threads. public IThreadFactory ThreadFactory() { - return threadFactory; + return _threadFactory; } /// @@ -1233,7 +1328,7 @@ public IThreadFactory ThreadFactory() /// this for a fluent API. public Context ThreadFactory(IThreadFactory threadFactory) { - this.threadFactory = threadFactory; + this._threadFactory = threadFactory; return this; } @@ -1244,7 +1339,7 @@ public Context ThreadFactory(IThreadFactory threadFactory) /// this for a fluent API. public Context IdleStrategySupplier(Func idleStrategySupplier) { - this.idleStrategySupplier = idleStrategySupplier; + this._idleStrategySupplier = idleStrategySupplier; return this; } @@ -1254,70 +1349,81 @@ public Context IdleStrategySupplier(Func idleStrategySupplier) /// a new based on configured supplier. public IIdleStrategy IdleStrategy() { - return idleStrategySupplier(); + return _idleStrategySupplier(); } /// - /// Set the to be used for tracking wall clock time when interacting with the container. + /// Set the to be used for tracking wall clock time when interacting with the + /// container. /// - /// to be used for tracking wall clock time when interacting with the container. + /// to be used for tracking wall clock time when + /// interacting with the container. /// this for a fluent API. public Context EpochClock(IEpochClock clock) { - this.epochClock = clock; + this._epochClock = clock; return this; } /// /// Get the to used for tracking wall clock time within the container. /// - /// the to used for tracking wall clock time within the container. + /// the to used for tracking wall clock time within the container. + /// public IEpochClock EpochClock() { - return epochClock; + return _epochClock; } /// - /// Get the to be used by the . + /// Get the to be used by the + /// . /// - /// the to be used by the . + /// the to be used by the + /// . public IErrorHandler ErrorHandler() { - return errorHandler; + return _errorHandler; } /// - /// Set the to be used by the . + /// Set the to be used by the + /// . /// - /// the error handler to be used by the . + /// the error handler to be used by the + /// . /// this for a fluent API public Context ErrorHandler(IErrorHandler errorHandler) { - this.errorHandler = errorHandler; + this._errorHandler = errorHandler; return this; } /// - /// Get the to be used by the which will + /// Get the to be used by the + /// which will /// delegate to as next in the chain. /// - /// the to be used by the . + /// the to be used by the + /// . /// public DelegatingErrorHandler DelegatingErrorHandler() { - return delegatingErrorHandler; + return _delegatingErrorHandler; } /// - /// Set the to be used by the which will + /// Set the to be used by the + /// which will /// delegate to as next in the chain. /// - /// the error handler to be used by the . + /// the error handler to be used by the + /// . /// this for a fluent API /// public Context DelegatingErrorHandler(DelegatingErrorHandler delegatingErrorHandler) { - this.delegatingErrorHandler = delegatingErrorHandler; + this._delegatingErrorHandler = delegatingErrorHandler; return this; } @@ -1327,18 +1433,18 @@ public Context DelegatingErrorHandler(DelegatingErrorHandler delegatingErrorHand /// the error counter that will record the number of errors the container has observed. public AtomicCounter ErrorCounter() { - return errorCounter; + return _errorCounter; } - /// /// Set the error counter that will record the number of errors the cluster node has observed. /// - /// the error counter that will record the number of errors the cluster node has observed. + /// the error counter that will record the number of errors the cluster node has + /// observed. /// this for a fluent API. public Context ErrorCounter(AtomicCounter errorCounter) { - this.errorCounter = errorCounter; + this._errorCounter = errorCounter; return this; } @@ -1349,17 +1455,18 @@ public Context ErrorCounter(AtomicCounter errorCounter) /// this for a fluent API. public Context CountedErrorHandler(CountedErrorHandler countedErrorHandler) { - this.countedErrorHandler = countedErrorHandler; + this._countedErrorHandler = countedErrorHandler; return this; } /// /// The that will increment by default. /// - /// that will increment by default. + /// that will increment by + /// default. public CountedErrorHandler CountedErrorHandler() { - return countedErrorHandler; + return _countedErrorHandler; } /// @@ -1369,7 +1476,7 @@ public CountedErrorHandler CountedErrorHandler() /// this for a fluent API. public Context AeronDirectoryName(string aeronDirectoryName) { - this.aeronDirectoryName = aeronDirectoryName; + this._aeronDirectoryName = aeronDirectoryName; return this; } @@ -1379,7 +1486,7 @@ public Context AeronDirectoryName(string aeronDirectoryName) /// The top level Aeron directory. public string AeronDirectoryName() { - return aeronDirectoryName; + return _aeronDirectoryName; } /// @@ -1388,42 +1495,46 @@ public string AeronDirectoryName() /// client for the container public Aeron.Aeron AeronClient() { - return aeron; + return _aeron; } /// /// Provide an client for the container /// /// If not provided then one will be created. - /// + /// /// /// /// client for the container /// this for a fluent API. public Context AeronClient(Aeron.Aeron aeron) { - this.aeron = aeron; + this._aeron = aeron; return this; } /// - /// Does this context own the client and this takes responsibility for closing it? + /// Does this context own the client and this takes responsibility for + /// closing it? /// - /// does this context own the client. + /// does this context own the client. + /// /// this for a fluent API. public Context OwnsAeronClient(bool ownsAeronClient) { - this.ownsAeronClient = ownsAeronClient; + this._ownsAeronClient = ownsAeronClient; return this; } /// - /// Does this context own the client and this takes responsibility for closing it? + /// Does this context own the client and this takes responsibility for + /// closing it? /// - /// does this context own the client and this takes responsibility for closing it? + /// does this context own the client and this takes responsibility + /// for closing it? public bool OwnsAeronClient() { - return ownsAeronClient; + return _ownsAeronClient; } /// @@ -1432,7 +1543,7 @@ public bool OwnsAeronClient() /// service this container holds. public IClusteredService ClusteredService() { - return clusteredService; + return _clusteredService; } /// @@ -1442,7 +1553,7 @@ public IClusteredService ClusteredService() /// this for fluent API. public Context ClusteredService(IClusteredService clusteredService) { - this.clusteredService = clusteredService; + this._clusteredService = clusteredService; return this; } @@ -1453,7 +1564,7 @@ public Context ClusteredService(IClusteredService clusteredService) /// this for a fluent API. public Context ArchiveContext(AeronArchive.Context archiveContext) { - this.archiveContext = archiveContext; + this._archiveContext = archiveContext; return this; } @@ -1463,7 +1574,7 @@ public Context ArchiveContext(AeronArchive.Context archiveContext) /// the context that should be used for communicating with the local Archive. public AeronArchive.Context ArchiveContext() { - return archiveContext; + return _archiveContext; } /// @@ -1474,7 +1585,7 @@ public AeronArchive.Context ArchiveContext() /// public Context ClusterDirectoryName(string clusterDirectoryName) { - this.clusterDirectoryName = clusterDirectoryName; + this._clusterDirectoryName = clusterDirectoryName; return this; } @@ -1485,7 +1596,7 @@ public Context ClusterDirectoryName(string clusterDirectoryName) /// public string ClusterDirectoryName() { - return clusterDirectoryName; + return _clusterDirectoryName; } /// @@ -1496,7 +1607,7 @@ public string ClusterDirectoryName() /// public Context ClusterDir(DirectoryInfo clusterDir) { - this.clusterDir = clusterDir; + this._clusterDir = clusterDir; return this; } @@ -1507,13 +1618,13 @@ public Context ClusterDir(DirectoryInfo clusterDir) /// public DirectoryInfo ClusterDir() { - return clusterDir; + return _clusterDir; } /// - /// Get the directory in which the ClusteredServiceContainer will store mark file (i.e. {@code - /// cluster-mark-service-0.dat}). It defaults to if it is not set explicitly via the {@link - /// ClusteredServiceContainer.Configuration#MARK_FILE_DIR_PROP_NAME}. + /// Get the directory in which the ClusteredServiceContainer will store mark file (i.e. + /// {@code cluster-mark-service-0.dat}). It defaults to if it is not set + /// explicitly via the {@link ClusteredServiceContainer.Configuration#MARK_FILE_DIR_PROP_NAME}. /// /// the directory in which the ClusteredServiceContainer will store mark file (i.e. /// cluster-mark-service-0.dat). @@ -1521,19 +1632,19 @@ public DirectoryInfo ClusterDir() /// public DirectoryInfo MarkFileDir() { - return markFileDir; + return _markFileDir; } /// - /// Set the directory in which the ClusteredServiceContainer will store mark file (i.e. {@code - /// cluster-mark-service-0.dat}). + /// Set the directory in which the ClusteredServiceContainer will store mark file (i.e. + /// {@code cluster-mark-service-0.dat}). /// - /// the directory in which the ClusteredServiceContainer will store mark file (i.e. {@code - /// cluster-mark-service-0.dat}). + /// the directory in which the ClusteredServiceContainer will store mark file + /// (i.e. {@code cluster-mark-service-0.dat}). /// this for a fluent API. public ClusteredServiceContainer.Context MarkFileDir(DirectoryInfo markFileDir) { - this.markFileDir = markFileDir; + this._markFileDir = markFileDir; return this; } @@ -1544,7 +1655,7 @@ public ClusteredServiceContainer.Context MarkFileDir(DirectoryInfo markFileDir) /// this for a fluent API. public Context TerminationHook(Action terminationHook) { - this.terminationHook = terminationHook; + this._terminationHook = terminationHook; return this; } @@ -1554,7 +1665,7 @@ public Context TerminationHook(Action terminationHook) /// the that can be used to terminate a service container. public Action TerminationHook() { - return terminationHook; + return _terminationHook; } /// @@ -1564,7 +1675,7 @@ public Action TerminationHook() /// this for a fluent API. public Context ClusterMarkFile(ClusterMarkFile cncFile) { - this.markFile = cncFile; + this._markFile = cncFile; return this; } @@ -1574,7 +1685,7 @@ public Context ClusterMarkFile(ClusterMarkFile cncFile) /// CnC file in use. public ClusterMarkFile ClusterMarkFile() { - return markFile; + return _markFile; } /// @@ -1584,7 +1695,7 @@ public ClusterMarkFile ClusterMarkFile() /// this for a fluent API. public Context ErrorBufferLength(int errorBufferLength) { - this.errorBufferLength = errorBufferLength; + this._errorBufferLength = errorBufferLength; return this; } @@ -1594,7 +1705,7 @@ public Context ErrorBufferLength(int errorBufferLength) /// error buffer length in bytes. public int ErrorBufferLength() { - return errorBufferLength; + return _errorBufferLength; } /// @@ -1604,7 +1715,7 @@ public int ErrorBufferLength() /// this for a fluent API. public Context ErrorLog(DistinctErrorLog errorLog) { - this.errorLog = errorLog; + this._errorLog = errorLog; return this; } @@ -1614,16 +1725,17 @@ public Context ErrorLog(DistinctErrorLog errorLog) /// in use. public DistinctErrorLog ErrorLog() { - return errorLog; + return _errorLog; } /// /// The as a source of time in nanoseconds for measuring duration. /// - /// the as a source of time in nanoseconds for measuring duration. + /// the as a source of time in nanoseconds for measuring duration. + /// public INanoClock NanoClock() { - return nanoClock; + return _nanoClock; } /// @@ -1633,13 +1745,12 @@ public INanoClock NanoClock() /// this for a fluent API. public Context NanoClock(INanoClock clock) { - nanoClock = clock; + _nanoClock = clock; return this; } /// - /// Set a threshold for the container work cycle time which when exceed it will increment the - /// counter. + /// Set a threshold for the container work cycle time which when exceed it will increment the counter. /// /// value in nanoseconds /// this for fluent API. @@ -1647,18 +1758,17 @@ public Context NanoClock(INanoClock clock) /// public Context CycleThresholdNs(long thresholdNs) { - this.cycleThresholdNs = thresholdNs; + this._cycleThresholdNs = thresholdNs; return this; } /// - /// Threshold for the container work cycle time which when exceed it will increment the - /// counter. + /// Threshold for the container work cycle time which when exceed it will increment the counter. /// /// threshold to track for the container work cycle time. public long CycleThresholdNs() { - return cycleThresholdNs; + return _cycleThresholdNs; } /// @@ -1668,7 +1778,7 @@ public long CycleThresholdNs() /// this for fluent API. public Context DutyCycleTracker(DutyCycleTracker dutyCycleTracker) { - this.dutyCycleTracker = dutyCycleTracker; + this._dutyCycleTracker = dutyCycleTracker; return this; } @@ -1678,7 +1788,7 @@ public Context DutyCycleTracker(DutyCycleTracker dutyCycleTracker) /// the duty cycle tracker. public DutyCycleTracker DutyCycleTracker() { - return dutyCycleTracker; + return _dutyCycleTracker; } /// @@ -1691,7 +1801,7 @@ public DutyCycleTracker DutyCycleTracker() /// since 1.44.0 public Context SnapshotDurationThresholdNs(long thresholdNs) { - this.snapshotDurationThresholdNs = thresholdNs; + this._snapshotDurationThresholdNs = thresholdNs; return this; } @@ -1702,7 +1812,7 @@ public Context SnapshotDurationThresholdNs(long thresholdNs) /// since 1.44.0 public long SnapshotDurationThresholdNs() { - return snapshotDurationThresholdNs; + return _snapshotDurationThresholdNs; } /// @@ -1713,7 +1823,7 @@ public long SnapshotDurationThresholdNs() /// since 1.44.0 public Context SnapshotDurationTracker(SnapshotDurationTracker snapshotDurationTracker) { - this.snapshotDurationTracker = snapshotDurationTracker; + this._snapshotDurationTracker = snapshotDurationTracker; return this; } @@ -1724,7 +1834,7 @@ public Context SnapshotDurationTracker(SnapshotDurationTracker snapshotDurationT /// @since 1.44.0 public SnapshotDurationTracker SnapshotDurationTracker() { - return snapshotDurationTracker; + return _snapshotDurationTracker; } /// @@ -1732,21 +1842,22 @@ public SnapshotDurationTracker SnapshotDurationTracker() /// public void DeleteDirectory() { - if (null != clusterDir) + if (null != _clusterDir) { - IoUtil.Delete(clusterDir, false); + IoUtil.Delete(_clusterDir, false); } } /// /// Indicates if this node should take standby snapshots. /// - /// true if this should take standby snapshots, false otherwise. + /// true if this should take standby snapshots, false otherwise. + /// /// /// public bool StandbySnapshotEnabled() { - return standbySnapshotEnabled; + return _standbySnapshotEnabled; } /// @@ -1758,56 +1869,56 @@ public bool StandbySnapshotEnabled() /// public ClusteredServiceContainer.Context StandbySnapshotEnabled(bool standbySnapshotEnabled) { - this.standbySnapshotEnabled = standbySnapshotEnabled; + this._standbySnapshotEnabled = standbySnapshotEnabled; return this; } /// /// Close the context and free applicable resources. /// - /// If is true then the client will be closed. + /// If is true then the client will be + /// closed. /// /// public void Dispose() { var errorHandler = CountedErrorHandler(); - if (ownsAeronClient) + if (_ownsAeronClient) { - CloseHelper.Dispose(errorHandler, aeron); + CloseHelper.Dispose(errorHandler, _aeron); } - CloseHelper.Dispose(markFile); + CloseHelper.Dispose(_markFile); } internal CountdownEvent AbortLatch() { - return abortLatch; + return _abortLatch; } private void ConcludeMarkFile() { - CheckHeaderLength( - aeron.Ctx.AeronDirectoryName(), ControlChannel(), null, serviceName, null); + CheckHeaderLength(_aeron.Ctx.AeronDirectoryName(), ControlChannel(), null, _serviceName, null); - var encoder = markFile.Encoder(); + var encoder = _markFile.Encoder(); encoder - .ArchiveStreamId(archiveContext.ControlRequestStreamId()) - .ServiceStreamId(serviceStreamId) - .ConsensusModuleStreamId(consensusModuleStreamId) + .ArchiveStreamId(_archiveContext.ControlRequestStreamId()) + .ServiceStreamId(_serviceStreamId) + .ConsensusModuleStreamId(_consensusModuleStreamId) .IngressStreamId(NULL_VALUE) .MemberId(NULL_VALUE) - .ServiceId(serviceId) - .ClusterId(clusterId) - .AeronDirectory(aeron.Ctx.AeronDirectoryName()) - .ControlChannel(controlChannel) + .ServiceId(_serviceId) + .ClusterId(_clusterId) + .AeronDirectory(_aeron.Ctx.AeronDirectoryName()) + .ControlChannel(_controlChannel) .IngressChannel(string.Empty) - .ServiceName(serviceName) + .ServiceName(_serviceName) .Authenticator(string.Empty); - markFile.UpdateActivityTimestamp(epochClock.Time()); - markFile.SignalReady(); - markFile.Force(); + _markFile.UpdateActivityTimestamp(_epochClock.Time()); + _markFile.SignalReady(); + _markFile.Force(); } /// @@ -1815,47 +1926,48 @@ private void ConcludeMarkFile() /// public override string ToString() { - return "ClusteredServiceContainer.Context" + - "\n{" + - "\n isConcluded=" + Concluded + - "\n ownsAeronClient=" + ownsAeronClient + - "\n aeronDirectoryName='" + aeronDirectoryName + '\'' + - "\n aeron=" + aeron + - "\n archiveContext=" + archiveContext + - "\n clusterDirectoryName='" + clusterDirectoryName + '\'' + - "\n clusterDir=" + clusterDir + - "\n appVersion=" + appVersion + - "\n clusterId=" + clusterId + - "\n serviceId=" + serviceId + - "\n serviceName='" + serviceName + '\'' + - "\n replayChannel='" + replayChannel + '\'' + - "\n replayStreamId=" + replayStreamId + - "\n controlChannel='" + controlChannel + '\'' + - "\n consensusModuleStreamId=" + consensusModuleStreamId + - "\n serviceStreamId=" + serviceStreamId + - "\n snapshotChannel='" + snapshotChannel + '\'' + - "\n snapshotStreamId=" + snapshotStreamId + - "\n errorBufferLength=" + errorBufferLength + - "\n isRespondingService=" + isRespondingService + - "\n logFragmentLimit=" + logFragmentLimit + - "\n abortLatch=" + abortLatch + - "\n threadFactory=" + threadFactory + - "\n idleStrategySupplier=" + idleStrategySupplier + - "\n epochClock=" + epochClock + - "\n errorLog=" + errorLog + - "\n errorHandler=" + errorHandler + - "\n delegatingErrorHandler=" + delegatingErrorHandler + - "\n errorCounter=" + errorCounter + - "\n countedErrorHandler=" + countedErrorHandler + - "\n clusteredService=" + clusteredService + - "\n terminationHook=" + terminationHook + - "\n cycleThresholdNs=" + cycleThresholdNs + - "\n dutyCycleTracker=" + dutyCycleTracker + - "\n snapshotDurationThresholdNs=" + snapshotDurationThresholdNs + - "\n snapshotDurationTracker=" + snapshotDurationTracker + - "\n markFile=" + markFile + - "\n}"; + return + "ClusteredServiceContainer.Context" + + "\n{" + + "\n isConcluded=" + Concluded + + "\n ownsAeronClient=" + _ownsAeronClient + + "\n aeronDirectoryName='" + _aeronDirectoryName + '\'' + + "\n aeron=" + _aeron + + "\n archiveContext=" + _archiveContext + + "\n clusterDirectoryName='" + _clusterDirectoryName + '\'' + + "\n clusterDir=" + _clusterDir + + "\n appVersion=" + _appVersion + + "\n clusterId=" + _clusterId + + "\n serviceId=" + _serviceId + + "\n serviceName='" + _serviceName + '\'' + + "\n replayChannel='" + _replayChannel + '\'' + + "\n replayStreamId=" + _replayStreamId + + "\n controlChannel='" + _controlChannel + '\'' + + "\n consensusModuleStreamId=" + _consensusModuleStreamId + + "\n serviceStreamId=" + _serviceStreamId + + "\n snapshotChannel='" + _snapshotChannel + '\'' + + "\n snapshotStreamId=" + _snapshotStreamId + + "\n errorBufferLength=" + _errorBufferLength + + "\n isRespondingService=" + _isRespondingService + + "\n logFragmentLimit=" + _logFragmentLimit + + "\n abortLatch=" + _abortLatch + + "\n threadFactory=" + _threadFactory + + "\n idleStrategySupplier=" + _idleStrategySupplier + + "\n epochClock=" + _epochClock + + "\n errorLog=" + _errorLog + + "\n errorHandler=" + _errorHandler + + "\n delegatingErrorHandler=" + _delegatingErrorHandler + + "\n errorCounter=" + _errorCounter + + "\n countedErrorHandler=" + _countedErrorHandler + + "\n clusteredService=" + _clusteredService + + "\n terminationHook=" + _terminationHook + + "\n cycleThresholdNs=" + _cycleThresholdNs + + "\n dutyCycleTracker=" + _dutyCycleTracker + + "\n snapshotDurationThresholdNs=" + _snapshotDurationThresholdNs + + "\n snapshotDurationTracker=" + _snapshotDurationTracker + + "\n markFile=" + _markFile + + "\n}"; } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ConsensusModuleProxy.cs b/src/Adaptive.Cluster/Service/ConsensusModuleProxy.cs index 7ea4edb6..df1acb35 100644 --- a/src/Adaptive.Cluster/Service/ConsensusModuleProxy.cs +++ b/src/Adaptive.Cluster/Service/ConsensusModuleProxy.cs @@ -1,6 +1,21 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using Adaptive.Aeron; -using Adaptive.Aeron.Exceptions; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Cluster.Client; @@ -26,7 +41,8 @@ public class ConsensusModuleProxy : IDisposable private readonly Publication _publication; /// - /// Construct a proxy to the consensus module that will send messages over a provided . + /// Construct a proxy to the consensus module that will send messages over a provided + /// . /// /// for sending messages to the consensus module. public ConsensusModuleProxy(Publication publication) @@ -87,10 +103,17 @@ internal long Offer( int headerLength, IDirectBuffer messageBuffer, int messageOffset, - int messageLength) + int messageLength + ) { long position = _publication.Offer( - headerBuffer, headerOffset, headerLength, messageBuffer, messageOffset, messageLength); + headerBuffer, + headerOffset, + headerLength, + messageBuffer, + messageOffset, + messageLength + ); if (position < 0) { CheckResult(position, _publication); @@ -167,7 +190,6 @@ internal bool CloseSession(long clusterSessionId) CheckResult(position, _publication); return false; - } /// @@ -214,4 +236,4 @@ private static void CheckResult(long position, Publication publication) } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ContainerClientSession.cs b/src/Adaptive.Cluster/Service/ContainerClientSession.cs index 103f7edc..030867c0 100644 --- a/src/Adaptive.Cluster/Service/ContainerClientSession.cs +++ b/src/Adaptive.Cluster/Service/ContainerClientSession.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; using Adaptive.Aeron.Exceptions; using Adaptive.Aeron.LogBuffer; @@ -8,89 +24,94 @@ namespace Adaptive.Cluster.Service { public class ContainerClientSession : IClientSession { - private readonly long id; - private readonly int responseStreamId; - private readonly string responseChannel; - private readonly byte[] encodedPrincipal; - - private readonly ClusteredServiceAgent clusteredServiceAgent; - private Publication responsePublication; - private bool isClosing; - - internal ContainerClientSession(long sessionId, int responseStreamId, string responseChannel, - byte[] encodedPrincipal, ClusteredServiceAgent clusteredServiceAgent) + private readonly long _id; + private readonly int _responseStreamId; + private readonly string _responseChannel; + private readonly byte[] _encodedPrincipal; + + private readonly ClusteredServiceAgent _clusteredServiceAgent; + private Publication _responsePublication; + private bool _isClosing; + + internal ContainerClientSession( + long sessionId, + int responseStreamId, + string responseChannel, + byte[] encodedPrincipal, + ClusteredServiceAgent clusteredServiceAgent + ) { - this.id = sessionId; - this.responseStreamId = responseStreamId; - this.responseChannel = responseChannel; - this.encodedPrincipal = encodedPrincipal; - this.clusteredServiceAgent = clusteredServiceAgent; + this._id = sessionId; + this._responseStreamId = responseStreamId; + this._responseChannel = responseChannel; + this._encodedPrincipal = encodedPrincipal; + this._clusteredServiceAgent = clusteredServiceAgent; } + public long Id => _id; - public long Id => id; - - public int ResponseStreamId => responseStreamId; + public int ResponseStreamId => _responseStreamId; - public string ResponseChannel => responseChannel; + public string ResponseChannel => _responseChannel; - public byte[] EncodedPrincipal => encodedPrincipal; + public byte[] EncodedPrincipal => _encodedPrincipal; public void Close() { - if (null != clusteredServiceAgent.GetClientSession(id)) + if (null != _clusteredServiceAgent.GetClientSession(_id)) { - clusteredServiceAgent.CloseClientSession(id); + _clusteredServiceAgent.CloseClientSession(_id); } } - public bool IsClosing => isClosing; + public bool IsClosing => _isClosing; public long Offer(IDirectBuffer buffer, int offset, int length) { - return clusteredServiceAgent.Offer(id, responsePublication, buffer, offset, length); + return _clusteredServiceAgent.Offer(_id, _responsePublication, buffer, offset, length); } public long Offer(DirectBufferVector[] vectors) { - return clusteredServiceAgent.Offer(id, responsePublication, vectors); + return _clusteredServiceAgent.Offer(_id, _responsePublication, vectors); } public long TryClaim(int length, BufferClaim bufferClaim) { - return clusteredServiceAgent.TryClaim(id, responsePublication, length, bufferClaim); + return _clusteredServiceAgent.TryClaim(_id, _responsePublication, length, bufferClaim); } internal void Connect(Aeron.Aeron aeron) { try { - if (null == responsePublication) + if (null == _responsePublication) { - responsePublication = aeron.AddPublication(responseChannel, responseStreamId); + _responsePublication = aeron.AddPublication(_responseChannel, _responseStreamId); } } catch (RegistrationException ex) { - clusteredServiceAgent.HandleError(new ClusterException( - "failed to connect session response publication: " + ex.Message, Category.WARN)); + _clusteredServiceAgent.HandleError( + new ClusterException("failed to connect session response publication: " + ex.Message, Category.WARN) + ); } } internal void MarkClosing() { - this.isClosing = true; + this._isClosing = true; } internal void ResetClosing() { - isClosing = false; + _isClosing = false; } internal void Disconnect(ErrorHandler errorHandler) { - CloseHelper.Dispose(errorHandler, responsePublication); - responsePublication = null; + CloseHelper.Dispose(errorHandler, _responsePublication); + _responsePublication = null; } /// @@ -98,14 +119,15 @@ internal void Disconnect(ErrorHandler errorHandler) /// public override string ToString() { - return "ClientSession{" + - "id=" + id + - ", responseStreamId=" + responseStreamId + - ", responseChannel='" + responseChannel + '\'' + - ", encodedPrincipal=" + encodedPrincipal + - ", responsePublication=" + responsePublication + - ", isClosing=" + isClosing + - '}'; + return + "ClientSession{" + + "id=" + _id + + ", responseStreamId=" + _responseStreamId + + ", responseChannel='" + _responseChannel + '\'' + + ", encodedPrincipal=" + _encodedPrincipal + + ", responsePublication=" + _responsePublication + + ", isClosing=" + _isClosing + + '}'; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ICluster.cs b/src/Adaptive.Cluster/Service/ICluster.cs index f0938437..2f459c59 100644 --- a/src/Adaptive.Cluster/Service/ICluster.cs +++ b/src/Adaptive.Cluster/Service/ICluster.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using System.Collections.Generic; using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; @@ -14,13 +30,15 @@ namespace Adaptive.Cluster.Service /// /// This object should only be used to send messages to the cluster or schedule timers in response to other messages /// and timers. Sending messages and timers should not happen from cluster lifecycle methods like - /// , or - /// , or , + /// , + /// or + /// , or + /// , /// except the session lifecycle methods and - /// and . + /// and + /// . /// /// - public interface ICluster { /// @@ -34,7 +52,7 @@ public interface ICluster /// /// position the log has reached in bytes as of the current message. long LogPosition(); - + /// /// The role the cluster node is playing. /// @@ -50,7 +68,8 @@ public interface ICluster /// /// Get the under which the container is running. /// - /// the under which the container is running. + /// the under which the container is running. + /// ClusteredServiceContainer.Context Context { get; } /// @@ -61,13 +80,13 @@ public interface ICluster IClientSession GetClientSession(long clusterSessionId); /// - /// Get all s. + /// Get all s. /// /// the s. ICollection ClientSessions { get; } - + /// - /// For each iterator over s using the most efficient method possible. + /// For each iterator over s using the most efficient method possible. /// /// to be taken for each in turn. void ForEachClientSession(Action action); @@ -81,10 +100,9 @@ public interface ICluster bool CloseClientSession(long clusterSessionId); /// - /// Cluster time as s since 1 Jan 1970 UTC. + /// Cluster time as s since 1 Jan 1970 UTC. /// /// time as s since 1 Jan 1970 UTC. - long Time { get; } /// @@ -97,9 +115,10 @@ public interface ICluster /// Schedule a timer for a given deadline and provide a correlation id to identify the timer when it expires or /// for cancellation. This action is asynchronous, when rescheduling it will race with the timer expiring. /// - /// If the correlationId is for an existing scheduled timer then it will be rescheduled to the new deadline. However - /// it is best to generate correlationIds in a monotonic fashion and be aware of potential clashes with other - /// services in the same cluster. Service isolation can be achieved by using the upper bits for service id. + /// If the correlationId is for an existing scheduled timer then it will be rescheduled to the new deadline. + /// However it is best to generate correlationIds in a monotonic fashion and be aware of potential clashes with + /// other services in the same cluster. Service isolation can be achieved by using the upper bits for service + /// id. /// /// /// Timers should only be scheduled or cancelled in the context of processing a @@ -122,18 +141,21 @@ public interface ICluster /// /// The cluster's idle strategy must be used in the body of the loop to allow for the clustered service to be /// shutdown if required. - /// + /// /// /// - /// to identify the timer when it expires. not supported. - /// time after which the timer will fire. not supported. - /// true if the request to schedule a timer has been sent or false in case of + /// to identify the timer when it expires. not + /// supported. + /// time after which the timer will fire. not supported. + /// + /// true if the request to schedule a timer has been sent or false in case + /// of /// or . /// /// /// throws if request fails with an error. bool ScheduleTimer(long correlationId, long deadline); - + /// /// Cancel a previously scheduled timer. This action is asynchronous and will race with the timer expiring. /// @@ -146,21 +168,16 @@ public interface ICluster /// /// /// Callers of this method must loop until the method succeeds. - /// - ///
{@code
-        /// private Cluster cluster;
-        /// // Lines omitted...
-        ///     
-        /// cluster.idleStrategy().reset();
-        /// while (!cluster.cancelTimer(correlationId))
-        /// {
-        ///     cluster.idleStrategy().idle();
-        /// }
-        /// }
- /// + /// + ///
{@code private Cluster cluster; // Lines omitted...
+        ///
+        /// cluster.idleStrategy().reset(); while (!cluster.cancelTimer(correlationId)) { cluster.idleStrategy().idle();
+        /// } }
+ /// ///
///
- /// for the timer provided when it was scheduled. not supported. + /// for the timer provided when it was scheduled. + /// not supported. /// {@code true} if the request to cancel a timer has been sent or {@code false} in case of /// or . /// if request fails with an error. @@ -214,7 +231,7 @@ public interface ICluster /// /// Callers of this method should loop until the method succeeds, see /// for an example. - /// + /// /// ///
/// containing the message parts with the first left to be filled. @@ -223,58 +240,47 @@ public interface ICluster /// /// Try to claim a range in the publication log into which a message can be written with zero copy semantics. - /// Once the message has been written then should be called thus making it available. + /// Once the message has been written then should be called thus making + /// it available. /// /// On successful claim, the Cluster egress header will be written to the start of the claimed buffer section. - /// Clients MUST write into the claimed buffer region at offset + . + /// Clients MUST write into the claimed buffer region at offset + + /// . /// /// Callers of this method must loop until the method succeeds. - /// - ///
{@code
-        ///     private readonly BufferClaim bufferClaim = new BufferClaim();
-        ///     private ICluster cluster;
-        ///     Lines omitted...
         ///
-        ///    IDirectBuffer srcBuffer = acquireMessage()
-        ///    cluster.IdleStrategy().Reset()
+        /// 
{@code private readonly BufferClaim bufferClaim = new BufferClaim(); private ICluster cluster; Lines
+        /// omitted...
         ///
-        ///     while(true)
-        ///     {
-        ///         long position = cluster.TryClaim(length, bufferClaim);
-        ///         if (position > 0)
-        ///         {
-        ///              IMutableDirectBuffer buffer = bufferClaim.Buffer;
-        ///              int offset = bufferClaim.Offset;
+        /// IDirectBuffer srcBuffer = acquireMessage() cluster.IdleStrategy().Reset()
         ///
-        ///              buffer.putBytes(offset + AeronCluster.SESSION_HEADER_LENGTH, srcBuffer, 0, length);
-        ///              bufferClaim.Commit();
-        ///              break;
-        ///          }
-        ///          else if (Publication.ADMIN_ACTION != position && Publication.BACK_PRESSURED != position)
-        ///          {
-        ///              throw new ClusterException("Internal tryClaim failed: " + position);
-        ///          }
+        /// while(true) { long position = cluster.TryClaim(length, bufferClaim); if (position > 0) {
+        /// IMutableDirectBuffer buffer = bufferClaim.Buffer; int offset = bufferClaim.Offset;
         ///
-        ///          cluster.idleStrategy.idle();
-        ///     }
-        ///     
+ /// buffer.putBytes(offset + AeronCluster.SESSION_HEADER_LENGTH, srcBuffer, 0, length); bufferClaim.Commit(); + /// break; } else if (Publication.ADMIN_ACTION != position && Publication.BACK_PRESSURED != position) { + /// throw new ClusterException("Internal tryClaim failed: " + position); } + /// + /// cluster.idleStrategy.idle(); }
///
///
/// of the range to claim, in bytes. /// to be populated if the claim succeeds. /// The new stream position, otherwise a negative error value as specified in /// . - /// if the length is greater than . + /// if the length is greater than + /// . /// /// /// long TryClaim(int length, BufferClaim bufferClaim); /// - /// which should be used by the service when it experiences back-pressure on egress, - /// closing sessions, making timer requests, or any long-running actions. + /// which should be used by the service when it experiences back-pressure on + /// egress, closing sessions, making timer requests, or any long-running actions. /// - /// the which should be used by the service when it experiences back-pressure. + /// the which should be used by the service when it experiences + /// back-pressure. IIdleStrategy IdleStrategy(); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/IClusteredService.cs b/src/Adaptive.Cluster/Service/IClusteredService.cs index 40114795..fa6fe663 100644 --- a/src/Adaptive.Cluster/Service/IClusteredService.cs +++ b/src/Adaptive.Cluster/Service/IClusteredService.cs @@ -1,4 +1,19 @@ -using System.Threading; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; @@ -10,28 +25,29 @@ namespace Adaptive.Cluster.Service /// /// Interface which a service must implement to be contained in the cluster. /// - /// The {@code cluster} object should only be used to send messages to the cluster or schedule timers in - /// response to other messages and timers. Sending messages and timers should not happen from cluster lifecycle - /// methods like , or - /// , or , except the session lifecycle - /// methods. + /// The {@code cluster} object should only be used to send messages to the cluster or schedule timers in response to + /// other messages and timers. Sending messages and timers should not happen from cluster lifecycle methods like + /// , or + /// , or , except the + /// session lifecycle methods. /// /// public interface IClusteredService { /// - /// Start event where the service can perform any initialisation required and load snapshot state. - /// The snapshot image can be null if no previous snapshot exists. + /// Start event where the service can perform any initialisation required and load snapshot state. The snapshot + /// image can be null if no previous snapshot exists. /// /// Note: As this is a potentially long-running operation the implementation should use - /// and then occasionally call or + /// and then occasionally call + /// or /// , especially when polling the returns 0. - /// + /// /// /// /// with which the service can interact. - /// from which the service can load its archived state which can be null when no snapshot. - + /// from which the service can load its archived state which can be null when no + /// snapshot. void OnStart(ICluster cluster, Image snapshotImage); /// @@ -64,7 +80,8 @@ void OnSessionMessage( IDirectBuffer buffer, int offset, int length, - Header header); + Header header + ); /// /// A scheduled timer has expired. @@ -74,12 +91,15 @@ void OnSessionMessage( void OnTimerEvent(long correlationId, long timestamp); /// - /// The service should take a snapshot and store its state to the provided archive . + /// The service should take a snapshot and store its state to the provided archive + /// . /// /// Note: As this is a potentially long-running operation the implementation should use - /// and then occasionally call or - /// , especially when the returns . - /// + /// and then occasionally call + /// or + /// , especially when the + /// returns . + /// /// /// /// to which the state should be recorded. @@ -108,27 +128,36 @@ void OnSessionMessage( /// session id for the publication of the log. /// for the timestamps in the coming leadership term. /// for the application configured in the consensus module. - void OnNewLeadershipTermEvent(long leadershipTermId, long logPosition, long timestamp, long termBaseLogPosition, - int leaderMemberId, int logSessionId, ClusterTimeUnit timeUnit, int appVersion); + void OnNewLeadershipTermEvent( + long leadershipTermId, + long logPosition, + long timestamp, + long termBaseLogPosition, + int leaderMemberId, + int logSessionId, + ClusterTimeUnit timeUnit, + int appVersion + ); /// /// Implement this method to perform background tasks that are not related to the deterministic state machine /// model, such as keeping external connections alive to the cluster. This method must not be used to /// directly, or indirectly, update the service state. This method cannot be used for making calls on - /// which could update the log such as or + /// which could update the log such as + /// or /// . /// /// This method is not for long-running operations. Time taken can impact latency and should only be used for /// short constant time operations. - /// + /// /// /// /// which can be used for measuring elapsed time and be used in the same way as - /// . This is not . + /// . This is not . /// 0 if no work is done otherwise a positive number. /// /// Since: 1.40.0 /// int DoBackgroundWork(long nowNs); } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/RecoveryState.cs b/src/Adaptive.Cluster/Service/RecoveryState.cs index acea8e7d..c0533c7d 100644 --- a/src/Adaptive.Cluster/Service/RecoveryState.cs +++ b/src/Adaptive.Cluster/Service/RecoveryState.cs @@ -1,4 +1,20 @@ -using Adaptive.Aeron; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron; using Adaptive.Agrona; using Adaptive.Agrona.Concurrent.Status; using Adaptive.Cluster.Client; @@ -8,31 +24,18 @@ namespace Adaptive.Cluster.Service { /// /// Counter representing the Recovery State for the cluster. - /// + /// /// Key layout as follows: /// - /// 0 1 2 3 - /// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 - /// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - /// | Leadership Term ID | - /// | | - /// +---------------------------------------------------------------+ - /// | Log position for Snapshot | - /// | | - /// +---------------------------------------------------------------+ - /// | Timestamp at beginning of Recovery | - /// | | - /// +---------------------------------------------------------------+ - /// | Cluster ID | - /// +---------------------------------------------------------------+ - /// | Count of Services | - /// +---------------------------------------------------------------+ - /// | Snapshot Recording ID (Service ID 0) | - /// | | - /// +---------------------------------------------------------------+ - /// | Snapshot Recording ID (Service ID n) | - /// | | - /// +---------------------------------------------------------------+ + /// 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + /// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Leadership Term ID | | | + /// +---------------------------------------------------------------+ | Log position for Snapshot | | | + /// +---------------------------------------------------------------+ | Timestamp at beginning of Recovery | | | + /// +---------------------------------------------------------------+ | Cluster ID | + /// +---------------------------------------------------------------+ | Count of Services | + /// +---------------------------------------------------------------+ | Snapshot Recording ID (Service ID 0) | | | + /// +---------------------------------------------------------------+ | Snapshot Recording ID (Service ID n) | | | + /// +---------------------------------------------------------------+ /// /// public static class RecoveryState @@ -90,11 +93,15 @@ public static int FindCounterId(CountersReader counters, int clusterId) for (int i = 0, size = counters.MaxCounterId; i < size; i++) { var counterState = counters.GetCounterState(i); - if (CountersReader.RECORD_ALLOCATED == counterState && - RECOVERY_STATE_TYPE_ID == counters.GetCounterTypeId(i)) + if ( + CountersReader.RECORD_ALLOCATED == counterState + && RECOVERY_STATE_TYPE_ID == counters.GetCounterTypeId(i) + ) { - if (buffer.GetInt(CountersReader.MetaDataOffset(i) + CountersReader.KEY_OFFSET + - CLUSTER_ID_OFFSET) == clusterId) + if ( + buffer.GetInt(CountersReader.MetaDataOffset(i) + CountersReader.KEY_OFFSET + CLUSTER_ID_OFFSET) + == clusterId + ) { return i; } @@ -109,27 +116,33 @@ public static int FindCounterId(CountersReader counters, int clusterId) } /// - /// Get the leadership term id for the snapshot state. if no snapshot for recovery. + /// Get the leadership term id for the snapshot state. if no + /// snapshot for recovery. /// /// to search within. /// for the active consensus position. - /// the leadership term id if found otherwise . + /// the leadership term id if found otherwise . + /// public static long GetLeadershipTermId(CountersReader counters, int counterId) { IDirectBuffer buffer = counters.MetaDataBuffer; - if (counters.GetCounterState(counterId) == CountersReader.RECORD_ALLOCATED && - counters.GetCounterTypeId(counterId) == RECOVERY_STATE_TYPE_ID) + if ( + counters.GetCounterState(counterId) == CountersReader.RECORD_ALLOCATED + && counters.GetCounterTypeId(counterId) == RECOVERY_STATE_TYPE_ID + ) { - return buffer.GetLong(CountersReader.MetaDataOffset(counterId) + CountersReader.KEY_OFFSET + - LEADERSHIP_TERM_ID_OFFSET); + return buffer.GetLong( + CountersReader.MetaDataOffset(counterId) + CountersReader.KEY_OFFSET + LEADERSHIP_TERM_ID_OFFSET + ); } return Aeron.Aeron.NULL_VALUE; } /// - /// Get the position at which the snapshot was taken. if no snapshot for recovery. + /// Get the position at which the snapshot was taken. if no + /// snapshot for recovery. /// /// to search within. /// for the active consensus position. @@ -138,19 +151,22 @@ public static long GetLogPosition(CountersReader counters, int counterId) { IDirectBuffer buffer = counters.MetaDataBuffer; - if (counters.GetCounterState(counterId) == CountersReader.RECORD_ALLOCATED && - counters.GetCounterTypeId(counterId) == RECOVERY_STATE_TYPE_ID) + if ( + counters.GetCounterState(counterId) == CountersReader.RECORD_ALLOCATED + && counters.GetCounterTypeId(counterId) == RECOVERY_STATE_TYPE_ID + ) { - return buffer.GetLong(CountersReader.MetaDataOffset(counterId) + CountersReader.KEY_OFFSET + - LOG_POSITION_OFFSET); + return buffer.GetLong( + CountersReader.MetaDataOffset(counterId) + CountersReader.KEY_OFFSET + LOG_POSITION_OFFSET + ); } return Aeron.Aeron.NULL_VALUE; } - /// - /// Get the timestamp at the beginning of recovery. if no snapshot for recovery. + /// Get the timestamp at the beginning of recovery. if no snapshot + /// for recovery. /// /// to search within. /// for the active recovery counter. @@ -159,11 +175,14 @@ public static long GetTimestamp(CountersReader counters, int counterId) { IDirectBuffer buffer = counters.MetaDataBuffer; - if (counters.GetCounterState(counterId) == CountersReader.RECORD_ALLOCATED && - counters.GetCounterTypeId(counterId) == RECOVERY_STATE_TYPE_ID) + if ( + counters.GetCounterState(counterId) == CountersReader.RECORD_ALLOCATED + && counters.GetCounterTypeId(counterId) == RECOVERY_STATE_TYPE_ID + ) { - return buffer.GetLong(CountersReader.MetaDataOffset(counterId) + CountersReader.KEY_OFFSET + - TIMESTAMP_OFFSET); + return buffer.GetLong( + CountersReader.MetaDataOffset(counterId) + CountersReader.KEY_OFFSET + TIMESTAMP_OFFSET + ); } return Aeron.Aeron.NULL_VALUE; @@ -175,13 +194,16 @@ public static long GetTimestamp(CountersReader counters, int counterId) /// to search within. /// for the active recovery counter. /// for the snapshot required. - /// the count of replay terms if found otherwise . + /// the count of replay terms if found otherwise . + /// public static long GetSnapshotRecordingId(CountersReader counters, int counterId, int serviceId) { IDirectBuffer buffer = counters.MetaDataBuffer; - if (counters.GetCounterState(counterId) == CountersReader.RECORD_ALLOCATED && - counters.GetCounterTypeId(counterId) == RECOVERY_STATE_TYPE_ID) + if ( + counters.GetCounterState(counterId) == CountersReader.RECORD_ALLOCATED + && counters.GetCounterTypeId(counterId) == RECOVERY_STATE_TYPE_ID + ) { int recordOffset = CountersReader.MetaDataOffset(counterId); @@ -191,11 +213,15 @@ public static long GetSnapshotRecordingId(CountersReader counters, int counterId throw new ClusterException("invalid serviceId " + serviceId + " for count of " + serviceCount); } - return buffer.GetLong(recordOffset + CountersReader.KEY_OFFSET + SNAPSHOT_RECORDING_IDS_OFFSET + - (serviceId * SIZE_OF_LONG)); + return buffer.GetLong( + recordOffset + + CountersReader.KEY_OFFSET + + SNAPSHOT_RECORDING_IDS_OFFSET + + (serviceId * SIZE_OF_LONG) + ); } throw new ClusterException("active counter not found " + counterId); } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ServiceAdapter.cs b/src/Adaptive.Cluster/Service/ServiceAdapter.cs index 80ff7601..e6700fc7 100644 --- a/src/Adaptive.Cluster/Service/ServiceAdapter.cs +++ b/src/Adaptive.Cluster/Service/ServiceAdapter.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; @@ -9,86 +25,93 @@ namespace Adaptive.Cluster.Service { sealed class ServiceAdapter : IDisposable { - private const int FRAGMENT_LIMIT = 1; - - private readonly Subscription subscription; - private readonly ClusteredServiceAgent clusteredServiceAgent; - private readonly FragmentAssembler fragmentAssembler; + private const int FragmentLimit = 1; + + private readonly Subscription _subscription; + private readonly ClusteredServiceAgent _clusteredServiceAgent; + private readonly FragmentAssembler _fragmentAssembler; - private readonly MessageHeaderDecoder messageHeaderDecoder = new MessageHeaderDecoder(); - private readonly JoinLogDecoder joinLogDecoder = new JoinLogDecoder(); - private readonly RequestServiceAckDecoder requestServiceAckDecoder = new RequestServiceAckDecoder(); - private readonly ServiceTerminationPositionDecoder serviceTerminationPositionDecoder = + private readonly MessageHeaderDecoder _messageHeaderDecoder = new MessageHeaderDecoder(); + private readonly JoinLogDecoder _joinLogDecoder = new JoinLogDecoder(); + private readonly RequestServiceAckDecoder _requestServiceAckDecoder = new RequestServiceAckDecoder(); + private readonly ServiceTerminationPositionDecoder _serviceTerminationPositionDecoder = new ServiceTerminationPositionDecoder(); public ServiceAdapter(Subscription subscription, ClusteredServiceAgent clusteredServiceAgent) { - this.subscription = subscription; - this.clusteredServiceAgent = clusteredServiceAgent; - this.fragmentAssembler = new FragmentAssembler(OnFragment); + this._subscription = subscription; + this._clusteredServiceAgent = clusteredServiceAgent; + this._fragmentAssembler = new FragmentAssembler(OnFragment); } public void Dispose() { - subscription?.Dispose(); + _subscription?.Dispose(); } internal int Poll() { - return subscription.Poll(fragmentAssembler, FRAGMENT_LIMIT); + return _subscription.Poll(_fragmentAssembler, FragmentLimit); } private void OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { - messageHeaderDecoder.Wrap(buffer, offset); + _messageHeaderDecoder.Wrap(buffer, offset); - int schemaId = messageHeaderDecoder.SchemaId(); + int schemaId = _messageHeaderDecoder.SchemaId(); if (schemaId != MessageHeaderDecoder.SCHEMA_ID) { - throw new ClusterException("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + - schemaId); + throw new ClusterException( + "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId + ); } - switch (messageHeaderDecoder.TemplateId()) + switch (_messageHeaderDecoder.TemplateId()) { case JoinLogDecoder.TEMPLATE_ID: - joinLogDecoder.Wrap( + _joinLogDecoder.Wrap( buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - clusteredServiceAgent.OnJoinLog( - joinLogDecoder.LogPosition(), - joinLogDecoder.MaxLogPosition(), - joinLogDecoder.MemberId(), - joinLogDecoder.LogSessionId(), - joinLogDecoder.LogStreamId(), - joinLogDecoder.IsStartup() == BooleanType.TRUE, - (ClusterRole)joinLogDecoder.Role(), - joinLogDecoder.LogChannel()); + _clusteredServiceAgent.OnJoinLog( + _joinLogDecoder.LogPosition(), + _joinLogDecoder.MaxLogPosition(), + _joinLogDecoder.MemberId(), + _joinLogDecoder.LogSessionId(), + _joinLogDecoder.LogStreamId(), + _joinLogDecoder.IsStartup() == BooleanType.TRUE, + (ClusterRole)_joinLogDecoder.Role(), + _joinLogDecoder.LogChannel() + ); break; case ServiceTerminationPositionDecoder.TEMPLATE_ID: - serviceTerminationPositionDecoder.Wrap( + _serviceTerminationPositionDecoder.Wrap( buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - clusteredServiceAgent.OnServiceTerminationPosition(serviceTerminationPositionDecoder.LogPosition()); + _clusteredServiceAgent.OnServiceTerminationPosition( + _serviceTerminationPositionDecoder.LogPosition() + ); break; - + case RequestServiceAckDecoder.TEMPLATE_ID: - requestServiceAckDecoder.Wrap( + _requestServiceAckDecoder.Wrap( buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - clusteredServiceAgent.OnRequestServiceAck(requestServiceAckDecoder.LogPosition()); + _clusteredServiceAgent.OnRequestServiceAck(_requestServiceAckDecoder.LogPosition()); break; } } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ServiceSnapshotLoader.cs b/src/Adaptive.Cluster/Service/ServiceSnapshotLoader.cs index ae5866fd..ae4074d5 100644 --- a/src/Adaptive.Cluster/Service/ServiceSnapshotLoader.cs +++ b/src/Adaptive.Cluster/Service/ServiceSnapshotLoader.cs @@ -1,4 +1,19 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; @@ -10,96 +25,99 @@ namespace Adaptive.Cluster.Service { internal class ServiceSnapshotLoader : IControlledFragmentHandler { - private const int FRAGMENT_LIMIT = 10; + private const int FragmentLimit = 10; - private bool inSnapshot = false; - private bool isDone = false; - private int appVersion; - private ClusterTimeUnit timeUnit; + private bool _inSnapshot = false; + private bool _isDone = false; + private int _appVersion; + private ClusterTimeUnit _timeUnit; - private readonly MessageHeaderDecoder messageHeaderDecoder = new MessageHeaderDecoder(); - private readonly SnapshotMarkerDecoder snapshotMarkerDecoder = new SnapshotMarkerDecoder(); - private readonly ClientSessionDecoder clientSessionDecoder = new ClientSessionDecoder(); - private readonly ImageControlledFragmentAssembler fragmentAssembler; - private readonly Image image; - private readonly ClusteredServiceAgent agent; + private readonly MessageHeaderDecoder _messageHeaderDecoder = new MessageHeaderDecoder(); + private readonly SnapshotMarkerDecoder _snapshotMarkerDecoder = new SnapshotMarkerDecoder(); + private readonly ClientSessionDecoder _clientSessionDecoder = new ClientSessionDecoder(); + private readonly ImageControlledFragmentAssembler _fragmentAssembler; + private readonly Image _image; + private readonly ClusteredServiceAgent _agent; internal ServiceSnapshotLoader(Image image, ClusteredServiceAgent agent) { - this.fragmentAssembler = new ImageControlledFragmentAssembler(this); - this.image = image; - this.agent = agent; + this._fragmentAssembler = new ImageControlledFragmentAssembler(this); + this._image = image; + this._agent = agent; } internal bool IsDone() { - return isDone; + return _isDone; } internal int AppVersion() { - return appVersion; + return _appVersion; } internal ClusterTimeUnit TimeUnit() { - return timeUnit; + return _timeUnit; } internal int Poll() { - return image.ControlledPoll(fragmentAssembler, FRAGMENT_LIMIT); + return _image.ControlledPoll(_fragmentAssembler, FragmentLimit); } public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offset, int length, Header header) { - messageHeaderDecoder.Wrap(buffer, offset); + _messageHeaderDecoder.Wrap(buffer, offset); - int schemaId = messageHeaderDecoder.SchemaId(); + int schemaId = _messageHeaderDecoder.SchemaId(); if (MessageHeaderDecoder.SCHEMA_ID != schemaId) { - throw new ClusterException("expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + - schemaId); + throw new ClusterException( + "expected schemaId=" + MessageHeaderDecoder.SCHEMA_ID + ", actual=" + schemaId + ); } - switch (messageHeaderDecoder.TemplateId()) + switch (_messageHeaderDecoder.TemplateId()) { case SnapshotMarkerDecoder.TEMPLATE_ID: - snapshotMarkerDecoder.Wrap( + _snapshotMarkerDecoder.Wrap( buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - long typeId = snapshotMarkerDecoder.TypeId(); + long typeId = _snapshotMarkerDecoder.TypeId(); if (SNAPSHOT_TYPE_ID != typeId) { throw new ClusterException("unexpected snapshot type: " + typeId); } - switch (snapshotMarkerDecoder.Mark()) + switch (_snapshotMarkerDecoder.Mark()) { case SnapshotMark.BEGIN: - if (inSnapshot) + if (_inSnapshot) { throw new ClusterException("already in snapshot"); } - inSnapshot = true; - appVersion = snapshotMarkerDecoder.AppVersion(); - timeUnit = snapshotMarkerDecoder.TimeUnit() == ClusterTimeUnit.NULL_VALUE - ? ClusterTimeUnit.MILLIS - : snapshotMarkerDecoder.TimeUnit(); + _inSnapshot = true; + _appVersion = _snapshotMarkerDecoder.AppVersion(); + _timeUnit = + _snapshotMarkerDecoder.TimeUnit() == ClusterTimeUnit.NULL_VALUE + ? ClusterTimeUnit.MILLIS + : _snapshotMarkerDecoder.TimeUnit(); return ControlledFragmentHandlerAction.CONTINUE; case SnapshotMark.END: - if (!inSnapshot) + if (!_inSnapshot) { throw new ClusterException("missing begin snapshot"); } - isDone = true; + _isDone = true; return ControlledFragmentHandlerAction.BREAK; case SnapshotMark.SECTION: @@ -110,25 +128,27 @@ public ControlledFragmentHandlerAction OnFragment(IDirectBuffer buffer, int offs break; case ClientSessionDecoder.TEMPLATE_ID: - clientSessionDecoder.Wrap( + _clientSessionDecoder.Wrap( buffer, offset + MessageHeaderDecoder.ENCODED_LENGTH, - messageHeaderDecoder.BlockLength(), - messageHeaderDecoder.Version()); + _messageHeaderDecoder.BlockLength(), + _messageHeaderDecoder.Version() + ); - string responseChannel = clientSessionDecoder.ResponseChannel(); - byte[] encodedPrincipal = new byte[clientSessionDecoder.EncodedPrincipalLength()]; - clientSessionDecoder.GetEncodedPrincipal(encodedPrincipal, 0, encodedPrincipal.Length); + string responseChannel = _clientSessionDecoder.ResponseChannel(); + byte[] encodedPrincipal = new byte[_clientSessionDecoder.EncodedPrincipalLength()]; + _clientSessionDecoder.GetEncodedPrincipal(encodedPrincipal, 0, encodedPrincipal.Length); - agent.AddSession( - clientSessionDecoder.ClusterSessionId(), - clientSessionDecoder.ResponseStreamId(), + _agent.AddSession( + _clientSessionDecoder.ClusterSessionId(), + _clientSessionDecoder.ResponseStreamId(), responseChannel, - encodedPrincipal); + encodedPrincipal + ); break; } return ControlledFragmentHandlerAction.CONTINUE; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/ServiceSnapshotTaker.cs b/src/Adaptive.Cluster/Service/ServiceSnapshotTaker.cs index c0b65269..72e24785 100644 --- a/src/Adaptive.Cluster/Service/ServiceSnapshotTaker.cs +++ b/src/Adaptive.Cluster/Service/ServiceSnapshotTaker.cs @@ -1,4 +1,20 @@ -using Adaptive.Aeron; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Aeron; using Adaptive.Agrona; using Adaptive.Agrona.Concurrent; using Adaptive.Cluster.Codecs; @@ -7,21 +23,27 @@ namespace Adaptive.Cluster.Service { internal class ServiceSnapshotTaker : SnapshotTaker { - private readonly ExpandableArrayBuffer offerBuffer = new ExpandableArrayBuffer(1024); + private readonly ExpandableArrayBuffer _offerBuffer = new ExpandableArrayBuffer(1024); private readonly ClientSessionEncoder _clientSessionEncoder = new ClientSessionEncoder(); - internal ServiceSnapshotTaker(ExclusivePublication publication, IIdleStrategy idleStrategy, AgentInvoker aeronClientInvoker) - : base(publication, idleStrategy, aeronClientInvoker) - { - } + internal ServiceSnapshotTaker( + ExclusivePublication publication, + IIdleStrategy idleStrategy, + AgentInvoker aeronClientInvoker + ) + : base(publication, idleStrategy, aeronClientInvoker) { } internal void SnapshotSession(IClientSession session) { string responseChannel = session.ResponseChannel; byte[] encodedPrincipal = session.EncodedPrincipal; - int length = MessageHeaderEncoder.ENCODED_LENGTH + ClientSessionEncoder.BLOCK_LENGTH + - ClientSessionEncoder.ResponseChannelHeaderLength() + responseChannel.Length + - ClientSessionEncoder.EncodedPrincipalHeaderLength() + encodedPrincipal.Length; + int length = + MessageHeaderEncoder.ENCODED_LENGTH + + ClientSessionEncoder.BLOCK_LENGTH + + ClientSessionEncoder.ResponseChannelHeaderLength() + + responseChannel.Length + + ClientSessionEncoder.EncodedPrincipalHeaderLength() + + encodedPrincipal.Length; if (length <= publication.MaxPayloadLength) { @@ -45,13 +67,18 @@ internal void SnapshotSession(IClientSession session) else { const int offset = 0; - EncodeSession(session, responseChannel, encodedPrincipal, offerBuffer, offset); - Offer(offerBuffer, offset, length); + EncodeSession(session, responseChannel, encodedPrincipal, _offerBuffer, offset); + Offer(_offerBuffer, offset, length); } - } - - private void EncodeSession(IClientSession session, string responseChannel, byte[] encodedPrincipal, IMutableDirectBuffer buffer, int offset) + + private void EncodeSession( + IClientSession session, + string responseChannel, + byte[] encodedPrincipal, + IMutableDirectBuffer buffer, + int offset + ) { _clientSessionEncoder .WrapAndApplyHeader(buffer, offset, messageHeaderEncoder) @@ -60,6 +87,5 @@ private void EncodeSession(IClientSession session, string responseChannel, byte[ .ResponseChannel(responseChannel) .PutEncodedPrincipal(encodedPrincipal, 0, encodedPrincipal.Length); } - } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/SnapshotDurationTracker.cs b/src/Adaptive.Cluster/Service/SnapshotDurationTracker.cs index 4a3e4a09..f5302b0b 100644 --- a/src/Adaptive.Cluster/Service/SnapshotDurationTracker.cs +++ b/src/Adaptive.Cluster/Service/SnapshotDurationTracker.cs @@ -1,17 +1,33 @@ -using Adaptive.Agrona.Concurrent.Status; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona.Concurrent.Status; namespace Adaptive.Cluster.Service { /// - /// Snapshot duration tracker that tracks maximum snapshot duration and also keeps count of how many times a predefined - /// duration threshold is breached. + /// Snapshot duration tracker that tracks maximum snapshot duration and also keeps count of how many times a + /// predefined duration threshold is breached. /// public class SnapshotDurationTracker { - private readonly AtomicCounter maxSnapshotDuration; - private readonly AtomicCounter snapshotDurationThresholdExceededCount; - private readonly long durationThresholdNs; - private long snapshotStartTimeNs = long.MinValue; + private readonly AtomicCounter _maxSnapshotDuration; + private readonly AtomicCounter _snapshotDurationThresholdExceededCount; + private readonly long _durationThresholdNs; + private long _snapshotStartTimeNs = long.MinValue; /// /// Create a tracker to track max snapshot duration and breaches of a threshold. @@ -19,12 +35,15 @@ public class SnapshotDurationTracker /// counter for tracking. /// counter for tracking. /// to use for tracking breaches. - public SnapshotDurationTracker(AtomicCounter maxSnapshotDuration, - AtomicCounter snapshotDurationThresholdExceededCount, long durationThresholdNs) + public SnapshotDurationTracker( + AtomicCounter maxSnapshotDuration, + AtomicCounter snapshotDurationThresholdExceededCount, + long durationThresholdNs + ) { - this.maxSnapshotDuration = maxSnapshotDuration; - this.snapshotDurationThresholdExceededCount = snapshotDurationThresholdExceededCount; - this.durationThresholdNs = durationThresholdNs; + this._maxSnapshotDuration = maxSnapshotDuration; + this._snapshotDurationThresholdExceededCount = snapshotDurationThresholdExceededCount; + this._durationThresholdNs = durationThresholdNs; } /// @@ -33,16 +52,17 @@ public SnapshotDurationTracker(AtomicCounter maxSnapshotDuration, /// max snapshot duration counter. public AtomicCounter MaxSnapshotDuration() { - return maxSnapshotDuration; + return _maxSnapshotDuration; } /// - /// Get counter tracking number of times was exceeded. + /// Get counter tracking number of times was + /// exceeded. /// /// duration threshold exceeded counter. public AtomicCounter SnapshotDurationThresholdExceededCount() { - return snapshotDurationThresholdExceededCount; + return _snapshotDurationThresholdExceededCount; } /// @@ -51,7 +71,7 @@ public AtomicCounter SnapshotDurationThresholdExceededCount() /// snapshot start time in nanoseconds. public void OnSnapshotBegin(long timeNanos) { - snapshotStartTimeNs = timeNanos; + _snapshotStartTimeNs = timeNanos; } /// @@ -60,16 +80,16 @@ public void OnSnapshotBegin(long timeNanos) /// snapshot end time in nanoseconds. public void OnSnapshotEnd(long timeNanos) { - if (snapshotStartTimeNs != long.MinValue) + if (_snapshotStartTimeNs != long.MinValue) { - long snapshotDurationNs = timeNanos - snapshotStartTimeNs; + long snapshotDurationNs = timeNanos - _snapshotStartTimeNs; - if (snapshotDurationNs > durationThresholdNs) + if (snapshotDurationNs > _durationThresholdNs) { - snapshotDurationThresholdExceededCount.Increment(); + _snapshotDurationThresholdExceededCount.Increment(); } - maxSnapshotDuration.ProposeMax(snapshotDurationNs); + _maxSnapshotDuration.ProposeMax(snapshotDurationNs); } } @@ -78,9 +98,14 @@ public void OnSnapshotEnd(long timeNanos) /// public override string ToString() { - return "SnapshotDurationTracker{" + "maxSnapshotDuration=" + maxSnapshotDuration + - ", snapshotDurationThresholdExceededCount=" + snapshotDurationThresholdExceededCount + - ", durationThresholdNs=" + durationThresholdNs + '}'; + return "SnapshotDurationTracker{" + + "maxSnapshotDuration=" + + _maxSnapshotDuration + + ", snapshotDurationThresholdExceededCount=" + + _snapshotDurationThresholdExceededCount + + ", durationThresholdNs=" + + _durationThresholdNs + + '}'; } } -} \ No newline at end of file +} diff --git a/src/Adaptive.Cluster/Service/SnapshotTaker.cs b/src/Adaptive.Cluster/Service/SnapshotTaker.cs index 13e8da33..c9bb6dee 100644 --- a/src/Adaptive.Cluster/Service/SnapshotTaker.cs +++ b/src/Adaptive.Cluster/Service/SnapshotTaker.cs @@ -1,4 +1,20 @@ -using System.Threading; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System.Threading; using Adaptive.Aeron; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; @@ -29,14 +45,15 @@ public class SnapshotTaker protected readonly ExclusivePublication publication; /// - /// to be called when back pressure is propagated from the . + /// to be called when back pressure is propagated from the + /// . /// protected readonly IIdleStrategy idleStrategy; - private static readonly int ENCODED_MARKER_LENGTH = + private static readonly int EncodedMarkerLength = MessageHeaderEncoder.ENCODED_LENGTH + SnapshotMarkerEncoder.BLOCK_LENGTH; - private readonly AgentInvoker aeronAgentInvoker; - private readonly SnapshotMarkerEncoder snapshotMarkerEncoder = new SnapshotMarkerEncoder(); + private readonly AgentInvoker _aeronAgentInvoker; + private readonly SnapshotMarkerEncoder _snapshotMarkerEncoder = new SnapshotMarkerEncoder(); /// /// Construct a which will encode the snapshot to a publication. @@ -44,11 +61,15 @@ public class SnapshotTaker /// into which the snapshot will be encoded. /// to call when the publication is back pressured. /// to call when idling so it stays active. - public SnapshotTaker(ExclusivePublication publication, IIdleStrategy idleStrategy, AgentInvoker aeronAgentInvoker) + public SnapshotTaker( + ExclusivePublication publication, + IIdleStrategy idleStrategy, + AgentInvoker aeronAgentInvoker + ) { this.publication = publication; this.idleStrategy = idleStrategy; - this.aeronAgentInvoker = aeronAgentInvoker; + this._aeronAgentInvoker = aeronAgentInvoker; } /// @@ -59,17 +80,26 @@ public SnapshotTaker(ExclusivePublication publication, IIdleStrategy idleStrateg /// at which the snapshot was taken. /// so the snapshot can be sectioned. /// of the cluster timestamps stored in the snapshot. - /// associated with the snapshot from . + /// associated with the snapshot from + /// . public void MarkBegin( long snapshotTypeId, long logPosition, long leadershipTermId, int snapshotIndex, ClusterTimeUnit timeUnit, - int appVersion) + int appVersion + ) { MarkSnapshot( - snapshotTypeId, logPosition, leadershipTermId, snapshotIndex, SnapshotMark.BEGIN, timeUnit, appVersion); + snapshotTypeId, + logPosition, + leadershipTermId, + snapshotIndex, + SnapshotMark.BEGIN, + timeUnit, + appVersion + ); } /// @@ -80,17 +110,26 @@ public void MarkBegin( /// at which the snapshot was taken. /// so the snapshot can be sectioned. /// of the cluster timestamps stored in the snapshot. - /// associated with the snapshot from . + /// associated with the snapshot from + /// . public void MarkEnd( long snapshotTypeId, long logPosition, long leadershipTermId, int snapshotIndex, ClusterTimeUnit timeUnit, - int appVersion) + int appVersion + ) { MarkSnapshot( - snapshotTypeId, logPosition, leadershipTermId, snapshotIndex, SnapshotMark.END, timeUnit, appVersion); + snapshotTypeId, + logPosition, + leadershipTermId, + snapshotIndex, + SnapshotMark.END, + timeUnit, + appVersion + ); } /// @@ -102,7 +141,8 @@ public void MarkEnd( /// so the snapshot can be sectioned. /// which specifies the type of snapshot mark. /// of the cluster timestamps stored in the snapshot. - /// associated with the snapshot from . + /// associated with the snapshot from + /// . public void MarkSnapshot( long snapshotTypeId, long logPosition, @@ -110,15 +150,16 @@ public void MarkSnapshot( int snapshotIndex, SnapshotMark snapshotMark, ClusterTimeUnit timeUnit, - int appVersion) + int appVersion + ) { idleStrategy.Reset(); while (true) { - long result = publication.TryClaim(ENCODED_MARKER_LENGTH, bufferClaim); + long result = publication.TryClaim(EncodedMarkerLength, bufferClaim); if (result > 0) { - snapshotMarkerEncoder + _snapshotMarkerEncoder .WrapAndApplyHeader(bufferClaim.Buffer, bufferClaim.Offset, messageHeaderEncoder) .TypeId(snapshotTypeId) .LogPosition(logPosition) @@ -175,8 +216,8 @@ protected internal static void CheckResult(long position, Publication publicatio } /// - /// Check the result of offering to a publication when writing a snapshot and then idle after invoking the client - /// agent if necessary. + /// Check the result of offering to a publication when writing a snapshot and then idle after invoking the + /// client agent if necessary. /// /// of an offer or try claim to a publication. protected internal void CheckResultAndIdle(long position) @@ -192,9 +233,9 @@ protected internal void CheckResultAndIdle(long position) /// private void InvokeAgentClient() { - aeronAgentInvoker?.Invoke(); + _aeronAgentInvoker?.Invoke(); } - + /// /// Helper method to offer a message into the snapshot publication. /// @@ -216,4 +257,4 @@ protected void Offer(IDirectBuffer buffer, int offset, int length) } } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.BufferClaimIpcThroughput/Adaptive.Aeron.Samples.BufferClaimIpcThroughput.licenseheader b/src/Samples/Adaptive.Aeron.Samples.BufferClaimIpcThroughput/Adaptive.Aeron.Samples.BufferClaimIpcThroughput.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Samples/Adaptive.Aeron.Samples.BufferClaimIpcThroughput/Adaptive.Aeron.Samples.BufferClaimIpcThroughput.licenseheader +++ b/src/Samples/Adaptive.Aeron.Samples.BufferClaimIpcThroughput/Adaptive.Aeron.Samples.BufferClaimIpcThroughput.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Samples/Adaptive.Aeron.Samples.BufferClaimIpcThroughput/BufferClaimIpcThroughput.cs b/src/Samples/Adaptive.Aeron.Samples.BufferClaimIpcThroughput/BufferClaimIpcThroughput.cs index 543e7339..c3c0c36e 100644 --- a/src/Samples/Adaptive.Aeron.Samples.BufferClaimIpcThroughput/BufferClaimIpcThroughput.cs +++ b/src/Samples/Adaptive.Aeron.Samples.BufferClaimIpcThroughput/BufferClaimIpcThroughput.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,22 +30,25 @@ public class BufferClaimIpcThroughput private static readonly int MessageLength = SampleConfiguration.MESSAGE_LENGTH; private static readonly int MessageCountLimit = SampleConfiguration.FRAGMENT_COUNT_LIMIT; private static readonly string Channel = Aeron.Context.IPC_CHANNEL; - private static readonly int StreamID = SampleConfiguration.STREAM_ID; + private static readonly int StreamId = SampleConfiguration.STREAM_ID; public static void Main() { ComputerSpecifications.Dump(); var running = new AtomicBoolean(true); - + using (var aeron = Aeron.Connect()) - using (var publication = aeron.AddPublication(Channel, StreamID)) - using (var subscription = aeron.AddSubscription(Channel, StreamID)) + using (var publication = aeron.AddPublication(Channel, StreamId)) + using (var subscription = aeron.AddSubscription(Channel, StreamId)) { var subscriber = new Subscriber(running, subscription); - var subscriberThread = new Thread(subscriber.Run) {Name = "subscriber"}; - var publisherThread = new Thread(new Publisher(running, publication).Run) {Name = "publisher"}; - var rateReporterThread = new Thread(new RateReporter(running, subscriber).Run) {Name = "rate-reporter"}; + var subscriberThread = new Thread(subscriber.Run) { Name = "subscriber" }; + var publisherThread = new Thread(new Publisher(running, publication).Run) { Name = "publisher" }; + var rateReporterThread = new Thread(new RateReporter(running, subscriber).Run) + { + Name = "rate-reporter", + }; rateReporterThread.Start(); subscriberThread.Start(); @@ -55,7 +58,7 @@ public static void Main() Console.Read(); running.Set(false); - + subscriberThread.Join(); publisherThread.Join(); rateReporterThread.Join(); @@ -64,29 +67,31 @@ public static void Main() public sealed class RateReporter { - internal readonly AtomicBoolean Running; - internal readonly Subscriber Subscriber; + internal readonly AtomicBoolean _running; + internal readonly Subscriber _subscriber; private readonly Stopwatch _stopwatch; public RateReporter(AtomicBoolean running, Subscriber subscriber) { - Running = running; - Subscriber = subscriber; + _running = running; + _subscriber = subscriber; _stopwatch = Stopwatch.StartNew(); } public void Run() { - var lastTotalBytes = Subscriber.TotalBytes(); + var lastTotalBytes = _subscriber.TotalBytes(); - while (Running) + while (_running) { Thread.Sleep(1000); - var newTotalBytes = Subscriber.TotalBytes(); + var newTotalBytes = _subscriber.TotalBytes(); var duration = _stopwatch.ElapsedMilliseconds; var bytesTransferred = newTotalBytes - lastTotalBytes; - Console.WriteLine($"Duration {duration:N0}ms - {bytesTransferred/MessageLength:N0} messages - {bytesTransferred:N0} bytes"); + Console.WriteLine( + $"Duration {duration:N0}ms - {bytesTransferred / MessageLength:N0} messages - {bytesTransferred:N0} bytes" + ); _stopwatch.Restart(); lastTotalBytes = newTotalBytes; @@ -96,30 +101,30 @@ public void Run() public sealed class Publisher { - internal readonly AtomicBoolean Running; - internal readonly Publication Publication; + internal readonly AtomicBoolean _running; + internal readonly Publication _publication; public Publisher(AtomicBoolean running, Publication publication) { - Running = running; - Publication = publication; + _running = running; + _publication = publication; } public void Run() { - var publication = Publication; + var publication = _publication; var bufferClaim = new BufferClaim(); long backPressureCount = 0; long totalMessageCount = 0; - while (Running) + while (_running) { for (var i = 0; i < BurstLength; i++) { while (publication.TryClaim(MessageLength, bufferClaim) <= 0) { ++backPressureCount; - if (!Running) + if (!_running) { break; } @@ -135,21 +140,21 @@ public void Run() } } - var backPressureRatio = backPressureCount/(double) totalMessageCount; + var backPressureRatio = backPressureCount / (double)totalMessageCount; Console.WriteLine($"Publisher back pressure ratio: {backPressureRatio}"); } } public sealed class Subscriber : IFragmentHandler { - internal readonly AtomicBoolean Running; - internal readonly Subscription Subscription; + internal readonly AtomicBoolean _running; + internal readonly Subscription _subscription; private readonly AtomicLong _totalBytes = new AtomicLong(); public Subscriber(AtomicBoolean running, Subscription subscription) { - Running = running; - Subscription = subscription; + _running = running; + _subscription = subscription; } public long TotalBytes() @@ -159,18 +164,18 @@ public long TotalBytes() public void Run() { - while (Subscription.ImageCount == 0) + while (_subscription.ImageCount == 0) { // wait for an image to be ready Thread.Yield(); } - var image = Subscription.Images[0]; + var image = _subscription.Images[0]; var failedPolls = 0L; var successfulPolls = 0L; - while (Running) + while (_running) { var fragmentsRead = image.Poll(this, MessageCountLimit); if (0 == fragmentsRead) @@ -183,7 +188,7 @@ public void Run() } } - var failureRatio = failedPolls/(double) (successfulPolls + failedPolls); + var failureRatio = failedPolls / (double)(successfulPolls + failedPolls); Console.WriteLine($"Subscriber poll failure ratio: {failureRatio}"); } @@ -193,4 +198,4 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head } } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.ClusterClient/MessageListener.cs b/src/Samples/Adaptive.Aeron.Samples.ClusterClient/MessageListener.cs index 17d47aa8..e5d02725 100644 --- a/src/Samples/Adaptive.Aeron.Samples.ClusterClient/MessageListener.cs +++ b/src/Samples/Adaptive.Aeron.Samples.ClusterClient/MessageListener.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Cluster.Client; @@ -8,27 +24,63 @@ namespace Adaptive.Aeron.Samples.ClusterClient { internal class MessageListener : IEgressListener { - public void OnMessage(long clusterSessionId, long timestampMs, IDirectBuffer buffer, int offset, int length, Header header) + public void OnMessage( + long clusterSessionId, + long timestampMs, + IDirectBuffer buffer, + int offset, + int length, + Header header + ) { Console.WriteLine($"OnMessage: sessionId={clusterSessionId}, timestamp={timestampMs}, length={length}"); Console.WriteLine("Received Message: " + buffer.GetStringWithoutLengthUtf8(offset, length)); } - public void OnSessionEvent(long correlationId, long clusterSessionId, long leadershipTermId, int leaderMemberId, EventCode code, string detail) + public void OnSessionEvent( + long correlationId, + long clusterSessionId, + long leadershipTermId, + int leaderMemberId, + EventCode code, + string detail + ) { - Console.WriteLine($"Session Event: leadershipTermId={leadershipTermId}, leaderMemberId={leaderMemberId}, code={code}, detail={detail}"); + Console.WriteLine( + $"Session Event: leadershipTermId={leadershipTermId}, leaderMemberId={leaderMemberId}, " + + $"code={code}, detail={detail}" + ); } - public void OnNewLeader(long clusterSessionId, long leadershipTermId, int leaderMemberId, string memberEndpoints) + public void OnNewLeader( + long clusterSessionId, + long leadershipTermId, + int leaderMemberId, + string memberEndpoints + ) { - Console.WriteLine($"New Leader: leadershipTermId={leadershipTermId}, leaderMemberId={leaderMemberId}, memberEndpoints={memberEndpoints}"); + Console.WriteLine( + $"New Leader: leadershipTermId={leadershipTermId}, leaderMemberId={leaderMemberId}, " + + $"memberEndpoints={memberEndpoints}" + ); } - public void OnAdminResponse(long clusterSessionId, long correlationId, AdminRequestType requestType, - AdminResponseCode responseCode, string message, IDirectBuffer payload, int payloadOffset, int payloadLength) + public void OnAdminResponse( + long clusterSessionId, + long correlationId, + AdminRequestType requestType, + AdminResponseCode responseCode, + string message, + IDirectBuffer payload, + int payloadOffset, + int payloadLength + ) { - Console.WriteLine($"OnAdminResponse: clusterSessionId={clusterSessionId}, correlationId={correlationId}, requestType={requestType}, responseCode={responseCode}"); + Console.WriteLine( + $"OnAdminResponse: clusterSessionId={clusterSessionId}, correlationId={correlationId}, " + + $"requestType={requestType}, responseCode={responseCode}" + ); } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.ClusterClient/Program.cs b/src/Samples/Adaptive.Aeron.Samples.ClusterClient/Program.cs index 4b470ee4..1c1bd6ae 100644 --- a/src/Samples/Adaptive.Aeron.Samples.ClusterClient/Program.cs +++ b/src/Samples/Adaptive.Aeron.Samples.ClusterClient/Program.cs @@ -1,9 +1,25 @@ -using Adaptive.Agrona.Concurrent; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using Adaptive.Agrona.Concurrent; using Adaptive.Cluster.Client; namespace Adaptive.Aeron.Samples.ClusterClient { - class Program + static class Program { static void Main() { @@ -11,7 +27,7 @@ static void Main() .IngressChannel("aeron:udp?endpoint=localhost:9010") .EgressChannel("aeron:udp?endpoint=localhost:0") .EgressListener(new MessageListener()); - + using (var c = AeronCluster.Connect(ctx)) { var idleStrategy = ctx.IdleStrategy(); @@ -30,4 +46,4 @@ static void Main() } } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.ClusterService/EchoService.cs b/src/Samples/Adaptive.Aeron.Samples.ClusterService/EchoService.cs index 8d9d3ff3..32fb6d60 100644 --- a/src/Samples/Adaptive.Aeron.Samples.ClusterService/EchoService.cs +++ b/src/Samples/Adaptive.Aeron.Samples.ClusterService/EchoService.cs @@ -1,4 +1,20 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using Adaptive.Aeron.LogBuffer; using Adaptive.Agrona; using Adaptive.Cluster.Codecs; @@ -26,12 +42,19 @@ public void OnSessionClose(IClientSession session, long timestampMs, CloseReason Console.WriteLine($"OnSessionClose: sessionId={session.Id}, timestamp={timestampMs}"); } - public void OnSessionMessage(IClientSession session, long timestampMs, IDirectBuffer buffer, int offset, int length, Header header) + public void OnSessionMessage( + IClientSession session, + long timestampMs, + IDirectBuffer buffer, + int offset, + int length, + Header header + ) { Console.WriteLine($"OnSessionMessage: sessionId={session.Id}, timestamp={timestampMs}, length={length}"); Console.WriteLine("Received Message: " + buffer.GetStringWithoutLengthUtf8(offset, length)); - + while (session.Offer(buffer, offset, length) <= 0) { _cluster.IdleStrategy().Idle(); @@ -66,7 +89,8 @@ public void OnNewLeadershipTermEvent( int leaderMemberId, int logSessionId, ClusterTimeUnit timeUnit, - int appVersion) + int appVersion + ) { Console.WriteLine($"OnNewLeadershipTerm: leadershipTermId={leadershipTermId}"); } @@ -76,4 +100,4 @@ public int DoBackgroundWork(long nowNs) return 0; } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.ClusterService/Program.cs b/src/Samples/Adaptive.Aeron.Samples.ClusterService/Program.cs index 921f8119..fabe0b19 100644 --- a/src/Samples/Adaptive.Aeron.Samples.ClusterService/Program.cs +++ b/src/Samples/Adaptive.Aeron.Samples.ClusterService/Program.cs @@ -1,15 +1,30 @@ -using System; +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +using System; using Adaptive.Agrona.Concurrent; using Adaptive.Cluster.Service; namespace Adaptive.Aeron.Samples.ClusterService { - class Program + static class Program { static void Main(string[] args) { - var context = new ClusteredServiceContainer.Context() - .ClusteredService(new EchoService()); + var context = new ClusteredServiceContainer.Context().ClusteredService(new EchoService()); using (ShutdownSignalBarrier barrier = new ShutdownSignalBarrier()) using (ClusteredServiceContainer.Launch(context.TerminationHook(() => barrier.SignalAll()))) @@ -24,4 +39,4 @@ static void Main(string[] args) Console.WriteLine("Stopped."); } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.Common/Adaptive.Aeron.Samples.Common.licenseheader b/src/Samples/Adaptive.Aeron.Samples.Common/Adaptive.Aeron.Samples.Common.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Samples/Adaptive.Aeron.Samples.Common/Adaptive.Aeron.Samples.Common.licenseheader +++ b/src/Samples/Adaptive.Aeron.Samples.Common/Adaptive.Aeron.Samples.Common.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Samples/Adaptive.Aeron.Samples.Common/ComputerSpecifications.cs b/src/Samples/Adaptive.Aeron.Samples.Common/ComputerSpecifications.cs index a214ca34..fdd64605 100644 --- a/src/Samples/Adaptive.Aeron.Samples.Common/ComputerSpecifications.cs +++ b/src/Samples/Adaptive.Aeron.Samples.Common/ComputerSpecifications.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,9 +24,9 @@ namespace Adaptive.Aeron.Samples.Common { /// - /// A class that uses the System.Management APIS (WMI) to fetch the most - /// interesting attributes about the computer hardware we are running on. - /// Based on Vance Morrison's MeasureIt tool: http://blogs.msdn.com/b/vancem/archive/2009/02/06/measureit-update-tool-for-doing-microbenchmarks.aspx + /// A class that uses the System.Management APIS (WMI) to fetch the most interesting attributes about the computer + /// hardware we are running on. Based on Vance Morrison's MeasureIt tool: + /// http://blogs.msdn.com/b/vancem/archive/2009/02/06/measureit-update-tool-for-doing-microbenchmarks.aspx /// public class ComputerSpecifications { @@ -49,8 +49,8 @@ public class ComputerSpecifications public ComputerSpecifications() { var info = MachineInformationGatherer.GatherInformation(); - - MemoryMBytes = (ulong) info.RAMSticks.Select(i => (long) i.Capacity).Sum(); + + MemoryMBytes = (ulong)info.RAMSticks.Select(i => (long)i.Capacity).Sum(); NumberOfLogicalProcessors = Environment.ProcessorCount; OperatingSystem = info.OperatingSystem.Platform.ToString(); @@ -61,7 +61,7 @@ public ComputerSpecifications() ProcessorName = info.Cpu.Name; ProcessorDescription = info.Cpu.Vendor; - ProcessorClockSpeedMhz = (int) info.Cpu.MaxClockSpeed; + ProcessorClockSpeedMhz = (int)info.Cpu.MaxClockSpeed; L1KBytes = info.Cpu.Caches.First(c => c.Level == Cache.CacheLevel.LEVEL1).Capacity; L2KBytes = info.Cpu.Caches.First(c => c.Level == Cache.CacheLevel.LEVEL2).Capacity; L3KBytes = info.Cpu.Caches.First(c => c.Level == Cache.CacheLevel.LEVEL3).Capacity; @@ -75,7 +75,6 @@ public ComputerSpecifications() public string Configuration { get; } - private static string GetArchitecture() => IntPtr.Size == 4 ? "32-bit" : "64-bit"; public bool HasRyuJit { get; } @@ -94,6 +93,7 @@ public static void Dump() } public bool IsHyperThreaded => NumberOfCores != NumberOfLogicalProcessors; + private string GetJitFlag() => HasRyuJit ? " [RyuJIT]" : ""; public override string ToString() @@ -112,9 +112,11 @@ public override string ToString() builder.Append(" - Hyperthreading: ").AppendLine(IsHyperThreaded ? "ON" : "OFF"); builder.AppendLine(); builder.AppendLine( - $"Memory: {MemoryMBytes}MB, L1Cache: {L1KBytes}KB, L2Cache: {L2KBytes}KB, L3Cache: {L3KBytes}KB"); + $"Memory: {MemoryMBytes}MB, L1Cache: {L1KBytes}KB, L2Cache: {L2KBytes}KB, L3Cache: {L3KBytes}KB" + ); builder.AppendLine( - $".NET Runtime: CLR={ClrVersion}, Arch={Architecture} {Configuration}{GetDebuggerFlag()}{GetJitFlag()}"); + $".NET Runtime: CLR={ClrVersion}, Arch={Architecture} {Configuration}{GetDebuggerFlag()}{GetJitFlag()}" + ); if (Config.Params.Count > 0) { @@ -129,4 +131,4 @@ public override string ToString() return builder.ToString(); } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.Common/RateReporter.cs b/src/Samples/Adaptive.Aeron.Samples.Common/RateReporter.cs index e6beb6fb..0c5e924a 100644 --- a/src/Samples/Adaptive.Aeron.Samples.Common/RateReporter.cs +++ b/src/Samples/Adaptive.Aeron.Samples.Common/RateReporter.cs @@ -1,5 +1,5 @@ -/* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ namespace Adaptive.Aeron.Samples.Common { /// /// Tracker and reporter of rates. - /// + /// /// Uses volatile semantics for counters. /// public class RateReporter @@ -41,7 +41,6 @@ public class RateReporter private readonly Stopwatch _stopwatch; private long _lastTotalMessages; - /// /// Create a rate reporter with the given report interval in nanoseconds and the reporting function. /// @@ -66,8 +65,9 @@ public void Run() var currentTotalMessages = _totalMessages; var currentTotalBytes = _totalBytes; var timespanMs = _stopwatch.ElapsedMilliseconds; - var messagesPerSec = (currentTotalMessages - _lastTotalMessages)*_reportIntervalMs/(double) timespanMs; - var bytesPerSec = (currentTotalBytes - _lastTotalBytes)*_reportIntervalMs/(double) timespanMs; + var messagesPerSec = + (currentTotalMessages - _lastTotalMessages) * _reportIntervalMs / (double)timespanMs; + var bytesPerSec = (currentTotalBytes - _lastTotalBytes) * _reportIntervalMs / (double)timespanMs; _reportingFunc(messagesPerSec, bytesPerSec, currentTotalMessages, currentTotalBytes); @@ -96,4 +96,4 @@ public void OnMessage(long messages, long bytes) _totalMessages += messages; } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.Common/RuntimeInformation.cs b/src/Samples/Adaptive.Aeron.Samples.Common/RuntimeInformation.cs index 8ed300aa..2d712065 100644 --- a/src/Samples/Adaptive.Aeron.Samples.Common/RuntimeInformation.cs +++ b/src/Samples/Adaptive.Aeron.Samples.Common/RuntimeInformation.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,10 +28,14 @@ internal static string GetClrVersion() if (IsMono()) { var monoRuntimeType = Type.GetType("Mono.Runtime"); - var monoDisplayName = - monoRuntimeType?.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static); + var monoDisplayName = monoRuntimeType?.GetMethod( + "GetDisplayName", + BindingFlags.NonPublic | BindingFlags.Static + ); if (monoDisplayName != null) + { return "Mono " + monoDisplayName.Invoke(null, null); + } } return "MS.NET " + Environment.Version; @@ -39,10 +43,7 @@ internal static string GetClrVersion() internal static bool HasRyuJit() { - return !IsMono() - && IntPtr.Size == 8 - && GetConfiguration() != "DEBUG" - && !new JitHelper().IsMsX64(); + return !IsMono() && IntPtr.Size == 8 && GetConfiguration() != "DEBUG" && !new JitHelper().IsMsX64(); } #pragma warning disable 162 @@ -59,20 +60,22 @@ internal static string GetConfiguration() private class JitHelper { // ReSharper disable once NotAccessedField.Local - private int bar; + private int _bar; public bool IsMsX64(int step = 1) { var value = 0; for (var i = 0; i < step; i++) { - bar = i + 10; + _bar = i + 10; for (var j = 0; j < 2 * step; j += step) + { value = j + 10; + } } return value == 20 + step; } } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.Common/SampleConfiguration.cs b/src/Samples/Adaptive.Aeron.Samples.Common/SampleConfiguration.cs index 6ef9a813..4c116c41 100644 --- a/src/Samples/Adaptive.Aeron.Samples.Common/SampleConfiguration.cs +++ b/src/Samples/Adaptive.Aeron.Samples.Common/SampleConfiguration.cs @@ -1,5 +1,5 @@ -/* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,15 +19,15 @@ namespace Adaptive.Aeron.Samples.Common /// /// Configuration used for samples all in one place. /// - public class SampleConfiguration + public static class SampleConfiguration { private const string ChannelProp = "aeron.sample.channel"; - private const string StreamIDProp = "aeron.sample.streamId"; + private const string StreamIdProp = "aeron.sample.streamId"; private const string PingChannelProp = "aeron.sample.ping.channel"; private const string PongChannelProp = "aeron.sample.pong.channel"; - private const string PingStreamIDProp = "aeron.sample.ping.streamId"; - private const string PongStreamIDProp = "aeron.sample.pong.streamId"; + private const string PingStreamIdProp = "aeron.sample.ping.streamId"; + private const string PongStreamIdProp = "aeron.sample.pong.streamId"; private const string WarmupNumberOfMessagesProp = "aeron.sample.warmup.messages"; private const string WarmupNumberOfIterationsProp = "aeron.sample.warmup.iterations"; private const string RandomMessageLengthProp = "aeron.sample.randomMessageLength"; @@ -36,7 +36,7 @@ public class SampleConfiguration private const string MessageLengthProp = "aeron.sample.messageLength"; private const string NumberOfMessagesProp = "aeron.sample.messages"; private const string LingerTimeoutMsProp = "aeron.sample.lingerTimeout"; - + public static readonly string CHANNEL; public static readonly string PING_CHANNEL; public static readonly string PONG_CHANNEL; @@ -54,11 +54,11 @@ public class SampleConfiguration static SampleConfiguration() { CHANNEL = Config.GetProperty(ChannelProp, "aeron:udp?endpoint=localhost:40123"); - STREAM_ID = Config.GetInteger(StreamIDProp, 10); + STREAM_ID = Config.GetInteger(StreamIdProp, 10); PING_CHANNEL = Config.GetProperty(PingChannelProp, "aeron:udp?endpoint=localhost:40123"); PONG_CHANNEL = Config.GetProperty(PongChannelProp, "aeron:udp?endpoint=localhost:40124"); - PING_STREAM_ID = Config.GetInteger(PingStreamIDProp, 10); - PONG_STREAM_ID = Config.GetInteger(PongStreamIDProp, 10); + PING_STREAM_ID = Config.GetInteger(PingStreamIdProp, 10); + PONG_STREAM_ID = Config.GetInteger(PongStreamIdProp, 10); FRAGMENT_COUNT_LIMIT = Config.GetInteger(FrameCountLimitProp, 256); MESSAGE_LENGTH = Config.GetInteger(MessageLengthProp, 32); RANDOM_MESSAGE_LENGTH = Config.GetBoolean(RandomMessageLengthProp); @@ -68,4 +68,4 @@ static SampleConfiguration() LINGER_TIMEOUT_MS = Config.GetLong(LingerTimeoutMsProp, 5000); } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.Common/SamplesUtil.cs b/src/Samples/Adaptive.Aeron.Samples.Common/SamplesUtil.cs index 5fd40d77..1f3939cc 100644 --- a/src/Samples/Adaptive.Aeron.Samples.Common/SamplesUtil.cs +++ b/src/Samples/Adaptive.Aeron.Samples.Common/SamplesUtil.cs @@ -1,5 +1,5 @@ -/* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,7 @@ namespace Adaptive.Aeron.Samples.Common /// /// Utility functions for samples /// - public class SamplesUtil + public static class SamplesUtil { /// /// Return a reusable, parameterised event loop that calls a default idler when no messages are received @@ -34,7 +34,11 @@ public class SamplesUtil /// passed to /// indication for loop /// loop function - public static Action SubscriberLoop(IFragmentHandler fragmentHandler, int limit, AtomicBoolean running) + public static Action SubscriberLoop( + IFragmentHandler fragmentHandler, + int limit, + AtomicBoolean running + ) { IIdleStrategy idleStrategy = new BusySpinIdleStrategy(); @@ -49,7 +53,12 @@ public static Action SubscriberLoop(IFragmentHandler fragmentHandl /// indication for loop /// to use for loop /// loop function - public static Action SubscriberLoop(IFragmentHandler fragmentHandler, int limit, AtomicBoolean running, IIdleStrategy idleStrategy) + public static Action SubscriberLoop( + IFragmentHandler fragmentHandler, + int limit, + AtomicBoolean running, + IIdleStrategy idleStrategy + ) { return subscription => { @@ -67,13 +76,17 @@ public static Action SubscriberLoop(IFragmentHandler fragmentHandl /// subscription data handler function that prints the message contents public static IFragmentHandler PrintStringMessage(int streamId) { - return HandlerHelper.ToFragmentHandler((buffer, offset, length, header) => - { - var data = new byte[length]; - buffer.GetBytes(offset, data); + return HandlerHelper.ToFragmentHandler( + (buffer, offset, length, header) => + { + var data = new byte[length]; + buffer.GetBytes(offset, data); - Console.WriteLine($"Message to stream {streamId:D} from session {header.SessionId:D} ({length:D}@{offset:D}) <<{Encoding.UTF8.GetString(data)}>>"); - }); + Console.WriteLine( + $"Message to stream {streamId:D} from session {header.SessionId:D} ({length:D}@{offset:D}) <<{Encoding.UTF8.GetString(data)}>>" + ); + } + ); } /// @@ -95,7 +108,13 @@ public static IFragmentHandler RateReporterHandler(RateReporter reporter) /// for the error, if source /// indicating what the error was /// of the error - public static void PrintError(string channel, int streamId, int sessionId, string message, HeaderFlyweight cause) + public static void PrintError( + string channel, + int streamId, + int sessionId, + string message, + HeaderFlyweight cause + ) { Console.WriteLine(message); } @@ -109,7 +128,9 @@ public static void PrintError(string channel, int streamId, int sessionId, strin /// being reported public static void PrintRate(double messagesPerSec, double bytesPerSec, long totalMessages, long totalBytes) { - Console.WriteLine($"{messagesPerSec:g02} msgs/sec, {bytesPerSec:g02} bytes/sec, totals {totalMessages:D} messages {totalBytes/(1024*1024):D} MB, GC0 {GC.CollectionCount(0)}, GC1 {GC.CollectionCount(1)}, GC2 {GC.CollectionCount(2)}"); + Console.WriteLine( + $"{messagesPerSec:g02} msgs/sec, {bytesPerSec:g02} bytes/sec, totals {totalMessages:D} messages {totalBytes / (1024 * 1024):D} MB, GC0 {GC.CollectionCount(0)}, GC1 {GC.CollectionCount(1)}, GC2 {GC.CollectionCount(2)}" + ); } /// @@ -119,7 +140,9 @@ public static void PrintRate(double messagesPerSec, double bytesPerSec, long tot public static void PrintAvailableImage(Image image) { var subscription = image.Subscription; - Console.WriteLine($"Available image on {subscription.Channel} streamId={subscription.StreamId:D} sessionId={image.SessionId:D} from {image.SourceIdentity}"); + Console.WriteLine( + $"Available image on {subscription.Channel} streamId={subscription.StreamId:D} sessionId={image.SessionId:D} from {image.SourceIdentity}" + ); } /// @@ -129,7 +152,9 @@ public static void PrintAvailableImage(Image image) public static void PrintUnavailableImage(Image image) { var subscription = image.Subscription; - Console.WriteLine($"Unavailable image on {subscription.Channel} streamId={subscription.StreamId:D} sessionId={image.SessionId:D}"); + Console.WriteLine( + $"Unavailable image on {subscription.Channel} streamId={subscription.StreamId:D} sessionId={image.SessionId:D}" + ); } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.HelloWorld/Adaptive.Aeron.Samples.HelloWorld.licenseheader b/src/Samples/Adaptive.Aeron.Samples.HelloWorld/Adaptive.Aeron.Samples.HelloWorld.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Samples/Adaptive.Aeron.Samples.HelloWorld/Adaptive.Aeron.Samples.HelloWorld.licenseheader +++ b/src/Samples/Adaptive.Aeron.Samples.HelloWorld/Adaptive.Aeron.Samples.HelloWorld.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Samples/Adaptive.Aeron.Samples.HelloWorld/HelloWorld.cs b/src/Samples/Adaptive.Aeron.Samples.HelloWorld/HelloWorld.cs index 9d4d0b36..e892a50b 100644 --- a/src/Samples/Adaptive.Aeron.Samples.HelloWorld/HelloWorld.cs +++ b/src/Samples/Adaptive.Aeron.Samples.HelloWorld/HelloWorld.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ namespace Adaptive.Aeron.Samples.HelloWorld { - public class HelloWorld + public static class HelloWorld { public static void Main() { @@ -31,7 +31,7 @@ public static void Main() var buffer = new UnsafeBuffer(new byte[256]); var handler = HandlerHelper.ToFragmentHandler(PrintMessage); - + try { using (var aeron = Aeron.Connect()) @@ -64,7 +64,9 @@ private static void PrintMessage(IDirectBuffer buffer, int offset, int length, H { var message = buffer.GetStringWithoutLengthUtf8(offset, length); - Console.WriteLine($"Received message ({message}) to stream {header.StreamId:D} from session {header.SessionId:x} term id {header.TermId:x} term offset {header.TermOffset:D} ({length:D}@{offset:D})"); + Console.WriteLine( + $"Received message ({message}) to stream {header.StreamId:D} from session {header.SessionId:x} term id {header.TermId:x} term offset {header.TermOffset:D} ({length:D}@{offset:D})" + ); } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.IpcThroughput/Adaptive.Aeron.Samples.IpcThroughput.licenseheader b/src/Samples/Adaptive.Aeron.Samples.IpcThroughput/Adaptive.Aeron.Samples.IpcThroughput.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Samples/Adaptive.Aeron.Samples.IpcThroughput/Adaptive.Aeron.Samples.IpcThroughput.licenseheader +++ b/src/Samples/Adaptive.Aeron.Samples.IpcThroughput/Adaptive.Aeron.Samples.IpcThroughput.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Samples/Adaptive.Aeron.Samples.IpcThroughput/IpcThroughput.cs b/src/Samples/Adaptive.Aeron.Samples.IpcThroughput/IpcThroughput.cs index ec4c723d..7f36d95e 100644 --- a/src/Samples/Adaptive.Aeron.Samples.IpcThroughput/IpcThroughput.cs +++ b/src/Samples/Adaptive.Aeron.Samples.IpcThroughput/IpcThroughput.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,7 +30,7 @@ public class IpcThroughput private static readonly int MessageLength = SampleConfiguration.MESSAGE_LENGTH; private static readonly int MessageCountLimit = SampleConfiguration.FRAGMENT_COUNT_LIMIT; private static readonly string Channel = Aeron.Context.IPC_CHANNEL; - private static readonly int StreamID = SampleConfiguration.STREAM_ID; + private static readonly int StreamId = SampleConfiguration.STREAM_ID; public static void Main() { @@ -39,13 +39,16 @@ public static void Main() var running = new AtomicBoolean(true); using (var aeron = Aeron.Connect()) - using (var publication = aeron.AddPublication(Channel, StreamID)) - using (var subscription = aeron.AddSubscription(Channel, StreamID)) + using (var publication = aeron.AddPublication(Channel, StreamId)) + using (var subscription = aeron.AddSubscription(Channel, StreamId)) { var subscriber = new Subscriber(running, subscription); - var subscriberThread = new Thread(subscriber.Run) {Name = "subscriber"}; - var publisherThread = new Thread(new Publisher(running, publication).Run) {Name = "publisher"}; - var rateReporterThread = new Thread(new RateReporter(running, subscriber).Run) {Name = "rate-reporter"}; + var subscriberThread = new Thread(subscriber.Run) { Name = "subscriber" }; + var publisherThread = new Thread(new Publisher(running, publication).Run) { Name = "publisher" }; + var rateReporterThread = new Thread(new RateReporter(running, subscriber).Run) + { + Name = "rate-reporter", + }; rateReporterThread.Start(); subscriberThread.Start(); @@ -64,29 +67,31 @@ public static void Main() public class RateReporter { - internal readonly AtomicBoolean Running; - internal readonly Subscriber Subscriber; + internal readonly AtomicBoolean _running; + internal readonly Subscriber _subscriber; private readonly Stopwatch _stopwatch; public RateReporter(AtomicBoolean running, Subscriber subscriber) { - Running = running; - Subscriber = subscriber; + _running = running; + _subscriber = subscriber; _stopwatch = Stopwatch.StartNew(); } public void Run() { - var lastTotalBytes = Subscriber.TotalBytes(); + var lastTotalBytes = _subscriber.TotalBytes(); - while (Running) + while (_running) { Thread.Sleep(1000); - var newTotalBytes = Subscriber.TotalBytes(); + var newTotalBytes = _subscriber.TotalBytes(); var duration = _stopwatch.ElapsedMilliseconds; var bytesTransferred = newTotalBytes - lastTotalBytes; - Console.WriteLine($"Duration {duration:N0}ms - {bytesTransferred/MessageLength:N0} messages - {bytesTransferred:N0} bytes, GC0 {GC.CollectionCount(0)}, GC1 {GC.CollectionCount(1)}, GC2 {GC.CollectionCount(2)}"); + Console.WriteLine( + $"Duration {duration:N0}ms - {bytesTransferred / MessageLength:N0} messages - {bytesTransferred:N0} bytes, GC0 {GC.CollectionCount(0)}, GC1 {GC.CollectionCount(1)}, GC2 {GC.CollectionCount(2)}" + ); _stopwatch.Restart(); lastTotalBytes = newTotalBytes; @@ -96,32 +101,37 @@ public void Run() public sealed class Publisher { - internal readonly AtomicBoolean Running; - internal readonly Publication Publication; + internal readonly AtomicBoolean _running; + internal readonly Publication _publication; public Publisher(AtomicBoolean running, Publication publication) { - Running = running; - Publication = publication; + _running = running; + _publication = publication; } public void Run() { - var publication = Publication; - using (var byteBuffer = BufferUtil.AllocateDirectAligned(publication.MaxMessageLength, BitUtil.CACHE_LINE_LENGTH)) + var publication = _publication; + using ( + var byteBuffer = BufferUtil.AllocateDirectAligned( + publication.MaxMessageLength, + BitUtil.CACHE_LINE_LENGTH + ) + ) using (var buffer = new UnsafeBuffer(byteBuffer)) { long backPressureCount = 0; long totalMessageCount = 0; - while (Running) + while (_running) { for (var i = 0; i < BurstLength; i++) { while (publication.Offer(buffer, 0, MessageLength) <= 0) { ++backPressureCount; - if (!Running) + if (!_running) { break; } @@ -131,7 +141,7 @@ public void Run() } } - var backPressureRatio = backPressureCount/(double) totalMessageCount; + var backPressureRatio = backPressureCount / (double)totalMessageCount; Console.WriteLine($"Publisher back pressure ratio: {backPressureRatio}"); } } @@ -139,15 +149,15 @@ public void Run() public class Subscriber : IFragmentHandler { - internal readonly AtomicBoolean Running; - internal readonly Subscription Subscription; + internal readonly AtomicBoolean _running; + internal readonly Subscription _subscription; private readonly AtomicLong _totalBytes = new AtomicLong(); public Subscriber(AtomicBoolean running, Subscription subscription) { - Running = running; - Subscription = subscription; + _running = running; + _subscription = subscription; } public long TotalBytes() @@ -157,18 +167,18 @@ public long TotalBytes() public void Run() { - while (Subscription.ImageCount == 0) + while (_subscription.ImageCount == 0) { // wait for an image to be ready Thread.Yield(); } - var image = Subscription.Images[0]; + var image = _subscription.Images[0]; long failedPolls = 0; long successfulPolls = 0; - while (Running) + while (_running) { var fragmentsRead = image.Poll(this, MessageCountLimit); if (0 == fragmentsRead) @@ -181,7 +191,7 @@ public void Run() } } - var failureRatio = failedPolls / (double) (successfulPolls + failedPolls); + var failureRatio = failedPolls / (double)(successfulPolls + failedPolls); Console.WriteLine($"Subscriber poll failure ratio: {failureRatio}"); } @@ -191,4 +201,4 @@ public void OnFragment(IDirectBuffer buffer, int offset, int length, Header head } } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.Ping/Adaptive.Aeron.Samples.Ping.licenseheader b/src/Samples/Adaptive.Aeron.Samples.Ping/Adaptive.Aeron.Samples.Ping.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Samples/Adaptive.Aeron.Samples.Ping/Adaptive.Aeron.Samples.Ping.licenseheader +++ b/src/Samples/Adaptive.Aeron.Samples.Ping/Adaptive.Aeron.Samples.Ping.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Samples/Adaptive.Aeron.Samples.Ping/Ping.cs b/src/Samples/Adaptive.Aeron.Samples.Ping/Ping.cs index 71c0b1cd..e22ff407 100644 --- a/src/Samples/Adaptive.Aeron.Samples.Ping/Ping.cs +++ b/src/Samples/Adaptive.Aeron.Samples.Ping/Ping.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,12 +26,12 @@ namespace Adaptive.Aeron.Samples.Ping { - public class Ping + public static class Ping { private static readonly string PingChannel = SampleConfiguration.PING_CHANNEL; private static readonly string PongChannel = SampleConfiguration.PONG_CHANNEL; - private static readonly int PingStreamID = SampleConfiguration.PING_STREAM_ID; - private static readonly int PongStreamID = SampleConfiguration.PONG_STREAM_ID; + private static readonly int PingStreamId = SampleConfiguration.PING_STREAM_ID; + private static readonly int PongStreamId = SampleConfiguration.PONG_STREAM_ID; private static readonly int NumberOfMessages = SampleConfiguration.NUMBER_OF_MESSAGES; private static readonly int WarmupNumberOfMessages = SampleConfiguration.WARMUP_NUMBER_OF_MESSAGES; private static readonly int WarmupNumberOfIterations = SampleConfiguration.WARMUP_NUMBER_OF_ITERATIONS; @@ -44,21 +44,26 @@ public class Ping public static void Main() { - var ctx = new Aeron.Context() - .AvailableImageHandler(AvailablePongImageHandler); + var ctx = new Aeron.Context().AvailableImageHandler(AvailablePongImageHandler); var fragmentAssembler = new FragmentAssembler(HandlerHelper.ToFragmentHandler(PongHandler)); - Console.WriteLine("Publishing Ping at " + PingChannel + " on stream Id " + PingStreamID); - Console.WriteLine("Subscribing Pong at " + PongChannel + " on stream Id " + PongStreamID); + Console.WriteLine("Publishing Ping at " + PingChannel + " on stream Id " + PingStreamId); + Console.WriteLine("Subscribing Pong at " + PongChannel + " on stream Id " + PongStreamId); Console.WriteLine("Message length of " + MessageLength + " bytes"); using (var aeron = Aeron.Connect(ctx)) { - Console.WriteLine("Warming up... " + WarmupNumberOfIterations + " iterations of " + WarmupNumberOfMessages + " messages"); - - using (var publication = aeron.AddPublication(PingChannel, PingStreamID)) - using (var subscription = aeron.AddSubscription(PongChannel, PongStreamID)) + Console.WriteLine( + "Warming up... " + + WarmupNumberOfIterations + + " iterations of " + + WarmupNumberOfMessages + + " messages" + ); + + using (var publication = aeron.AddPublication(PingChannel, PingStreamId)) + using (var subscription = aeron.AddSubscription(PongChannel, PongStreamId)) using (var byteBuffer = BufferUtil.AllocateDirectAligned(MessageLength, BitUtil.CACHE_LINE_LENGTH)) using (var atomicBuffer = new UnsafeBuffer(byteBuffer)) { @@ -66,7 +71,13 @@ public static void Main() for (var i = 0; i < WarmupNumberOfIterations; i++) { - RoundTripMessages(atomicBuffer, fragmentAssembler, publication, subscription, WarmupNumberOfMessages); + RoundTripMessages( + atomicBuffer, + fragmentAssembler, + publication, + subscription, + WarmupNumberOfMessages + ); } Thread.Sleep(100); @@ -85,9 +96,13 @@ public static void Main() } } - - private static void RoundTripMessages(UnsafeBuffer buffer, - IFragmentHandler fragmentHandler, Publication publication, Subscription subscription, int count) + private static void RoundTripMessages( + UnsafeBuffer buffer, + IFragmentHandler fragmentHandler, + Publication publication, + Subscription subscription, + int count + ) { for (var i = 0; i < count; i++) { @@ -109,20 +124,22 @@ private static void PongHandler(IDirectBuffer buffer, int offset, int length, He var pingTimestamp = buffer.GetLong(offset); var rttNs = Stopwatch.GetTimestamp() - pingTimestamp; - var b = rttNs*1000*1000*1000d/Stopwatch.Frequency; + var b = rttNs * 1000 * 1000 * 1000d / Stopwatch.Frequency; - Histogram.RecordValue((long) b); + Histogram.RecordValue((long)b); } private static void AvailablePongImageHandler(Image image) { var subscription = image.Subscription; - Console.WriteLine($"Available image: channel={subscription.Channel} streamId={subscription.StreamId} session={image.SessionId}"); + Console.WriteLine( + $"Available image: channel={subscription.Channel} streamId={subscription.StreamId} session={image.SessionId}" + ); - if (PongStreamID == subscription.StreamId && PongChannel.Equals(subscription.Channel)) + if (PongStreamId == subscription.StreamId && PongChannel.Equals(subscription.Channel)) { Latch.Signal(); } } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.Pong/Adaptive.Aeron.Samples.Pong.licenseheader b/src/Samples/Adaptive.Aeron.Samples.Pong/Adaptive.Aeron.Samples.Pong.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Samples/Adaptive.Aeron.Samples.Pong/Adaptive.Aeron.Samples.Pong.licenseheader +++ b/src/Samples/Adaptive.Aeron.Samples.Pong/Adaptive.Aeron.Samples.Pong.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Samples/Adaptive.Aeron.Samples.Pong/Pong.cs b/src/Samples/Adaptive.Aeron.Samples.Pong/Pong.cs index fe6e0035..fc39048f 100644 --- a/src/Samples/Adaptive.Aeron.Samples.Pong/Pong.cs +++ b/src/Samples/Adaptive.Aeron.Samples.Pong/Pong.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,10 +28,10 @@ namespace Adaptive.Aeron.Samples.Pong /// Echoes back messages /// /// - public class Pong + public static class Pong { - private static readonly int PingStreamID = SampleConfiguration.PING_STREAM_ID; - private static readonly int PongStreamID = SampleConfiguration.PONG_STREAM_ID; + private static readonly int PingStreamId = SampleConfiguration.PING_STREAM_ID; + private static readonly int PongStreamId = SampleConfiguration.PONG_STREAM_ID; private static readonly string PingChannel = SampleConfiguration.PING_CHANNEL; private static readonly string PongChannel = SampleConfiguration.PONG_CHANNEL; private static readonly int FrameCountLimit = SampleConfiguration.FRAGMENT_COUNT_LIMIT; @@ -46,15 +46,15 @@ public static void Main() IIdleStrategy idleStrategy = new BusySpinIdleStrategy(); - Console.WriteLine("Subscribing Ping at " + PingChannel + " on stream Id " + PingStreamID); - Console.WriteLine("Publishing Pong at " + PongChannel + " on stream Id " + PongStreamID); + Console.WriteLine("Subscribing Ping at " + PingChannel + " on stream Id " + PingStreamId); + Console.WriteLine("Publishing Pong at " + PongChannel + " on stream Id " + PongStreamId); var running = new AtomicBoolean(true); Console.CancelKeyPress += (_, e) => running.Set(false); using (var aeron = Aeron.Connect(ctx)) - using (var pongPublication = aeron.AddPublication(PongChannel, PongStreamID)) - using (var pingSubscription = aeron.AddSubscription(PingChannel, PingStreamID)) + using (var pongPublication = aeron.AddPublication(PongChannel, PongStreamId)) + using (var pingSubscription = aeron.AddSubscription(PingChannel, PingStreamId)) { var dataHandler = HandlerHelper.ToFragmentHandler( (buffer, offset, length, header) => PingHandler(pongPublication, buffer, offset, length) @@ -84,4 +84,4 @@ private static void PingHandler(Publication pongPublication, IDirectBuffer buffe } } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.RateSubscriber/Adaptive.Aeron.Samples.RateSubscriber.licenseheader b/src/Samples/Adaptive.Aeron.Samples.RateSubscriber/Adaptive.Aeron.Samples.RateSubscriber.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Samples/Adaptive.Aeron.Samples.RateSubscriber/Adaptive.Aeron.Samples.RateSubscriber.licenseheader +++ b/src/Samples/Adaptive.Aeron.Samples.RateSubscriber/Adaptive.Aeron.Samples.RateSubscriber.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Samples/Adaptive.Aeron.Samples.RateSubscriber/RateSubscriber.cs b/src/Samples/Adaptive.Aeron.Samples.RateSubscriber/RateSubscriber.cs index a0dd46aa..cfa9fa89 100644 --- a/src/Samples/Adaptive.Aeron.Samples.RateSubscriber/RateSubscriber.cs +++ b/src/Samples/Adaptive.Aeron.Samples.RateSubscriber/RateSubscriber.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,15 +24,15 @@ namespace Adaptive.Aeron.Samples.RateSubscriber /// /// Example that displays current rate while receiving data /// - public class RateSubscriber + public static class RateSubscriber { - private static readonly int StreamID = SampleConfiguration.STREAM_ID; + private static readonly int StreamId = SampleConfiguration.STREAM_ID; private static readonly string Channel = Aeron.Context.IPC_CHANNEL; private static readonly int FragmentCountLimit = SampleConfiguration.FRAGMENT_COUNT_LIMIT; public static void Main() { - Console.WriteLine("Subscribing to " + Channel + " on stream Id " + StreamID); + Console.WriteLine("Subscribing to " + Channel + " on stream Id " + StreamId); var ctx = new Aeron.Context() .AvailableImageHandler(SamplesUtil.PrintAvailableImage) @@ -42,11 +42,13 @@ public static void Main() var fragmentAssembler = new FragmentAssembler(SamplesUtil.RateReporterHandler(reporter)); var running = new AtomicBoolean(true); - var t = new Thread(subscription => SamplesUtil.SubscriberLoop(fragmentAssembler, FragmentCountLimit, running)((Subscription) subscription)); + var t = new Thread(subscription => + SamplesUtil.SubscriberLoop(fragmentAssembler, FragmentCountLimit, running)((Subscription)subscription) + ); var report = new Thread(reporter.Run); using (var aeron = Aeron.Connect(ctx)) - using (var subscription = aeron.AddSubscription(Channel, StreamID)) + using (var subscription = aeron.AddSubscription(Channel, StreamId)) { t.Start(subscription); report.Start(); @@ -61,4 +63,4 @@ public static void Main() } } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.SimplePublisher/Adaptive.Aeron.Samples.SimplePublisher.licenseheader b/src/Samples/Adaptive.Aeron.Samples.SimplePublisher/Adaptive.Aeron.Samples.SimplePublisher.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Samples/Adaptive.Aeron.Samples.SimplePublisher/Adaptive.Aeron.Samples.SimplePublisher.licenseheader +++ b/src/Samples/Adaptive.Aeron.Samples.SimplePublisher/Adaptive.Aeron.Samples.SimplePublisher.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Samples/Adaptive.Aeron.Samples.SimplePublisher/SimplePublisher.cs b/src/Samples/Adaptive.Aeron.Samples.SimplePublisher/SimplePublisher.cs index 10a59713..f6a3b4b9 100644 --- a/src/Samples/Adaptive.Aeron.Samples.SimplePublisher/SimplePublisher.cs +++ b/src/Samples/Adaptive.Aeron.Samples.SimplePublisher/SimplePublisher.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,16 +19,14 @@ using System.Threading; using Adaptive.Agrona; using Adaptive.Agrona.Concurrent; -using Adaptive.Agrona.Util; namespace Adaptive.Aeron.Samples.SimplePublisher { /// - /// A very simple Aeron publisher application - /// Publishes a fixed size message on a fixed channel and stream. Upon completion - /// of message send, it lingers for 5 seconds before exiting. + /// A very simple Aeron publisher application Publishes a fixed size message on a fixed channel and stream. Upon + /// completion of message send, it lingers for 5 seconds before exiting. /// - public class SimplePublisher + public static class SimplePublisher { public static void Main() { @@ -97,4 +95,4 @@ public static void Main() } } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.SimpleSubscriber/Adaptive.Aeron.Samples.SimpleSubscriber.licenseheader b/src/Samples/Adaptive.Aeron.Samples.SimpleSubscriber/Adaptive.Aeron.Samples.SimpleSubscriber.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Samples/Adaptive.Aeron.Samples.SimpleSubscriber/Adaptive.Aeron.Samples.SimpleSubscriber.licenseheader +++ b/src/Samples/Adaptive.Aeron.Samples.SimpleSubscriber/Adaptive.Aeron.Samples.SimpleSubscriber.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Samples/Adaptive.Aeron.Samples.SimpleSubscriber/SimpleSubscriber.cs b/src/Samples/Adaptive.Aeron.Samples.SimpleSubscriber/SimpleSubscriber.cs index 0ee9c0a2..b0569c10 100644 --- a/src/Samples/Adaptive.Aeron.Samples.SimpleSubscriber/SimpleSubscriber.cs +++ b/src/Samples/Adaptive.Aeron.Samples.SimpleSubscriber/SimpleSubscriber.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,12 +22,11 @@ namespace Adaptive.Aeron.Samples.SimpleSubscriber { /// - /// A very simple Aeron subscriber application which can receive small non-fragmented messages - /// on a fixed channel and stream ID. The DataHandler method 'printStringMessage' is called when data - /// is received. This application doesn't handle large fragmented messages. For an example of - /// fragmented message reception. + /// A very simple Aeron subscriber application which can receive small non-fragmented messages on a fixed channel + /// and stream ID. The DataHandler method 'printStringMessage' is called when data is received. This application + /// doesn't handle large fragmented messages. For an example of fragmented message reception. /// - public class SimpleSubscriber + public static class SimpleSubscriber { public static void Main() { @@ -48,16 +47,20 @@ public static void Main() Console.CancelKeyPress += (s, e) => running.Set(false); // dataHandler method is called for every new datagram received - var fragmentHandler = HandlerHelper.ToFragmentHandler((buffer, offset, length, header) => - { - var data = new byte[length]; - buffer.GetBytes(offset, data); + var fragmentHandler = HandlerHelper.ToFragmentHandler( + (buffer, offset, length, header) => + { + var data = new byte[length]; + buffer.GetBytes(offset, data); - Console.WriteLine($"Received message ({Encoding.UTF8.GetString(data)}) to stream {streamId:D} from session {header.SessionId:x} term id {header.TermId:x} term offset {header.TermOffset:D} ({length:D}@{offset:D})"); + Console.WriteLine( + $"Received message ({Encoding.UTF8.GetString(data)}) to stream {streamId:D} from session {header.SessionId:x} term id {header.TermId:x} term offset {header.TermOffset:D} ({length:D}@{offset:D})" + ); - // Received the intended message, time to exit the program - running.Set(false); - }); + // Received the intended message, time to exit the program + running.Set(false); + } + ); // Create a context, needed for client connection to media driver // A separate media driver process need to run prior to running this application @@ -90,4 +93,4 @@ public static void Main() } } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.StreamingPublisher/Adaptive.Aeron.Samples.StreamingPublisher.licenseheader b/src/Samples/Adaptive.Aeron.Samples.StreamingPublisher/Adaptive.Aeron.Samples.StreamingPublisher.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Samples/Adaptive.Aeron.Samples.StreamingPublisher/Adaptive.Aeron.Samples.StreamingPublisher.licenseheader +++ b/src/Samples/Adaptive.Aeron.Samples.StreamingPublisher/Adaptive.Aeron.Samples.StreamingPublisher.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Samples/Adaptive.Aeron.Samples.StreamingPublisher/IntSupplier.cs b/src/Samples/Adaptive.Aeron.Samples.StreamingPublisher/IntSupplier.cs index a90be5b4..66d18c60 100644 --- a/src/Samples/Adaptive.Aeron.Samples.StreamingPublisher/IntSupplier.cs +++ b/src/Samples/Adaptive.Aeron.Samples.StreamingPublisher/IntSupplier.cs @@ -1,5 +1,5 @@ -/* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -45,4 +45,4 @@ public int AsInt } } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.StreamingPublisher/StreamingPublisher.cs b/src/Samples/Adaptive.Aeron.Samples.StreamingPublisher/StreamingPublisher.cs index e9e03519..01001fb9 100644 --- a/src/Samples/Adaptive.Aeron.Samples.StreamingPublisher/StreamingPublisher.cs +++ b/src/Samples/Adaptive.Aeron.Samples.StreamingPublisher/StreamingPublisher.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,16 +19,15 @@ using Adaptive.Aeron.Samples.Common; using Adaptive.Agrona; using Adaptive.Agrona.Concurrent; -using Adaptive.Agrona.Util; namespace Adaptive.Aeron.Samples.StreamingPublisher { /// /// Publisher that sends as fast as possible a given number of messages at a given length. /// - public class StreamingPublisher + public static class StreamingPublisher { - private static readonly int StreamID = SampleConfiguration.STREAM_ID; + private static readonly int StreamId = SampleConfiguration.STREAM_ID; private static readonly string Channel = SampleConfiguration.CHANNEL; private static readonly int MessageLength = SampleConfiguration.MESSAGE_LENGTH; private static readonly long NumberOfMessages = SampleConfiguration.NUMBER_OF_MESSAGES; @@ -36,9 +35,9 @@ public class StreamingPublisher private static readonly bool RandomMessageLength = SampleConfiguration.RANDOM_MESSAGE_LENGTH; private static readonly IIdleStrategy OfferIdleStrategy = new BusySpinIdleStrategy(); private static readonly IntSupplier LengthGenerator = new IntSupplier(RandomMessageLength, MessageLength); - private static Thread _reporterThread; + private static Thread s_reporterThread; - private static volatile bool _printingActive = true; + private static volatile bool s_printingActive = true; public static void Main() { @@ -52,22 +51,24 @@ public static void Main() var context = new Aeron.Context(); var reporter = new RateReporter(1000, PrintRate); - _reporterThread = new Thread(_ => reporter.Run()); - _reporterThread.Start(); + s_reporterThread = new Thread(_ => reporter.Run()); + s_reporterThread.Start(); // Connect to media driver and add publication to send messages on the configured channel and stream ID. // The Aeron and Publication classes implement AutoCloseable, and will automatically // clean up resources when this try block is finished. using (var aeron = Aeron.Connect(context)) - using (var publication = aeron.AddPublication(Channel, StreamID)) + using (var publication = aeron.AddPublication(Channel, StreamId)) using (var byteBuffer = BufferUtil.AllocateDirectAligned(MessageLength, BitUtil.CACHE_LINE_LENGTH)) using (var buffer = new UnsafeBuffer(byteBuffer)) { do { - _printingActive = true; + s_printingActive = true; - Console.WriteLine($"Streaming {NumberOfMessages} messages of {(RandomMessageLength ? " random" : "")} size {MessageLength} bytes to {Channel} on stream Id {StreamID}"); + Console.WriteLine( + $"Streaming {NumberOfMessages} messages of {(RandomMessageLength ? " random" : "")} size {MessageLength} bytes to {Channel} on stream Id {StreamId}" + ); long backPressureCount = 0; @@ -89,30 +90,34 @@ public static void Main() reporter.OnMessage(1, length); } - Console.WriteLine("Done streaming. Back pressure ratio " + (double) backPressureCount/NumberOfMessages); + Console.WriteLine( + "Done streaming. Back pressure ratio " + (double)backPressureCount / NumberOfMessages + ); if (0 < LingerTimeoutMs) { Console.WriteLine("Lingering for " + LingerTimeoutMs + " milliseconds..."); - Thread.Sleep((int) LingerTimeoutMs); + Thread.Sleep((int)LingerTimeoutMs); } - _printingActive = false; + s_printingActive = false; Console.WriteLine("Execute again?"); } while (Console.ReadLine() == "y"); } reporter.Halt(); - _reporterThread.Join(); + s_reporterThread.Join(); } public static void PrintRate(double messagesPerSec, double bytesPerSec, long totalFragments, long totalBytes) { - if (_printingActive) + if (s_printingActive) { - Console.WriteLine($"{messagesPerSec:g02} msgs/sec, {bytesPerSec:g02} bytes/sec, totals {totalFragments:D} messages {totalBytes/(1024*1024):D} MB, GC0 {GC.CollectionCount(0)}, GC1 {GC.CollectionCount(1)}, GC2 {GC.CollectionCount(2)}"); + Console.WriteLine( + $"{messagesPerSec:g02} msgs/sec, {bytesPerSec:g02} bytes/sec, totals {totalFragments:D} messages {totalBytes / (1024 * 1024):D} MB, GC0 {GC.CollectionCount(0)}, GC1 {GC.CollectionCount(1)}, GC2 {GC.CollectionCount(2)}" + ); } } } -} \ No newline at end of file +} diff --git a/src/Samples/Adaptive.Aeron.Samples.Throughput/Adaptive.Aeron.Samples.Throughput.licenseheader b/src/Samples/Adaptive.Aeron.Samples.Throughput/Adaptive.Aeron.Samples.Throughput.licenseheader index 879fbeb4..83d83cf7 100644 --- a/src/Samples/Adaptive.Aeron.Samples.Throughput/Adaptive.Aeron.Samples.Throughput.licenseheader +++ b/src/Samples/Adaptive.Aeron.Samples.Throughput/Adaptive.Aeron.Samples.Throughput.licenseheader @@ -1,7 +1,7 @@ extensions: designer.cs generated.cs extensions: .cs .cpp .h /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/Samples/Adaptive.Aeron.Samples.Throughput/Throughput.cs b/src/Samples/Adaptive.Aeron.Samples.Throughput/Throughput.cs index 95e76489..36902ea9 100644 --- a/src/Samples/Adaptive.Aeron.Samples.Throughput/Throughput.cs +++ b/src/Samples/Adaptive.Aeron.Samples.Throughput/Throughput.cs @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2017 Adaptive Financial Consulting Ltd + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,10 +22,10 @@ namespace Adaptive.Aeron.Samples.Throughput { - public class Throughput + public static class Throughput { private static readonly string Channel = SampleConfiguration.CHANNEL; - private static readonly int StreamID = SampleConfiguration.STREAM_ID; + private static readonly int StreamId = SampleConfiguration.STREAM_ID; private static readonly int MessageLength = SampleConfiguration.MESSAGE_LENGTH; private static readonly long NumberOfMessages = SampleConfiguration.NUMBER_OF_MESSAGES; private static readonly long LingerTimeoutMs = SampleConfiguration.LINGER_TIMEOUT_MS; @@ -33,13 +33,12 @@ public class Throughput private static readonly BusySpinIdleStrategy OfferIdleStrategy = new BusySpinIdleStrategy(); - private static volatile bool _printingActive = true; + private static volatile bool s_printingActive = true; public static void Main() { ComputerSpecifications.Dump(); - var reporter = new RateReporter(1000, PrintRate); var rateReporterHandler = SamplesUtil.RateReporterHandler(reporter); var context = new Aeron.Context(); @@ -47,11 +46,13 @@ public static void Main() var running = new AtomicBoolean(true); var reportThread = new Thread(reporter.Run); - var subscribeThread = new Thread(subscription => SamplesUtil.SubscriberLoop(rateReporterHandler, FragmentCountLimit, running)((Subscription) subscription)); + var subscribeThread = new Thread(subscription => + SamplesUtil.SubscriberLoop(rateReporterHandler, FragmentCountLimit, running)((Subscription)subscription) + ); using (var aeron = Aeron.Connect(context)) - using (var publication = aeron.AddPublication(Channel, StreamID)) - using (var subscription = aeron.AddSubscription(Channel, StreamID)) + using (var publication = aeron.AddPublication(Channel, StreamId)) + using (var subscription = aeron.AddSubscription(Channel, StreamId)) using (var byteBuffer = BufferUtil.AllocateDirectAligned(MessageLength, BitUtil.CACHE_LINE_LENGTH)) using (var buffer = new UnsafeBuffer(byteBuffer)) { @@ -60,9 +61,15 @@ public static void Main() do { - Console.WriteLine("Streaming {0:G} messages of size {1:G} bytes to {2} on stream Id {3}", NumberOfMessages, MessageLength, Channel, StreamID); + Console.WriteLine( + "Streaming {0:G} messages of size {1:G} bytes to {2} on stream Id {3}", + NumberOfMessages, + MessageLength, + Channel, + StreamId + ); - _printingActive = true; + s_printingActive = true; long backPressureCount = 0; for (long i = 0; i < NumberOfMessages; i++) @@ -77,7 +84,9 @@ public static void Main() } } - Console.WriteLine("Done streaming. backPressureRatio=" + (double)backPressureCount / NumberOfMessages); + Console.WriteLine( + "Done streaming. backPressureRatio=" + (double)backPressureCount / NumberOfMessages + ); if (0 < LingerTimeoutMs) { @@ -85,7 +94,7 @@ public static void Main() Thread.Sleep((int)LingerTimeoutMs); } - _printingActive = false; + s_printingActive = false; } while (Console.ReadLine() != "x"); reporter.Halt(); @@ -100,10 +109,16 @@ public static void Main() public static void PrintRate(double messagesPerSec, double bytesPerSec, long totalFragments, long totalBytes) { - if (_printingActive) + if (s_printingActive) { - Console.WriteLine("{0:#,0} msgs/sec, {1} bytes/sec, totals {2} messages {3} MB", messagesPerSec, bytesPerSec, totalFragments, totalBytes/(1024*1024)); + Console.WriteLine( + "{0:#,0} msgs/sec, {1} bytes/sec, totals {2} messages {3} MB", + messagesPerSec, + bytesPerSec, + totalFragments, + totalBytes / (1024 * 1024) + ); } } } -} \ No newline at end of file +} diff --git a/src/Weavers/Unsealer.Fody/ModuleWeaver.cs b/src/Weavers/Unsealer.Fody/ModuleWeaver.cs index 0207f8c9..15447b0d 100644 --- a/src/Weavers/Unsealer.Fody/ModuleWeaver.cs +++ b/src/Weavers/Unsealer.Fody/ModuleWeaver.cs @@ -1,3 +1,19 @@ +/* + * Copyright 2014 - 2026 Adaptive Financial Consulting Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + using System.Collections.Generic; using System.Linq; using Fody;