libUTL++
utl::Vertex Class Reference

Graph vertex. More...

#include <Vertex.h>

Inheritance diagram for utl::Vertex:

Public Member Functions

 Vertex (const Object *object)
 Constructor. More...
 
virtual void copy (const Object &object)
 Copy another Vertex. More...
 
virtual const ObjectgetKey () const
 Get the key for the vertex. More...
 
void addDirectedEdge (const Vertex *vertex)
 Add a directed edge to the given vertex. More...
 
void addUndirectedEdge (Vertex *vertex)
 Add an undirected edge to the given vertex. More...
 
void clear ()
 Clear edges and associated object. More...
 
const SlistNodeedges () const
 Return the edges. More...
 
Vertexfind (const Object &key) const
 Find the associated vertex matching the given key. More...
 
ObjectgetObject () const
 Get the associated object. More...
 
bool isOwner () const
 Get the owner flag. More...
 
void setOwner (bool owner)
 Set the owner flag. More...
 
bool isVisited () const
 Get the visited flag. More...
 
void setVisited (bool visited)
 Set the visited flag. More...
 
bool removeDirectedEdge (const Vertex *vertex)
 Remove the directed edge to the given vertex. More...
 
bool removeUndirectedEdge (Vertex *vertex)
 Remove the undirected edge to the given vertex. More...
 
void setObject (const Object *object)
 Set the associated object. More...
 
- Public Member Functions inherited from utl::Object
void clear ()
 Revert to initial state. More...
 
virtual int compare (const Object &rhs) const
 Compare with another object. More...
 
virtual void vclone (const Object &rhs)
 Make an exact copy of another instance. More...
 
virtual void steal (Object &rhs)
 "Steal" the internal representation from another instance. More...
 
virtual void dump (Stream &os, uint_t level=uint_t_max) const
 Dump a human-readable representation of self to the given output stream. More...
 
void dumpWithClassName (Stream &os, uint_t indent=4, uint_t level=uint_t_max) const
 Front-end for dump() that prints the object's class name. More...
 
bool hasKey () const
 Determine whether or not the object has a key. More...
 
virtual const ObjectgetProxiedObject () const
 Get the proxied object (= self if none). More...
 
virtual ObjectgetProxiedObject ()
 Get the proxied object (= self if none). More...
 
virtual size_t hash (size_t size) const
 Get the hash code for the object. More...
 
bool _isA (const RunTimeClass *runTimeClass) const
 Determine whether self's class is a descendent of the given class. More...
 
virtual String toString () const
 Return a string representation of self. More...
 
 operator String () const
 Conversion to String. More...
 
size_t allocatedSize () const
 Get the total allocated size of this object. More...
 
virtual size_t innerAllocatedSize () const
 Get the "inner" allocated size. More...
 
virtual void addOwnedIt (const class FwdIt *it) const
 Notify self that it owns the given iterator. More...
 
virtual void removeOwnedIt (const class FwdIt *it) const
 Notify self that the given owned iterator has been destroyed. More...
 
bool operator< (const Object &rhs) const
 Less-than operator. More...
 
bool operator<= (const Object &rhs) const
 Less-than-or-equal-to operator. More...
 
bool operator> (const Object &rhs) const
 Greater-than operator. More...
 
bool operator>= (const Object &rhs) const
 Greater-than-or-equal-to operator. More...
 
bool operator== (const Object &rhs) const
 Equal-to operator. More...
 
bool operator!= (const Object &rhs) const
 Unequal-to operator. More...
 
void serializeIn (Stream &is, uint_t mode=ser_default)
 Serialize from an input stream. More...
 
void serializeOut (Stream &os, uint_t mode=ser_default) const
 Serialize to an output stream. More...
 
virtual void serialize (Stream &stream, uint_t io, uint_t mode=ser_default)
 Serialize to or from a stream. More...
 
void serializeOutBoxed (Stream &os, uint_t mode=ser_default) const
 Serialize a boxed object to an output stream. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from utl::Object
static ObjectserializeInNullable (Stream &is, uint_t mode=ser_default)
 Serialize a nullptr-able object from an input stream. More...
 
