// Copyright Epic Games, Inc. All Rights Reserved. using System.Collections.Generic; using System.Threading.Tasks; using EpicGames.Core; using EpicGames.Serialization; namespace EpicGames.Perforce.Managed { /// /// Interface for /// public abstract class StreamTreeReader { /// /// Reads a node of the tree /// /// /// public abstract Task ReadAsync(StreamTreeRef treeRef); } /// /// Implements a using a contiguous block of memory /// public class StreamTreeMemoryReader : StreamTreeReader { /// /// Map from hash to encoded CB tree object /// readonly Dictionary _hashToTree; /// /// Constructor /// /// public StreamTreeMemoryReader(Dictionary hashToTree) { _hashToTree = hashToTree; } /// public override Task ReadAsync(StreamTreeRef treeRef) { return Task.FromResult(new StreamTree(treeRef.Path, _hashToTree[treeRef.Hash])); } } }