private void OnMessageReceived(object sender, XDMessageEventArgs e)
 {
     if (MessageReceived != null)
     {
         MessageReceived(sender, e);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Handles messages received from other machines on the network and dispatches them locally.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnMessageReceived(object sender, XDMessageEventArgs e)
 {
     // network message is of format machine:channel:message
     if (e.DataGram.IsValid)
     {
         using (DataGram machineInfo = DataGram.ExpandFromRaw(e.DataGram.Message))
         {
             if (machineInfo.IsValid)
             {
                 // don't relay if the message was broadcast on this machine
                 if (machineInfo.Channel != Environment.MachineName)
                 {
                     using (DataGram dataGram = DataGram.ExpandFromRaw(machineInfo.Message))
                     {
                         if (dataGram.IsValid)
                         {
                             // propagate the message on this machine using the same mode as the sender
                             nativeBroadcast.SendToChannel(dataGram.Channel, dataGram.Message);
                         }
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 3
0
 private void Sink_MessageReceived(object sender, XDMessageEventArgs e)
 {
     // MessageReceived is called in the context of SendMessage() of the other process.
     // We leave the current callstack to let SendMessage() return.
     // Otherwise ExplorerAdapter's COM throws a RPC_E_CANTCALLOUT_ININPUTSYNCCALL error.
     synchronizationContext.Post(arg => OnMessage((XDMessageEventArgs)arg), e);
 }
Ejemplo n.º 4
0
 private void OnMessageReceived(object sender, XDMessageEventArgs e)
 {
     if (MessageReceived != null)
     {
         MessageReceived(sender, e);
     }
 }
Ejemplo n.º 5
0
 private void Listener_MessageReceived(object sender, XDMessageEventArgs e)
 {
     if (e.DataGram.Message == "reconnect")
     {
         LogAndMessage.Log(MessageType.Info, "Reconencting...");
         //manuallyDisconnected = true;
         //if (controller.IsIbConnected)
         controller.Disconnect();
         controller.Connect(false);
     }
 }
Ejemplo n.º 6
0
 private void Sink_MessageReceived(object sender, XDMessageEventArgs e)
 {
     if (e.DataGram.Channel == "ExplorerObserverCommand")
     {
         if (e.DataGram.Message == "shutdown")
         {
             Debug.WriteLine("Shutdown command received.");
             Shutdown();
         }
     }
 }
Ejemplo n.º 7
0
 static void Listener_MessageReceived(object sender, XDMessageEventArgs e)
 {
     if (e.DataGram.Channel != channel)
     {
         return;
     }
     try
     {
         ProcessCommand(e.DataGram.Message);
     }
     catch { }
 }
Ejemplo n.º 8
0
        private void OnNetworkMessageReceived(object sender, XDMessageEventArgs e)
        {
            if (disposed || !e.DataGram.IsValid)
            {
                return;
            }

            TypedDataGram <NetworkRelayMessage> dataGram = e.DataGram;

            if (dataGram != null && dataGram.IsValid && dataGram.Message.MachineName != Environment.MachineName)
            {
                // rebroadcast locally
                Task.Factory.StartNew(
                    () => nativeBroadcast.SendToChannel(dataGram.Message.Channel, dataGram.Message.Message));
            }
        }
Ejemplo n.º 9
0
 /// <summary>
 /// The delegate which processes all cross AppDomain messages and writes them to screen.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnMessageReceived(object sender, XDMessageEventArgs e)
 {
     // If called from a seperate thread, rejoin so that be can update form elements.
     if (InvokeRequired && !IsDisposed)
     {
         try
         {
             // onClosing messages may fail if the form is being disposed.
             Invoke((MethodInvoker) delegate() { UpdateDisplayText(e.DataGram); });
         }
         catch (ObjectDisposedException) { }
     }
     else
     {
         UpdateDisplayText(e.DataGram);
     }
 }
Ejemplo n.º 10
0
 private void OnMessage(XDMessageEventArgs msg)
 {
     if (msg.DataGram.Channel == "SelectionOfExplorerWindowChanged")
     {
         if (int.TryParse(msg.DataGram.Message, out int hwndInteger))
         {
             IntPtr hwnd = new IntPtr(hwndInteger);
             ExplorerSelectionChanged?.Invoke(this, new ExplorerMonitorEventArgs(hwnd));
         }
     }
     else if (msg.DataGram.Channel == "ExplorerWindowGotFocus")
     {
         if (int.TryParse(msg.DataGram.Message, out int hwndInteger))
         {
             IntPtr hwnd = new IntPtr(hwndInteger);
             ExplorerWindowGotFocus?.Invoke(this, new ExplorerMonitorEventArgs(hwnd));
         }
     }
 }
Ejemplo n.º 11
0
        /// <summary>
        ///     The delegate which processes all cross AppDomain messages and writes them to screen.
        /// </summary>
        /// <param name = "sender"></param>
        /// <param name = "e"></param>
        private void OnMessageReceived(object sender, XDMessageEventArgs e)
        {
            // If called from a seperate thread, rejoin so that be can update form elements.
            if (InvokeRequired && !IsDisposed)
            {
                try
                {
                    // onClosing messages may fail if the form is being disposed.
                    Invoke((MethodInvoker)(() => OnMessageReceived(sender, e)));
                }
                catch (ObjectDisposedException)
                {
                }
                catch (InvalidOperationException)
                {
                }
            }
            else
            {
                switch (e.DataGram.Channel.ToLower())
                {
                case "status":
                    // pain text
                    UpdateDisplayText(e.DataGram.Channel, e.DataGram.Message);
                    break;

                default:
                    // all other channels contain serialized FormattedUserMessage object
                    if (e.DataGram.AssemblyQualifiedName == typeof(FormattedUserMessage).AssemblyQualifiedName)
                    {
                        TypedDataGram <FormattedUserMessage> typedDataGram = e.DataGram;
                        UpdateDisplayText(typedDataGram.Channel, typedDataGram.Message.FormattedTextMessage);
                    }
                    else
                    {
                        throw new NotSupportedException(string.Format("Unknown message type: {0}", e.DataGram.AssemblyQualifiedName));
                    }
                    break;
                }
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        ///   Handle the MessageReceived event and trace the message to standard debug.
        /// </summary>
        /// <param name = "sender"></param>
        /// <param name = "e"></param>
        private void OnMessageReceived(object sender, XDMessageEventArgs e)
        {
            // view these debug messages using SysInternals Dbgview.
            if (e.DataGram.AssemblyQualifiedName != typeof(FormattedUserMessage).AssemblyQualifiedName)
            {
                throw new NotSupportedException(string.Format("Unknown message type: {0}",
                                                              e.DataGram.AssemblyQualifiedName));
            }
            TypedDataGram <FormattedUserMessage> dataGram = e.DataGram;

            Debug.WriteLine("Test Service: " + e.DataGram.Channel + " " + dataGram.Message);
            if (dataGram.Message.FormattedTextMessage.EndsWith("STOP"))
            {
                broadcast.SendToChannel("Status", "Stopping trace");
                isTraceEnabled = false;
            }
            else if (dataGram.Message.FormattedTextMessage.EndsWith("START"))
            {
                broadcast.SendToChannel("Status", "Starting trace");
                isTraceEnabled = true;
            }
        }
Ejemplo n.º 13
0
        private void OnMessageReceived(object sender, XDMessageEventArgs e)
        {
            if (InvokeRequired && !IsDisposed)
            {
                try
                {
                    Invoke((MethodInvoker)(() => OnMessageReceived(sender, e)));
                }
                catch (ObjectDisposedException)
                {
                }
                catch (InvalidOperationException)
                {
                }
            }
            else
            {
                switch (e.DataGram.Channel.ToLower())
                {
                case "status":
                    UpdateDisplayText(e.DataGram.Channel, e.DataGram.Message);
                    break;

                default:
                    if (e.DataGram.AssemblyQualifiedName == typeof(FormattedUserMessage).AssemblyQualifiedName)
                    {
                        TypedDataGram <FormattedUserMessage> typedDataGram = e.DataGram;
                        UpdateDisplayText(typedDataGram.Channel, typedDataGram.Message.FormattedTextMessage);
                    }
                    else
                    {
                        throw new NotSupportedException(string.Format("Unknown message type: {0}",
                                                                      e.DataGram.AssemblyQualifiedName));
                    }
                    break;
                }
            }
        }
Ejemplo n.º 14
0
        void listener_MessageReceived(object sender, XDMessageEventArgs e)
        {
            Application.DoEvents();
            string commandLine = e.DataGram.Message;

            // Debug.WriteLine(DateTime.Now + " " + commandLine);
            string[] fileList = commandLine.Split('\t');
            if (fileList.Length == 1)
            {
                string oneFile = fileList[0];
                if (File.Exists(oneFile))
                {
                    m_Image.PicScan(oneFile, false, 0);
                    m_Image.PicLoadPos(oneFile, true);
                    recentItem1.AddRecentItem(oneFile);
                }
                ShowMe();
            }
            else                // list of files
            {
                m_Image.ProcessDrop(fileList, false);
                ShowMe();
            }
        }
Ejemplo n.º 15
0
        private void listener_MessageReceived(object sender, XDMessageEventArgs e)
        {
            CommDatagram dtg = CommDatagram.ParseDatagram(e.DataGram);

            if (dtg.SenderId == myID)
            {
                return;
            }

            switch (dtg.MessageType)
            {
            case MessageType.GetInstance:
                //if (!String.IsNullOrEmpty(this.CurrentLogFileName))
                SendMessage(dtg.SenderId, MessageType.ReturnInstance, new LogViewerInstance(myID, this.CurrentLogFileName, this.AppLastActivation, this.MainWindowHandle).GetTextMessage());
                break;

            case MessageType.ReturnInstance:
                this.otherInstances.Add(new LogViewerInstance(dtg.Data));
                break;

            case MessageType.GoToDateTime:
                OnGoToItemRequest(DateTime.ParseExact(dtg.Data, CommDateFormat, CultureInfo.InvariantCulture));
                break;

            case MessageType.ReturnCurrentLogFileName:
                OnAnotherInstanceOpenedLogFile(dtg.Data);
                break;

            case MessageType.ProcessAppArgs:
                OnProcessAppArgs(dtg.Data.Split('|'));
                break;

            default:
                throw new NotImplementedException(String.Format("Message type: '{0}' is not supported.", dtg.MessageType));
            }
        }
        private void OnMessageReceived(object sender, XDMessageEventArgs e)
        {
            try
            {
                esTracePacket entry = new esTracePacket();

                string[] fields = e.DataGram.Message.Split('±');

                if (fields[0].Length > 0)
                {
                    entry.TransactionId = Convert.ToInt32(fields[0]);
                }

                if (fields[1].Length > 0)
                {
                    entry.ObjectType = fields[1];
                }

                entry.CallStack       = fields[2];
                entry.ApplicationName = fields[3];
                entry.TraceChannel    = fields[4];
                entry.ThreadId        = Convert.ToInt32(fields[5]);
                entry.Sql             = fields[6];
                entry.Duration        = Convert.ToInt64(fields[7]);
                entry.Ticks           = Convert.ToInt64(fields[8]);
                entry.PacketOrder     = Convert.ToInt64(fields[9]);
                entry.Action          = fields[10];
                entry.Syntax          = fields[11];
                entry.Exception       = fields[12];

                if (fields[13].Length > 0)
                {
                    // Parse Parameters
                    string[] parameters = fields[13].Split('«');

                    esParameter param = null;
                    for (int i = 0; i < parameters.Length; i += 5)
                    {
                        if (param == null)
                        {
                            param = new esParameter();
                        }

                        param.Name      = parameters[i];
                        param.Direction = parameters[i + 1];
                        param.ParamType = parameters[i + 2];

                        if (parameters[i + 3] != "null")
                        {
                            param.BeforeValue = parameters[i + 3];
                        }

                        if (parameters[i + 4] != "null")
                        {
                            param.AfterValue = parameters[i + 4];
                        }

                        entry.SqlParameters.Add(param);
                        param = null;
                    }
                }

                switch (entry.TraceChannel)
                {
                case Channels.Channel_1: AddEntryToList(channel_1, entry); break;

                case Channels.Channel_2: AddEntryToList(channel_2, entry); break;

                case Channels.Channel_3: AddEntryToList(channel_3, entry); break;

                case Channels.Channel_4: AddEntryToList(channel_4, entry); break;

                case Channels.Channel_5: AddEntryToList(channel_5, entry); break;

                case Channels.Channel_6: AddEntryToList(channel_6, entry); break;

                case Channels.Channel_7: AddEntryToList(channel_7, entry); break;

                case Channels.Channel_8: AddEntryToList(channel_8, entry); break;

                case Channels.Channel_9: AddEntryToList(channel_9, entry); break;

                case Channels.Channel_10: AddEntryToList(channel_10, entry); break;
                }
            }
            catch { }
        }
Ejemplo n.º 17
0
 /// <summary>
 /// Handle the MessageReceived event and trace the message to standard debug.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnMessageReceived(object sender, XDMessageEventArgs e)
 {
     // view these debug messages using SysInternals Dbgview.
     Debug.WriteLine("Test Service: " + e.DataGram.Channel + " " + e.DataGram.Message);
 }
Ejemplo n.º 18
0
        /// <summary>
        /// The delegate which processes all cross AppDomain messages and writes them to screen.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private static void OnMessageReceived(object sender, XDMessageEventArgs e)
        {
            if (e.DataGram.Message.IndexOf(START_EVENT, StringComparison.Ordinal) > 0 & LastActive)
            {
                SendMessage(DoNotDoAnythingMsg);
            }

            if (handle != 0) // this instance of imp has a working window
            {
                var handleIndex = e.DataGram.Message.IndexOf(handleText, StringComparison.Ordinal);

                if (handleIndex != 0) // if this is the handle, then the message came from this instance
                {
                    lastMsg = e.DataGram.Message;
                    if (e.DataGram.Message.IndexOf(START_EVENT, StringComparison.Ordinal) > 0 & LastActive)
                    {
                        Debug.WriteLine("donot sent");
                        SendMessage(DoNotDoAnythingMsg);
                    }
                    else if (e.DataGram.Message.IndexOf(CMD_LINES, StringComparison.Ordinal) > 0 & LastActive)
                    {
                        var i = 0;
                        var j = 0;
                        do
                        {
                            i = lastMsg.IndexOf(NAME_SEPARATOR);
                            j = lastMsg.IndexOf(NAME_SEPARATOR, i + 1, StringComparison.Ordinal);

                            if (i < 0)
                            {
                                break; // no more separators found
                            }
                            if (j < i)
                            {
                                j = lastMsg.Length;
                            }

                            List.Add(lastMsg.Substring(i + 1, j - i - 1));
                            if (j == lastMsg.Length)
                            {
                                break; // this was the last command, exit
                            }
                            lastMsg = lastMsg.Substring(j);
                        } while (true);

                        imp.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new UpdateFiles(imp.OpenFileLinesFromMessaging));
                    }
                    else if (e.DataGram.Message.IndexOf(MAKE_ACTIVE, StringComparison.Ordinal) > 0)
                    {
                        Debug.WriteLine("LastActive False");
                        LastActive = false;
                    }
                }
            }
            else // this instance of imp doesn't yet have a working window
            {
                if (e.DataGram.Message.Substring(0, 2) != "0 ")
                {
                    lastMsg = DoNotDoAnythingMsg;
                }
            }
        }
Ejemplo n.º 19
0
 private void MessageReceived(object sender, XDMessageEventArgs args)
 {
     waitForMessage = false;
 }
Ejemplo n.º 20
0
        private void OnMessageReceived(object sender, XDMessageEventArgs e)
        {
#if PROFILER_TRIAL
            if (++mod % 1000 == 0)
            {
                Licensing license = new Licensing();
                string    id      = license.getUniqueID("C");

                int result = licensing.ValidateLicense("trial", "b69e3783-9f56-47a7-82e0-6eee6d0779bf", System.Environment.MachineName, id, version, proxySettings);

                if (1 != result)
                {
                    result = licensing.RegisterLicense("trial", "b69e3783-9f56-47a7-82e0-6eee6d0779bf", System.Environment.MachineName, id, version, proxySettings);
                }

                if (result != 1)
                {
                    listener.UnRegisterChannel(Channels.Channel_1);
                    listener.UnRegisterChannel(Channels.Channel_2);
                    listener.UnRegisterChannel(Channels.Channel_3);
                    listener.UnRegisterChannel(Channels.Channel_4);
                    listener.UnRegisterChannel(Channels.Channel_5);
                    listener.UnRegisterChannel(Channels.Channel_6);
                    listener.UnRegisterChannel(Channels.Channel_7);
                    listener.UnRegisterChannel(Channels.Channel_8);
                    listener.UnRegisterChannel(Channels.Channel_9);
                    listener.UnRegisterChannel(Channels.Channel_10);
                    return;
                }
            }
#endif

            try
            {
                esTracePacket entry = new esTracePacket();

                string[] fields = e.DataGram.Message.Split('±');

                if (fields[0].Length > 0)
                {
                    entry.TransactionId = Convert.ToInt32(fields[0]);
                }

                if (fields[1].Length > 0)
                {
                    entry.ObjectType = fields[1];
                }

                entry.CallStack       = fields[2];
                entry.ApplicationName = fields[3];
                entry.TraceChannel    = fields[4];
                entry.ThreadId        = Convert.ToInt32(fields[5]);
                entry.Sql             = fields[6];
                entry.Duration        = Convert.ToInt64(fields[7]);
                entry.Ticks           = Convert.ToInt64(fields[8]);
                entry.PacketOrder     = Convert.ToInt64(fields[9]);
                entry.Action          = fields[10];
                entry.Syntax          = fields[11];
                entry.Exception       = fields[12];

                if (fields[13].Length > 0)
                {
                    // Parse Parameters
                    string[] parameters = fields[13].Split('«');

                    esParameter param = null;
                    for (int i = 0; i < parameters.Length; i += 5)
                    {
                        if (param == null)
                        {
                            param = new esParameter();
                        }

                        param.Name      = parameters[i];
                        param.Direction = parameters[i + 1];
                        param.ParamType = parameters[i + 2];

                        if (parameters[i + 3] != "null")
                        {
                            param.BeforeValue = parameters[i + 3];
                        }

                        if (parameters[i + 4] != "null")
                        {
                            param.AfterValue = parameters[i + 4];
                        }

                        entry.SqlParameters.Add(param);
                        param = null;
                    }
                }

                switch (entry.TraceChannel)
                {
                case Channels.Channel_1: AddEntryToList(channel_1, entry); break;

                case Channels.Channel_2: AddEntryToList(channel_2, entry); break;

                case Channels.Channel_3: AddEntryToList(channel_3, entry); break;

                case Channels.Channel_4: AddEntryToList(channel_4, entry); break;

                case Channels.Channel_5: AddEntryToList(channel_5, entry); break;

                case Channels.Channel_6: AddEntryToList(channel_6, entry); break;

                case Channels.Channel_7: AddEntryToList(channel_7, entry); break;

                case Channels.Channel_8: AddEntryToList(channel_8, entry); break;

                case Channels.Channel_9: AddEntryToList(channel_9, entry); break;

                case Channels.Channel_10: AddEntryToList(channel_10, entry); break;
                }
            }
            catch { }
        }
Ejemplo n.º 21
0
        private void Listener_MessageReceived(object sender, XDMessageEventArgs e)
        {
            var message = e.DataGram.Message;

            MessageBox.Show(message);
        }
        private void OnNetworkMessageReceived(object sender, XDMessageEventArgs e)
        {
            if (disposed || !e.DataGram.IsValid)
            {
                return;
            }

            TypedDataGram<NetworkRelayMessage> dataGram = e.DataGram;
            if (dataGram != null && dataGram.IsValid && dataGram.Message.MachineName != Environment.MachineName)
            {
                // rebroadcast locally
                Task.Factory.StartNew(
                    () => nativeBroadcast.SendToChannel(dataGram.Message.Channel, dataGram.Message.Message));
            }
        }
Ejemplo n.º 23
0
 /// <summary>
 /// Handles messages received from other machines on the network and dispatches them locally.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnMessageReceived(object sender, XDMessageEventArgs e)
 {
     // network message is of format machine:channel:message
     if (e.DataGram.IsValid)
     {
         using (DataGram machineInfo = DataGram.ExpandFromRaw(e.DataGram.Message))
         {
             if (machineInfo.IsValid)
             {
                 // don't relay if the message was broadcast on this machine
                 if (machineInfo.Channel != Environment.MachineName)
                 {
                     using (DataGram dataGram = DataGram.ExpandFromRaw(machineInfo.Message))
                     {
                         if (dataGram.IsValid)
                         {
                             // propagate the message on this machine using the same mode as the sender
                             nativeBroadcast.SendToChannel(dataGram.Channel, dataGram.Message);
                         }
                     }
                 }
             }
         }
     }
 }