Beispiel #1
0
        public Agent(IProtocol protocol)
        {
            Serialization.ISerializer serializer = protocol.GetSerialize();

            GhostSerializer ghostSerializer = new GhostSerializer(serializer);

            _GhostProvider = new GhostProvider(protocol, ghostSerializer);

            _GhostSerializer = ghostSerializer;
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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));
        }