< Summary

Information
Class: Trailblazer.Pathing.NavigationExplicitConnectionIndex
Assembly: Trailblazer
File(s): /home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Graph/NavigationExplicitConnectionIndex.cs
Line coverage
100%
Covered lines: 297
Uncovered lines: 0
Coverable lines: 297
Total lines: 465
Line coverage: 100%
Branch coverage
100%
Covered branches: 80
Total branches: 80
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%11100%
.ctor(...)100%11100%
get_RetainedBytes()100%11100%
get_PersistentPageCount()100%11100%
get_PayloadRetainedBytes()100%11100%
get_PayloadPersistentPageCount()100%11100%
TryGet(...)100%44100%
GetSourceOwnerCount(...)100%22100%
GetSourceOwnerAt(...)100%11100%
GetActiveIncidentEdgeCount(...)100%1616100%
GetIncidentOwnerEnumerator(...)100%11100%
GetIncidentOwnerRow(...)100%44100%
GetEndpointOwnerRow(...)100%44100%
GetIncidentAddressCount(...)100%22100%
GetIncidentAddressAt(...)100%11100%
SetOwner(...)100%1010100%
RemoveOwner(...)100%66100%
SetIncidentRow(...)100%1010100%
SetEndpointRow(...)100%1010100%
CompareOwners(...)100%88100%
CompareOwners(...)100%11100%
TryGetRecord(...)100%44100%

File(s)

/home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Graph/NavigationExplicitConnectionIndex.cs

