예제 #1
0
        protected override void ProcessAccept(UDPPacket packet)
        {
            IPEndPoint remote = (IPEndPoint)packet.AsyncEventArgs.RemoteEndPoint;


            //Task.Run(() =>
            //{

            if (packet.BytesRecieved.Length < 6)
            {
                return;
            }
            BasePacket basePacket = new BasePacket(packet.BytesRecieved);

            try
            {
                //BytesRecieved[7] is nnpacket.PacketType.
                switch (basePacket.PacketType)
                {
                case NatPacketType.PreInit:
                    //NatNegHandler.PreInitResponse(this, packet, nnpacket);
                    break;

                case NatPacketType.Init:
                    InitHandler.InitResponse(this, packet);
                    break;

                case NatPacketType.AddressCheck:
                    AddressHandler.AddressCheckResponse(this, packet);
                    break;

                case NatPacketType.NatifyRequest:
                    NatifyHandler.NatifyResponse(this, packet);
                    break;

                case NatPacketType.ConnectAck:
                    ConnectHandler.ConnectResponse(this, packet);
                    break;

                case NatPacketType.Report:
                    ReportHandler.ReportResponse(this, packet);
                    break;

                default:
                    LogWriter.Log.Write(LogLevel.Error, "{0,-8} [Recv] unknow data", ServerName);
                    break;
                }
            }
            catch (Exception e)
            {
                LogWriter.Log.WriteException(e);
            }
            finally
            {
                if (Replied == true)
                {
                    Release(packet.AsyncEventArgs);
                }
            }
        }
예제 #2
0
        private void BtnInit_Click(object sender, RoutedEventArgs e)
        {
            string result;

            result = InitHandler.addTables();
            if (result != "OK")
            {
                MessageBox.Show(result + "! Please check database.");
            }
            else
            {
                InitHandler.addTestProject();
                result = InitHandler.addSequences();
                if (result != "OK")
                {
                    MessageBox.Show(result + "! Please check database.");
                }
                else
                {
                    result = InitHandler.addTriggers();
                    if (result != "OK")
                    {
                        MessageBox.Show(result + "! Please check databse.");
                    }
                }
            }
        }
예제 #3
0
        public MainMenu()
        {
            InitializeComponent();

            if (InitHandler.checkIfInitDone() != "OK")
            {
                Console.WriteLine(InitHandler.checkIfInitDone());
                BtnInit.Visibility = Visibility.Visible;
            }
        }
예제 #4
0
        public static MyRenderThread Start(MyGameTimer timer, InitHandler initHandler, MyRenderDeviceSettings?settingsToTry, MyRenderQualityEnum renderQuality)
        {
            var result = new MyRenderThread(timer, true);

            result.SystemThread.Start(new StartParams()
            {
                InitHandler = initHandler, SettingsToTry = settingsToTry, RenderQuality = renderQuality
            });
            return(result);
        }
예제 #5
0
        public void InitTest()
        {
            var rawRequest = new byte[] {
                0xfd, 0xfc, 0x1e, 0x66, 0x6a, 0xb2, 0x03,
                0x00,
                0x00, 0x00, 0x03, 0x09, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
            };
            var request = new InitRequest(rawRequest);
            var handler = new InitHandler(_client, request);

            handler.Handle();
        }
예제 #6
0
    //public SpellQueue spellQueue;

    private GameCore()
    {
        spellRepository  = new SpellRepository(this);
        itemRepository   = new ItemRepository();
        spellCastHandler = new SpellCastHandler();
        troopsHandler    = new TroopsHandler();
        chosenAccount    = new Account();
        chosenAccount.LoadAccData();
        chosenAdventure = new Adventure(-1);
        espellHandler   = new EnemySpellInfoHandler();
        initHandler     = new InitHandler();
        //spellQueue = new SpellQueue();
    }
예제 #7
0
        public static IntPtr WaitFindingTopWindow(string name, InitHandler init)
        {
            IntPtr hWnd = IntPtr.Zero;

            do
            {
                if (init != null)
                {
                    init.Invoke();
                }
                hWnd = FindWindow(null, name);
                Thread.Sleep(100);
            } while (hWnd == IntPtr.Zero);
            return(hWnd);
        }
예제 #8
0
        public static void Switch(NatNegServer server, byte[] message)
        {
            BasePacket basePacket = new BasePacket(message);

            try
            {
                //BytesRecieved[7] is nnpacket.PacketType.
                switch (basePacket.PacketType)
                {
                case NatPacketType.PreInit:
                    //NatNegHandler.PreInitResponse(this, packet, nnpacket);
                    break;

                case NatPacketType.Init:
                    InitHandler.InitResponse(server, message);
                    break;

                case NatPacketType.AddressCheck:
                    AddressHandler.AddressCheckResponse(server, message);
                    break;

                case NatPacketType.NatifyRequest:
                    NatifyHandler.NatifyResponse(server, message);
                    break;

                case NatPacketType.ConnectAck:
                    ConnectHandler.ConnectResponse(server, message);
                    break;

                case NatPacketType.Report:
                    ReportHandler.ReportResponse(server, message);
                    break;

                default:
                    server.UnknownDataRecived(message);
                    break;
                }
            }
            catch (Exception e)
            {
                LogWriter.Log.WriteException(e);
            }
        }
