public int DecreaseReferenceCount(NFSFolderBranchNode node) { if (node == null) { throw new ArgumentNullException("node"); } lock (mapLock) { int count; var map = this.refCountMap; if (map.TryGetValue(node, out count)) { if (--count == 0) { map.Remove(node); } else { map[node] = count; } } return(count); } }
public bool HasReference(NFSFolderBranchNode node) { if (node == null) { throw new ArgumentNullException("node"); } lock (mapLock) return(this.refCountMap.ContainsKey(node)); }
public NFSFolderNodePair(NFSFolder folder, NFSFolderBranchNode node) { if (folder == null) { throw new ArgumentNullException("folder"); } if (node == null) { throw new ArgumentNullException("node"); } if (folder.Name != node.Name) { throw new ArgumentException("folder and node are mismatched"); } this.folder = folder; this.node = node; }