//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// AFXUI auxiliary module for Blazor-application (WASM) | Author: Sergei Y.Kitáev
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
using System;
using System.Reflection;
using System.Threading.Tasks;

using CommonHelpers.WASM;

namespace AFXUI {

//**************************************************************************************************
partial class UComponentBase {
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/// <exception cref="ArgumentNullException" />
public static int DoStatic( int exclusive, [HRequired] MethodBase? method, Action body ) =>
   UCircuit.DoStatic( exclusive, method, body );

//--------------------------------------------------------------------------------------------------

/// <exception cref="ArgumentNullException" />
public static Task<int> DoStatic_A( int exclusive,
                                    [HRequired] MethodBase? method, Func<Task> bodyA ) =>
   UCircuit.DoStatic_A( exclusive, method, bodyA );
/// <exception cref="ArgumentNullException" />
public static Task<int> DoStatic_A( int exclusive, [HRequired] MethodBase? method,
                                    Func<bool>? preliminary, Func<Task> bodyA ) =>
   UCircuit.DoStatic_A( exclusive, method, preliminary, bodyA );

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

/// <exception cref="ArgumentNullException" />
public static int DoStatic( int exclusive, [HRequired] MethodBase? method,
                            UCircuitExtraParams extraParams, Action body ) =>
   UCircuit.DoStatic( exclusive, method, extraParams, body );

//--------------------------------------------------------------------------------------------------

/// <exception cref="ArgumentNullException" />
public static Task<int> DoStatic_A( int exclusive, [HRequired] MethodBase? method,
                                    UCircuitExtraParams extraParams, Func<Task> bodyA ) =>
   UCircuit.DoStatic_A( exclusive, method, extraParams, bodyA );
/// <exception cref="ArgumentNullException" />
public static Task<int> DoStatic_A( int exclusive, [HRequired] MethodBase? method,
                                    UCircuitExtraParams extraParams,
                                    Func<bool>? preliminary, Func<Task> bodyA ) =>
   UCircuit.DoStatic_A( exclusive, method, extraParams, preliminary, bodyA );

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
} // UComponentBase
//**************************************************************************************************

} // AFXUI
