AlNotifyDagNode
 
 
 

Encapsulates the handling of DAG node notifications.

Synopsis

#include <AlNotifyDagNode.h>
class AlNotifyDagNode
virtual statusCode notify( AlDagNode * ) const;

Description

This class provides a means for an application function to notify Alias of a list of possible DAG nodes that will be affected if an object is modified.

This class is passed to the application function along with an AlObject. For each DAG node that is affected if the AlObject is modifed, the application should call AlNotifyDagNode::notify.

This is a restricted version of an iterator which can only be applied to AlDagNodes.

statusCode AlNotifyDagNode::notify( AlDagNode *dag ) const

Description

Used by the AlMessage class and the AlCommand class in conjunction with the ’kMessagePickListModified’ message type in the AlMessage class. The AlPickListModified message handler is passed two arguments: an AlListModified handle and an AlObject.

statusCode AlPickListModHandler( const AlListModified *dagMod, AlObject *obj )      

For the given object, the handler should call dagMod->notify for every DAG node which would be modified if the object were modified (there could be more than one). The handler routine for a kMessagePickListModified message handler will resemble the following code segment:

void myPickHandler( AlMessageType msgType, const AlNotifyDagNode *dagMod, AlObject *obj ) {          for every dagnode ’adag’ that would be affected if ’obj’ were modified          {              dagMod->notify( adag );          } }

For a construction history command, the listModifiedDagNodes routine will be similar in form:

     void myUserCmd::listModifiedDagNodes( const AlNotifyDagNode *dagMod, AlObject *obj )      {          for every dagnode ’adag’ that would be affected if ’obj’ were modified          {              dagMod->notify( adag );          }      }

Arguments

< dag - the dagnode which will be affected

Return Codes

sSuccess - modification notification was accepted

sFailure - the notification was rejected

sInvalidArgument - DAG was NULL or DAG was not a DAG node