Esempio n. 1
0
        private void StartServerOnLinux(Server server)
        {
            if (ServerProcesses.ContainsKey(server))
            {
                return;
            }

            var serverProcess = new Process
            {
                StartInfo =
                {
                    FileName  = "DreamDaemon",
                    Arguments = $"{server.ExecutablePath + server.ExecutableName} {server.Port} -safe -invisible",
                    RedirectStandardOutput = true,
                    RedirectStandardError  = true,
                    UseShellExecute        = false
                }
            };

            ServerProcesses[server] = serverProcess;
            serverProcess.Start();

            if (!_logBuilders.ContainsKey(server))
            {
                _logBuilders[server] = new StringBuilder(0, 2000);
            }
            serverProcess.BeginErrorReadLine();
            serverProcess.ErrorDataReceived += async(sender, args) => await OnStdErr(args, server);

            StartLogSendingTimer(server);
        }
Esempio n. 2
0
 public Debugger(ServerSession session)
 {
     SetSession(session);
     _waitSignal  = new AutoResetEvent(false);
     _pauseSignal = new ManualResetEvent(true);
     _processes   = new ServerProcesses();
     _sessions    = new ServerSessions();
 }
Esempio n. 3
0
 public void StopServer(Server server)
 {
     ServerProcesses[server].Kill();
     ServerProcesses[server].Dispose();
     ServerProcesses.Remove(server);
     _logBuilders.Remove(server);
     _timers[server].Dispose();
     _timers.Remove(server);
 }
Esempio n. 4
0
 internal ServerSession
 (
     Engine server,
     int sessionID,
     SessionInfo sessionInfo,
     Schema.User user
 ) : base()
 {
     _server           = server;
     _sessionID        = sessionID;
     _sessionInfo      = sessionInfo;
     _sessionObjects   = new Schema.Objects();
     _sessionOperators = new Schema.Objects();
     _user             = user;
     _processes        = new ServerProcesses();
 }