DBQueryRequestHandler.cs 789 字节
Newer Older
T
tanghai 已提交
1
using System;
2
using ETModel;
T
tanghai 已提交
3

4
namespace ETHotfix
T
tanghai 已提交
5 6 7 8 9 10 11 12 13 14
{
	[MessageHandler(AppType.DB)]
	public class DBQueryRequestHandler : AMRpcHandler<DBQueryRequest, DBQueryResponse>
	{
		protected override async void Run(Session session, DBQueryRequest message, Action<DBQueryResponse> reply)
		{
			DBQueryResponse response = new DBQueryResponse();
			try
			{
				DBCacheComponent dbCacheComponent = Game.Scene.GetComponent<DBCacheComponent>();
T
tanghai 已提交
15
				Component disposer = await dbCacheComponent.Get(message.CollectionName, message.Id);
T
tanghai 已提交
16

T
tanghai 已提交
17
				response.Disposer = disposer;
T
tanghai 已提交
18

T
tanghai 已提交
19
				if (message.NeedCache && disposer != null)
T
tanghai 已提交
20
				{
T
tanghai 已提交
21
					dbCacheComponent.AddToCache(disposer, message.CollectionName);
T
tanghai 已提交
22 23 24 25 26 27 28 29 30 31 32
				}

				reply(response);
			}
			catch (Exception e)
			{
				ReplyError(response, e, reply);
			}
		}
	}
}