62 lines
1.7 KiB
C#
62 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Concurrent;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
using ServerCore; using ServerBase;
|
|
using ServerCommon;
|
|
|
|
|
|
|
|
namespace GameServer
|
|
{
|
|
public abstract class EntityLoaderBase : SimpleEventTriggerBase
|
|
{
|
|
private Player m_owner;
|
|
|
|
private ConcurrentDictionary<Type, List<DynamoDbDocBase>> m_to_read_doc_bases = new();
|
|
|
|
private bool m_is_completed_prepare_load = false;
|
|
|
|
private readonly Result m_load_result = new();
|
|
|
|
public EntityLoaderBase(Player owner)
|
|
{
|
|
m_owner = owner;
|
|
m_load_result.set(ServerErrorCode.ResultCodeNotSet, $"Result Code not set !!!");
|
|
}
|
|
|
|
public abstract Task<Result> onPrepareLoad();
|
|
|
|
public bool isCompletedPrepareLoad() => m_is_completed_prepare_load;
|
|
|
|
public void setCompetedPrepareLoad(bool isTrue) => m_is_completed_prepare_load = isTrue;
|
|
|
|
protected Result addToReadDocBase(DynamoDbDocBase docBase)
|
|
{
|
|
var result = new Result();
|
|
var err_msg = string.Empty;
|
|
|
|
if (false == m_to_read_doc_bases.TryGetValue(docBase.GetType(), out var found_doc_bases))
|
|
{
|
|
found_doc_bases = new List<DynamoDbDocBase>();
|
|
m_to_read_doc_bases.TryAdd(docBase.GetType(), found_doc_bases);
|
|
}
|
|
|
|
found_doc_bases.Add(docBase);
|
|
|
|
return result;
|
|
}
|
|
|
|
public ConcurrentDictionary<Type, List<DynamoDbDocBase>> getToReadDocBases() => m_to_read_doc_bases;
|
|
|
|
public Result getLoadResult() => m_load_result;
|
|
|
|
public Player getOwner() => m_owner;
|
|
}
|
|
}
|