Public Member Functions

ListDigraph::Snapshot Class Reference


Detailed Description

Class to make a snapshot of the digraph and restore it later.

The newly added nodes and arcs can be removed using the restore() function.

Note:
After a state is restored, you cannot restore a later state, i.e. you cannot add the removed nodes and arcs again using another Snapshot instance.
Warning:
Node and arc deletions and other modifications (e.g. reversing, contracting, splitting arcs or nodes) cannot be restored. These events invalidate the snapshot. However, the arcs and nodes that were added to the digraph after making the current snapshot can be removed without invalidating it.

#include <lemon/list_graph.h>

List of all members.

Public Member Functions

 Snapshot ()
 Default constructor.
 Snapshot (ListDigraph &gr)
 Constructor that immediately makes a snapshot.
void save (ListDigraph &gr)
 Make a snapshot.
void restore ()
 Undo the changes until the last snapshot.
bool valid () const
 Returns true if the snapshot is valid.

Constructor & Destructor Documentation

Snapshot ( ) [inline]

Default constructor. You have to call save() to actually make a snapshot.

Snapshot ( ListDigraph gr) [inline]

This constructor immediately makes a snapshot of the given digraph.


Member Function Documentation

void save ( ListDigraph gr) [inline]

This function makes a snapshot of the given digraph. It can be called more than once. In case of a repeated call, the previous snapshot gets lost.

void restore ( ) [inline]

This function undos the changes until the last snapshot created by save() or Snapshot(ListDigraph&).

Warning:
This method invalidates the snapshot, i.e. repeated restoring is not supported unless you call save() again.
bool valid ( ) const [inline]

This function returns true if the snapshot is valid.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines