public static VirtualMachine LaunchInternal(ITargetProcess p, ProcessStartInfo info, Socket socket)
        {
            Socket accepted = null;

            try
            {
                accepted = socket.Accept();
            }
            catch (Exception)
            {
                throw;
            }

            Connection conn = new Connection(accepted);

            VirtualMachine vm = new VirtualMachine(p, conn);

            if (info.RedirectStandardOutput)
            {
                vm.StandardOutput = p.StandardOutput;
            }

            if (info.RedirectStandardError)
            {
                vm.StandardError = p.StandardError;
            }

            conn.EventHandler = new EventHandler(vm);

            vm.connect();

            return(vm);
        }
Beispiel #2
0
		internal VirtualMachine (ITargetProcess process, Connection conn) : base () {
			SetVirtualMachine (this);
			queue = new Queue ();
			queue_monitor = new Object ();
			startup_monitor = new Object ();
			requests = new Dictionary <int, EventRequest> ();
			this.conn = conn;
			this.process = process;
			conn.ErrorHandler += ErrorHandler;
		}
Beispiel #3
0
        public void Register(ITargetProcess script)
        {
            foreach (var fileName in script.FileNames)
            {
                if (string.IsNullOrWhiteSpace(fileName))
                {
                    continue;
                }
                if (_targetProcesses.ContainsKey(fileName))
                {
                    throw new InvalidOperationException($"Only One Scrip per File Suporrtet: {script}");
                }

                _targetProcesses[fileName] = script;
                _processTracker.Track(fileName);
            }
        }
		public static VirtualMachine LaunchInternal (ITargetProcess p, ProcessStartInfo info, Socket socket) {
			Socket accepted = null;
			try {
				accepted = socket.Accept ();
			} catch (Exception) {
				throw;
			}

			Connection conn = new TcpConnection (accepted);

			VirtualMachine vm = new VirtualMachine (p, conn);

			if (info.RedirectStandardOutput)
				vm.StandardOutput = p.StandardOutput;

			if (info.RedirectStandardError)
				vm.StandardError = p.StandardError;

			conn.EventHandler = new EventHandler (vm);

			vm.connect ();

			return vm;
		}