using System;
using System.Collections.Generic;
using System.Text;
namespace Cosmos.GdbClient.BasicCommands
{
///
/// Represents the continue command.
///
public class ContinueCommand : CommandBase
{
private uint? _address;
public uint? Address
{
get { return _address; }
set { _address = value; }
}
private byte? _signal;
public byte? Signal
{
get { return _signal; }
set { _signal = value; }
}
public ContinueCommand() : base(GdbController.Instance) { }
public ContinueCommand(uint? address)
: this()
{
_address = address;
}
void Controller_AcknowledgementReceived(object sender, EventArgs e)
{
Controller.AcknowledgementReceived -= new EventHandler(Controller_AcknowledgementReceived);
Done(null);
}
protected override void Execute()
{
Controller.AcknowledgementReceived += new EventHandler(Controller_AcknowledgementReceived);
string cmd = "c";
if (_signal.HasValue)
{
cmd += _signal.Value.ToString("x");
if (_address.HasValue)
cmd += ";";
}
if (_address.HasValue)
cmd += _address.Value.ToString("x");
Controller.Enqueue(new GdbPacket(cmd));
}
}
}