<commit_before>package net.manaca.loaderqueue
{
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.utils.clearInterval;
import flash.utils.setInterval;

/**
 * 任务队列总进度更新时派发
 * @eventType flash.events.Event.CHANGE
 */
[Event(name="change", type="flash.events.Event")]
/**
 * 任务队列完成时派发
 * @eventType flash.events.Event.COMPLETE
 */
[Event(name="complete", type="flash.events.Event")]

/**
 * 用于计算一个加载集合和总进度.
 * @author <NAME>
 * 
 */
public class LoaderProgress extends EventDispatcher
{
    //==========================================================================
    //  Constructor
    //==========================================================================
    /**
     * 构造函数.
     * 
     */
    public function LoaderProgress()
    {
    }
    //==========================================================================
    //  Variables
    //==========================================================================
    private var items:Array = [];
    private var isStart:Boolean = false;
    private var updateInterval:int;
    //==========================================================================
    //  Properties
    //==========================================================================
    private var _totalProgress:Number;
    /**
     * 总进度
     * @return 
     * 
     */    
    public function get totalProgress():Number
    {
        return _totalProgress;
    }
    //==========================================================================
    //  Methods
    //==========================================================================
    /**
     * 添加一个需要计算的下载对象
     * @param loaderAdapter
     * 
     */    
    public function addItem(loaderAdapter:ILoaderAdapter):void
    {
        if(items.indexOf(loaderAdapter) == -1)
        {
            items.push(loaderAdapter);
            
            if(isStart)
            {
                update();
            }
        }
    }
    
    /**
     * 删除一个需要计算的下载对象
     * @param loaderAdapter
     * 
     */   
    public function removeItem(loaderAdapter:ILoaderAdapter):void
    {
        var index:int = items.indexOf(loaderAdapter);
        if(index != -1)
        {
            items.splice(index, 1);
            if(isStart)
            {
                update();
            }
        }
    }
    
    /**
     * 开始计算
     * 
     */    
    public function start():void
    {
        updateInterval = setInterval(update, 100);
        isStart = true;
    }
    
    /**
     * 结束计算
     * 
     */    
    public function stop():void
    {
        clearInterval(updateInterval);
        isStart = false;
    }
    
    /**
     * 销毁该对象
     * 
     */    
    public function dispose():void
    {
        stop();
        items = null;
    }
    
    /**
     * 更新进度
     * @private
     */    
    private function update():void
    {<commit_msg>Rename isStart to isStarted<commit_after>package net.manaca.loaderqueue
{
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.utils.clearInterval;
import flash.utils.setInterval;

/**
 * 任务队列总进度更新时派发
 * @eventType flash.events.Event.CHANGE
 */
[Event(name="change", type="flash.events.Event")]
/**
 * 任务队列完成时派发
 * @eventType flash.events.Event.COMPLETE
 */
[Event(name="complete", type="flash.events.Event")]

/**
 * 用于计算一个加载集合和总进度.
 * @author <NAME>
 * 
 */
public class LoaderProgress extends EventDispatcher
{
    //==========================================================================
    //  Constructor
    //==========================================================================
    /**
     * 构造函数.
     * 
     */
    public function LoaderProgress()
    {
    }
    //==========================================================================
    //  Variables
    //==========================================================================
    private var items:Array = [];
    private var isStarted:Boolean = false;
    private var updateInterval:int;
    //==========================================================================
    //  Properties
    //==========================================================================
    private var _totalProgress:Number;
    /**
     * 总进度
     * @return 
     * 
     */    
    public function get totalProgress():Number
    {
        return _totalProgress;
    }
    //==========================================================================
    //  Methods
    //==========================================================================
    /**
     * 添加一个需要计算的下载对象
     * @param loaderAdapter
     * 
     */    
    public function addItem(loaderAdapter:ILoaderAdapter):void
    {
        if(items.indexOf(loaderAdapter) == -1)
        {
            items.push(loaderAdapter);
            
            if(isStarted)
            {
                update();
            }
        }
    }
    
    /**
     * 删除一个需要计算的下载对象
     * @param loaderAdapter
     * 
     */   
    public function removeItem(loaderAdapter:ILoaderAdapter):void
    {
        var index:int = items.indexOf(loaderAdapter);
        if(index != -1)
        {
            items.splice(index, 1);
            if(isStarted)
            {
                update();
            }
        }
    }
    
    /**
     * 开始计算
     * 
     */    
    public function start():void
    {
        updateInterval = setInterval(update, 100);
        isStarted = true;
    }
    
    /**
     * 结束计算
     * 
     */    
    public function stop():void
    {
        clearInterval(updateInterval);
        isStarted = false;
    }
    
    /**
     * 销毁该对象
     * 
     */    
    public function dispose():void
    {
        stop();
        items = null;
    }
    
    /**
     * 更新进度
     * @private
     */    
    private function update():void
    {
{'fraction_non_alphanumeric': 0.3017241379310345, 'fraction_numerical': 0.0020689655172413794, 'mean_word_length': 2.105460385438972, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1877761', 'n_tokens_mistral': 1633, 'n_tokens_neox': 1574, 'n_words': 225}