P4C
The P4 Compiler
Loading...
Searching...
No Matches
BFN::ClotResourcesLogging Class Reference
Inheritance diagram for BFN::ClotResourcesLogging:
[legend]

Public Types

using ClotField = Resources_Schema_Logger::ClotField
 
using ClotResourceUsage = Resources_Schema_Logger::ClotResourceUsage
 
using ClotUsage = Resources_Schema_Logger::ClotUsage
 

Public Member Functions

 ClotResourcesLogging (const ClotInfo &clotInfo)
 
std::vector< ClotResourceUsage * > getLoggers ()
 

Protected Member Functions

void collectClotUsages (const IR::BFN::LoweredParserMatch *match, const IR::BFN::LoweredParserState *state, gress_t gress)
 
void collectExtractClotInfo (const IR::BFN::LoweredExtractClot *extract, const IR::BFN::LoweredParserState *state, gress_t gress)
 
void end_apply () override
 
std::vector< ClotUsage * > & getUsageData (gress_t gress, unsigned tag)
 
void logClotUsages ()
 
ClotUsage * logExtractClotInfo (cstring parser_state, bool hasChecksum, int length, int offset, unsigned tag, const Clot *clot)
 
bool preorder (const IR::BFN::LoweredParserState *state)
 
bool usingClots () const
 

Protected Attributes

const ClotInfoclotInfo
 
ClotResourceUsage * clotLogger = nullptr
 
std::map< unsigned, unsigned > clotTagToChecksumUnit
 
std::vector< ClotResourceUsage * > clotUsages = std::vector<ClotResourceUsage *>(2)
 
bool collected = false
 
std::vector< std::map< unsigned, std::vector< ClotUsage * > > > usageData