public virtual GgpDebugQueryTarget Create() { // Factory creation for the YetiGameletDebugger entry point. var taskContext = _serviceManager.GetJoinableTaskContext(); taskContext.ThrowIfNotOnMainThread(); var fileSystem = new FileSystem(); var jsonUtil = new JsonUtil(); var sdkConfigFactory = new SdkConfig.Factory(jsonUtil); var yetiVsiService = (YetiVSIService)_serviceManager.GetGlobalService(typeof(YetiVSIService)); var options = yetiVsiService.Options; var accountOptionLoader = new VsiAccountOptionLoader(options); var credentialConfigFactory = new CredentialConfig.Factory(jsonUtil); var credentialManager = new CredentialManager(credentialConfigFactory, accountOptionLoader); var cloudConnection = new CloudConnection(); // NOTE: this CloudRunner is re-used for all subsequent debug sessions. var cloudRunner = new CloudRunner(sdkConfigFactory, credentialManager, cloudConnection, new GgpSDKUtil()); var applicationClientFactory = GetApplicationClientFactory(); var gameletClientFactory = GetGameletClientFactory(); var testAccountClientFactory = GetTestAccountClientFactory(); var managedProcessFactory = new ManagedProcess.Factory(); var remoteCommand = GetRemoteCommand(managedProcessFactory); var remoteFile = new RemoteFile(managedProcessFactory); var remoteDeploy = new RemoteDeploy(remoteCommand, remoteFile, managedProcessFactory, fileSystem); var metrics = _serviceManager.GetGlobalService(typeof(SMetrics)) as IMetrics; var sdkVersion = GetSdkVersion(); var sshManager = GetSshManager(managedProcessFactory, cloudRunner); var launchParamsConverter = new LaunchGameParamsConverter(sdkConfigFactory, new QueryParametersParser()); var debugSessionMetrics = new DebugSessionMetrics(metrics); var actionRecorder = new ActionRecorder(debugSessionMetrics); var gameLaunchManager = new GameLaunchBeHelper(gameletClientFactory.Create(cloudRunner), launchParamsConverter); var vsiLaunchFactory = new VsiGameLaunchFactory( gameletClientFactory.Create(cloudRunner), GetCancelableTaskFactory(), gameLaunchManager, actionRecorder, _dialogUtil); var gameLauncher = new GameLauncher(gameletClientFactory.Create(cloudRunner), yetiVsiService, launchParamsConverter, GetCancelableTaskFactory(), actionRecorder, _dialogUtil, vsiLaunchFactory); var gameletSelectorFactory = new GameletSelectorFactory( _dialogUtil, cloudRunner, GetGameletSelectorWindowFactory(), GetCancelableTaskFactory(), gameletClientFactory, sshManager, remoteCommand, gameLaunchManager, taskContext); var serializer = new JsonUtil(); var launchCommandFormatter = new ChromeClientLaunchCommandFormatter(serializer); var paramsFactory = new DebugEngine.DebugEngine.Params.Factory(serializer); return(new GgpDebugQueryTarget(fileSystem, sdkConfigFactory, gameletClientFactory, applicationClientFactory, GetCancelableTaskFactory(), _dialogUtil, remoteDeploy, debugSessionMetrics, credentialManager, testAccountClientFactory, gameletSelectorFactory, cloudRunner, sdkVersion, launchCommandFormatter, paramsFactory, yetiVsiService, gameLauncher)); }
// Create a metrics service with custom configs; used for large tests. public MetricsService(JoinableTaskContext taskContext, CredentialConfig.Factory credentialConfigFactory, SdkConfig.Factory sdkConfigFactory, RandomNumberGenerator random, Versions versions) { _random = random; }
public CoreAttachWindow(IServiceProvider serviceProvider) { var serviceManager = new ServiceManager(); _taskContext = serviceManager.GetJoinableTaskContext(); _dialogUtil = new DialogUtil(); IExtensionOptions options = ((YetiVSIService)serviceManager.RequireGlobalService(typeof(YetiVSIService))) .Options; var managedProcessFactory = new ManagedProcess.Factory(); var progressDialogFactory = new ProgressDialog.Factory(); _cancelableTaskFactory = new CancelableTask.Factory(_taskContext, progressDialogFactory); _coreListRequest = new CoreListRequest.Factory().Create(); var jsonUtil = new JsonUtil(); var credentialConfigFactory = new CredentialConfig.Factory(jsonUtil); var accountOptionLoader = new VsiAccountOptionLoader(options); var credentialManager = new CredentialManager(credentialConfigFactory, accountOptionLoader); _developerAccount = credentialManager.LoadAccount(); IRemoteCommand remoteCommand = new RemoteCommand(managedProcessFactory); _remoteFile = new RemoteFile(managedProcessFactory); var cloudConnection = new CloudConnection(); var sdkConfigFactory = new SdkConfig.Factory(jsonUtil); // NOTE: the lifetime of this CloudRunner is limited to the current CoreAttachWindow. _cloudRunner = new CloudRunner(sdkConfigFactory, credentialManager, cloudConnection, new GgpSDKUtil()); _gameletClientFactory = new GameletClient.Factory(); var sshKeyLoader = new SshKeyLoader(managedProcessFactory); var sshKnownHostsWriter = new SshKnownHostsWriter(); _sshManager = new SshManager(_gameletClientFactory, _cloudRunner, sshKeyLoader, sshKnownHostsWriter, remoteCommand); _debugSessionMetrics = new DebugSessionMetrics( serviceProvider.GetService(typeof(SMetrics)) as IMetrics); _debugSessionMetrics.UseNewDebugSessionId(); _actionRecorder = new ActionRecorder(_debugSessionMetrics); InitializeComponent(); _instanceSelectionWindowFactory = new ProjectInstanceSelection.Factory(); _paramsFactory = new DebugEngine.DebugEngine.Params.Factory(jsonUtil); SelectInstanceOnInit(); }
// Creates a DebugPortSupplier. This will be invoked by Visual Studio based on this class // Guid being in the registry. public DebugPortSupplier() { // Factory creation for the PortSupplier entry point. var serviceManager = new ServiceManager(); IExtensionOptions options = ((YetiVSIService)serviceManager.RequireGlobalService(typeof(YetiVSIService))) .Options; var taskContext = serviceManager.GetJoinableTaskContext(); var debugPropertyFactory = new DebugProperty.Factory(); var debugProgramFactory = new DebugProgram.Factory(debugPropertyFactory, options); var debugProcessFactory = new DebugProcess.Factory(debugProgramFactory); var managedProcessFactory = new ManagedProcess.Factory(); var processListRequestFactory = new ProcessListRequest.Factory(managedProcessFactory); var jsonUtil = new JsonUtil(); var sdkConfigFactory = new SdkConfig.Factory(jsonUtil); var credentialConfigFactory = new CredentialConfig.Factory(jsonUtil); var accountOptionLoader = new VsiAccountOptionLoader(options); var credentialManager = new CredentialManager(credentialConfigFactory, accountOptionLoader); _developerAccount = credentialManager.LoadAccount(); _dialogUtil = new DialogUtil(); var progressDialogFactory = new ProgressDialog.Factory(); _cancelableTaskFactory = new CancelableTask.Factory(taskContext, progressDialogFactory); var cloudConnection = new CloudConnection(); // NOTE: this CloudRunner is re-used for all subsequent Attach to Process windows. _cloudRunner = new CloudRunner(sdkConfigFactory, credentialManager, cloudConnection, new GgpSDKUtil()); var sshKeyLoader = new SshKeyLoader(managedProcessFactory); var sshKnownHostsWriter = new SshKnownHostsWriter(); _gameletClientFactory = new GameletClient.Factory(); var sshManager = new SshManager(_gameletClientFactory, _cloudRunner, sshKeyLoader, sshKnownHostsWriter, new RemoteCommand(managedProcessFactory)); _metrics = (IMetrics)serviceManager.RequireGlobalService(typeof(SMetrics)); _debugPortFactory = new DebugPort.Factory( debugProcessFactory, processListRequestFactory, _cancelableTaskFactory, _dialogUtil, sshManager, _metrics, _developerAccount); }
public CredentialManager(CredentialConfig.Factory credentialConfigFactory, IAccountOptionLoader accountOptionLoader) { this.credentialConfigFactory = credentialConfigFactory; this.accountOptionLoader = accountOptionLoader; }
public CredentialManager(CredentialConfig.Factory credentialConfigFactory) : this(credentialConfigFactory, null) { }