示例#1
0
 internal Task OnObjectEvent(BlockEvent block)
 {
     if (block.ObjectID < 0)
     {
         return(OnChannelEvent(block));
     }
     _proxyCache.HandleEvent(block);
     return(Task.CompletedTask);
 }
示例#2
0
        public async void SendEvent <TEventArgs>(Int16 objectID, Int16 methodID, TEventArgs args)
            where TEventArgs : EventArgs
        {
            using var stream = new MemoryStream();
            var serializer = new Serializer(stream);

            serializer.Serialize(args);
            var block = new BlockEvent
            {
                ObjectID   = objectID,
                EventID    = methodID,
                DataStream = stream
            };

            await SendBlockAsync(block);
        }
示例#3
0
 public void HandleEvent(BlockEvent block)
 {
     FindByID(block.ObjectID)?.Proxy.FireEvent(block.EventID, block.DataStream);
 }
示例#4
0
 protected virtual Task OnChannelEvent(BlockEvent block)
 {
     return(Task.CompletedTask);
 }