      */
     public var argumentNames:Array;
 
+    //--------------------------------------------------------------------------
+    //
+    // Private Variables
+    // 
+    //--------------------------------------------------------------------------
+
+    private var _concurrency:String;
+    
+    private var _concurrencySet:Boolean;
+    
     private var _makeObjectsBindableSet:Boolean;
+
+    private var _showBusyCursor:Boolean;
+    
+    private var _showBusyCursorSet:Boolean;
 
     //---------------------------------
     // Methods


        if (operationManager != null)
            return operationManager(args);

        if (!args || (args.length == 0 && this.arguments))
        {

        return invoke(message);
    }

    /**
     * @inheritDoc
     */
    override public function cancel(id:String = null):AsyncToken
    {
        if (showBusyCursor)
        {
            CursorManager.removeBusyCursor();
        }
        return super.cancel(id);
    }

    override mx_internal function setService(ro:AbstractService):void
    {
        super.setService(ro);
        remoteObject = mx.rpc.remoting.RemoteObject(ro);
    }

    override mx_internal function invoke(message:IMessage, token:AsyncToken = null):AsyncToken
    {
        if (showBusyCursor)
        {
            CursorManager.setBusyCursor();
        }

        return super.invoke(message, token);
    }

    /*
     * Kill the busy cursor, find the matching call object and pass it back
     */
    override mx_internal function preHandle(event:MessageEvent):AsyncToken
    {
        if (showBusyCursor)
        {
            CursorManager.removeBusyCursor();
        }

        var wasLastCall:Boolean = activeCalls.wasLastCall(AsyncMessage(event.message).correlationId);
        var token:AsyncToken = super.preHandle(event);

        if (Concurrency.LAST == concurrency && !wasLastCall)
        {
            return null;
        }
        //else
        return token;
    }


    //--------------------------------------------------------------------------
    //
    // Variables
    // 
    //--------------------------------------------------------------------------

    /**
     *  @private
     */
    private var resourceManager:IResourceManager = ResourceManager.getInstance();

    mx_internal var remoteObject:mx.rpc.remoting.RemoteObject;
}
    

}
