libutap
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
UTAP::DistanceCalculator Class Reference

DistanceCalculator is used in TargetFirst heuristic search order of Uppaal. More...

#include <signalflow.h>

Inheritance diagram for UTAP::DistanceCalculator:
UTAP::SignalFlow UTAP::StatementVisitor

Public Member Functions

 DistanceCalculator (const char *_title, TimedAutomataSystem &ta)
 
virtual ~DistanceCalculator ()
 
void addVariableNeedle (const char *var)
 adds a variable needle to I/O map More...
 
void addProcessNeedle (const char *proc)
 adds a variable needle to I/O map More...
 
void updateDistances ()
 Recalculates the distances to needles. More...
 
uint32_t getDistance (const char *element)
 Finds a distance measure for given element. More...
 
virtual void printForDot (std::ostream &os, bool ranked, bool erd, bool cEdged)
 Print I/O information in DOT format into given output stream. More...
 
- Public Member Functions inherited from UTAP::SignalFlow
 SignalFlow (const char *_title, TimedAutomataSystem &ta)
 Analyse the system and extract I/O information: More...
 
void setVerbose (int verbose)
 
virtual ~SignalFlow ()
 All strings are from TASystem (don't dispose TASystem before SignalFlow). More...
 
void printForTron (std::ostream &os)
 Print I/O information in TRON format into given output stream. More...
 
int32_t visitEmptyStatement (EmptyStatement *stat)
 System visitor pattern extracts read/write information from UCode. More...
 
int32_t visitExprStatement (ExprStatement *stat)
 
int32_t visitForStatement (ForStatement *stat)
 
int32_t visitIterationStatement (IterationStatement *stat)
 
int32_t visitWhileStatement (WhileStatement *stat)
 
int32_t visitDoWhileStatement (DoWhileStatement *stat)
 
int32_t visitBlockStatement (BlockStatement *stat)
 
int32_t visitSwitchStatement (SwitchStatement *stat)
 
int32_t visitCaseStatement (CaseStatement *stat)
 
int32_t visitDefaultStatement (DefaultStatement *stat)
 
int32_t visitIfStatement (IfStatement *stat)
 
int32_t visitBreakStatement (BreakStatement *stat)
 
int32_t visitContinueStatement (ContinueStatement *stat)
 
int32_t visitReturnStatement (ReturnStatement *stat)
 
int32_t visitAssertStatement (UTAP::AssertStatement *stat)
 
- Public Member Functions inherited from UTAP::StatementVisitor
virtual ~StatementVisitor ()
 

Protected Member Functions

virtual void printProcsForDot (std::ostream &os, bool erd)
 
virtual void printVarsForDot (std::ostream &os, bool ranked, bool erd)
 
- Protected Member Functions inherited from UTAP::SignalFlow
bool checkParams (const symbol_t &s)
 
void addChan (const std::string &, strs_t &, str2procs_t &)
 
void addVar (const symbol_t &, str2strs_t &, str2procs_t &)
 
void visitProcess (instance_t &)
 
void visitExpression (const expression_t &)
 
void pushIO ()
 
void popIO ()
 
virtual void printVarsWriteForDot (std::ostream &os)
 
virtual void printVarsReadForDot (std::ostream &os)
 
virtual void printChansOnEdgesForDot (std::ostream &os)
 
virtual void printChansSeparateForDot (std::ostream &os, bool ranked, bool erd)
 

Protected Attributes

TimedAutomataSystemtaSystem
 
- Protected Attributes inherited from UTAP::SignalFlow
int verbosity
 
const char * title
 
procs_t procs
 
str2procs_t receivers
 
str2procs_t transmitters
 
strs_t processes
 
strs_t channels
 
strs_t variables
 
proc_tcTA
 
instance_tcP
 
const char * cChan
 
std::string chanString
 
bool inp
 
bool out
 
bool sync
 
bool paramsExpanded
 
std::stack< std::pair< bool,
bool > > 
ioStack
 
std::stack< exprref_trefparams
 
std::stack< exprref_tvalparams
 

Additional Inherited Members

- Public Types inherited from UTAP::SignalFlow
typedef std::set< const char
*, const less_str
strs_t
 
typedef std::map< const proc_t
*, strs_t
proc2strs_t
 
typedef std::map< const char
*, strs_t
str2strs_t
 
typedef std::set< proc_t * > procs_t
 
typedef std::map< const char
*, procs_t, less_str
str2procs_t
 
typedef std::map< const
symbol_t, expression_t
exprref_t
 

Detailed Description

DistanceCalculator is used in TargetFirst heuristic search order of Uppaal.

Current implementation calculates complexity distances from a process to the given set of "needles" (e.g. variables or process location mentioned in query). In the future this can be refined to take the process-local information into account (e.g. calculate distance for individual edges within the process rather than just process).

Constructor & Destructor Documentation

UTAP::DistanceCalculator::DistanceCalculator ( const char *  _title,
TimedAutomataSystem ta 
)
inline
DistanceCalculator::~DistanceCalculator ( )
virtual

Member Function Documentation

void DistanceCalculator::addProcessNeedle ( const char *  proc)

adds a variable needle to I/O map

References UTAP::SignalFlow::processes.

Referenced by main().

void DistanceCalculator::addVariableNeedle ( const char *  var)

adds a variable needle to I/O map

References UTAP::SignalFlow::variables.

uint32_t DistanceCalculator::getDistance ( const char *  element)

Finds a distance measure for given element.

References updateDistances().

void DistanceCalculator::printForDot ( std::ostream &  os,
bool  ranked,
bool  erd,
bool  cEdged 
)
virtual

Print I/O information in DOT format into given output stream.

ranked – puts oposite "ranks" on variables and channels erd – puts boxes and diamonds rather than (compact) ellipses. cEdged – channels are printed on edges rather than separate nodes.

Reimplemented from UTAP::SignalFlow.

References UTAP::SignalFlow::printForDot(), and updateDistances().

void DistanceCalculator::printProcsForDot ( std::ostream &  os,
bool  erd 
)
protectedvirtual

Reimplemented from UTAP::SignalFlow.

References UTAP::SignalFlow::procs.

void DistanceCalculator::printVarsForDot ( std::ostream &  os,
bool  ranked,
bool  erd 
)
protectedvirtual
void DistanceCalculator::updateDistances ( )

Recalculates the distances to needles.

Referenced by getDistance(), and printForDot().

Member Data Documentation

TimedAutomataSystem& UTAP::DistanceCalculator::taSystem
protected

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