Example #1
0
            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);
            }
Example #2
0
            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);
     }
 }
Example #5
0
            public static void ProcessLocalData(JPacketType data)
            {
                IProcessor processor = JLogicHelper.getProcessor(data);

                if (null == processor)
                {
                    return;
                }

                processor.run(JLogicUserData.getLocalData());
            }
Example #6
0
            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());
            }
Example #8
0
            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);
     }
 }
Example #10
0
            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));
            }