コード例 #1
0
ファイル: DataChannel.cs プロジェクト: GuanXP/GSerialize
 internal Task OnObjectEvent(BlockEvent block)
 {
     if (block.ObjectID < 0)
     {
         return(OnChannelEvent(block));
     }
     _proxyCache.HandleEvent(block);
     return(Task.CompletedTask);
 }
コード例 #2
0
ファイル: DataChannel.cs プロジェクト: GuanXP/GSerialize
        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
ファイル: ProxyCache.cs プロジェクト: GuanXP/GSerialize
 public void HandleEvent(BlockEvent block)
 {
     FindByID(block.ObjectID)?.Proxy.FireEvent(block.EventID, block.DataStream);
 }
コード例 #4
0
ファイル: DataChannel.cs プロジェクト: GuanXP/GSerialize
 protected virtual Task OnChannelEvent(BlockEvent block)
 {
     return(Task.CompletedTask);
 }