diff --git a/src/main/haxework/gui/MovieView.hx b/src/main/haxework/gui/MovieView.hx index bf696ec..2ecb053 100755 --- a/src/main/haxework/gui/MovieView.hx +++ b/src/main/haxework/gui/MovieView.hx @@ -35,7 +35,7 @@ class MovieView extends View { private function set_movieUrl(value:String):String { movieUrl = value; new SwfLoader().GET(movieUrl) - .success(function(data:MovieClip):Void { + .then(function(data:MovieClip):Void { movie = data; }); return movieUrl; diff --git a/src/main/haxework/net/ExternalImageLoader.hx b/src/main/haxework/net/ExternalImageLoader.hx index 9f38434..04d63ed 100755 --- a/src/main/haxework/net/ExternalImageLoader.hx +++ b/src/main/haxework/net/ExternalImageLoader.hx @@ -1,6 +1,5 @@ package haxework.net; -import haxework.net.callback.ICallback; import flash.system.Security; import flash.utils.ByteArray; import flash.display.LoaderInfo; @@ -23,15 +22,11 @@ class ExternalImageLoader extends BaseMediaLoader { #end internalLoader = new InternalLoader(); internalLoader.fromBytes(loader.contentLoaderInfo.bytes) - .success(function(data:BitmapData):Void { - var c:ICallback = callback; - dispose(); - c.callSuccess(data); + .then(function(data:BitmapData):Void { + resolve(data); }) - .fail(function(error:Dynamic):Void { - var c:ICallback = callback; - dispose(); - c.callFail(e); + .catchError(function(error:Dynamic):Void { + throwError(e); }); return null; #if flash} #end diff --git a/src/main/haxework/net/callback/AutoCallback.hx b/src/main/haxework/net/callback/AutoCallback.hx deleted file mode 100755 index 419bff4..0000000 --- a/src/main/haxework/net/callback/AutoCallback.hx +++ /dev/null @@ -1,17 +0,0 @@ -package haxework.net.callback; - -@:deprecated("Use promhx.Deffered") -class AutoCallback { - - public static function success(?value:T):ICallback { - var callback:ICallback = new Callback(); - callback.callSuccessAsync(value); - return callback; - } - - public static function fail(error:Dynamic):ICallback { - var callback:ICallback = new Callback(); - callback.callFailAsync(error); - return callback; - } -} \ No newline at end of file diff --git a/src/main/haxework/net/callback/Callback.hx b/src/main/haxework/net/callback/Callback.hx deleted file mode 100755 index 2c7b5a9..0000000 --- a/src/main/haxework/net/callback/Callback.hx +++ /dev/null @@ -1,74 +0,0 @@ -package haxework.net.callback; - -import haxe.Timer; - -@:deprecated("Use promhx.Deffered") -class Callback implements ICallback { - - public static function build():ICallback { - return new Callback(); - } - - private var _success:Null Void>; - private var _fail:Null Void>; - - public function new() {} - - public function success(f:T -> Void):ICallback { - _success = f; - return this; - } - - public function fail(f:Dynamic -> Void):ICallback { - _fail = f; - return this; - } - - public function any(f:Dynamic -> Void):ICallback { - _success = f; - _fail = f; - return this; - } - - public function callSuccess(data:T):Void { - try { - if (_success != null) _success(data); - } catch (error:Dynamic) { - callFail(error); - } - dispose(); - } - - public function callSuccessAsync(data:T):Void { - Timer.delay(function():Void { - callSuccess(data); - }, 1); - } - - public function callFail(error:Dynamic):Void { - try { - if (_fail != null) _fail(error); - } catch (error:Dynamic) { - L.d("Callback", "", error); - } - dispose(); - } - - public function callFailAsync(error:Dynamic):Void { - Timer.delay(function():Void { - callFail(error); - }, 1); - } - - public function glue(callback:ICallback):ICallback { - this._success = callback.callSuccess; - this._fail = callback.callFail; - //callback.dispose(); //ToDo: - return this; - } - - public function dispose():Void { - _success = null; - _fail = null; - } -} diff --git a/src/main/haxework/net/callback/ICallback.hx b/src/main/haxework/net/callback/ICallback.hx deleted file mode 100755 index 188678c..0000000 --- a/src/main/haxework/net/callback/ICallback.hx +++ /dev/null @@ -1,16 +0,0 @@ -package haxework.net.callback; - -import haxework.core.IDisposable; - -@:deprecated("Use promhx.Deffered") -interface ICallback extends IDisposable { - public function success(f:T -> Void):ICallback; - public function fail(f:Dynamic -> Void):ICallback; - public function any(f:Dynamic -> Void):ICallback; - public function callSuccess(data:T):Void; - public function callSuccessAsync(data:T):Void; - public function callFail(error:Dynamic):Void; - public function callFailAsync(error:Dynamic):Void; - public function glue(callback:ICallback):ICallback; -} - diff --git a/src/main/haxework/net/order/IOrderSupplier.hx b/src/main/haxework/net/order/IOrderSupplier.hx index 0897f10..e18bf22 100755 --- a/src/main/haxework/net/order/IOrderSupplier.hx +++ b/src/main/haxework/net/order/IOrderSupplier.hx @@ -1,17 +1,17 @@ package haxework.net.order; -import haxework.net.callback.ICallback; +import promhx.Deferred; typedef Order = { var id:String; var data:Null; - var callbacks:Array>; + var deferred:Deferred; var clients:Int; } interface IOrderSupplier { public var orders(default, null):Map>; - public function request(url:String, clazz:Class):ICallback; + public function request(url:String, clazz:Class):Deferred; public function release(url:String, ?force:Bool = false):Void; } \ No newline at end of file diff --git a/src/main/haxework/net/order/OrderSupplier.hx b/src/main/haxework/net/order/OrderSupplier.hx index 67c48a1..d94965f 100755 --- a/src/main/haxework/net/order/OrderSupplier.hx +++ b/src/main/haxework/net/order/OrderSupplier.hx @@ -1,12 +1,8 @@ package haxework.net.order; -import haxework.net.callback.AutoCallback; +import promhx.Deferred; import haxework.net.order.IOrderSupplier.Order; -import haxework.storage.IStorage; -import haxework.provider.Provider; -import haxework.net.callback.Callback; import flash.display.BitmapData; -import haxework.net.callback.ICallback; class OrderSupplier implements IOrderSupplier { @@ -18,43 +14,33 @@ class OrderSupplier implements IOrderSupplier { orders = new Map>(); } - public function request(url:String, clazz:Class):ICallback { + public function request(url:String, clazz:Class):Deferred { if (orders.exists(url)) { - var order:Order = orders.get(url); - order.clients++; - //L.d(TAG, "Request(" + order.clients + "): " + url); - if (order.data == null) { - var callback:ICallback = new Callback(); - order.callbacks.push(callback); - return callback; - } else { - return AutoCallback.success(order.data); - } + return cast orders.get(url).deferred; } else { - var callback:ICallback = new Callback(); + var deferred = new Deferred(); var order:Order = { id:url, data:null, - callbacks:[callback], + deferred:deferred, clients:1 } //L.d(TAG, "Request(" + order.clients + "): " + url); orders.set(url, order); var loader:ILoader = buildLoader(clazz); loader.GET(url) - .success(function(data:T):Void { + .then(function(data:T):Void { if (orders.exists(url)) { var order:Order = orders.get(url); order.data = data; - for (callback in order.callbacks) callback.callSuccess(data); - order.callbacks = []; + order.deferred.resolve(data); } }) - .fail(function(error:Dynamic):Void { - if (orders.exists(url)) for (callback in orders.get(url).callbacks) callback.callFail(error); + .catchError(function(error:Dynamic):Void { + if (orders.exists(url)) orders.get(url).deferred.throwError(error); orders.remove(url); }); - return callback; + return deferred; } }