P4C
The P4 Compiler
|
An event in a trace of the execution of a P4 program. More...
#include <trace_event.h>
Public Member Functions | |
virtual const TraceEvent * | apply (Transform &visitor) const |
Applies the given IR transform to the expressions in this trace event. | |
virtual const TraceEvent * | evaluate (const Model &model, bool doComplete) const |
virtual const TraceEvent * | subst (const SymbolicEnv &env) const |
Public Member Functions inherited from P4::ICastable | |
template<typename T > | |
T & | as () |
Tries to convert the class to type T. A BUG occurs if the cast fails. | |
template<typename T > | |
const T & | as () const |
Tries to convert the class to type T. A BUG occurs if the cast fails. | |
template<typename T > | |
T * | checkedTo () |
Performs a checked cast. A BUG occurs if the cast fails. | |
template<typename T > | |
const T * | checkedTo () const |
Performs a checked cast. A BUG occurs if the cast fails. | |
Public Member Functions inherited from P4::RTTI::Base | |
template<typename T > | |
bool | is () const noexcept |
virtual bool | isA (TypeId typeId) const noexcept=0 |
template<typename T > | |
const T * | to () const noexcept |
Same as to , but returns const pointer to T. | |
template<typename T > | |
T * | to () noexcept |
virtual TypeId | typeId () const noexcept=0 |
Protected Member Functions | |
DECLARE_TYPEINFO (TraceEvent) | |
virtual void | print (std::ostream &) const =0 |
Prints this trace event to the given ostream. | |
Protected Member Functions inherited from P4::RTTI::Base | |
virtual const void * | toImpl (TypeId typeId) const noexcept=0 |
Friends | |
std::ostream & | operator<< (std::ostream &os, const TraceEvent &event) |
An event in a trace of the execution of a P4 program.
|
virtual |
Applies the given IR transform to the expressions in this trace event.
Reimplemented in P4::P4Tools::TraceEvents::AssignmentStatement, P4::P4Tools::TraceEvents::Emit, P4::P4Tools::TraceEvents::Expression, P4::P4Tools::TraceEvents::ExtractSuccess, P4::P4Tools::TraceEvents::IfStatementCondition, and P4::P4Tools::TraceEvents::Packet.
|
nodiscardvirtual |
Evaluates expressions in the body of this trace event for their concrete value in the given model. A BUG occurs if there are any variables that are unbound by the given model.
Reimplemented in P4::P4Tools::TraceEvents::AssignmentStatement, P4::P4Tools::TraceEvents::Emit, P4::P4Tools::TraceEvents::Expression, P4::P4Tools::TraceEvents::ExtractSuccess, P4::P4Tools::TraceEvents::IfStatementCondition, and P4::P4Tools::TraceEvents::Packet.
|
protectedpure virtual |
Prints this trace event to the given ostream.
Implemented in P4::P4Tools::TraceEvents::AssignmentStatement, P4::P4Tools::TraceEvents::Emit, P4::P4Tools::TraceEvents::Expression, P4::P4Tools::TraceEvents::ExtractFailure, P4::P4Tools::TraceEvents::ExtractSuccess, P4::P4Tools::TraceEvents::Generic, P4::P4Tools::TraceEvents::GenericDescription, P4::P4Tools::TraceEvents::IfStatementCondition, P4::P4Tools::TraceEvents::MethodCall, P4::P4Tools::TraceEvents::Packet, P4::P4Tools::TraceEvents::ParserStart, and P4::P4Tools::TraceEvents::ParserState.
|
nodiscardvirtual |
Substitutes state variables in the body of this trace event for their symbolic value in the given symbolic environment. Variables that are unbound by the given environment are left untouched.
Reimplemented in P4::P4Tools::TraceEvents::AssignmentStatement, P4::P4Tools::TraceEvents::Emit, P4::P4Tools::TraceEvents::Expression, P4::P4Tools::TraceEvents::ExtractSuccess, P4::P4Tools::TraceEvents::IfStatementCondition, and P4::P4Tools::TraceEvents::Packet.