#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
1.5.8