/// <summary>
 /// Create a new <see cref="BreakpointReadActionServer"/>.
 /// </summary>
 /// <param name="server">The breakpoint server to communicate with.</param>
 /// <param name="cts"> A cancellation token source to cancel if the server receives a shutdown command.</param>
 /// <param name="client">The debugger client to send updated breakpoints to.</param>
 /// <param name="breakpointManager">A shared breakpoint manager.</param>
 public BreakpointReadActionServer(IBreakpointServer server, CancellationTokenSource cts,
                                   IDebuggerClient debuggerClient, ILoggingClient loggingClient,
                                   BreakpointManager breakpointManager) : base(server, cts)
 {
     _debuggerClient    = GaxPreconditions.CheckNotNull(debuggerClient, nameof(debuggerClient));
     _loggingClient     = GaxPreconditions.CheckNotNull(loggingClient, nameof(loggingClient));
     _breakpointManager = GaxPreconditions.CheckNotNull(breakpointManager, nameof(breakpointManager));
 }
 /// <summary>
 /// Create a new <see cref="Agent"/>.
 /// </summary>
 public Agent(AgentOptions options, Controller2Client controlClient = null)
 {
     _agentOptions      = GaxPreconditions.CheckNotNull(options, nameof(options));
     _client            = new DebuggerClient(options, controlClient);
     _cts               = new CancellationTokenSource();
     _tcs               = new TaskCompletionSource <bool>();
     _breakpointManager = new BreakpointManager();
     _debuggerOptions   = DebuggerOptions.FromAgentOptions(_agentOptions);
 }
 /// <summary>
 /// Create a new <see cref="BreakpointWriteActionServer"/>.
 /// </summary>
 /// <param name="server">The breakpoint server to communicate with.</param>
 /// <param name="cts"> A cancellation token source to cancel if the server receives a shutdown command.</param>
 /// <param name="client">The debugger client to send updated breakpoints to.</param>
 /// <param name="breakpointManager">A shared breakpoint manager.</param>
 public BreakpointWriteActionServer(IBreakpointServer server, CancellationTokenSource cts,
                                    IDebuggerClient client, BreakpointManager breakpointManager) : base(server, cts)
 {
     _client            = GaxPreconditions.CheckNotNull(client, nameof(client));
     _breakpointManager = GaxPreconditions.CheckNotNull(breakpointManager, nameof(breakpointManager));
 }