public Agent(IProtocol protocol) { Serialization.ISerializer serializer = protocol.GetSerialize(); GhostSerializer ghostSerializer = new GhostSerializer(serializer); _GhostProvider = new GhostProvider(protocol, ghostSerializer); _GhostSerializer = ghostSerializer; }
internal void Remove(System.Reflection.EventInfo info, long handler) { MemberMap map = _Protocol.GetMemberMap(); Serialization.ISerializer serialize = _Protocol.GetSerialize(); PackageRemoveEvent package = new PackageRemoveEvent(); package.Entity = _Ghost.GetID(); package.Event = map.GetEvent(info); package.Handler = handler; _Requester.Request(ClientToServerOpCode.RemoveEvent, package.ToBuffer(serialize)); }
public void Run(MethodInfo info, object[] args, IValue return_value) { MemberMap map = _Protocol.GetMemberMap(); Serialization.ISerializer serialize = _Protocol.GetSerialize(); int method = map.GetMethod(info); PackageCallMethod package = new PackageCallMethod(); package.EntityId = _Ghost.GetID(); package.MethodId = method; package.MethodParams = args.Select(arg => serialize.Serialize(arg)).ToArray(); if (return_value != null) { package.ReturnId = _ReturnValueQueue.PushReturnValue(return_value); } _Requester.Request(ClientToServerOpCode.CallMethod, package.ToBuffer(serialize)); }