Zum Inhalt

NavaidQueryHandler.Lookup

Eigenschaft Wert
Modul NavDb
Klasse NavaidQueryHandler
Typ Function
Sichtbarkeit Public
Datei NavDb/NavaidQueryHandler.vb

Beschreibung

Sucht alle Navaids (VOR, NDB, etc.) anhand eines Identifiers (case-insensitive) im vorgeladenen Speicher-Dictionary. Mehrere Navaids koennen denselben Identifier teilen (z.B. kolokiertes VOR und NDB). Das Ergebnis ist ein NavaidResult mit Found=True und einer schreibgeschuetzten Liste der Treffer, oder Found=False mit einer leeren Liste.

Signatur

Public Function Lookup(identifier As String) As NavaidResult

Parameter

Name Typ Beschreibung Standard
identifier String Navaid-Kennung (z.B. "MUN", "FFM"), case-insensitive

Rückgabewert

Typ Beschreibung
NavaidResult Ergebnisobjekt mit Found-Flag und schreibgeschuetzter Liste aller passenden NavaidRecords

Ablaufdiagramm

flowchart TD
    A[Start] --> B[identifier trimmen und ToUpperInvariant]
    B --> C{_NavaidByIdent.TryGetValue?}
    C -- Ja --> D["Return NavaidResult(True, list.AsReadOnly)"]
    C -- Nein --> E["Return NavaidResult(False, leere Liste)"]

Aufgerufen von

Modul Sub/Function Kontext
NavDb NavDbActor.Receive(Of LookupNavaid) Beantwortet Navaid-Abfragen vom Akka-Nachrichtensystem
NavDb NavDbActor (Kombi-Lookup) Navaid-Suche im Rahmen einer kombinierten Navaid/Waypoint-Abfrage

Ruft auf

Modul Sub/Function Kontext
System.Collections.Generic Dictionary.TryGetValue O(1)-Lookup im vorgeladenen _NavaidByIdent-Dictionary
System.Collections.Generic List.AsReadOnly Erzeugt schreibgeschuetzte Kopie der Trefferliste

Beispiel

Dim handler As New NavaidQueryHandler("C:\NavData\ASTNAV.mdb", "C:\NavData\Userdata.mdb")
handler.PreloadAll()

Dim result As NavaidResult = handler.Lookup("MUN")
If result.Found Then
    For Each nav As NavaidRecord In result.Navaids
        Console.WriteLine($"{nav.Identifier}: Type={nav.NavaidType}, Freq={nav.Frequency}")
    Next
End If

Änderungshistorie

Version Datum Änderung
1.0 2026-04-16 Erstdokumentation