Lean  $LEAN_TAG$
RuntimeErrorPacket.cs
1 /*
2  * QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
3  * Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  *
15 */
16 
17 using Newtonsoft.Json;
18 
19 namespace QuantConnect.Packets
20 {
21  /// <summary>
22  /// Algorithm runtime error packet from the lean engine.
23  /// This is a managed error which stops the algorithm execution.
24  /// </summary>
25  public class RuntimeErrorPacket : Packet
26  {
27  /// <summary>
28  /// Runtime error message from the exception
29  /// </summary>
30  public string Message { get; set; }
31 
32  /// <summary>
33  /// Algorithm id which generated this runtime error
34  /// </summary>
35  public string AlgorithmId { get; set; }
36 
37  /// <summary>
38  /// Error stack trace information string passed through from the Lean exception
39  /// </summary>
40  public string StackTrace { get; set; }
41 
42  /// <summary>
43  /// User Id associated with the backtest that threw the error
44  /// </summary>
45  public int UserId { get; set; }
46 
47  /// <summary>
48  /// Default constructor for JSON
49  /// </summary>
51  : base (PacketType.RuntimeError)
52  { }
53 
54  /// <summary>
55  /// Create a new runtime error packet
56  /// </summary>
57  public RuntimeErrorPacket(int userId, string algorithmId, string message, string stacktrace = "")
58  : base(PacketType.RuntimeError)
59  {
60  UserId = userId;
61  Message = message;
62  AlgorithmId = algorithmId;
63  StackTrace = stacktrace;
64  }
65 
66  } // End Work Packet:
67 
68 } // End of Namespace: