Ejemplo n.º 1
0
        void OnHello(Srpc.Message response)
        {
            var srpc = new Srpc.Message();

            srpc.Set(Srpc.Key.Method, "System_GetHandle");
            _client.Send(srpc, OnGetHandle);
        }
Ejemplo n.º 2
0
        void OnGetHandle(Srpc.Message response)
        {
            _sContext    = response.GetString("hResult");
            _bHasContext = true;

            SendContextOpen();

            // Before Show, so that the browser window is known and can manage the Show
            if (_nNativeHWND != 0)
            {
                SendContextNativeWindow(_sNativeVersion, _nNativeHWND);
            }

            if (_bShow)
            {
                SendContextShow();
            }
            else
            {
                SendContextHide();
            }

            //SendContextPosition(200, 800);
            //SendContextSize(600, 400);
        }
Ejemplo n.º 3
0
        void SendContextHide()
        {
            var srpc = new Srpc.Message();

            srpc.Set(Srpc.Key.Method, "Navigation_ContextHide");
            srpc.Set("hContext", _sContext);
            Send(srpc);
        }
Ejemplo n.º 4
0
        void SendContextNavigate(string sUrl)
        {
            var srpc = new Srpc.Message();

            srpc.Set(Srpc.Key.Method, "Navigation_ContextNavigate");
            srpc.Set("hContext", _sContext);
            srpc.Set("sUrl", sUrl);
            Send(srpc);
        }
Ejemplo n.º 5
0
 void Send(Srpc.Message srpc)
 {
     lock (this) {
         if (_client != null)
         {
             _client.Send(srpc);
         }
     }
 }
Ejemplo n.º 6
0
        void SendContextSize(int nWidth, int nHeight)
        {
            var srpc = new Srpc.Message();

            srpc.Set(Srpc.Key.Method, "Navigation_ContextSize");
            srpc.Set("hContext", _sContext);
            srpc.Set("nWidth", nWidth);
            srpc.Set("nHeight", nHeight);
            Send(srpc);
        }
Ejemplo n.º 7
0
        void SendContextPosition(int nLeft, int nBottom)
        {
            var srpc = new Srpc.Message();

            srpc.Set(Srpc.Key.Method, "Navigation_ContextPosition");
            srpc.Set("hContext", _sContext);
            srpc.Set("nLeft", nLeft);
            srpc.Set("nBottom", nBottom);
            Send(srpc);
        }
Ejemplo n.º 8
0
        internal void Send(Srpc.Message msg, SrpcCompletion fComplete)
        {
            if (fComplete != null)
            {
                string sSrpcId = "_" + _nSrpcId++;
                msg.Set("SrpcId", sSrpcId);
                _completions.Add(sSrpcId, fComplete);
            }

            Send(msg.ToString() + "\n");
        }
Ejemplo n.º 9
0
 private void HandleResponse(Srpc.Message response, string sSrpcId)
 {
     if (_completions.ContainsKey(sSrpcId))
     {
         var fCompletion = _completions[sSrpcId];
         if (fCompletion != null)
         {
             fCompletion(response);
         }
         _completions.Remove(sSrpcId);
     }
 }
Ejemplo n.º 10
0
        void OnReceived(IAsyncResult iar)
        {
            //Socket remoteSocket = (Socket)iar.AsyncState; // disposed

            lock (this) {
                if (_socket == null)
                {
                    OnDisconnected();
                }
                else
                {
                    _bReceiving = false;
                    int nBytesRead = 0;
                    try {
                        nBytesRead = _socket.EndReceive(iar);
                    } catch { }

                    if (nBytesRead == 0)
                    {
                        OnDisconnected();
                    }
                    else
                    {
                        string sData = Encoding.UTF8.GetString(_bytes, 0, nBytesRead);
                        Log("IN " + sData);
                        _sBuffer += sData;

                        Srpc.Message srpc = null;
                        do
                        {
                            srpc = ProcessData(ref _sBuffer);
                            if (srpc != null)
                            {
                                string sSrpcId = srpc.GetString("SrpcId");
                                if (!String.IsNullOrEmpty(sSrpcId))
                                {
                                    HandleResponse(srpc, sSrpcId);
                                }
                                else
                                {
                                    HandleRequest(srpc);
                                }
                            }
                        } while (srpc != null);

                        Receive();
                    }
                }
            }
        }
Ejemplo n.º 11
0
        void OnConnected()
        {
            _bConnected         = true;
            _nReconnectInterval = _nMinReconnectInterval;

            lock (this) {
                if (_client != null)
                {
                    var srpc = new Srpc.Message();
                    srpc.Set(Srpc.Key.Method, "Navigation_NavigatorHello");
                    _client.Send(srpc, OnHello);
                }
            }
        }
Ejemplo n.º 12
0
        void SendContextNativeWindow(string sVersion, int nHWND)
        {
            var sig = new Srpc.Message();

            sig.Set("sType", "InternetExplorer");
            sig.Set("sVersion", sVersion);
            sig.Set("nWin32HWND", nHWND);

            var srpc = new Srpc.Message();

            srpc.Set(Srpc.Key.Method, "Navigation_ContextNativeWindow");
            srpc.Set("hContext", _sContext);
            srpc.Set("kvSignature", sig.ToString());
            Send(srpc);
        }
Ejemplo n.º 13
0
        private Srpc.Message ProcessData(ref string sData)
        {
            Srpc.Message msg = null;

            string sLfClean = sData.Replace("\r\n", "\n");
            int    nEnd     = sLfClean.IndexOf("\n\n");

            if (nEnd >= 0)
            {
                string sMessage = sLfClean.Substring(0, nEnd + 1);
                sData = sLfClean.Substring(nEnd + 2);
                msg   = new Srpc.Message(sMessage);
            }

            return(msg);
        }
Ejemplo n.º 14
0
 internal void Send(Srpc.Message msg)
 {
     Send(msg, null);
 }
Ejemplo n.º 15
0
 private void HandleRequest(Srpc.Message request)
 {
 }
Ejemplo n.º 16
0
 public SrpcException(Srpc.Message msg)
 {
     _srpcMessage = msg;
 }