#LineLine coverage
 1//=======================================================================
 2// NavigationExplicitConnectionIndex.cs
 3//=======================================================================
 4// MIT License, Copyright (c) 2024-present David Oravsky (mrdav30)
 5// See LICENSE file in the project root for full license information.
 6//=======================================================================
 7
 8using System;
 9using GridForge.Spatial;
 10using SwiftCollections;
 11
 12namespace Trailblazer.Pathing;
 13
 14/// <summary>Stores persistent explicit owners and their exact address incidence.</summary>
 15internal sealed class NavigationExplicitConnectionIndex
 16{
 117    internal static readonly NavigationExplicitConnectionIndex Empty = new(
 118        PersistentStringMap<PersistentStringMap<NavigationExplicitConnectionRecord>>.Empty,
 119        PersistentStringMap<PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>>>.Empty,
 120        PersistentStringMap<PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>>>.Empty,
 121        ownerMapBytes: 0,
 122        incidentMapBytes: 0,
 123        endpointMapBytes: 0,
 124        recordBytes: 0,
 125        incidentArrayBytes: 0,
 126        endpointArrayBytes: 0,
 127        ownerMapPages: 0,
 128        incidentMapPages: 0,
 129        endpointMapPages: 0,
 130        recordPages: 0,
 131        incidentArrayPages: 0,
 132        endpointArrayPages: 0);
 33
 34    private readonly PersistentStringMap<PersistentStringMap<NavigationExplicitConnectionRecord>> _owners;
 35    private readonly PersistentStringMap<PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>>>
 36    private readonly PersistentStringMap<PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>>>
 37    private readonly long _ownerMapBytes;
 38    private readonly long _incidentMapBytes;
 39    private readonly long _endpointMapBytes;
 40    private readonly long _recordBytes;
 41    private readonly long _incidentArrayBytes;
 42    private readonly long _endpointArrayBytes;
 43    private readonly int _ownerMapPages;
 44    private readonly int _incidentMapPages;
 45    private readonly int _endpointMapPages;
 46    private readonly int _recordPages;
 47    private readonly int _incidentArrayPages;
 48    private readonly int _endpointArrayPages;
 49
 1372650    private NavigationExplicitConnectionIndex(
 1372651        PersistentStringMap<PersistentStringMap<NavigationExplicitConnectionRecord>> owners,
 1372652        PersistentStringMap<PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>>> incident,
 1372653        PersistentStringMap<PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>>> endpoints,
 1372654        long ownerMapBytes,
 1372655        long incidentMapBytes,
 1372656        long endpointMapBytes,
 1372657        long recordBytes,
 1372658        long incidentArrayBytes,
 1372659        long endpointArrayBytes,
 1372660        int ownerMapPages,
 1372661        int incidentMapPages,
 1372662        int endpointMapPages,
 1372663        int recordPages,
 1372664        int incidentArrayPages,
 1372665        int endpointArrayPages)
 66    {
 1372667        _owners = owners;
 1372668        _incident = incident;
 1372669        _endpoints = endpoints;
 1372670        _ownerMapBytes = ownerMapBytes;
 1372671        _incidentMapBytes = incidentMapBytes;
 1372672        _endpointMapBytes = endpointMapBytes;
 1372673        _recordBytes = recordBytes;
 1372674        _incidentArrayBytes = incidentArrayBytes;
 1372675        _endpointArrayBytes = endpointArrayBytes;
 1372676        _ownerMapPages = ownerMapPages;
 1372677        _incidentMapPages = incidentMapPages;
 1372678        _endpointMapPages = endpointMapPages;
 1372679        _recordPages = recordPages;
 1372680        _incidentArrayPages = incidentArrayPages;
 1372681        _endpointArrayPages = endpointArrayPages;
 1372682    }
 83
 12966284    internal long RetainedBytes => checked(
 12966285        112L
 12966286        + _owners.RetainedBytes
 12966287        + _incident.RetainedBytes
 12966288        + _endpoints.RetainedBytes
 12966289        + _ownerMapBytes
 12966290        + _incidentMapBytes
 12966291        + _endpointMapBytes
 12966292        + _recordBytes
 12966293        + _incidentArrayBytes
 12966294        + _endpointArrayBytes);
 95
 13038396    internal int PersistentPageCount => checked(
 13038397        3
 13038398        + _owners.PersistentNodeCount
 13038399        + _incident.PersistentNodeCount
 130383100        + _endpoints.PersistentNodeCount
 130383101        + _ownerMapPages
 130383102        + _incidentMapPages
 130383103        + _endpointMapPages
 130383104        + _recordPages
 130383105        + _incidentArrayPages
 130383106        + _endpointArrayPages);
 107
 125634108    internal long PayloadRetainedBytes => checked(
 125634109        _recordBytes + _incidentArrayBytes + _endpointArrayBytes);
 110
 126370111    internal int PayloadPersistentPageCount => checked(
 126370112        _recordPages + _incidentArrayPages + _endpointArrayPages);
 113
 114    internal bool TryGet(
 115        NavigationConnectionOwnerKey owner,
 116        out NavigationExplicitConnectionRecord record)
 117    {
 276046118        if (_owners.TryGetValue(
 276046119                owner.MapId,
 276046120                out PersistentStringMap<NavigationExplicitConnectionRecord> map)
 276046121            && map.TryGetValue(owner.ConnectionId, out record!))
 122        {
 241443123            return true;
 124        }
 34603125        record = null!;
 34603126        return false;
 127    }
 128
 129    internal int GetSourceOwnerCount(string mapId) =>
 1436130        _owners.TryGetValue(mapId, out PersistentStringMap<NavigationExplicitConnectionRecord> map)
 1436131            ? map.Count
 1436132            : 0;
 133
 134    internal NavigationExplicitConnectionRecord GetSourceOwnerAt(string mapId, int ordinal)
 135    {
 93136        _owners.TryGetValue(mapId, out PersistentStringMap<NavigationExplicitConnectionRecord> map);
 93137        return map.GetValueAt(ordinal);
 138    }
 139
 140    internal int GetActiveIncidentEdgeCount(string mapId)
 141    {
 14640142        int count = 0;
 14640143        if (_owners.TryGetValue(
 14640144                mapId,
 14640145                out PersistentStringMap<NavigationExplicitConnectionRecord> owners))
 146        {
 836464147            for (int i = 0; i < owners.Count; i++)
 148            {
 417808149                if (owners.GetValueAt(i).IsActive)
 417807150                    count = checked(count + 1);
 151            }
 152        }
 14640153        if (!_endpoints.TryGetValue(
 14640154                mapId,
 14640155                out PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>> addresses))
 156        {
 14208157            return count;
 158        }
 837328159        for (int i = 0; i < addresses.Count; i++)
 160        {
 418232161            NavigationPagedSequence<NavigationConnectionOwnerKey>.Enumerator endpoints =
 418232162                addresses.GetValueAt(i).GetEnumerator();
 1253848163            while (endpoints.MoveNext())
 164            {
 835616165                NavigationConnectionOwnerKey owner = endpoints.Current;
 835616166                if (string.Equals(owner.MapId, mapId, StringComparison.Ordinal))
 167                    continue;
 11168                bool found = TryGet(owner, out NavigationExplicitConnectionRecord record);
 169                System.Diagnostics.Debug.Assert(
 170                    found
 171                    && string.Equals(
 172                        record.Destination.MapId,
 173                        mapId,
 174                        StringComparison.Ordinal),
 175                    "Published endpoint rows retain their exact owner and destination.");
 11176                if (!record.IsActive)
 177                    continue;
 10178                count = checked(count + 1);
 179            }
 180        }
 432181        return count;
 182    }
 183
 184    internal NavigationPagedSequence<NavigationConnectionOwnerKey>.Enumerator
 185        GetIncidentOwnerEnumerator(NavigationCellAddress address) =>
 17238186            GetIncidentOwnerRow(address).GetEnumerator();
 187
 188    internal NavigationPagedSequence<NavigationConnectionOwnerKey> GetIncidentOwnerRow(
 189        NavigationCellAddress address)
 190    {
 40228191        if (_incident.TryGetValue(
 40228192                address.MapId,
 40228193                out PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>> map)
 40228194            && map.TryGetValue(
 40228195                address.Index,
 40228196                out NavigationPagedSequence<NavigationConnectionOwnerKey> owners))
 197        {
 935198            return owners;
 199        }
 39293200        return NavigationPagedSequence<NavigationConnectionOwnerKey>.Empty;
 201    }
 202
 203    internal NavigationPagedSequence<NavigationConnectionOwnerKey> GetEndpointOwnerRow(
 204        NavigationCellAddress address)
 205    {
 539008206        if (_endpoints.TryGetValue(
 539008207                address.MapId,
 539008208                out PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>> map)
 539008209            && map.TryGetValue(
 539008210                address.Index,
 539008211                out NavigationPagedSequence<NavigationConnectionOwnerKey> owners))
 212        {
 123904213            return owners;
 214        }
 415104215        return NavigationPagedSequence<NavigationConnectionOwnerKey>.Empty;
 216    }
 217
 218    internal int GetIncidentAddressCount(string mapId) =>
 1507219        _incident.TryGetValue(
 1507220            mapId,
 1507221            out PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>> addresses)
 1507222                ? addresses.Count
 1507223                : 0;
 224
 225    internal NavigationCellAddress GetIncidentAddressAt(string mapId, int ordinal)
 226    {
 134227        _incident.TryGetValue(
 134228            mapId,
 134229            out PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>> addresses);
 134230        return new NavigationCellAddress(mapId, addresses.GetKeyAt(ordinal));
 231    }
 232
 233    internal NavigationExplicitConnectionIndex SetOwner(
 234        NavigationExplicitConnectionRecord record,
 235        out int copiedNodes)
 236    {
 4557237        copiedNodes = 0;
 4557238        PersistentStringMap<NavigationExplicitConnectionRecord> ownerMap =
 4557239            _owners.TryGetValue(
 4557240                record.Owner.MapId,
 4557241                out PersistentStringMap<NavigationExplicitConnectionRecord> existing)
 4557242                ? existing
 4557243                : PersistentStringMap<NavigationExplicitConnectionRecord>.Empty;
 4557244        long ownerMapBytes = _ownerMapBytes - (existing?.RetainedBytes ?? 0);
 4557245        int ownerMapPages = _ownerMapPages - (existing?.PersistentNodeCount ?? 0);
 4557246        ownerMap.TryGetValue(record.Owner.ConnectionId, out NavigationExplicitConnectionRecord prior);
 4557247        ownerMap = ownerMap.Set(record.Owner.ConnectionId, record, out int copied);
 4557248        copiedNodes = checked(copiedNodes + copied);
 4557249        ownerMapBytes = checked(ownerMapBytes + ownerMap.RetainedBytes);
 4557250        ownerMapPages = checked(ownerMapPages + ownerMap.PersistentNodeCount);
 4557251        PersistentStringMap<PersistentStringMap<NavigationExplicitConnectionRecord>> owners =
 4557252            _owners.Set(record.Owner.MapId, ownerMap, out copied);
 4557253        copiedNodes = checked(copiedNodes + copied);
 4557254        return new NavigationExplicitConnectionIndex(
 4557255            owners,
 4557256            _incident,
 4557257            _endpoints,
 4557258            ownerMapBytes,
 4557259            _incidentMapBytes,
 4557260            _endpointMapBytes,
 4557261            checked(_recordBytes - (prior?.RetainedBytes ?? 0) + record.RetainedBytes),
 4557262            _incidentArrayBytes,
 4557263            _endpointArrayBytes,
 4557264            ownerMapPages,
 4557265            _incidentMapPages,
 4557266            _endpointMapPages,
 4557267            checked(_recordPages - (prior?.PersistentPageCount ?? 0) + record.PersistentPageCount),
 4557268            _incidentArrayPages,
 4557269            _endpointArrayPages);
 270    }
 271
 272    internal NavigationExplicitConnectionIndex RemoveOwner(
 273        NavigationConnectionOwnerKey owner,
 274        out bool removed,
 275        out int copiedNodes)
 276    {
 18277        copiedNodes = 0;
 18278        if (!_owners.TryGetValue(
 18279                owner.MapId,
 18280                out PersistentStringMap<NavigationExplicitConnectionRecord> ownerMap)
 18281            || !ownerMap.TryGetValue(owner.ConnectionId, out NavigationExplicitConnectionRecord prior))
 282        {
 4283            removed = false;
 4284            return this;
 285        }
 14286        removed = true;
 14287        long ownerMapBytes = _ownerMapBytes - ownerMap.RetainedBytes;
 14288        int ownerMapPages = _ownerMapPages - ownerMap.PersistentNodeCount;
 14289        ownerMap = ownerMap.Remove(owner.ConnectionId, out _, out int copied);
 14290        copiedNodes = checked(copiedNodes + copied);
 291        PersistentStringMap<PersistentStringMap<NavigationExplicitConnectionRecord>> owners;
 14292        if (ownerMap.Count == 0)
 12293            owners = _owners.Remove(owner.MapId, out _, out copied);
 294        else
 295        {
 2296            ownerMapBytes = checked(ownerMapBytes + ownerMap.RetainedBytes);
 2297            ownerMapPages = checked(ownerMapPages + ownerMap.PersistentNodeCount);
 2298            owners = _owners.Set(owner.MapId, ownerMap, out copied);
 299        }
 14300        copiedNodes = checked(copiedNodes + copied);
 14301        return new NavigationExplicitConnectionIndex(
 14302            owners,
 14303            _incident,
 14304            _endpoints,
 14305            ownerMapBytes,
 14306            _incidentMapBytes,
 14307            _endpointMapBytes,
 14308            checked(_recordBytes - prior.RetainedBytes),
 14309            _incidentArrayBytes,
 14310            _endpointArrayBytes,
 14311            ownerMapPages,
 14312            _incidentMapPages,
 14313            _endpointMapPages,
 14314            checked(_recordPages - prior.PersistentPageCount),
 14315            _incidentArrayPages,
 14316            _endpointArrayPages);
 317    }
 318
 319    internal NavigationExplicitConnectionIndex SetIncidentRow(
 320        NavigationCellAddress address,
 321        NavigationPagedSequence<NavigationConnectionOwnerKey> prior,
 322        NavigationPagedSequence<NavigationConnectionOwnerKey> next,
 323        out int copiedNodes)
 324    {
 4578325        copiedNodes = 0;
 4578326        bool hadMap = _incident.TryGetValue(
 4578327            address.MapId,
 4578328            out PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>> map);
 4578329        map ??= PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>>.Empty;
 4578330        long incidentMapBytes = _incidentMapBytes - (hadMap ? map.RetainedBytes : 0);
 4578331        int incidentMapPages = _incidentMapPages - (hadMap ? map.PersistentNodeCount : 0);
 332        int copied;
 4578333        if (next.Count == 0)
 46334            map = map.Remove(address.Index, out _, out copied);
 335        else
 4532336            map = map.Set(address.Index, next, out copied);
 4578337        copiedNodes = checked(copiedNodes + copied);
 338        PersistentStringMap<PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>>> incident;
 4578339        if (map.Count == 0)
 37340            incident = _incident.Remove(address.MapId, out _, out copied);
 341        else
 342        {
 4541343            incidentMapBytes = checked(incidentMapBytes + map.RetainedBytes);
 4541344            incidentMapPages = checked(incidentMapPages + map.PersistentNodeCount);
 4541345            incident = _incident.Set(address.MapId, map, out copied);
 346        }
 4578347        copiedNodes = checked(copiedNodes + copied);
 4578348        return new NavigationExplicitConnectionIndex(
 4578349            _owners,
 4578350            incident,
 4578351            _endpoints,
 4578352            _ownerMapBytes,
 4578353            incidentMapBytes,
 4578354            _endpointMapBytes,
 4578355            _recordBytes,
 4578356            checked(
 4578357                _incidentArrayBytes
 4578358                - prior.RetainedBytes
 4578359                + next.RetainedBytes),
 4578360            _endpointArrayBytes,
 4578361            _ownerMapPages,
 4578362            incidentMapPages,
 4578363            _endpointMapPages,
 4578364            _recordPages,
 4578365            checked(
 4578366                _incidentArrayPages
 4578367                - prior.PersistentPageCount
 4578368                + next.PersistentPageCount),
 4578369            _endpointArrayPages);
 370    }
 371
 372    internal NavigationExplicitConnectionIndex SetEndpointRow(
 373        NavigationCellAddress address,
 374        NavigationPagedSequence<NavigationConnectionOwnerKey> prior,
 375        NavigationPagedSequence<NavigationConnectionOwnerKey> next,
 376        out int copiedNodes)
 377    {
 4576378        copiedNodes = 0;
 4576379        bool hadMap = _endpoints.TryGetValue(
 4576380            address.MapId,
 4576381            out PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>> map);
 4576382        map ??= PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>>.Empty;
 4576383        long endpointMapBytes = _endpointMapBytes - (hadMap ? map.RetainedBytes : 0);
 4576384        int endpointMapPages = _endpointMapPages - (hadMap ? map.PersistentNodeCount : 0);
 385        int copied;
 4576386        if (next.Count == 0)
 27387            map = map.Remove(address.Index, out _, out copied);
 388        else
 4549389            map = map.Set(address.Index, next, out copied);
 4576390        copiedNodes = checked(copiedNodes + copied);
 391        PersistentStringMap<PersistentVoxelIndexMap<NavigationPagedSequence<NavigationConnectionOwnerKey>>> endpoints;
 4576392        if (map.Count == 0)
 18393            endpoints = _endpoints.Remove(address.MapId, out _, out copied);
 394        else
 395        {
 4558396            endpointMapBytes = checked(endpointMapBytes + map.RetainedBytes);
 4558397            endpointMapPages = checked(endpointMapPages + map.PersistentNodeCount);
 4558398            endpoints = _endpoints.Set(address.MapId, map, out copied);
 399        }
 4576400        copiedNodes = checked(copiedNodes + copied);
 4576401        return new NavigationExplicitConnectionIndex(
 4576402            _owners,
 4576403            _incident,
 4576404            endpoints,
 4576405            _ownerMapBytes,
 4576406            _incidentMapBytes,
 4576407            endpointMapBytes,
 4576408            _recordBytes,
 4576409            _incidentArrayBytes,
 4576410            checked(
 4576411                _endpointArrayBytes
 4576412                - prior.RetainedBytes
 4576413                + next.RetainedBytes),
 4576414            _ownerMapPages,
 4576415            _incidentMapPages,
 4576416            endpointMapPages,
 4576417            _recordPages,
 4576418            _incidentArrayPages,
 4576419            checked(
 4576420                _endpointArrayPages
 4576421                - prior.PersistentPageCount
 4576422                + next.PersistentPageCount));
 423    }
 424
 425    private static int CompareOwners(
 426        NavigationConnectionOwnerKey left,
 427        NavigationConnectionOwnerKey right,
 428        PersistentStringMap<PersistentStringMap<NavigationExplicitConnectionRecord>> owners)
 429    {
 37688430        if (!TryGetRecord(owners, left, out NavigationExplicitConnectionRecord leftRecord)
 37688431            || !TryGetRecord(owners, right, out NavigationExplicitConnectionRecord rightRecord))
 432        {
 1433            return left.CompareTo(right);
 434        }
 37687435        int comparison = leftRecord.Source.CompareTo(rightRecord.Source);
 37687436        if (comparison != 0)
 37059437            return comparison;
 628438        comparison = leftRecord.Destination.CompareTo(rightRecord.Destination);
 628439        if (comparison != 0)
 10440            return comparison;
 618441        comparison = string.CompareOrdinal(left.ConnectionId, right.ConnectionId);
 618442        return comparison;
 443    }
 444
 445    internal int CompareOwners(
 446        NavigationConnectionOwnerKey left,
 37688447        NavigationConnectionOwnerKey right) => CompareOwners(left, right, _owners);
 448
 449    private static bool TryGetRecord(
 450        PersistentStringMap<PersistentStringMap<NavigationExplicitConnectionRecord>> owners,
 451        NavigationConnectionOwnerKey owner,
 452        out NavigationExplicitConnectionRecord record)
 453    {
 75375454        if (owners.TryGetValue(
 75375455                owner.MapId,
 75375456                out PersistentStringMap<NavigationExplicitConnectionRecord> map)
 75375457            && map.TryGetValue(owner.ConnectionId, out record!))
 458        {
 75374459            return true;
 460        }
 1461        record = null!;
 1462        return false;
 463    }
 464
 465}

