⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 downloadmanagercontroller.java

📁 java 文件下载器。可自定义
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
		else
		if (now - activation_count_time > 0x927c0L)
			activation_count = 0;
		return activation_count;
	}

	public PeerManagerRegistration getPeerManagerRegistration()
	{
		return peer_manager_registration;
	}

	public boolean isForceStart()
	{
		return force_start;
	}

	public void setForceStart(boolean _force_start)
	{
		state_mon.enter();
		if (force_start != _force_start)
		{
			force_start = _force_start;
			int state = getState();
			if (force_start && (state == 70 || state == 75))
				setState(0, false);
		}
		state_mon.exit();
		break MISSING_BLOCK_LABEL_70;
		Exception exception;
		exception;
		state_mon.exit();
		throw exception;
		download_manager.informStateChanged();
		return;
	}

	protected void setFailed(String reason)
	{
		if (reason != null)
			errorDetail = reason;
		stopIt(100, false, false);
	}

	public boolean filesExist(boolean expected_to_be_allocated)
	{
		DiskManagerFileInfo files[];
		int i;
		if (!expected_to_be_allocated && !download_manager.isDataAlreadyAllocated())
			return false;
		DiskManager dm = getDiskManager();
		if (dm != null)
			return dm.filesExist();
		fileFacadeSet.makeSureFilesFacadeFilled(false);
		files = fileFacadeSet.getFiles();
		i = 0;
_L3:
		if (i >= files.length) goto _L2; else goto _L1
_L1:
		DiskManagerFileInfo fileInfo;
		File file;
		fileInfo = files[i];
		if (fileInfo.isSkipped())
			continue; /* Loop/switch isn't completed */
		file = fileInfo.getFile(true);
		if (file.exists())
			break MISSING_BLOCK_LABEL_172;
		if (!download_manager.getTorrent().isSimpleTorrent())
		{
			File save_path = download_manager.getAbsoluteSaveLocation();
			if (FileUtil.isAncestorOf(save_path, file) && !save_path.exists())
				file = save_path;
		}
		setFailed((new StringBuilder()).append(MessageText.getString("DownloadManager.error.datamissing")).append(" ").append(file).toString());
		return false;
		if (fileInfo.getLength() >= file.length() || COConfigurationManager.getBooleanParameter("File.truncate.if.too.large"))
			continue; /* Loop/switch isn't completed */
		setFailed((new StringBuilder()).append(MessageText.getString("DownloadManager.error.badsize")).append(" ").append(file).append("(").append(fileInfo.getLength()).append("/").append(file.length()).append(")").toString());
		return false;
		Exception e;
		e;
		setFailed(e.getMessage());
		return false;
		i++;
		  goto _L3
_L2:
		return true;
	}

	public DiskManagerFileInfoSet getDiskManagerFileInfoSet()
	{
		fileFacadeSet.makeSureFilesFacadeFilled(false);
		return fileFacadeSet;
	}

	/**
	 * @deprecated Method getDiskManagerFileInfo is deprecated
	 */

	public DiskManagerFileInfo[] getDiskManagerFileInfo()
	{
		fileFacadeSet.makeSureFilesFacadeFilled(false);
		return fileFacadeSet.getFiles();
	}

	protected void fileInfoChanged()
	{
		fileFacadeSet.makeSureFilesFacadeFilled(true);
	}

	protected void filePrioritiesChanged(List files)
	{
		if (!cached_values_set)
			fileFacadeSet.makeSureFilesFacadeFilled(false);
		if (!cached_has_dnd_files && files.size() == 1 && !((DiskManagerFileInfo)files.get(0)).isSkipped())
		{
			return;
		} else
		{
			fileFacadeSet.makeSureFilesFacadeFilled(false);
			calculateCompleteness(fileFacadeSet.facadeFiles);
			return;
		}
	}

	protected void calculateCompleteness(DiskManagerFileInfo active[])
	{
		boolean complete_excluding_dnd = true;
		boolean has_dnd_files = false;
		int i = 0;
		do
		{
			if (i >= active.length)
				break;
			DiskManagerFileInfo file = active[i];
			if (file.isSkipped())
				has_dnd_files = true;
			else
			if (file.getDownloaded() != file.getLength())
				complete_excluding_dnd = false;
			if (has_dnd_files && !complete_excluding_dnd)
				break;
			i++;
		} while (true);
		cached_complete_excluding_dnd = complete_excluding_dnd;
		cached_has_dnd_files = has_dnd_files;
		cached_values_set = true;
		DownloadManagerState state = download_manager.getDownloadState();
		long flags = (cached_complete_excluding_dnd ? STATE_FLAG_COMPLETE_NO_DND : 0L) | (cached_has_dnd_files ? STATE_FLAG_HASDND : 0L);
		state.setLongParameter("dndflags", flags);
	}

	protected boolean isDownloadComplete(boolean bIncludeDND)
	{
		if (!cached_values_set)
			fileFacadeSet.makeSureFilesFacadeFilled(false);
		if (!cached_has_dnd_files)
			return stats.getDownloadCompleted(false) == 1000;
		DiskManager dm = getDiskManager();
		if (dm != null)
		{
			int dm_state = dm.getState();
			if (dm_state == 4)
			{
				long remaining = bIncludeDND ? dm.getRemaining() : dm.getRemainingExcludingDND();
				return remaining == 0L;
			}
		}
		if (bIncludeDND)
			return false;
		else
			return cached_complete_excluding_dnd;
	}

	protected PEPeerManager getPeerManager()
	{
		return peer_manager;
	}

	protected DiskManager getDiskManager()
	{
		return disk_manager_use_accessors;
	}

	protected String getErrorDetail()
	{
		return errorDetail;
	}

	protected void setDiskManager(DiskManager new_disk_manager, DiskManagerListener new_disk_manager_listener)
	{
		if (new_disk_manager != null)
			new_disk_manager.setPieceCheckingEnabled(piece_checking_enabled);
		disk_listeners_mon.enter();
		DiskManager old_disk_manager = disk_manager_use_accessors;
		if (old_disk_manager != null && disk_manager_listener_use_accessors != null)
			old_disk_manager.removeListener(disk_manager_listener_use_accessors);
		disk_manager_use_accessors = new_disk_manager;
		disk_manager_listener_use_accessors = new_disk_manager_listener;
		if (new_disk_manager != null)
			new_disk_manager.addListener(new_disk_manager_listener);
		fileInfoChanged();
		if (new_disk_manager == null && old_disk_manager != null)
			disk_listeners.dispatch(2, old_disk_manager);
		else
		if (new_disk_manager != null && old_disk_manager == null)
			disk_listeners.dispatch(1, new_disk_manager);
		else
			Debug.out((new StringBuilder()).append("inconsistent DiskManager state - ").append(new_disk_manager).append("/").append(old_disk_manager).toString());
		disk_listeners_mon.exit();
		break MISSING_BLOCK_LABEL_165;
		Exception exception;
		exception;
		disk_listeners_mon.exit();
		throw exception;
	}

	public void addDiskListener(DownloadManagerDiskListener listener)
	{
		disk_listeners_mon.enter();
		disk_listeners.addListener(listener);
		DiskManager dm = getDiskManager();
		if (dm != null)
			disk_listeners.dispatch(listener, 1, dm);
		disk_listeners_mon.exit();
		break MISSING_BLOCK_LABEL_54;
		Exception exception;
		exception;
		disk_listeners_mon.exit();
		throw exception;
	}

	public void removeDiskListener(DownloadManagerDiskListener listener)
	{
		disk_listeners_mon.enter();
		disk_listeners.removeListener(listener);
		disk_listeners_mon.exit();
		break MISSING_BLOCK_LABEL_35;
		Exception exception;
		exception;
		disk_listeners_mon.exit();
		throw exception;
	}

	public long getDiskListenerCount()
	{
		return disk_listeners.size();
	}

	public String getDisplayName()
	{
		return download_manager.getDisplayName();
	}

	public int getUploadRateLimitBytesPerSecond()
	{
		return download_manager.getEffectiveUploadRateLimitBytesPerSecond();
	}

	public int getDownloadRateLimitBytesPerSecond()
	{
		return stats.getDownloadRateLimitBytesPerSecond();
	}

	public int getMaxUploads()
	{
		return download_manager.getEffectiveMaxUploads();
	}

	public int getMaxConnections()
	{
		int result;
		if (download_manager.isMaxConnectionsWhenSeedingEnabled() && isStateSeeding())
			result = download_manager.getMaxConnectionsWhenSeeding();
		else
			result = download_manager.getMaxConnections();
		return result;
	}

	public int getMaxSeedConnections()
	{
		return download_manager.getMaxSeedConnections();
	}

	public boolean isExtendedMessagingEnabled()
	{
		return download_manager.isExtendedMessagingEnabled();
	}

	public boolean isPeerExchangeEnabled()
	{
		return download_manager.getDownloadState().isPeerSourceEnabled("PeerExchange");
	}

	public int getCryptoLevel()
	{
		return download_manager.getCryptoLevel();
	}

	public boolean isPeriodicRescanEnabled()
	{
		return download_manager.getDownloadState().getFlag(2L);
	}

	public TRTrackerScraperResponse getTrackerScrapeResponse()
	{
		return download_manager.getTrackerScrapeResponse();
	}

	public String getTrackerClientExtensions()
	{
		return download_manager.getDownloadState().getTrackerClientExtensions();
	}

	public void setTrackerRefreshDelayOverrides(int percent)
	{
		download_manager.setTrackerRefreshDelayOverrides(percent);
	}

	public boolean isNATHealthy()
	{
		return download_manager.getNATStatus() == 1;
	}

	public void addPeer(PEPeer peer)
	{
		download_manager.addPeer(peer);
	}

	public void removePeer(PEPeer peer)
	{
		download_manager.removePeer(peer);
	}

	public void addPiece(PEPiece piece)
	{
		download_manager.addPiece(piece);
	}

	public void removePiece(PEPiece piece)
	{
		download_manager.removePiece(piece);
	}

	public void discarded(PEPeer peer, int bytes)
	{
		if (global_stats != null)
			global_stats.discarded(bytes);
	}

	public void protocolBytesReceived(PEPeer peer, int bytes)
	{
		if (global_stats != null)
			global_stats.protocolBytesReceived(bytes, peer.isLANLocal());
	}

	public void dataBytesReceived(PEPeer peer, int bytes)
	{
		if (global_stats != null)
			global_stats.dataBytesReceived(bytes, peer.isLANLocal());
	}

	public void protocolBytesSent(PEPeer peer, int bytes)
	{
		if (global_stats != null)
			global_stats.protocolBytesSent(bytes, peer.isLANLocal());
	}

	public void dataBytesSent(PEPeer peer, int bytes)
	{
		if (global_stats != null)
			global_stats.dataBytesSent(bytes, peer.isLANLocal());
	}

	public int getPosition()
	{
		return download_manager.getPosition();
	}

	public void addHTTPSeed(String address, int port)
	{
		ExternalSeedPlugin plugin = getExternalSeedPlugin();
		try
		{
			if (plugin != null)
			{
				Map config = new HashMap();
				List urls = new ArrayList();
				String seed_url = (new StringBuilder()).append("http://").append(UrlUtils.convertIPV6Host(address)).append(":").append(port).append("/webseed").toString();
				urls.add(seed_url.getBytes());
				config.put("httpseeds", urls);
				Map params = new HashMap();
				params.put("supports_503", new Long(0L));
				params.put("transient", new Long(1L));
				config.put("httpseeds-params", params);
				plugin.addSeed(DownloadManagerImpl.getDownloadStatic(download_manager), config);
			}
		}
		catch (Throwable e)
		{
			Debug.printStackTrace(e);
		}
	}

	public void priorityConnectionChanged(boolean added)
	{
		synchronized (this)
		{
			if (added)
				priority_connection_count++;
			else
				priority_connection_count--;
		}
	}

	public boolean hasPriorityConnection()
	{
		DownloadManagerController downloadmanagercontroller = this;
		JVM INSTR monitorenter ;
		return priority_connection_count > 0L;
		Exception exception;
		exception;
		throw exception;
	}

	public String getDescription()
	{
		return download_manager.getDisplayName();
	}

	public LogRelation getLogRelation()
	{
		return this;
	}

	public String getRelationText()
	{
		return download_manager.getRelationText();
	}

	public Object[] getQueryableInterfaces()
	{
		List interfaces = new ArrayList();
		Object intf[] = download_manager.getQueryableInterfaces();
		for (int i = 0; i < intf.length; i++)
			interfaces.add(intf[i]);

		interfaces.add(download_manager);
		DiskManager dm = getDiskManager();
		if (dm != null)
			interfaces.add(dm);
		return interfaces.toArray();
	}

	public void generateEvidence(IndentWriter writer)
	{
		writer.println("DownloadManager Controller:");
		writer.indent();
		writer.println((new StringBuilder()).append("cached info: complete w/o DND=").append(cached_complete_excluding_dnd).append("; hasDND? ").append(cached_has_dnd_files).toString());
		writer.println((new StringBuilder()).append("Complete w/DND? ").append(isDownloadComplete(true)).append("; w/o DND? ").append(isDownloadComplete(false)).toString());
		writer.println((new StringBuilder()).append("filesFacade length: ").append(fileFacadeSet.nbFiles()).toString());
		if (force_start)
			writer.println("Force Start");
		writer.println((new StringBuilder()).append("FilesExist? ").append(filesExist(download_manager.isDataAlreadyAllocated())).toString());
		writer.exdent();
		break MISSING_BLOCK_LABEL_185;
		Exception exception;
		exception;
		writer.exdent();
		throw exception;
	}














}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -