public static IProcesser getProcessor(JPacketType packetType) { IProcesser processor = null; try { _readerWriteLocker.EnterReadLock(); if (JLogicRegisteredProcessors.processors.PacketTypeToProcessor.ContainsKey(packetType)) { processor = (IProcesser)JLogicRegisteredProcessors.processors.PacketTypeToProcessor[packetType]; } } catch (Exception e) { JLog.Error("JLogicHelper.RegisterProcessor error message:" + e.Message); } finally { _readerWriteLocker.ExitReadLock(); } if (null == processor) { JLog.Error("JLogicHelper.RegisterProcessor: Unregistered packet type:" + packetType.GetDescription()); } return(processor); }
public static bool registerProcessor(JPacketType packetType, IProcesser processor, bool isServerProcessor = false) { if (IsServer && !isServerProcessor || !IsServer && isServerProcessor) { return(true); } bool bSuccess = false; try { _readerWriteLocker.EnterWriteLock(); if (!JLogicRegisteredProcessors.processors.PacketTypeToProcessor.ContainsKey(packetType)) { JLogicRegisteredProcessors.processors.PacketTypeToProcessor.Add(packetType, processor); bSuccess = true; } } catch (Exception e) { JLog.Error("JLogicHelper.RegisterProcessor error message:" + e.Message); } finally { _readerWriteLocker.ExitWriteLock(); } return(bSuccess); }
public static void SendData(JPacketType packetType, IStreamObj streamObject) { JOutputStream jstream = new JOutputStream(); jstream.Writer.Write((ushort)packetType); JBinaryReaderWriter.Write(ref jstream, streamObject); SendData(jstream.ToArray()); }
public static bool IsValidPacketType(JPacketType type) { if (type > JPacketType.npt_min && type < JPacketType.npt_max) { return(true); } else { return(false); } }
public static void ProcessLocalData(JPacketType data) { IProcessor processor = JLogicHelper.getProcessor(data); if (null == processor) { return; } processor.run(JLogicUserData.getLocalData()); }
public static void SendDataToServer( JPacketType packetType, IStreamObj streamObject) { JOutputStream jstream = new JOutputStream(); jstream.Writer.Write((ushort)packetType); JBinaryReaderWriter.Write(ref jstream, streamObject); SendData(jstream.ToArray(), JClientSocket.socket.RemoteEndPoint as IPEndPoint); }
public static void SendData(JPacketType packetType, List <IStreamObj> objects) { JOutputStream jstream = new JOutputStream(); jstream.Writer.Write((ushort)packetType); foreach (var obj in objects) { JBinaryReaderWriter.Write(ref jstream, obj); } SendData(jstream.ToArray()); }
public static void SendDataToServer( JPacketType packetType, List <IStreamObj> objects) { JOutputStream jstream = new JOutputStream(); jstream.Writer.Write((ushort)packetType); foreach (var obj in objects) { JBinaryReaderWriter.Write(ref jstream, obj); } SendData(jstream.ToArray(), JClientSocket.socket.RemoteEndPoint as IPEndPoint); }
public static void addData(JPacketType type, IStreamObj obj) { try { JLogicUserData.Data.setData(obj); lock (_locker) { JLocalDataProcessors.Data.Enqueue(type); } _semaphore.Release(); } catch (Exception e) { JLog.Error("JLocalDataHelper: addData " + e.Message); } }
public static void ProcessNetworkData(JNetworkData data) { JPacketType packetType = JNetworkHelper.GetNetworkPacketType(data); if (!JNetworkHelper.IsValidPacketType(packetType)) { return; } IProcessor processor = JLogicHelper.getProcessor(packetType); if (null == processor) { return; } processor.run(JLogicUserData.getData(data.RemoteEndPoint)); }