DBQueryRequestHandler.cs 800 字节
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>();
15
				ComponentWithId component = await dbCacheComponent.Get(message.CollectionName, message.Id);
T
tanghai 已提交
16

17
				response.Component = component;
T
tanghai 已提交
18

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

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