Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 58c3d83c authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

add property in IResponse to identify type (to be used in switch statements for example)

parent 1737fcc4
No related branches found
No related tags found
No related merge requests found
......@@ -3,11 +3,23 @@ using System.Security.Cryptography.X509Certificates;
namespace TUGraz.VectoCore.Models.Connector.Ports
{
public enum ResponseType
{
Success,
CycleFinished,
FailOverload,
FailTimeInterval,
DrivingCycleDistanceExceeded,
}
/// <summary>
/// Defines an interface for a Response.
/// </summary>
public interface IResponse
{
TimeSpan SimulationInterval { get; set; }
ResponseType ResponseType { get; }
}
}
\ No newline at end of file
......@@ -6,17 +6,31 @@ namespace TUGraz.VectoCore.Models.Connector.Ports.Impl
public abstract class AbstractResponse : IResponse
{
public TimeSpan SimulationInterval { get; set; }
public abstract ResponseType ResponseType { get; }
}
/// <summary>
/// Response when the Cycle is finished.
/// </summary>
public class ResponseCycleFinished : AbstractResponse {}
public class ResponseCycleFinished : AbstractResponse
{
public override ResponseType ResponseType
{
get { return ResponseType.CycleFinished; }
}
}
/// <summary>
/// Response when a request was successful.
/// </summary>
public class ResponseSuccess : AbstractResponse {}
public class ResponseSuccess : AbstractResponse
{
public override ResponseType ResponseType
{
get { return ResponseType.Success; }
}
}
/// <summary>
/// Response when the request resulted in an engine overload.
......@@ -25,6 +39,11 @@ namespace TUGraz.VectoCore.Models.Connector.Ports.Impl
{
public double Delta { get; set; }
public double Gradient { get; set; }
public override ResponseType ResponseType
{
get { return ResponseType.FailOverload; }
}
}
/// <summary>
......@@ -33,10 +52,20 @@ namespace TUGraz.VectoCore.Models.Connector.Ports.Impl
public class ResponseFailTimeInterval : AbstractResponse
{
public TimeSpan DeltaT { get; set; }
public override ResponseType ResponseType
{
get { return ResponseType.FailTimeInterval; }
}
}
public class ResponseDrivingCycleDistanceExceeded : AbstractResponse
{
public Meter MaxDistance { get; set; }
public override ResponseType ResponseType
{
get { return ResponseType.DrivingCycleDistanceExceeded; }
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment