17 #ifndef _SCC_TRACER_BASE_H_
18 #define _SCC_TRACER_BASE_H_
20 #include "utilities.h"
21 #include <sysc/tracing/sc_trace.h>
22 #include <type_traits>
52 return static_cast<trace_types>(
static_cast<unsigned>(lhs) |
static_cast<unsigned>(rhs));
63 return static_cast<trace_types>(
static_cast<unsigned>(lhs) &
static_cast<unsigned>(rhs));
87 : sc_core::sc_module(nm) {}
96 tracer_base(
const sc_core::sc_module_name& nm, sc_core::sc_trace_file* tf,
bool owned =
true)
97 : sc_core::sc_module(nm)
136 static std::string get_name();
141 virtual void descend(
const sc_core::sc_object*,
bool trace_all);
143 static void try_trace(sc_core::sc_trace_file* trace_file,
const sc_core::sc_object*
object,
trace_types t);
145 sc_core::sc_trace_file* trf{
nullptr};
base class for automatic tracer
const sc_core::sc_trace_file * get_trace_file() const
get the tracefile used by this tracer
bool default_trace_enable
the default for tracing if no attribute is configured
tracer_base(const sc_core::sc_module_name &nm, sc_core::sc_trace_file *tf, bool owned=true)
named constructor with trace file
void set_trace_file(sc_core::sc_trace_file *trf)
set the trace file of this tracer
tracer_base(const sc_core::sc_module_name &nm)
named constructor
void set_trace_types(trace_types t)
set the types to trace
trace_types
identifies the various type to be traced
trace_types operator&(trace_types lhs, trace_types rhs)
operator overload to allow boolean and operations on trace_types
trace_types operator|(trace_types lhs, trace_types rhs)
operator overload to allow boolean or operations on trace_types