Пример #1
0
        private void connectToStandAloneInstances()
        {
            var handleManager = new VMConnectHandle();

            while (true)
            {
                var handles = handleManager.GetAll().Where(x => !_nodes.Exists(y => y.IP.Equals(x.IP) && y.Port.Equals(x.Port))).ToList();
                foreach (var handle in handles)
                {
                    var node = new DiagnosticNode(
                        handle.IP,
                        handle.Port,
                        handle.ProcessID,
                        handle.Token,
                        (m) => node_MessageReceived(handle.Token, new MessageReceivedEventArgs(m)));
                    if (node.IsConnected)
                    {
                        addNode(node);
                    }
                    else
                    {
                        try
                        {
                            File.Delete(handle.File);
                        }
                        catch
                        {
                        }
                    }
                }
                Thread.Sleep(5000);
            }
        }
Пример #2
0
        private void ConnectToExistingVm()
        {
            VMHandle handle = null;

            while (handle == null)
            {
                handle = new VMConnectHandle().GetCurrent();
            }
            client = new NetClient(new DebugClientFeedbackProvider());
            client.MessageReceived += ClientMessageReceived;
            client.Connect(handle.IP, handle.Port);
        }
Пример #3
0
        /// <summary>
        /// Get engines from token. Token can be solution file or watch folder
        /// </summary>
        /// <param name="token">The engine watch token to look for. The token is either the solution file or the watch folder</param>
        /// <param name="caseInsensitive">Wether to match the token ignoring case</param>
        /// <returns>Engine</returns>
        public IEngine GetEngine(string token, bool caseInsensitive)
        {
            VMHandle activeHandle = null;
            var      connect      = new VMConnectHandle();
            var      handles      = connect.GetFromToken(token, caseInsensitive);
            var      toDelete     = new List <string>();

            foreach (var handle in handles)
            {
                if (canConnect(handle))
                {
                    activeHandle = handle;
                    break;
                }
                toDelete.Add(handle.File);
            }
            toDelete.ForEach(x => { try { File.Delete(x); } catch { } });
            if (activeHandle == null)
            {
                return(null);
            }
            return(new Engine(activeHandle));
        }