Methods/Properties

.cctor()
.ctor(Trailblazer.Pathing.PersistentStringMap`1<Trailblazer.Pathing.PersistentStringMap`1<Trailblazer.Pathing.NavigationExplicitConnectionRecord>>,Trailblazer.Pathing.PersistentStringMap`1<Trailblazer.Pathing.PersistentVoxelIndexMap`1<Trailblazer.Pathing.NavigationPagedSequence`1<Trailblazer.Pathing.NavigationConnectionOwnerKey>>>,Trailblazer.Pathing.PersistentStringMap`1<Trailblazer.Pathing.PersistentVoxelIndexMap`1<Trailblazer.Pathing.NavigationPagedSequence`1<Trailblazer.Pathing.NavigationConnectionOwnerKey>>>,System.Int64,System.Int64,System.Int64,System.Int64,System.Int64,System.Int64,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)
get_RetainedBytes()
get_PersistentPageCount()
get_PayloadRetainedBytes()
get_PayloadPersistentPageCount()
TryGet(Trailblazer.Pathing.NavigationConnectionOwnerKey,Trailblazer.Pathing.NavigationExplicitConnectionRecord&)
GetSourceOwnerCount(System.String)
GetSourceOwnerAt(System.String,System.Int32)
GetActiveIncidentEdgeCount(System.String)
GetIncidentOwnerEnumerator(Trailblazer.Pathing.NavigationCellAddress)
GetIncidentOwnerRow(Trailblazer.Pathing.NavigationCellAddress)
GetEndpointOwnerRow(Trailblazer.Pathing.NavigationCellAddress)
GetIncidentAddressCount(System.String)
GetIncidentAddressAt(System.String,System.Int32)
SetOwner(Trailblazer.Pathing.NavigationExplicitConnectionRecord,System.Int32&)
RemoveOwner(Trailblazer.Pathing.NavigationConnectionOwnerKey,System.Boolean&,System.Int32&)
SetIncidentRow(Trailblazer.Pathing.NavigationCellAddress,Trailblazer.Pathing.NavigationPagedSequence`1<Trailblazer.Pathing.NavigationConnectionOwnerKey>,Trailblazer.Pathing.NavigationPagedSequence`1<Trailblazer.Pathing.NavigationConnectionOwnerKey>,System.Int32&)
SetEndpointRow(Trailblazer.Pathing.NavigationCellAddress,Trailblazer.Pathing.NavigationPagedSequence`1<Trailblazer.Pathing.NavigationConnectionOwnerKey>,Trailblazer.Pathing.NavigationPagedSequence`1<Trailblazer.Pathing.NavigationConnectionOwnerKey>,System.Int32&)
CompareOwners(Trailblazer.Pathing.NavigationConnectionOwnerKey,Trailblazer.Pathing.NavigationConnectionOwnerKey,Trailblazer.Pathing.PersistentStringMap`1<Trailblazer.Pathing.PersistentStringMap`1<Trailblazer.Pathing.NavigationExplicitConnectionRecord>>)
CompareOwners(Trailblazer.Pathing.NavigationConnectionOwnerKey,Trailblazer.Pathing.NavigationConnectionOwnerKey)
TryGetRecord(Trailblazer.Pathing.PersistentStringMap`1<Trailblazer.Pathing.PersistentStringMap`1<Trailblazer.Pathing.NavigationExplicitConnectionRecord>>,Trailblazer.Pathing.NavigationConnectionOwnerKey,Trailblazer.Pathing.NavigationExplicitConnectionRecord&)