ns3::rapidnet_compiler::OlContext Class Reference
[RapidNet Compiler]

A parsed form of the entire protocol in NDlog. More...

#include <ol-context.h>

Inheritance diagram for ns3::rapidnet_compiler::OlContext:

Inheritance graph
Collaboration diagram for ns3::rapidnet_compiler::OlContext:

Collaboration graph

List of all members.


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 * > 

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

Detailed Description

A parsed form of the entire protocol in NDlog.

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.

See also:
LocalizeContext, EcaContext, RapidNetContext

Member Typedef Documentation

The type of stage catalogs

The type of watched table mappings

Member Function Documentation

void ns3::rapidnet_compiler::OlContext::AddEdbProvenanceRule (  )  [private]

(Provenance) Add provenance rule to initialize the provenance tree with the leaf nodes that correspond to EDBs.

void ns3::rapidnet_compiler::OlContext::CombineProvenanceQueryRules ( Ptr< OlContext othertxt  ) 

(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

Member Data Documentation

The default table expiration time

The default table size

(SeNDlog) the context for the rules

Declared external stages

The non-expiring expiration time

The non-size-limited size

map<string, ParseFunctor*> ns3::rapidnet_compiler::OlContext::potentialEdbs [private]

(Provenance) Potential edb functors.

(Provenance) A set of rule head recording provenance rewriten rules, to avoid repetition.

A set of table names for those tables we wish to trace during execution

The watched table map

The documentation for this class was generated from the following file:

Generated on Fri Apr 9 15:01:12 2010 for NS-3 by  doxygen 1.5.8