Example #1
0
 public override void Accept(IStorageVisitor visitor)
 {
     visitor.VisitFile(this);
     foreach (var child in GetChildren())
     {
         child.Accept(visitor);
     }
 }
Example #2
0
 public override T Accept <T>(IStorageVisitor <T> visitor)
 {
     return(visitor.VisitSequence(this));
 }
Example #3
0
 public override T Accept <T>(IStorageVisitor <T> visitor)
 {
     return(visitor.VisitFlags(this));
 }
Example #4
0
 public override T Accept <T>(IStorageVisitor <T> visitor)
 {
     return(visitor.VisitRegister(this));
 }
Example #5
0
 public abstract T Accept <T>(IStorageVisitor <T> visitor);
Example #6
0
        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()
                );
        }
Example #7
0
        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();
            }
        }
Example #8
0
 public abstract void Accept(IStorageVisitor visitor);