private void InitBlock(System.IO.FileInfo lockFile, FSDirectory enclosingInstance) { this.lockFile = lockFile; this.enclosingInstance = enclosingInstance; }
public AnonymousClassLock(System.IO.FileInfo lockFile, FSDirectory enclosingInstance) { InitBlock(lockFile, enclosingInstance); }
/// <summary>Returns the directory instance for the named location. /// /// <p>Directories are cached, so that, for a given canonical path, the same /// FSDirectory instance will always be returned. This permits /// synchronization on directories. /// /// </summary> /// <param name="file">the path to the directory. /// </param> /// <param name="create">if true, create, or erase any existing contents. /// </param> /// <returns> the FSDirectory for the named file. /// </returns> public static FSDirectory GetDirectory(System.IO.FileInfo file, bool create) { file = new System.IO.FileInfo(file.FullName); FSDirectory dir; lock (DIRECTORIES.SyncRoot) { dir = (FSDirectory) DIRECTORIES[file]; if (dir == null) { dir = new FSDirectory(file, create); DIRECTORIES[file] = dir; } else if (create) { dir.Create(); } } lock (dir) { dir.refCount++; } return dir; }