コード例 #1
0
 internal void InstallEvents()
 {
     Dispatch.Install <HTML_BrowserReady_t>(x => OnBrowserReady?.Invoke(new Browser(x.UnBrowserHandle)));
     Dispatch.Install <HTML_StartRequest_t>(x => OnStartRequest?.Invoke(new Browser(x.UnBrowserHandle), x.PchURL, x.PchTarget, x.PchPostData, x.BIsRedirect));
     Dispatch.Install <HTML_JSAlert_t>(x => OnJSAlert?.Invoke(new Browser(x.UnBrowserHandle), x.PchMessage));
     Dispatch.Install <HTML_JSConfirm_t>(x => OnJSConfirm?.Invoke(new Browser(x.UnBrowserHandle), x.PchMessage));
     Dispatch.Install <HTML_FileOpenDialog_t>(x => OnFileOpenDialog?.Invoke(new Browser(x.UnBrowserHandle), x.PchTitle, x.PchInitialFile));
     Dispatch.Install <HTML_FinishedRequest_t>(x => OnFinishedLoading?.Invoke(new Browser(x.UnBrowserHandle), x.PchURL, x.PchPageTitle));
     Dispatch.Install <HTML_NeedsPaint_t>(x => OnNeedsPaint?.Invoke(new Browser(x.UnBrowserHandle), new BrowserPaint(x)));
     Dispatch.Install <HTML_NewWindow_t>(x => OnNewWindow?.Invoke(new Browser(x.UnBrowserHandle), new BrowserNewWindow(x)));
     Dispatch.Install <HTML_OpenLinkInNewTab_t>(x => OnNewTab?.Invoke(new Browser(x.UnBrowserHandle), x.PchURL));
     Dispatch.Install <HTML_StatusText_t>(x => OnStatusText?.Invoke(new Browser(x.UnBrowserHandle), x.PchMsg));
 }
コード例 #2
0
        internal void HandleIncomingMessage(BreweryMessage message)
        {
            LastMessage = DateTime.Now;
            m_receiptStamps.AddOrUpdate(message.MessageType, m_stopwatch.ElapsedTicks, (messageType, oldValue) => m_stopwatch.ElapsedTicks);

            try
            {
                switch (message.MessageType)
                {
                case BreweryMessageType.Settings:
                    Settings = (message as SettingsBreweryMessage).Settings;
                    OnSettingsReceived?.Invoke(this, new BreweryEventArgs()
                    {
                        Brewery = this
                    });
                    break;

                case BreweryMessageType.State:
                    RemoteState = (message as StateBreweryMessage).CurrentState;
                    OnStateReceived?.Invoke(this, new BreweryEventArgs()
                    {
                        Brewery = this
                    });
                    break;

                case BreweryMessageType.SSIDs:
                    Networks = (message as SsidBreweryMessage).Networks.ToList();
                    OnNetworksReceived?.Invoke(this, new BreweryEventArgs()
                    {
                        Brewery = this
                    });
                    break;

                case BreweryMessageType.AllInfo:
                    AllInfoBreweryMessage allInfo = message as AllInfoBreweryMessage;
                    Settings    = allInfo.SettingsMessage().Settings;
                    RemoteState = allInfo.StateMessage().CurrentState;
                    Networks    = allInfo.SsidsMessage().Networks.ToList();
                    OnRefreshComplete?.Invoke(this, new BreweryEventArgs()
                    {
                        Brewery = this
                    });
                    OnSettingsReceived?.Invoke(this, new BreweryEventArgs()
                    {
                        Brewery = this
                    });
                    OnNetworksReceived?.Invoke(this, new BreweryEventArgs()
                    {
                        Brewery = this
                    });
                    OnStateReceived?.Invoke(this, new BreweryEventArgs()
                    {
                        Brewery = this
                    });
                    break;

                case BreweryMessageType.Pong:
                    OnPongReceived?.Invoke(this, new BreweryEventArgs()
                    {
                        Brewery = this
                    });
                    break;

                case BreweryMessageType.StatusTxt:
                    OnStatusText?.Invoke(this, new BreweryStatusTextEventArgs()
                    {
                        Brewery = this, Message = (message as StatusTextBreweryMessage).Data
                    });
                    break;

                case BreweryMessageType.Goodbye:
                    OnGoodbye?.Invoke(this, new BreweryEventArgs()
                    {
                        Brewery = this
                    });
                    break;
                }
            }
            catch (Exception ex)
            {
                Mantis.Error("{0} ignoring brewery delegate exception from message: {1} exception: {2}", ID, message.MessageType, ex);
            }

            if (message is IncomingMessage)
            {
                try
                {
                    OnNetworkMessage?.Invoke(this, new BreweryNetworkEventArgs()
                    {
                        Brewery = this, Message = message as IncomingMessage
                    });
                }
                catch (Exception ex)
                {
                    Mantis.Error("{0} ignoring brewery delegate exception from network delegate, message: {1} exception: {2}", ID, message.MessageType, ex);
                }
            }
        }