// ============================================ // PUBLIC Methods // ============================================ /// Add Peer's File Info to his list public void Add(PeerSocket peer, FileInfo fileInfo) { // Add FileInfo into Peer's ArrayList ArrayList fileList = GetPeerFileList(peer); fileList.Add(fileInfo); UpdatePeerFileList(peer, fileList); // Add Disk Path this.diskPaths.Add(fileInfo.MyDiskName, fileInfo); }
/// Search File into List public FileInfo Search(PeerSocket peer, FileInfo fileInfo) { lock (this.data) { if (this.data.ContainsKey(peer) == true) { ArrayList fileList = (ArrayList) this.data[peer]; int index = fileList.BinarySearch(fileInfo); if (index >= 0) return((FileInfo) fileList[index]); } } return(null); }
/// Remove Peer's File Info from his list public void Remove(PeerSocket peer, FileInfo fileInfo) { // Remove Peer's FileInfo from ArrayList ArrayList fileList = (ArrayList) this.data[peer]; if (fileList != null) fileList.Remove(fileInfo); UpdatePeerFileList(peer, fileList); // Remove Disk Path this.diskPaths.Remove(fileInfo.MyDiskName); }