P4C
The P4 Compiler
Loading...
Searching...
No Matches
P4::P4Tools::TraceEvents::ExtractSuccess Class Reference

#include <trace_event_types.h>

Inheritance diagram for P4::P4Tools::TraceEvents::ExtractSuccess:
[legend]

Public Member Functions

 ExtractSuccess (const ExtractSuccess &)=default
 
 ExtractSuccess (const IR::Expression *extractedHeader, int offset, const IR::Expression *condition, std::vector< std::pair< IR::StateVariable, const IR::Expression * > > fields)
 
 ExtractSuccess (ExtractSuccess &&)=default
 
const ExtractSuccessapply (Transform &visitor) const override
 Applies the given IR transform to the expressions in this trace event.
 
const ExtractSuccessevaluate (const Model &model, bool doComplete) const override
 
const IR::Expression * getExtractedHeader () const
 
int getOffset () const
 
ExtractSuccessoperator= (const ExtractSuccess &)=default
 
ExtractSuccessoperator= (ExtractSuccess &&)=default
 
const ExtractSuccesssubst (const SymbolicEnv &env) const override
 
- Public Member Functions inherited from P4::P4Tools::TraceEvent
- 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 (ExtractSuccess, TraceEvent)
 
void print (std::ostream &os) const override
 Prints this trace event to the given ostream.
 
- Protected Member Functions inherited from P4::P4Tools::TraceEvent
 DECLARE_TYPEINFO (TraceEvent)
 
- Protected Member Functions inherited from P4::RTTI::Base
virtual const void * toImpl (TypeId typeId) const noexcept=0
 

Detailed Description

Denotes a successful extract call. Will provide information which header was successfully extracted and the offset it was extracted at.

Member Function Documentation

◆ apply()

const ExtractSuccess * P4::P4Tools::TraceEvents::ExtractSuccess::apply ( Transform & visitor) const
overridevirtual

Applies the given IR transform to the expressions in this trace event.

Reimplemented from P4::P4Tools::TraceEvent.

◆ evaluate()

const ExtractSuccess * P4::P4Tools::TraceEvents::ExtractSuccess::evaluate ( const Model & model,
bool doComplete ) const
nodiscardoverridevirtual

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 from P4::P4Tools::TraceEvent.

◆ getExtractedHeader()

const IR::Expression * P4::P4Tools::TraceEvents::ExtractSuccess::getExtractedHeader ( ) const
nodiscard
Returns
the extracted header label stored in this class.

◆ getOffset()

int P4::P4Tools::TraceEvents::ExtractSuccess::getOffset ( ) const
nodiscard
Returns
the offset stored in this class.

◆ print()

void P4::P4Tools::TraceEvents::ExtractSuccess::print ( std::ostream & ) const
overrideprotectedvirtual

Prints this trace event to the given ostream.

Implements P4::P4Tools::TraceEvent.

◆ subst()

const ExtractSuccess * P4::P4Tools::TraceEvents::ExtractSuccess::subst ( const SymbolicEnv & env) const
nodiscardoverridevirtual

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 from P4::P4Tools::TraceEvent.