Files
2025-05-01 07:20:41 +09:00

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;
}
}