/// <summary> /// Start benchmark /// </summary> /// <returns></returns> public CommandResult Start() { GC.Collect(); GC.WaitForPendingFinalizers(); ITerminalEmulatorService emulatorService = BenchmarkPlugin.Instance.PoderosaWorld.PluginManager.FindPlugin("org.poderosa.terminalemulator", typeof(ITerminalEmulatorService)) as ITerminalEmulatorService; ITerminalSessionsService sessionService = (ITerminalSessionsService)BenchmarkPlugin.Instance.PoderosaWorld.PluginManager.FindPlugin("org.poderosa.terminalsessions", typeof(ITerminalSessionsService)); if (emulatorService == null || sessionService == null) { return(CommandResult.Ignored); } ITerminalSettings settings = emulatorService.CreateDefaultTerminalSettings(GetTerminalCaption(), null); settings.BeginUpdate(); settings.Encoding = Poderosa.ConnectionParam.EncodingType.UTF8; settings.EndUpdate(); ITerminalConnection connection = GetTerminalConnection(); ITerminalSessionStartCommand startCommand = sessionService.TerminalSessionStartCommand; ITerminalSession session = startCommand.StartTerminalSession(_target, connection, settings); StartBenchmarkThread(emulatorService.TerminalEmulatorOptions, session); return(CommandResult.Succeeded); }
private static CommandResult LoopbackTerminalCommand(ICommandTarget target) { IPluginManager pm = SessionTestPlugin.Instance.PoderosaWorld.PluginManager; IProtocolTestService ps = (IProtocolTestService)pm.FindPlugin("org.poderosa.protocols", typeof(IProtocolTestService)); ITerminalSessionStartCommand s = ((ITerminalSessionsService)pm.FindPlugin("org.poderosa.terminalsessions", typeof(ITerminalSessionsService))).TerminalSessionStartCommand; ITerminalEmulatorService es = (ITerminalEmulatorService)pm.FindPlugin("org.poderosa.terminalemulator", typeof(ITerminalEmulatorService)); ITerminalSettings ts = es.CreateDefaultTerminalSettings("LOOPBACK", null); //改行はCRLFがいいっすね ts.BeginUpdate(); ts.TransmitNL = Poderosa.ConnectionParam.NewLine.CRLF; ts.EndUpdate(); s.StartTerminalSession(target, ps.CreateLoopbackConnection(), ts); return(CommandResult.Succeeded); }