public void InitializeRun([NotNull] CirceControllerSessionManager sessionManager,
            [NotNull] NetworkComposition runComposition)
        {
            Guard.NotNull(sessionManager, nameof(sessionManager));
            Guard.NotNull(runComposition, nameof(runComposition));

            circeSessionManager = sessionManager;
            displaysInRunComposition = runComposition.GetDevicesInAnyRole(DeviceRoles.Display).ToList();
        }
        public CirceUsbLoopbackTestRunner()
        {
            try
            {
                manualResetEvent = new ManualResetEvent(false);

                Connection = ComPortSelector.GetConnection(AttachConnectionHandlers, DetachConnectionHandlers);

                RemoteSessionManager = new CirceControllerSessionManager();
            }
            catch (Exception)
            {
                Connection?.Dispose();
                manualResetEvent?.Dispose();
                RemoteSessionManager?.Dispose();

                throw;
            }
        }
 public ControllerIncomingOperationDispatcher([NotNull] CirceControllerSessionManager owner)
 {
     Guard.NotNull(owner, nameof(owner));
     this.owner = owner;
 }