import {Fatal} from '../../../common/lang/Fatal';
import {FResourcePipeline} from './FResourcePipeline';
//==========================================================
// 资源处理管道。
//
// @class
// @author maocy
// @version 150507
//==========================================================
export class FResourceThreadPipeline extends FResourcePipeline {
//o = MO.Class.inherits(this, o, MO.FResourcePipeline);
//..........................................................
// @attribute
//o._startTime = 0;
//o._data = 0;
//o._dataLength = 0;
//o._worker = null;
//==========================================================
// 构造处理。
//
// @method
//==========================================================
public constructor() {
super();
}
//==========================================================
// 完成处理。
//
// @method
// @param buffer:ArrayBuffer 数据
//==========================================================
public onComplete(buffer) {
var o = this;
// 获得数据
var bufferData = null;
if (buffer.constructor == Array) {
bufferData = new Uint8Array(buffer);
} else if (buffer.constructor == Uint8Array) {
bufferData = buffer;
} else {
throw new Fatal(o, 'Unknown buffer type.');
}
// 设置数据
//var data = o._data;
//data.completeData(bufferData);
// 输出信息
//var span = MO.Timer.now() - o._startTime;
//MO.Logger.info(o, 'Process resource data decompress. (guid={1}, block={2}, length={3}, total={4}, tick={5})', data._guid, data._index, o._dataLength, buffer.byteLength, span);
// 完成处理
//o._console.onPipelineComplete(o, data);
// 清空数据
//o._data = null;
}
//==========================================================
// 获得工作器。
//
// @method
// @return LZMA 工作器
//==========================================================
public worker() {
var o = this;
//var worker = o._worker;
//if (!worker) {
// var uri = MO.RBrowser.contentPath('/ajs/lzma_worker.js');
// //worker = o._worker = new LZMA_WORKER(uri);
// worker = o._worker = new LZMA(uri);
//}
//return worker;
}
//==========================================================
// 解压资源数据处理。
//
// @method
// @param data:MResourceData 资源数据
//==========================================================
public decompress(data) {
var o = this;
//o._startTime = MO.Timer.current();
// 获得数据
//var compressData = data.compressData();
//o._data = data;
//o._dataLength = compressData.byteLength;
// 解压缩处理
//var worker = o.worker();
//worker.decompress(compressData, function(buffer) { o.onComplete(buffer); }, null);
}
//==========================================================
// 释放当前实例。
//
// @method
//==========================================================
public dispose() {
var o = this;
//o._data = null;
//o._worker = null;
// 父处理
super.dispose();
}
}