BnetServer.Pipes.IPCPacketManager.CallHandler C# (CSharp) Méthode

CallHandler() public static méthode

public static CallHandler ( byte ipcMessage, Stream ipcMessageData, IPCClientBase client ) : System.Threading.Tasks.Task
ipcMessage byte
ipcMessageData Stream
client Framework.Pipes.IPCClientBase
Résultat System.Threading.Tasks.Task
        public static async Task CallHandler(byte ipcMessage, Stream ipcMessageData, IPCClientBase client)
        {
            var message = (IPCMessage)ipcMessage;

            Tuple<MethodInfo, Type> data;

            if (messageHandlers.TryGetValue(message, out data))
            {
                var handlerObj = Activator.CreateInstance(data.Item2, ipcMessage, ipcMessageData) as IPCPacket;

                await Task.Run(() => data.Item1.Invoke(null, new object[] { handlerObj, client }));
            }
            else
            {
                var msgName = Enum.GetName(typeof(IPCMessage), message);

                if (msgName == null)
                    Log.Message(LogTypes.Warning, $"Received unknown ipc message '0x{message:X}'.");
                else
                    Log.Message(LogTypes.Warning, $"Handler for '{msgName} (0x{message:X}) not implemented.");
            }
        }
    }

Usage Example

Exemple #1
0
 public override Task ProcessPacket(byte ipcMessage, Stream ipcDataStream)
 {
     return(IPCPacketManager.CallHandler(ipcMessage, ipcDataStream, this));
 }