package com.pollensoft.pbt.twitter | |
{ | |
import mx.core.mx_internal; | |
import mx.messaging.messages.IMessage; | |
import mx.rpc.AsyncToken; | |
use namespace mx_internal; | |
import org.osflash.signals.Signal; | |
import mx.rpc.events.ResultEvent; | |
import mx.rpc.events.FaultEvent; | |
import mx.rpc.Fault; | |
public class SignalAsyncToken extends AsyncToken | |
{ | |
public var responseSignal:Signal; | |
public var faultSignal:Signal; | |
public var responseIndex:int; | |
public var faultCodeIndex:int; | |
public var faultStringIndex:int; | |
public var faultDetailIndex:int; | |
public function SignalAsyncToken(message:IMessage=null, responseSignal:Signal=null, responseIndex:int=-1, faultSignal:Signal=null, faultCodeIndex:int=-1, faultStringIndex:int=-1, faultDetailIndex:int=-1) | |
{ | |
super(message); | |
this.responseSignal = responseSignal; | |
this.responseIndex = responseIndex; | |
this.faultSignal = faultSignal; | |
this.faultCodeIndex = faultCodeIndex; | |
this.faultStringIndex = faultStringIndex; | |
this.faultDetailIndex = faultDetailIndex; | |
responseSignal.addOnce( responseHandler ); | |
faultSignal.addOnce( faultHandler ); | |
} | |
private function responseHandler( ... signalArgs ):void | |
{ | |
var data:* = responseIndex >= 0 ? signalArgs[responseIndex] : null; | |
var event:ResultEvent = ResultEvent.createEvent( data, this ); | |
mx_internal::applyResult(event); | |
} | |
private function faultHandler( ... signalArgs ):void | |
{ | |
var faultCode:String = faultCodeIndex >= 0 ? signalArgs[faultCodeIndex] : ""; | |
var faultString:String = faultStringIndex >= 0 ? signalArgs[faultStringIndex] : ""; | |
var faultDetail:String = faultDetailIndex >= 0 ? signalArgs[faultDetailIndex] : ""; | |
var event:FaultEvent = FaultEvent.createEvent(new Fault(faultCode, faultString, faultDetail), this); | |
mx_internal::applyFault( event ); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment