#include <ol-context.h>
Classes | |
struct | Context |
The meta-data of SeNDlog context. More... | |
struct | ExtStageSpec |
struct | Rule |
struct | TableInfo |
The meta-data of the table. More... | |
Public Types | |
typedef map< string, string > | WatchTableType |
typedef map< string, ExtStageSpec * > | ExternalStageSpecMap |
Public Member Functions | |
void | Watch (ParseExpr *t, string modifiers) |
void | Stage (ParseExpr *stageName, ParseExpr *inputTuple, ParseExpr *outputTuple) |
void | TraceTable (ParseExpr *t) |
void | ReportError (string msg) |
bool | GotErrors () |
void | DumpErrors () |
void | CombineProvenanceQueryRules (Ptr< OlContext > othertxt) |
Static Public Attributes | |
static long | NO_EXPIRATION |
static long | DEFAULT_EXPIRATION |
static uint32_t | NO_SIZE |
static uint32_t | DEFAULT_SIZE |
Private Member Functions | |
void | ProvenanceRewrite (Rule *rule) |
ParseFunctor * | GenerateLocalEHTempEventRule (Rule *rule) |
void | GenerateLocalRuleExecEntryRule (Rule *rule, ParseFunctor *eHTemp) |
ParseFunctor * | GenerateSendEventMsgEHRule (Rule *rule, ParseFunctor *eHTemp) |
void | GenerateCreateResultTupleHRule (Rule *rule, ParseFunctor *eH) |
void | GenerateCreateRemoveProvEntryRule (Rule *rule, ParseFunctor *eH) |
void | AddEdbProvenanceRule () |
Private Attributes | |
WatchTableType | watchTables |
set< string > | tablesToTrace |
ExternalStageSpecMap | mStages |
Context | mContext |
set< string > | rewrittenIdbs |
map< string, ParseFunctor * > | potentialEdbs |
This is the first stage of compilation. From here, it is localized by the LocalizeContext and then translated to ECA representation by EcaContext and finally C++ code is generated to run on RapidNet library by RapidNetContext.
OL stands for overlog or NDlog.
typedef map<string, ExtStageSpec*> ns3::rapidnet_compiler::OlContext::ExternalStageSpecMap |
The type of stage catalogs
typedef map<string, string> ns3::rapidnet_compiler::OlContext::WatchTableType |
The type of watched table mappings
void ns3::rapidnet_compiler::OlContext::AddEdbProvenanceRule | ( | ) | [private] |
(Provenance) Add provenance rule to initialize the provenance tree with the leaf nodes that correspond to EDBs.
(Provenance) Combines the input rules after rewriting them for provenance with query rules.
void ns3::rapidnet_compiler::OlContext::DumpErrors | ( | ) |
Dump any errors into the ERROR stream
void ns3::rapidnet_compiler::OlContext::GenerateCreateRemoveProvEntryRule | ( | Rule * | rule, | |
ParseFunctor * | eH | |||
) | [private] |
(Provenance) Generates the fifth rule that creates the remote prov entry. (line 8)
void ns3::rapidnet_compiler::OlContext::GenerateCreateResultTupleHRule | ( | Rule * | rule, | |
ParseFunctor * | eH | |||
) | [private] |
(Provenance) Generates the fourth rule that creates the corresponding result tuple h. (line 7)
ParseFunctor* ns3::rapidnet_compiler::OlContext::GenerateLocalEHTempEventRule | ( | Rule * | rule | ) | [private] |
(Provenance) Generates the first rule that generates the local event eHtemp. (line 4)
void ns3::rapidnet_compiler::OlContext::GenerateLocalRuleExecEntryRule | ( | Rule * | rule, | |
ParseFunctor * | eHTemp | |||
) | [private] |
(Provenance) Generates the second rule that creates the local ruleExec entry corresponding to metadata for rule execution. (line 5)
ParseFunctor* ns3::rapidnet_compiler::OlContext::GenerateSendEventMsgEHRule | ( | Rule * | rule, | |
ParseFunctor * | eHTemp | |||
) | [private] |
(Provenance) Generates the third rule that sends the event message eH to the target node. (line 6)
bool ns3::rapidnet_compiler::OlContext::GotErrors | ( | ) |
Return true if I encountered errors during parsing
void ns3::rapidnet_compiler::OlContext::ProvenanceRewrite | ( | Rule * | rule | ) | [private] |
(Provenance) Rewrite the input rule for provenance, if provenance is enabled. Each rule is tranlated into 5 rules.
void ns3::rapidnet_compiler::OlContext::ReportError | ( | string | msg | ) |
Error management
void ns3::rapidnet_compiler::OlContext::Stage | ( | ParseExpr * | stageName, | |
ParseExpr * | inputTuple, | |||
ParseExpr * | outputTuple | |||
) |
Register a stage fact, made of the stage name, the input tuple name and the output tuple name
void ns3::rapidnet_compiler::OlContext::TraceTable | ( | ParseExpr * | t | ) |
Keep track of tables to be traced
void ns3::rapidnet_compiler::OlContext::Watch | ( | ParseExpr * | t, | |
string | modifiers | |||
) |
Register a watch fact
long ns3::rapidnet_compiler::OlContext::DEFAULT_EXPIRATION [static] |
The default table expiration time
uint32_t ns3::rapidnet_compiler::OlContext::DEFAULT_SIZE [static] |
The default table size
(SeNDlog) the context for the rules
Declared external stages
long ns3::rapidnet_compiler::OlContext::NO_EXPIRATION [static] |
The non-expiring expiration time
uint32_t ns3::rapidnet_compiler::OlContext::NO_SIZE [static] |
The non-size-limited size
map<string, ParseFunctor*> ns3::rapidnet_compiler::OlContext::potentialEdbs [private] |
(Provenance) Potential edb functors.
set<string> ns3::rapidnet_compiler::OlContext::rewrittenIdbs [private] |
(Provenance) A set of rule head recording provenance rewriten rules, to avoid repetition.
set<string> ns3::rapidnet_compiler::OlContext::tablesToTrace [private] |
A set of table names for those tables we wish to trace during execution
The watched table map