CPN
Computational Process Networks
Classes | Typedefs | Functions
D4R Namespace Reference

D4R algorithm as described in "A Distributed Deadlock Detection And Resolution Algorithm For Process Networks" by Allen, Zucknick and Evans. More...

Classes

class  DeadlockException
 The exception thrown when true deadlock is detected. More...
 
class  Node
 
class  QueueBase
 
class  Tag
 

Typedefs

typedef std::list< weak_ptr
< QueueBase > > 
QueueList
 

Functions

void SignalReader (shared_ptr< QueueBase > q)
 
void SignalWriter (shared_ptr< QueueBase > q)
 
void GetQueues (QueueList &qlist, std::list< shared_ptr< QueueBase > > &out)
 

Detailed Description

D4R algorithm as described in "A Distributed Deadlock Detection And Resolution Algorithm For Process Networks" by Allen, Zucknick and Evans.

Typedef Documentation

typedef std::list<weak_ptr<QueueBase> > D4R::QueueList

Definition at line 124 of file D4RNode.cc.

Function Documentation

void D4R::GetQueues ( QueueList &  qlist,
std::list< shared_ptr< QueueBase > > &  out 
)

Definition at line 125 of file D4RNode.cc.

References FunctionNode::out.

Referenced by D4R::Node::SignalTagChanged().

125  {
126  QueueList::iterator itr, end;
127  itr = qlist.begin();
128  end = qlist.end();
129  while (itr != end) {
130  shared_ptr<QueueBase> q = itr->lock();
131  if (q) {
132  out.push_back(q);
133  ++itr;
134  } else {
135  itr = qlist.erase(itr);
136  }
137  }
138  }

+ Here is the caller graph for this function:

void D4R::SignalReader ( shared_ptr< QueueBase >  q)

Definition at line 116 of file D4RNode.cc.

Referenced by D4R::Node::SignalTagChanged().

116  {
117  q->SignalReaderTagChanged();
118  }

+ Here is the caller graph for this function:

void D4R::SignalWriter ( shared_ptr< QueueBase >  q)

Definition at line 120 of file D4RNode.cc.

Referenced by D4R::Node::SignalTagChanged().

120  {
121  q->SignalWriterTagChanged();
122  }

+ Here is the caller graph for this function: