private void AddFile(CFile file) { if (!m_Contains(file.FileHash)) { CElement Element = new CElement(); Element.File = file; Element.Statistics = new CFileStatistics(); m_FileList.Add(Element); if (((file.FileStatus == Protocol.FileState.Ready) || (Element.File.FileStatus == Protocol.FileState.Completing)) && (!file.Completed)) { Element.SourcesList = new CSourcesList(Element); Element.Comments = new CedonkeyComments(Element); } if (!file.Completed) { CKernel.NewFile(Element); } else { CKernel.NewSharedFile(Element); } } else { CLog.Log(Constants.Log.Notify, "FIL_DUP", CKernel.HashToString(file.FileHash)); file = null; } }
public void AddFile(string name, uint size, byte[] Hash, stDatosFuente[] sources) { CElement Element; if (this.m_Contains(Hash)) { CLog.Log(Constants.Log.Notify, "FIL_DUP", name); Element = (CElement)this[Hash]; } else { CFile file = new CFile(Hash, name, size); Element = new CElement(); Element.File = file; Element.Statistics = new CFileStatistics(); m_FileList.Add(Element); CKernel.NewFile(Element); CLog.Log(Constants.Log.Notify, "FIL_ADDED", name); } if ((Element.SourcesList == null) && ((Element.File.FileStatus == Protocol.FileState.Ready) || (Element.File.FileStatus == Protocol.FileState.Completing))) { CSourcesList sourcesList = new CSourcesList(Element); Element.SourcesList = sourcesList; if (CKernel.ServersList.ActiveServer != null) { CKernel.ServersList.ActiveServer.RequestSources(Element.File.FileHash); } } if ((Element.SourcesList != null) && ((Element.File.FileStatus == Protocol.FileState.Ready) || (Element.File.FileStatus == Protocol.FileState.Completing)) && (sources != null)) { CKernel.ClientsList.AddClientsToFile(sources, Hash); } }