shawn::ListEdgeModel Class Reference

#include <list_edge_model.h>

Inheritance diagram for shawn::ListEdgeModel:

Inheritance graph
[legend]
Collaboration diagram for shawn::ListEdgeModel:

Collaboration graph
[legend]

List of all members.

Public Types

typedef std::set
< NodeInfoHandle, NodeInfoSort
NodeInfoSet

Public Member Functions

 DECLARE_HANDLES (NodeInfo)
 ListEdgeModel ()
virtual ~ListEdgeModel ()
virtual void set_world (World &) throw ()
virtual void add_edge (Node &, Node &) throw ()
virtual void add_dedge (Node &, Node &) throw ()
virtual void node_added (Node &) throw ()
 Called by the World whenever a node has been added.
virtual void node_removed (Node &) throw ()
 Called by the World whenever a node has been removed.
bool supports_mobility (void) const throw ()
 Returns false.
virtual int nof_adjacent_nodes (const Node &, EdgeModel::CommunicationDirection d=CD_BIDI) const throw ()
 Returns the number of neighboring nodes with a certain communication direction.
virtual const_adjacency_iterator begin_adjacent_nodes (const Node &, EdgeModel::CommunicationDirection d=CD_BIDI) const throw ()
virtual const_adjacency_iterator end_adjacent_nodes (const Node &) const throw ()
virtual adjacency_iterator begin_adjacent_nodes_w (Node &, EdgeModel::CommunicationDirection d=CD_BIDI) throw ()
virtual adjacency_iterator end_adjacent_nodes_w (Node &) throw ()
virtual Box observer_initial_zone (Node &, const Vec &pos, const Vec &velo) throw ()
Box observer_update_zone (Node &, const Vec &newpos, const Vec &velo) throw ()

Protected Member Functions

ListEdgeModel::NodeInfonode_info (Node &u, Node &v)
virtual void add_node_neighbors (Node &v, const Vec &pos, const Vec &velo) throw ()

Classes

class  ListIteratorHelper
class  NodeInfo
struct  NodeInfoSort
 Helper class to sort containers with NodeInfoHandle / NodeInfo* instances. More...


Detailed Description

This edge model stores all neighborhood information in memory. Hence, it offers an impressive message dispatching and topology lookup speed but consumes quite some memory compared to e.g. the LazyEdgeModel.

Member Typedef Documentation

typedef std::set<NodeInfoHandle, NodeInfoSort> shawn::ListEdgeModel::NodeInfoSet


Constructor & Destructor Documentation

shawn::ListEdgeModel::ListEdgeModel (  ) 

virtual shawn::ListEdgeModel::~ListEdgeModel (  )  [virtual]


Member Function Documentation

shawn::ListEdgeModel::DECLARE_HANDLES ( NodeInfo   ) 

virtual void shawn::ListEdgeModel::set_world ( World  )  throw () [virtual]

Reimplemented from shawn::EdgeModel.

Reimplemented in shawn::FastListEdgeModel.

virtual void shawn::ListEdgeModel::add_edge ( Node ,
Node  
) throw () [virtual]

Do not use directly -- use add_edge() of the communication model, which should be a ManualEdgeCommunicationModel

Implements shawn::ManualEdgeModel.

virtual void shawn::ListEdgeModel::add_dedge ( Node ,
Node  
) throw () [virtual]

Do not use directly -- use add_edge() of the communication model, which should be a ManualEdgeCommunicationModel

virtual void shawn::ListEdgeModel::node_added ( Node  )  throw () [virtual]

Called by the World whenever a node has been added.

Implements shawn::EdgeModel.

Reimplemented in shawn::FastListEdgeModel.

virtual void shawn::ListEdgeModel::node_removed ( Node  )  throw () [virtual]

Called by the World whenever a node has been removed.

Implements shawn::EdgeModel.

Reimplemented in shawn::FastListEdgeModel.

bool shawn::ListEdgeModel::supports_mobility ( void   )  const throw () [virtual]

Returns false.

Implements shawn::EdgeModel.

virtual int shawn::ListEdgeModel::nof_adjacent_nodes ( const Node ,
EdgeModel::CommunicationDirection  d = CD_BIDI 
) const throw () [virtual]

Returns the number of neighboring nodes with a certain communication direction.

Implements shawn::EdgeModel.

virtual const_adjacency_iterator shawn::ListEdgeModel::begin_adjacent_nodes ( const Node ,
EdgeModel::CommunicationDirection  d = CD_BIDI 
) const throw () [virtual]

Implements shawn::EdgeModel.

virtual const_adjacency_iterator shawn::ListEdgeModel::end_adjacent_nodes ( const Node  )  const throw () [virtual]

Implements shawn::EdgeModel.

virtual adjacency_iterator shawn::ListEdgeModel::begin_adjacent_nodes_w ( Node ,
EdgeModel::CommunicationDirection  d = CD_BIDI 
) throw () [virtual]

Implements shawn::EdgeModel.

virtual adjacency_iterator shawn::ListEdgeModel::end_adjacent_nodes_w ( Node  )  throw () [virtual]

Implements shawn::EdgeModel.

virtual Box shawn::ListEdgeModel::observer_initial_zone ( Node ,
const Vec newpos,
const Vec velo 
) throw () [virtual]

Returns an initial bounding box. If a node leaves this box, observer_update_zone() must be called - by convention - by the observed movement to retrieve a new box.

Implements shawn::MovementObserver.

Box shawn::ListEdgeModel::observer_update_zone ( Node ,
const Vec newpos,
const Vec velo 
) throw () [virtual]

Informs this Observer that the old box has been left by the NodeMovement / Node. A new box must be provided by this method.

Implements shawn::MovementObserver.

ListEdgeModel::NodeInfo& shawn::ListEdgeModel::node_info ( Node u,
Node v 
) [protected]

virtual void shawn::ListEdgeModel::add_node_neighbors ( Node v,
const Vec pos,
const Vec velo 
) throw () [protected, virtual]

Reimplemented in shawn::FastListEdgeModel.


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

Generated on Sun Feb 5 00:00:54 2012 for Shawn by  doxygen 1.5.6