sc_report.hh (12902:1db5abf06c24) | sc_report.hh (12997:cfc14d8f4725) |
---|---|
1/* 2 * Copyright 2018 Google, Inc. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are 6 * met: redistributions of source code must retain the above copyright 7 * notice, this list of conditions and the following disclaimer; 8 * redistributions in binary form must reproduce the above copyright --- 17 unchanged lines hidden (view full) --- 26 * 27 * Authors: Gabe Black 28 */ 29 30#ifndef __SYSTEMC_EXT_UTIL_SC_REPORT_HH__ 31#define __SYSTEMC_EXT_UTIL_SC_REPORT_HH__ 32 33#include <exception> | 1/* 2 * Copyright 2018 Google, Inc. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are 6 * met: redistributions of source code must retain the above copyright 7 * notice, this list of conditions and the following disclaimer; 8 * redistributions in binary form must reproduce the above copyright --- 17 unchanged lines hidden (view full) --- 26 * 27 * Authors: Gabe Black 28 */ 29 30#ifndef __SYSTEMC_EXT_UTIL_SC_REPORT_HH__ 31#define __SYSTEMC_EXT_UTIL_SC_REPORT_HH__ 32 33#include <exception> |
34#include <string> |
|
34 | 35 |
36#include "systemc/ext/core/sc_time.hh" 37 |
|
35namespace sc_core 36{ 37 | 38namespace sc_core 39{ 40 |
38class sc_time; 39 | |
40enum sc_severity 41{ 42 SC_INFO = 0, 43 SC_WARNING, 44 SC_ERROR, 45 SC_FATAL, 46 SC_MAX_SEVERITY 47}; 48 49enum sc_verbosity 50{ 51 SC_NONE = 0, 52 SC_LOW = 100, 53 SC_MEDIUM = 200, 54 SC_HIGH = 300, 55 SC_FULL = 400, 56 SC_DEBUG = 500 57}; 58 | 41enum sc_severity 42{ 43 SC_INFO = 0, 44 SC_WARNING, 45 SC_ERROR, 46 SC_FATAL, 47 SC_MAX_SEVERITY 48}; 49 50enum sc_verbosity 51{ 52 SC_NONE = 0, 53 SC_LOW = 100, 54 SC_MEDIUM = 200, 55 SC_HIGH = 300, 56 SC_FULL = 400, 57 SC_DEBUG = 500 58}; 59 |
60class sc_report_handler; 61 |
|
59class sc_report : public std::exception 60{ 61 public: 62 sc_report(const sc_report &); 63 sc_report &operator = (const sc_report &); 64 virtual ~sc_report() throw(); 65 | 62class sc_report : public std::exception 63{ 64 public: 65 sc_report(const sc_report &); 66 sc_report &operator = (const sc_report &); 67 virtual ~sc_report() throw(); 68 |
66 sc_severity get_severity() const; 67 const char *get_msg_type() const; 68 const char *get_msg() const; 69 int get_verbosity() const; 70 const char *get_file_name() const; 71 int get_line_number() const; | 69 sc_severity get_severity() const { return _severity; } 70 const char *get_msg_type() const { return _msgType; } 71 const char *get_msg() const { return _msg; } 72 int get_verbosity() const { return _verbosity; } 73 const char *get_file_name() const { return _fileName; } 74 int get_line_number() const { return _lineNumber; } |
72 | 75 |
73 const sc_time &get_time() const; 74 const char *get_process_name() const; | 76 const sc_time &get_time() const { return _time; } 77 const char *get_process_name() const { return _processName; } |
75 76 virtual const char *what() const throw(); 77 78 // Deprecated 79 static const char *get_message(int id); 80 static bool is_suppressed(int id); 81 static void make_warnings_errors(bool); 82 static void register_id(int id, const char *msg); 83 static void suppress_id(int id, bool); // Only for info or warning. 84 static void suppress_infos(bool); 85 static void suppress_warnings(bool); | 78 79 virtual const char *what() const throw(); 80 81 // Deprecated 82 static const char *get_message(int id); 83 static bool is_suppressed(int id); 84 static void make_warnings_errors(bool); 85 static void register_id(int id, const char *msg); 86 static void suppress_id(int id, bool); // Only for info or warning. 87 static void suppress_infos(bool); 88 static void suppress_warnings(bool); |
86 int get_id() const; | 89 int get_id() const { return _id; } 90 91 private: 92 friend class sc_report_handler; 93 94 sc_report(sc_severity _severity, 95 const char *_msgType, 96 const char *_msg, 97 int _verbosity, 98 const char *_fileName, 99 int _lineNumber, 100 sc_time _time, 101 const char *_processName, 102 int _id); 103 104 sc_severity _severity; 105 const char *_msgType; 106 const char *_msg; 107 int _verbosity; 108 const char *_fileName; 109 int _lineNumber; 110 sc_time _time; 111 const char *_processName; 112 int _id; 113 std::string _what; |
87}; 88 89// A non-standard function the Accellera datatypes rely on. 90[[noreturn]] void sc_abort(); 91 92} // namespace sc_core 93 94#endif //__SYSTEMC_EXT_UTIL_SC_REPORT_HH__ | 114}; 115 116// A non-standard function the Accellera datatypes rely on. 117[[noreturn]] void sc_abort(); 118 119} // namespace sc_core 120 121#endif //__SYSTEMC_EXT_UTIL_SC_REPORT_HH__ |