Registry for nodes, edges and adjEntries of a graph. More...
#include <ogdf/basic/Graph_d.h>
Public Types | |
using | iterator = typename Iterable::iterator |
![]() | |
using | iterator_type = Iterator |
using | key_type = Key |
using | registered_array_type = internal::RegisteredArrayBase< Registry > |
using | registration_iterator_type = typename registration_list_type::iterator |
using | registration_list_type = std::list< registered_array_type *, OGDFAllocator< registered_array_type * > > |
using | registry_type = Registry |
Public Member Functions | |
GraphRegistry (Graph *graph, int *nextKeyIndex) | |
Constructor. | |
int | calculateArraySize (int add) const |
Graph * | graphOf () const |
Returns a pointer to the associated graph. | |
bool | isKeyAssociated (Key *key) const |
int | maxKeyIndex () const |
![]() | |
virtual | ~RegistryBase () noexcept |
Destructor. Unregisters all associated arrays. | |
void | copyArrayEntries (int toIndex, int fromIndex) |
Copies the entry from fromIndex to toIndex in all registered arrays. | |
int | getArraySize () const |
Returns the current size of all registered arrays. | |
const registration_list_type & | getRegisteredArrays () const |
Returns a reference to the list of all registered arrays. | |
bool | isAutoShrink () const |
Returns whether the registry allows arrays to shrink when keys are removed. | |
void | keyAdded (Key key) |
Records the addition of a new key and resizes all registered arrays if necessary. | |
void | keyRemoved (Key key) |
Records the deletion of a key and resizes all registered arrays if auto shrink is enabled. | |
void | keysCleared () |
Records that all keys have been cleared. If auto shrink is enabled, all arrays are cleared and resized to 0. | |
void | moveRegisterArray (registration_iterator_type it, registered_array_type *pArray) const |
Stores array pArray at position it in the list of registered arrays. | |
OGDF_NODISCARD registration_iterator_type | registerArray (registered_array_type *pArray) const |
Registers a new array with this registry. | |
void | reserveSpace (int new_keys) |
Resizes all arrays to make space of new_keys new keys. | |
void | resizeArrays () |
Resizes all arrays to the size requested by calculateArraySize(). Only shrinks the arrays if auto shrink is enabled. | |
void | resizeArrays (int size) |
Resizes all arrays to size . Only shrinks the arrays if auto shrink is enabled. | |
void | resizeArrays (int size, bool shrink) |
Resizes all arrays to size . If shrink is true , the arrays may also shrink. | |
void | setAutoShrink (bool mAutoShrink) |
Specifies whether the registry allows arrays to shrink when keys are removed. | |
void | swapArrayEntries (int index1, int index2) |
Swaps the entries at index1 and index2 in all registered arrays. | |
void | unregisterArray (registration_iterator_type it) const noexcept |
Unregisters an array associated with this registry. | |
void | unregisterArrays () noexcept |
Unregister all associated arrays. | |
![]() | |
Observable ()=default | |
Observable (const Observable ©)=delete | |
If you want to copy a subclass of Observable, call the default Observable() constructor. | |
Observable (Observable &&move)=delete | |
If you want to move a subclass of Observable, call the default Observable() constructor. | |
virtual | ~Observable () |
Note that all Observers must already be removed once the destructor of this base class is invoked (e.g. | |
Observable & | operator= (const Observable ©)=delete |
Observable & | operator= (Observable &&move)=delete |
Static Public Member Functions | |
static int | keyToIndex (Key *key) |
Private Attributes | |
int * | m_nextKeyIndex |
Graph * | m_pGraph |
Additional Inherited Members | |
![]() | |
RegistryBase ()=default | |
![]() | |
void | clearObservers () |
const ListPure< RegisteredObserver< Registry > * > & | getObservers () const |
ListPure< RegisteredObserver< Registry > * >::iterator | registerObserver (RegisteredObserver< Registry > *obs) const |
Registers an observer. | |
void | unregisterObserver (typename ListPure< RegisteredObserver< Registry > * >::iterator it) const |
Unregisters an observer. | |
Registry for nodes, edges and adjEntries of a graph.
Key | the type of registered key |
Iterable | the type of iterable container with registered keys |
Factor | How many array entries are created for each inserted element. This is set to 2 for GraphAdjRegistry, such that only one adjEntry has to be added and the twin adjEntry is registered automatically. |
using ogdf::internal::GraphRegistry< Key, Iterable, Factor >::iterator = typename Iterable::iterator |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
inline |
|
private |
|
private |