// 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 @ref); } /// /// 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 @ref) { return Task.FromResult(new StreamTree(@ref.Path, _hashToTree[@ref.Hash])); } } }