초기커밋

This commit is contained in:
2025-05-01 07:20:41 +09:00
commit 98bb2e3c5c
2747 changed files with 646947 additions and 0 deletions

View File

@@ -0,0 +1,143 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Concurrent;
using ServerCore; using ServerBase;
using ServerCommon.Cache;
using USER_GUID = System.String;
namespace ServerCommon;
public class PartyMemberAttribute : EntityAttributeBase, ICopyEntityAttributeFromCache
{
private ConcurrentDictionary<USER_GUID, PartyMemberInfo> m_party_members = new();
public PartyMemberAttribute(EntityBase owner) : base(owner)
{
}
public override async Task<Result> onInit() => await Task.FromResult(new Result());
public override void onClear()
{
m_party_members.Clear();
}
public override EntityAttributeBase onCloned()
{
var cloned = new PartyMemberAttribute(getOwner());
foreach (var member in m_party_members)
{
var insert = member.Value.clone();
cloned.m_party_members.TryAdd(member.Key, insert);
}
return cloned;
}
public ConcurrentDictionary<USER_GUID, PartyMemberInfo> getPartyMembers() => m_party_members;
public PartyMemberInfo? getPartyMember(USER_GUID user_guid) => m_party_members.GetValueOrDefault(user_guid);
public int getPartyMemberCount() => m_party_members.Count;
public void setPartyMember(PartyMemberInfo user) => m_party_members[user.UserGuid] = user;
public bool deletePartyMember(USER_GUID delete_user_guid) => m_party_members.Remove(delete_user_guid, out _);
public bool copyEntityAttributeFromCache(CacheBase? cacheBase)
{
var party_member_cache = cacheBase as PartyMemberCache;
if(null == party_member_cache)
{
var err_msg = $"Failed to copyEntityAttributeFromCache() !!!, party_member_cache is null :{nameof(PartyMemberCache)}";
Log.getLogger().error(err_msg);
return false;
}
//=====================================================================================
// Cache => Attribute
//=====================================================================================
foreach (var member in party_member_cache.PartyMembers)
{
if (m_party_members.ContainsKey(member.Key))
{
m_party_members[member.Key] = member.Value;
continue;
}
m_party_members.TryAdd(member.Key, member.Value);
}
return true;
}
public bool copyEntityAttributeFromAttribute(PartyMemberAttribute from_attribute)
{
//=====================================================================================
// Attribute => Attribute
//=====================================================================================
foreach (var member in from_attribute.getPartyMembers())
{
if (m_party_members.ContainsKey(member.Key))
{
m_party_members[member.Key] = member.Value;
continue;
}
m_party_members.TryAdd(member.Key, member.Value);
}
return true;
}
public override IEntityAttributeTransactor onNewEntityAttributeTransactor()
{
return new PartyMemberAttributeTransactor(getOwner());
}
public override async Task<(Result, DynamoDbDocBase?)> toDocBase(bool isForQuery = true)
{
await Task.CompletedTask;
return (new Result(), null);
}
}
public class PartyMemberAttributeTransactor : EntityAttributeTransactorBase<PartyMemberAttribute>, ICopyEntityAttributeTransactorFromEntityAttribute
{
public PartyMemberAttributeTransactor(EntityBase owner) : base(owner)
{
}
public bool copyEntityAttributeTransactorFromEntityAttribute(EntityAttributeBase entityAttributeBase)
{
string err_msg;
var copy_from_party_member_attribute = entityAttributeBase as PartyMemberAttribute;
if (null == copy_from_party_member_attribute)
{
err_msg = $"Failed to copyEntityAttributeTransactorFromEntityAttribute() !!!, copy_from_party_member_attribute is null :{nameof(PartyMemberAttribute)}";
Log.getLogger().error(err_msg);
return false;
}
var copy_to_party_member_attribute = getClonedEntityAttribute() as PartyMemberAttribute;
if (null == copy_to_party_member_attribute)
{
err_msg = $"Failed to copyEntityAttributeTransactorFromEntityAttribute() !!!, copy_to_party_member_attribute is null :{nameof(PartyMemberAttribute)}";
Log.getLogger().error(err_msg);
return false;
}
copy_to_party_member_attribute.copyEntityAttributeFromAttribute(copy_from_party_member_attribute);
return true;
}
}