예제 #9
0
        private async Task MainAsync()
        {
            BotRegistry.FillRegistry();
            GuildRegistry.FillRegistry();

            _client = new DiscordSocketClient();

            await InitHandler.HandleInit(_client);

            var commandConfig = new CommandServiceConfig {
                DefaultRunMode = RunMode.Async
            };
            var commandHandler = new CommandHandler(_client, new CommandService(commandConfig));
            await commandHandler.InstallCommandsAsync();

            var reactionHandler = new ReactionHandler();

            reactionHandler.HandleReactions(_client);

            await Task.Delay(-1);
        }
예제 #10
0
        private void InitFinished(IAsyncResult resultInit)
        {
            InitHandler handlerInit = (InitHandler)((AsyncResult)resultInit).AsyncDelegate;

            handlerInit.EndInvoke(resultInit);
            ProgramNameHandler nameHandler = new ProgramNameHandler(FillProgramNameMap);

            nameHandler.BeginInvoke(null, null);
            _MessagePipe = new RedisPubSub(this.MachineSN);
            _MessagePipe.OnSubScribeSampleData += MessagePipe_OnSubScribeSampleData;
            _MessagePipe.OnToolBroken          += MessagePipe_OnToolBroken;
            _MessagePipe.OnHealthData          += _MessagePipe_OnHealthData;
            _Publisher = new List <RealTimeDataPublisher>();
            _MessagePipe.Start();
            _LocalDB = FindLocalDB();
            RegistMachineToClound();
            CloudUploadhandler handler = new CloudUploadhandler(UploadToCloud);
            IAsyncResult       result  = handler.BeginInvoke(new AsyncCallback(UploadFinished), "Cloud upload finished!");

            System.Windows.Forms.Application.ApplicationExit += Application_ApplicationExit;
        }
예제 #11
0
 public Machine(Int16 ClientNo, String ip, UInt16 port, SampleSet set, bool needSample)
 {
     _MacSize++;
     if (_MacSize > 18)
     {
         int ik = 0;
         int j  = ik + 1;
     }
     _NeedSample      = needSample;
     _StopLocker      = new Object();
     _ClientNo        = ClientNo;
     _MachineIp       = ip;
     _MachinePort     = port;
     _SampleDic       = new Dictionary <int, Queue <SampleData> >();
     _SampleSet       = set;
     _Job             = new Job(this);
     _ProgPath        = "";
     LocalDB          = -1;
     CloudDB          = -1;
     _ProgramIdToName = new Dictionary <int, string>();
     _ScanProgramName = true;
     if (needSample)
     {
         for (Int32 i = 56; i <= 66; i++)
         {
             _ProgramIdToName.Add(i, "");
         }
         _conf = set.GetSampleConfig();
         for (int i = 0; i < _conf.Count; i++)
         {
             ComponentSample sample = new ComponentSample(_conf[i]);
             _Job.SampleDic.Add(_conf[i].Channel, sample);
         }
         set.SetSamplConfig(_ClientNo);
         HncApi.HNC_SamplSubscibeData(_ClientNo);
         InitHandler  handler = new InitHandler(Init);
         IAsyncResult result  = handler.BeginInvoke(new AsyncCallback(InitFinished), "Init finished!");
     }
 }
예제 #12
0
        /// <summary>
        /// 处理内部消息
        /// </summary>
        /// <param name="Param"></param>
        public static void ExecuteInternalInfo(PacketDecodeCompletedEventArgs Event, SocketMiddleData Param)
        {
            switch (Param.SendType)
            {
            case SendTypeEnum.Init:
                InitHandler.ExecuteSocketApiJson(Param.MiddleResult);
                break;

            case SendTypeEnum.InternalInfo:
                InternalHandler.ExecuteSocketIniternalInfo(Param, PacketCache);
                break;

            case SendTypeEnum.RequestInfo:
                RequestHandler.ExecuteSocketRequest(Event, Param);
                break;

            case SendTypeEnum.CallBack:
                CallHandler.ExecuteSocketCallBack(PacketCache.Values.ToList(), Param);
                break;

            default:
                break;
            }
        }
예제 #13
0
 public GuiObjControl(InitHandler initHandler, RefreshHandler refHandler, LoadHandler loadHandler)
 {
     OnInit = initHandler;
     OnRefresh = refHandler;
     OnLoad = loadHandler;
 }
예제 #14
0
 /// <summary>
 /// Creates and starts render thread
 /// </summary>
 public void Start(MyGameTimer timer, InitHandler windowInitializer, MyRenderDeviceSettings?settingsToTry, MyRenderQualityEnum renderQuality, float maxFrameRate)
 {
     RenderThread = MyRenderThread.Start(timer, windowInitializer, settingsToTry, renderQuality, maxFrameRate);
 }
예제 #15
0
 public static MyRenderThread Start(MyGameTimer timer, InitHandler initHandler, MyRenderDeviceSettings? settingsToTry, MyRenderQualityEnum renderQuality)
 {
     var result = new MyRenderThread(timer, true);
     result.SystemThread.Start(new StartParams() { InitHandler = initHandler, SettingsToTry = settingsToTry, RenderQuality = renderQuality });
     return result;
 }
예제 #16
0
 /// <summary>
 /// Creates and starts render thread
 /// </summary>
 public void Start(MyGameTimer timer, InitHandler windowInitializer, MyRenderDeviceSettings? settingsToTry, MyRenderQualityEnum renderQuality, float maxFrameRate)
 {
     RenderThread = MyRenderThread.Start(timer, windowInitializer, settingsToTry, renderQuality, maxFrameRate);
 }
예제 #17
0
 public GuiObjControl(InitHandler initHandler, RefreshHandler refHandler, LoadHandler loadHandler)
 {
     OnInit    = initHandler;
     OnRefresh = refHandler;
     OnLoad    = loadHandler;
 }