コード例 #1
0
ファイル: OpenFlightTester.cs プロジェクト: tabinfl/Inception
    private void WalkDirectoryTree(DirectoryInfo root, WalkDelegate walkDelegate)
    {
        if (stop)
        {
            return;
        }

        var files = root.GetFiles("*.flt");

        //var files = root.GetFiles("*.zip");
        if (files != null)
        {
            foreach (FileInfo fi in files)
            {
                if (stop)
                {
                    return;
                }

                walkDelegate(fi.FullName);
            }

            var subDirs = root.GetDirectories();
            foreach (DirectoryInfo dirInfo in subDirs)
            {
                WalkDirectoryTree(dirInfo, walkDelegate);
            }
        }
    }
コード例 #2
0
ファイル: ClassTreeWalker.cs プロジェクト: aloneguid/support
        public void Walk(object obj, WalkDelegate callback)
        {
            //get or create type cache
             Type t = obj.GetType();
             CachedType ct = _typeToInfo.GetOrAdd(t, () => new CachedType(t));

             Walk(ct, obj, callback, 0);
        }
コード例 #3
0
ファイル: BruTileClient.cs プロジェクト: tabinfl/Inception
 private void WalkLayers(Layer layer, WalkDelegate walkDelegate)
 {
     walkDelegate(layer);
     ++layerDepth;
     foreach (var child in layer.ChildLayers)
     {
         WalkLayers(child, walkDelegate);
     }
     --layerDepth;
 }
コード例 #4
0
ファイル: ClassTreeWalker.cs プロジェクト: aloneguid/support
        private void Walk(CachedType ct, object parent, WalkDelegate callback, int level)
        {
            foreach (Tuple<string, TypeNode> tpl in EnumerableEx.MultiIterate(ct.PropNames, ct.TypeNodes))
             {
            if (!callback(tpl.Item1, tpl.Item2, parent, level)) return;

            if (tpl.Item2.HasChildren)
            {
               Type cht = tpl.Item2.NodeType;
               CachedType chct = _typeToInfo.GetOrAdd(tpl.Item2.NodeType, () => new CachedType(cht));
               object cv = tpl.Item2.GetValue(parent);

               Walk(chct, cv, callback, level + 1);
            }
             }
        }