PC::Marking Class Reference

#include <PowerCircuit.h>

List of all members.

Public Member Functions

 Marking ()
 Marking (PowerCircuit *p, int i)
 Marking (const Marking &m)
Markingoperator= (const Marking &rhs)
 ~Marking ()
bool isReduced ()
Marking clone ()
Marking copy ()
std::list< NodegetNodes ()
int getSign (Node n)
Marking operator++ (int dummy)
Marking operator- ()
Marking operator+ (const Marking &m)
Marking operator& (const Marking &m)
bool operator< (const Marking &m)
bool operator> (const Marking &m)
bool operator<= (const Marking &m)
bool operator>= (const Marking &m)
bool operator== (const Marking &m)
bool operator!= (const Marking &m)
bool isSuccessorMarking ()
bool isDefined ()
Node getIncidentNode ()
Node getSmallestNode ()

Public Attributes

PowerCircuitpc
int id

Detailed Description

Wrapper class for markings in power circuits. In reality, markings are handled by (derivatives of) the class PowerCircuit. This class is used to make handling of markings type-safe. It contains only a pointer to the corresponding power circuit and an integer id, which is -1 if the marking has not (yet) been set. If any more data is needed for a marking, the power circuit class has to hold it itself. The methods call similarly-named methods of PowerCircuit.

Markings work like references to the respective internal representations. Thus the assignment operator does not create a copy of a marking. However all arithmetic operations create new markings, so the old ones can be maintained. Therefore a marking (i.e. the handle of a internal representation) only changes its value through the assignment operator and when calling the connect() or connectInv() methods of PowerCircuit.

It is also not necessary (and not possible) to delete markings (in the PowerCircuitGraph class, once there is no marking pointing onto an internal marking, its memory is automatically deallocated).

Definition at line 132 of file PowerCircuit.h.


Constructor & Destructor Documentation

PC::Marking::Marking (  )  [inline]

Definition at line 138 of file PowerCircuit.h.

PC::Marking::Marking ( PowerCircuit p,
int  i 
)
PC::Marking::Marking ( const Marking m  ) 
PC::Marking::~Marking (  ) 

Member Function Documentation

Marking PC::Marking::clone (  ) 
Marking PC::Marking::copy (  ) 
Node PC::Marking::getIncidentNode (  ) 
std::list<Node> PC::Marking::getNodes (  ) 
int PC::Marking::getSign ( Node  n  ) 
Node PC::Marking::getSmallestNode (  ) 
bool PC::Marking::isDefined (  ) 
bool PC::Marking::isReduced (  ) 
bool PC::Marking::isSuccessorMarking (  ) 
bool PC::Marking::operator!= ( const Marking m  ) 
Marking PC::Marking::operator& ( const Marking m  ) 
Marking PC::Marking::operator+ ( const Marking m  ) 
Marking PC::Marking::operator++ ( int  dummy  ) 
Marking PC::Marking::operator- (  ) 
bool PC::Marking::operator< ( const Marking m  ) 
bool PC::Marking::operator<= ( const Marking m  ) 
Marking& PC::Marking::operator= ( const Marking rhs  ) 
bool PC::Marking::operator== ( const Marking m  ) 
bool PC::Marking::operator> ( const Marking m  ) 
bool PC::Marking::operator>= ( const Marking m  ) 

Member Data Documentation

Definition at line 136 of file PowerCircuit.h.

Definition at line 135 of file PowerCircuit.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Mon Sep 26 18:43:53 2011 for CRyptography And Groups (CRAG) by  doxygen 1.6.1