当前位置: 首页>>代码示例>>Java>>正文


Java DownloadManager.setDataAlreadyAllocated方法代码示例

本文整理汇总了Java中org.gudy.azureus2.core3.download.DownloadManager.setDataAlreadyAllocated方法的典型用法代码示例。如果您正苦于以下问题:Java DownloadManager.setDataAlreadyAllocated方法的具体用法?Java DownloadManager.setDataAlreadyAllocated怎么用?Java DownloadManager.setDataAlreadyAllocated使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.gudy.azureus2.core3.download.DownloadManager的用法示例。


在下文中一共展示了DownloadManager.setDataAlreadyAllocated方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: doFileExistenceChecks

import org.gudy.azureus2.core3.download.DownloadManager; //导入方法依赖的package包/类
public static void doFileExistenceChecks(DiskManagerFileInfoSet fileSet, boolean[] toCheck, DownloadManager dm, boolean allowAlloction)
{
	DiskManagerFileInfo[] files = fileSet.getFiles();
	
	int lastPieceScanned = -1;
	int windowStart = -1;
	int windowEnd = -1;
	
	String[] types = DiskManagerImpl.getStorageTypes(dm);
	
	// sweep over all files to see if adjacent files of changed files can be deleted or need allocation
	for(int i = 0; i< files.length;i++)
	{
		int firstPiece = files[i].getFirstPieceNumber();
		int lastPiece = files[i].getLastPieceNumber();
		
		if(toCheck[i])
		{ // found a file that changed, scan adjacent files
			if(lastPieceScanned < firstPiece)
			{ // haven't checked the preceding files, slide backwards
				windowStart = firstPiece;
				while(i > 0 && files[i-1].getLastPieceNumber() >= windowStart)
					i--;
			}
				
			if(windowEnd < lastPiece)
				windowEnd = lastPiece;
		}
		
		if((windowStart <= firstPiece && firstPiece <= windowEnd) || (windowStart <= lastPiece && lastPiece <= windowEnd))
		{ // file falls in current scanning window, check it
			File currentFile = files[i].getFile(true);
			if(!RDResumeHandler.fileMustExist(dm, files[i]))
			{
				int	st = convertDMStorageTypeFromString( types[i] );
				if( st == DiskManagerFileInfo.ST_COMPACT || st == DiskManagerFileInfo.ST_REORDER_COMPACT ){
					currentFile.delete();
				}
			} else if(allowAlloction && !currentFile.exists())	{
				/*
				 * file must exist, does not exist and we probably just changed to linear
				 * mode, assume that (re)allocation of adjacent files is necessary
				 */
				dm.setDataAlreadyAllocated(false);
			}
			lastPieceScanned = lastPiece;
		}


	}
}
 
开发者ID:thangbn,项目名称:Direct-File-Downloader,代码行数:52,代码来源:DiskManagerUtil.java


注:本文中的org.gudy.azureus2.core3.download.DownloadManager.setDataAlreadyAllocated方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。