Main Page   Class Hierarchy   Compound List   File List   Compound Members  

LinkNode Class Reference

An object linked bi-directionally to other objects, inheritable. More...

#include <mlinknode.h>

Inheritance diagram for LinkNode::

IndirLinkNode SuspendLinkNodeNotify List of all members.

Public Methods

 LinkNode (IndVect sizeData=0)
virtual ~LinkNode ()
StsLnNB connect (LinkNode const &other)
StsLnNB connect (LinkNode const *other)
StsLnNd reserve (LinkNode const &other)
StsLnNd reserve (LinkNode const *other)
StsLnNd release (IndLnNd iOther)
StsLnNd release (LinkNode const &other)
StsLnNd release (LinkNode const *other)
StsLnNd disconnect (LinkNode const &other, IndLnNd iOther)
StsLnNd disconnect (LinkNode const &other)
StsLnNd disconnect (LinkNode const *other)
void disconnectAll ()
void releaseAll ()
Bool isConnected (IndLnNd iOther) const
Bool isConnected (LinkNode const &other) const
Bool isConnected (ClassName clsName) const
Bool isReservedBy (IndLnNd iOther) const
Bool isReservedBy (LinkNode const &other) const
Bool isConnected () const
Bool isReserved () const
Bool hasReserved () const
void addProtect ()
void removeProtect ()
NodeLink const* iterConnection (LinkNodeIndex &i) const
NodeLink const* iterChanged (IndLnNd &i) const
NodeLink const* iterConnected (IndLnNd &i) const
NodeLink const* iterReserved (IndLnNd &i) const
NodeLink const* iterReserver (IndLnNd &i) const
NodeLink const* findConnection (LinkNode const &item) const
void const* findConnected (ClassName clsName) const
void const* iterConnected (IndLnNd &i, ClassName clsName) const
NodeLinkArray const& connections () const
NodeLinkType gChgCnncn () const
unsigned int gProtected () const
NodeLink const* gLastChanged () const
virtual CPtr getHost (ClassName className) const

Public Attributes

Bool mNotifyConnection

Protected Methods

StsLnNd removeProtect (StsLnNd ret)
StsLnNB removeProtect (StsLnNB ret)

Detailed Description

An object linked bi-directionally to other objects, inheritable.

Definition at line 28 of file mlinknode.h.


Member Function Documentation

void addProtect ( ) [inline]
 

Sets the node as protected (actually increments a protection counter).

When the node is protected, no notifications are sent to it.

Definition at line 107 of file mlinknode.h.

StsLnNB connect ( LinkNode const & other )
 

Creates a bi-directional connection between this and the other node.

StsLnNd disconnect ( LinkNode const & other,
IndLnNd iOther )
 

Disconnects the connection in both directions.

void disconnectAll ( )
 

Disconnects all connections.

Referenced by SuspendLinkNodeNotify::releaseAll().

NodeLink const * findConnection ( LinkNode const & item ) const [inline]
 

Finds and returns the NodeLink object connecting this node to the other given node.

Definition at line 124 of file mlinknode.h.

CPtr getHost ( ClassName clsName ) const [inline, virtual]
 

Returns the owner object for the node, in case the node is owned as an attribute, not inherited.

If it is inherited, returns pointer to itself.

Reimplemented in IndirLinkNode.

Definition at line 138 of file mlinknode.h.

Bool isConnected ( ClassName clsName ) const
 

Is the node connected to any LinkNode belonging to the given class?

Bool isConnected ( IndLnNd iOther ) const [inline]
 

Is the node connected to any other LinkNode.

Definition at line 92 of file mlinknode.h.

NodeLink const * iterConnection ( LinkNodeIndex & i ) const [inline]
 

Connection iteration.

Returns NULL when the value is over...

Definition at line 115 of file mlinknode.h.

StsLnNd release ( IndLnNd iOther )
 

Releases a reservation, but does not disconnect the other object.

void releaseAll ( )
 

Releases all connections, but does not disconnect them.

Reimplemented in SuspendLinkNodeNotify.

void removeProtect ( )
 

Removes protection from the node (decrements a protection counter).

StsLnNd reserve ( LinkNode const & other )
 

Creates a connection that reserves the other object.

Reservation implies an ownership relation (reserver owns the reservee).


The documentation for this class was generated from the following file:
Generated at Tue Dec 4 19:53:30 2001 for MagiC++ by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001