# DFChecks

## class DFChecks : public DiagramChecks

> implements checks for soft constraints on DFDs.

## Inheritance:

### Public Methods

  | DFChecks (Diagram *d, Graph *g)
  unsigned | CheckDataProcessCoherence (string &chkbuf) each data process should have an input and an output flow.
  unsigned | CheckSplitMergeNodeCoherence (string &chkbuf) Check if splitmerge nodes are properly connected.
  unsigned | CheckNamelessSplitMergeEdges (string &chkbuf) empty names are not allowed except for identical split/merge.
  unsigned | CheckNamelessFlows (int edgetype, int nodetype1, int nodetype2, string &chkbuf) Check that flows have a name.
  unsigned | CheckMinispecs (string &chkbuf) Check that each data process has a minispec.
  void | WriteCheckProcess (DFProcess *d, string &chkbuf)

### Inherited from DiagramChecks:

### Public Methods

unsigned CheckNodeCount(unsigned count, int nodeType, string &chkbuf)
unsigned CheckNodeCount(unsigned min, unsigned max, int nodeType, string &chkbuf)
unsigned CheckEdgeCount(unsigned count, int edgeType, string &chkbuf)
unsigned CheckEdgeCount(unsigned min, unsigned max, int edgeType, string &chkbuf)
unsigned CheckDoubleIndexes(string &chkbuf)
unsigned CheckNamelessNodes(int nodeType, string &chkbuf)
unsigned CheckNamelessEdges(int edgeType, string &chkbuf)
unsigned CheckIllegalNodeNames(int nodeType, const string *name, string &chkbuf)
unsigned CheckIllegalEdgeNames(int edgeType, const string *name, string &chkbuf)
unsigned CheckNamelessEdges( int edgeType, int type1, int type2, string &chkbuf)
unsigned CheckDoubleNamelessEdges(int edgeType, int type1, int type2, string &chkbuf)
unsigned CheckDoubleNodes(int nodeType, string &chkbuf)
unsigned CheckConnected(int nodeType, bool index, string &chkbuf)
unsigned CheckConnected(int nodeType, int toNode, int min, int max, bool index, string &chkbuf)
unsigned CheckJunctionCoherence(int nodeType, int parenttype, int childtype, unsigned minChildren, string &chkbuf)
unsigned CheckCountEdgesFrom(int nodeType, int edgeType, unsigned min, unsigned max, bool zeroAllowed, bool index, string &chkbuf)
unsigned CheckReachability(int rootType, int nodeType, bool index, string &chkbuf)

### Protected Methods

Graph* GetGraph() const
Diagram* GetDiagram() const
unsigned CheckCount(unsigned min, unsigned max, int type, string &chkbuf, bool node)
unsigned CheckIllegalNames(int type, const string *name, string &chkbuf, bool node)

## Documentation

> implements checks for soft constraints on DFDs.

`DFChecks(Diagram *d, Graph *g)`

`unsigned CheckDataProcessCoherence(string &chkbuf)`
  each data process should have an input and an output flow.

`unsigned CheckSplitMergeNodeCoherence(string &chkbuf)`
  Check if splitmerge nodes are properly connected.

`unsigned CheckNamelessSplitMergeEdges(string &chkbuf)`
  empty names are not allowed except for identical split/merge.

`unsigned CheckNamelessFlows(int edgetype, int nodetype1, int nodetype2, string &chkbuf)`
  Check that flows have a name.

`unsigned CheckMinispecs(string &chkbuf)`
  Check that each data process has a minispec.

`void WriteCheckProcess(DFProcess *d, string &chkbuf)`

Direct child classes:
  DCFChecks

alphabetic index hierarchy of classes

this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de