//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// BACKWARD DEFFERED WASM-INVOCATION —
// FOR USAGE FROM WASM (.NET-BLAZOR) MAIN ASSEMBLY AND FROM AFXUI.DLL (TWO SEPARATED FUNCTION SETS)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//==================================================================================================
// BACKWARD CALLS TO MAIN ASSEMBLY:
//--------------------------------------------------------------------------------------------------

function BackwardDeferred_Invoke( milliseconds: number=0, wasmMethodName: string ) {
   HArgChecking.PROVIDED(wasmMethodName, 'BackwardDeferred_Invoke', 'wasmMethodName')
   setTimeout(()=>{
      WASM.Invoke(wasmMethodName)
   },HOps.NullSubst(milliseconds, 0))
}
function BackwardDeferred_Invoke_1( milliseconds: number=0, wasmMethodName: string,
                                    arg_1: any ) {
   HArgChecking.PROVIDED(wasmMethodName, 'BackwardDeferred_Invoke_1', 'wasmMethodName')
   setTimeout(()=>{
      WASM.Invoke_1(wasmMethodName, arg_1)
   },HOps.NullSubst(milliseconds, 0))
}
function BackwardDeferred_Invoke_2( milliseconds: number=0, wasmMethodName: string,
                                    arg_1: any, arg_2: any ) {
   HArgChecking.PROVIDED(wasmMethodName, 'BackwardDeferred_Invoke_2', 'wasmMethodName')
   setTimeout(()=>{
      WASM.Invoke_2(wasmMethodName, arg_1, arg_2)
   },HOps.NullSubst(milliseconds, 0))
}
function BackwardDeferred_Invoke_3( milliseconds: number=0, wasmMethodName: string,
                                    arg_1: any, arg_2: any, arg_3: any ) {
   HArgChecking.PROVIDED(wasmMethodName, 'BackwardDeferred_Invoke_3', 'wasmMethodName')
   setTimeout(()=>{
      WASM.Invoke_3(wasmMethodName, arg_1, arg_2, arg_3)
   },HOps.NullSubst(milliseconds, 0))
}
function BackwardDeferred_Invoke_4( milliseconds: number=0, wasmMethodName: string,
                                    arg_1: any, arg_2: any, arg_3: any, arg_4: any ) {
   HArgChecking.PROVIDED(wasmMethodName, 'BackwardDeferred_Invoke_4', 'wasmMethodName')
   setTimeout(()=>{
      WASM.Invoke_4(wasmMethodName, arg_1, arg_2, arg_3, arg_4)
   },HOps.NullSubst(milliseconds, 0))
}
function BackwardDeferred_Invoke_5( milliseconds: number=0, wasmMethodName: string,
                                    arg_1: any, arg_2: any, arg_3: any, arg_4: any, arg_5: any ) {
   HArgChecking.PROVIDED(wasmMethodName, 'BackwardDeferred_Invoke_5', 'wasmMethodName')
   setTimeout(()=>{
      WASM.Invoke_5(wasmMethodName, arg_1, arg_2, arg_3, arg_4, arg_5)
   },HOps.NullSubst(milliseconds, 0))
}

//==================================================================================================
// BACKWARD CALLS TO AFXUI.DLL:
//--------------------------------------------------------------------------------------------------

function BackwardDeferredAFX_Invoke( milliseconds: number=0, wasmMethodName: string ) {
   HArgChecking.PROVIDED(wasmMethodName, 'BackwardDeferredAFX_Invoke', 'wasmMethodName')
   setTimeout(()=>{
      AFXUI.Invoke(wasmMethodName)
   },HOps.NullSubst(milliseconds, 0))
}
function BackwardDeferredAFX_Invoke_1( milliseconds: number=0, wasmMethodName: string,
                                       arg_1: any ) {
   HArgChecking.PROVIDED(wasmMethodName, 'BackwardDeferredAFX_Invoke_1', 'wasmMethodName')
   setTimeout(()=>{
      AFXUI.Invoke_1(wasmMethodName, arg_1)
   },HOps.NullSubst(milliseconds, 0))
}
function BackwardDeferredAFX_Invoke_2( milliseconds: number=0, wasmMethodName: string,
                                       arg_1: any, arg_2: any ) {
   HArgChecking.PROVIDED(wasmMethodName, 'BackwardDeferredAFX_Invoke_2', 'wasmMethodName')
   setTimeout(()=>{
      AFXUI.Invoke_2(wasmMethodName, arg_1, arg_2)
   },HOps.NullSubst(milliseconds, 0))
}
function BackwardDeferredAFX_Invoke_3( milliseconds: number=0, wasmMethodName: string,
                                       arg_1: any, arg_2: any, arg_3: any ) {
   HArgChecking.PROVIDED(wasmMethodName, 'BackwardDeferredAFX_Invoke_3', 'wasmMethodName')
   setTimeout(()=>{
      AFXUI.Invoke_3(wasmMethodName, arg_1, arg_2, arg_3)
   },HOps.NullSubst(milliseconds, 0))
}
function BackwardDeferredAFX_Invoke_4( milliseconds: number=0, wasmMethodName: string,
                                       arg_1: any, arg_2: any, arg_3: any, arg_4: any ) {
   HArgChecking.PROVIDED(wasmMethodName, 'BackwardDeferredAFX_Invoke_4', 'wasmMethodName')
   setTimeout(()=>{
      AFXUI.Invoke_4(wasmMethodName, arg_1, arg_2, arg_3, arg_4)
   },HOps.NullSubst(milliseconds, 0))
}
function BackwardDeferredAFX_Invoke_5( milliseconds: number=0, wasmMethodName: string,
                                       arg_1: any, arg_2: any, arg_3: any, arg_4: any,
                                       arg_5: any ) {
   HArgChecking.PROVIDED(wasmMethodName, 'BackwardDeferredAFX_Invoke_5', 'wasmMethodName')
   setTimeout(()=>{
      AFXUI.Invoke_5(wasmMethodName, arg_1, arg_2, arg_3, arg_4, arg_5)
   },HOps.NullSubst(milliseconds, 0))
}

//==================================================================================================
