protected async Task DumpSubspace(IFdbReadOnlyTransaction tr, ISubspaceLocation location) { var subspace = await location.Resolve(tr); if (subspace != null) { await TestHelpers.DumpSubspace(tr, subspace); } else { Log($"# Location {location} not found!"); } }
public static async Task DumpLocation(IFdbDatabase db, ISubspaceLocation path, CancellationToken ct) { Assert.That(db, Is.Not.Null); using (var tr = await db.BeginTransactionAsync(ct)) { tr.StopLogging(); var subspace = await path.Resolve(tr); if (subspace == null) { FdbTest.Log($"Dumping content of subspace {path}:"); FdbTest.Log("> EMPTY!"); return; } await DumpSubspace(tr, subspace).ConfigureAwait(false); if (path.Prefix.Count == 0) { var names = await db.DirectoryLayer.TryListAsync(tr, path.Path); if (names != null) { foreach (var name in names) { var child = await db.DirectoryLayer.TryOpenAsync(tr, path.Path[name]); if (child != null) { await DumpSubspace(tr, child); } } } } } }