Core/DBLayer: Add nicer api for SQLQueryHolders
Port From (https://github.com/TrinityCore/TrinityCore/commit/d5dcf02196e30c932c7a25c3975a91a0fe1ccd50)
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
@@ -74,4 +75,31 @@ namespace Framework.Database
|
||||
|
||||
public Task<SQLQueryHolder<R>> GetFuture() { return m_result.Task; }
|
||||
}
|
||||
|
||||
public class SQLQueryHolderCallback<R> : ISqlCallback
|
||||
{
|
||||
Task<SQLQueryHolder<R>> m_future;
|
||||
Action<SQLQueryHolder<R>> m_callback;
|
||||
|
||||
public SQLQueryHolderCallback(Task<SQLQueryHolder<R>> future)
|
||||
{
|
||||
m_future = future;
|
||||
}
|
||||
|
||||
public void AfterComplete(Action<SQLQueryHolder<R>> callback)
|
||||
{
|
||||
m_callback = callback;
|
||||
}
|
||||
|
||||
public bool InvokeIfReady()
|
||||
{
|
||||
if (m_future != null && m_future.Wait(0))
|
||||
{
|
||||
m_callback(m_future.Result);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user