static void serializeOutNullable (const Object *object, Stream &os, uint_t mode=ser_default)
 Serialize a nullptr-able object to an output stream. More...
 
static void serializeNullable (Object *&object, Stream &stream, uint_t io, uint_t mode=ser_default)
 Serialize a nullptr-able object to or from a stream. More...
 
static ObjectserializeInBoxed (Stream &is, uint_t mode=ser_default)
 Serialize a boxed object from an input stream. More...
 
static void serializeBoxed (Object *&object, Stream &stream, uint_t io, uint_t mode=ser_default)
 Serialize a boxed object to or from a stream. More...
 

Detailed Description

Graph vertex.

Attributes

  • object : Object associated with this vertex.
  • edges : Edges to other vertices.
  • owner flag : Ownership flag for associated object.
  • visited flag : Whether vertex has been visited.
Author
Adam McKee

Definition at line 32 of file Vertex.h.

Constructor & Destructor Documentation

◆ Vertex()

utl::Vertex::Vertex ( const Object object)
inline

Constructor.

Parameters
objectassociated object

Definition at line 41 of file Vertex.h.

References utl::copy(), and utl::init().

Member Function Documentation

◆ copy()

virtual void utl::Vertex::copy ( const Object object)
virtual

Copy another Vertex.

Reimplemented from utl::Object.

Reimplemented in utl::ParseNode.

◆ getKey()

virtual const Object& utl::Vertex::getKey ( ) const
inlinevirtual

Get the key for the vertex.

If there is an associated object, return its key, else return Object::getKey.

Reimplemented from utl::Object.

Definition at line 54 of file Vertex.h.

◆ addDirectedEdge()

void utl::Vertex::addDirectedEdge ( const Vertex vertex)
inline

Add a directed edge to the given vertex.

Definition at line 64 of file Vertex.h.

References utl::slist_add().

◆ addUndirectedEdge()

void utl::Vertex::addUndirectedEdge ( Vertex vertex)
inline

Add an undirected edge to the given vertex.

Definition at line 71 of file Vertex.h.

References utl::slist_add().

◆ clear()

void utl::Vertex::clear ( )
inline

Clear edges and associated object.

Definition at line 79 of file Vertex.h.

References utl::slist_clear().

◆ edges()

const SlistNode* utl::Vertex::edges ( ) const
inline

Return the edges.

Definition at line 87 of file Vertex.h.

◆ find()

Vertex* utl::Vertex::find ( const Object key) const
inline

Find the associated vertex matching the given key.

Returns
found vertex (nullptr if none found)
Parameters
keysearch key

Definition at line 98 of file Vertex.h.

References utl::slist_find().

◆ getObject()

Object* utl::Vertex::getObject ( ) const
inline

Get the associated object.

Definition at line 105 of file Vertex.h.

◆ isOwner()

bool utl::Vertex::isOwner ( ) const
inline

Get the owner flag.

Definition at line 112 of file Vertex.h.

◆ setOwner()

void utl::Vertex::setOwner ( bool  owner)
inline

Set the owner flag.

Definition at line 119 of file Vertex.h.

◆ isVisited()

bool utl::Vertex::isVisited ( ) const
inline

Get the visited flag.

Definition at line 129 of file Vertex.h.

◆ setVisited()

void utl::Vertex::setVisited ( bool  visited)
inline

Set the visited flag.

Definition at line 136 of file Vertex.h.

◆ removeDirectedEdge()

bool utl::Vertex::removeDirectedEdge ( const Vertex vertex)
inline

Remove the directed edge to the given vertex.

Returns
true iff edge removed
Parameters
vertexother vertex

Definition at line 150 of file Vertex.h.

References utl::slist_remove().

◆ removeUndirectedEdge()

bool utl::Vertex::removeUndirectedEdge ( Vertex vertex)
inline

Remove the undirected edge to the given vertex.

Returns
true iff edge removed
Parameters
vertexother vertex

Definition at line 161 of file Vertex.h.

References utl::slist_remove().

◆ setObject()

void utl::Vertex::setObject ( const Object object)
inline

Set the associated object.

Definition at line 169 of file Vertex.h.

References utl::deInit(), and utl::init().


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