Example #1
0
 /// <nodoc />
 public static Xldb.Proto.AbsolutePath ToAbsolutePath(this AbsolutePath path, PathTable pathTable, NameExpander nameExpander)
 {
     return(new Xldb.Proto.AbsolutePath()
     {
         Value = path.ToString(pathTable, PathFormat.Windows, nameExpander)
     });
 }
Example #2
0
 /// <nodoc />
 public static Xldb.Proto.AbsolutePath ToAbsolutePath(this AbsolutePath path, PathTable pathTable)
 {
     return(new Xldb.Proto.AbsolutePath()
     {
         Value = path.ToString(pathTable, PathFormat.HostOs)
     });
 }
Example #3
0
        /// <summary>
        /// Adds a file node (and any needed parent directory nodes) at the VFS root relative path
        /// </summary>
        public VfsFileNode AddFileNode(string relativePath, VfsFilePlacementData data, string realPath)
        {
            var timestamp = DateTime.UtcNow;

            if (_nodeMap.TryGetValue(relativePath, out var node))
            {
                return((VfsFileNode)node);
            }
            else
            {
                var parent = GetOrAddDirectoryNode(Path.GetDirectoryName(relativePath), allowAdd: true);
                var result = _nodeMap.GetOrAdd(relativePath, (parent, timestamp, data), (l_relativePath, l_data) =>
                {
                    return(new VfsFileNode(Path.GetFileName(l_relativePath), l_data.timestamp, l_data.parent, l_data.data, RealPath.Create(PathTable, realPath)));
                });

                node = result.Item.Value;

                return((VfsFileNode)node);
            }
        }
Example #4
0
 public VfsFileNode(string name, DateTime timestamp, VfsDirectoryNode parent, VfsFilePlacementData data, RealPath realPath)
     : base(name, timestamp, parent)
 {
     Data     = data;
     RealPath = realPath;
 }