public override void Accept(IStorageVisitor visitor) { visitor.VisitFile(this); foreach (var child in GetChildren()) { child.Accept(visitor); } }
public override T Accept <T>(IStorageVisitor <T> visitor) { return(visitor.VisitSequence(this)); }
public override T Accept <T>(IStorageVisitor <T> visitor) { return(visitor.VisitFlags(this)); }
public override T Accept <T>(IStorageVisitor <T> visitor) { return(visitor.VisitRegister(this)); }
public abstract T Accept <T>(IStorageVisitor <T> visitor);
void LoadTree(string parentPath, Tree tree, IStorageVisitor visitor) { foreach (var entry in tree) { if (entry.TargetType == TreeEntryTargetType.Tree) { var child = entry.Target as Tree; if (child != null) { if (visitor.ShouldTraverseDirectory(entry.Path)) { LoadTree(entry.Path, child, visitor); } } } } visitor.VisitDirectory(parentPath, (from entry in tree where entry.TargetType == TreeEntryTargetType.Blob let blob = entry.Target as Blob where blob != null select new StoredFile(entry.Path, blob.Sha, () => blob.GetContentStream(new FilteringOptions(entry.Path)))).ToList() ); }
public void Visit(IAnchor anchor, IStorageVisitor visitorloaded) { var gitReference = anchor as GitSnapshotAnchor; if (gitReference == null) throw new InvalidOperationException("Not a valid time reference"); if (gitReference.Commit == null) { return; } sync.EnterReadLock(); try { var tree = gitReference.Commit.Tree; LoadTree("", tree, visitorloaded); } finally { sync.ExitReadLock(); } }
public abstract void Accept(IStorageVisitor visitor);