WPILib  2014.0
WPIRoboticsLibraryforFRC
 All Classes Functions Variables Pages
Error.h
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) FIRST 2008. All Rights Reserved. */
3 /* Open Source Software - may be modified and shared by FRC teams. The code */
4 /* must be accompanied by the FIRST BSD license file in $(WIND_BASE)/WPILib. */
5 /*----------------------------------------------------------------------------*/
6 
7 #ifndef _ERROR_H
8 #define _ERROR_H
9 
10 #include "Base.h"
11 #include "ChipObject/NiRio.h"
12 #include <string>
13 #include <vxWorks.h>
14 
15 // Forward declarations
16 class ErrorBase;
17 
21 class Error
22 {
23 public:
24  typedef tRioStatusCode Code;
25 
26  Error();
27  ~Error();
28  void Clone(Error &error);
29  Code GetCode() const;
30  const char *GetMessage() const;
31  const char *GetFilename() const;
32  const char *GetFunction() const;
33  uint32_t GetLineNumber() const;
34  const ErrorBase* GetOriginatingObject() const;
35  double GetTime() const;
36  void Clear();
37  void Set(Code code, const char* contextMessage, const char* filename,
38  const char *function, uint32_t lineNumber, const ErrorBase* originatingObject);
39  static void EnableStackTrace(bool enable) { m_stackTraceEnabled=enable; }
40  static void EnableSuspendOnError(bool enable) { m_suspendOnErrorEnabled=enable; }
41 
42 private:
43  void Report();
44 
45  Code m_code;
46  std::string m_message;
47  std::string m_filename;
48  std::string m_function;
49  uint32_t m_lineNumber;
50  const ErrorBase* m_originatingObject;
51  double m_timestamp;
52 
53  static bool m_stackTraceEnabled;
54  static bool m_suspendOnErrorEnabled;
55  DISALLOW_COPY_AND_ASSIGN(Error);
56 };
57 
58 #endif
59 
Definition: Error.h:21
Definition: ErrorBase.h:37