OMK::OutputAlias< T > Class Template Reference

#include <OMKOutputAlias.h>

Inheritance diagram for OMK::OutputAlias< T >:

Inheritance graph
[legend]
Collaboration diagram for OMK::OutputAlias< T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 OutputAlias (const Name &name, SimulatedObject &owner, Output< T > *outputAliased, int historyLength, OMK::Type::PolatorNT *polator=NULL)
 constructor
virtual ~OutputAlias ()
 Destructor.
virtual void unsetAlias ()
 redefine so that changes propagate to the aliased output
virtual void setUsedOutput (Output< T > *output)
 redefine so that changes propagate to the aliased output
virtual void unalias ()
 unalias : break the alias link between this output and the output aliased
virtual void aliasedOutputDeleted ()
 call when the aliased output is deleted
virtual void alias (Output< T > *aliasedOutput)
 alias change the alias of this outputAlias

Protected Attributes

Output< T > * _aliasedOutput
 the output aliased

Detailed Description

template<typename T>
class OMK::OutputAlias< T >

Definition at line 37 of file OMKOutputAlias.h.


Constructor & Destructor Documentation

template<typename T>
OMK::OutputAlias< T >::OutputAlias ( const Name name,
SimulatedObject owner,
Output< T > *  outputAliased,
int  historyLength,
OMK::Type::PolatorNT polator = NULL 
) [inline]

constructor

Definition at line 81 of file OMKOutputAlias.h.

References OMASSERT, OMK::Output< T >::setAlias(), and OMK::Output< T >::setUsedOutput().

00086   : KernelAttribute( owner, aliasName ),
00087     Output< T >( aliasName, owner, historyLength, polator ),
00088     _aliasedOutput( aliasedOutput )
00089 {
00090 
00091    OMASSERT( aliasedOutput != 0 ) ;
00092    aliasedOutput->setAlias( this ) ;
00093    aliasedOutput->setUsedOutput( this ) ;
00094 }

template<class T>
OMK::OutputAlias< T >::~OutputAlias (  )  [inline, virtual]

Destructor.

Definition at line 99 of file OMKOutputAlias.h.

References OMK::OutputAlias< T >::unalias().

00100 {
00101   unalias() ;
00102 }


Member Function Documentation

template<typename T>
void OMK::OutputAlias< T >::unsetAlias (  )  [inline, virtual]

redefine so that changes propagate to the aliased output

Reimplemented from OMK::Output< T >.

Definition at line 132 of file OMKOutputAlias.h.

00133 {
00134   Output< T >::unsetAlias() ;
00135 }

template<class T>
void OMK::OutputAlias< T >::setUsedOutput ( Output< T > *  output  )  [virtual]

redefine so that changes propagate to the aliased output

Reimplemented from OMK::Output< T >.

Definition at line 107 of file OMKOutputAlias.h.

References OMK::OutputAlias< T >::_aliasedOutput.

Referenced by OMK::OutputAlias< T >::unalias().

00108 {
00109   Output< T >::setUsedOutput( output ) ; 
00110   if( _aliasedOutput != 0 )
00111   {
00112     _aliasedOutput->setUsedOutput( output ) ;
00113   }
00114 }

template<typename T>
void OMK::OutputAlias< T >::unalias (  )  [inline, virtual]

unalias : break the alias link between this output and the output aliased

Definition at line 119 of file OMKOutputAlias.h.

References OMK::OutputAlias< T >::_aliasedOutput, and OMK::OutputAlias< T >::setUsedOutput().

Referenced by OMK::OutputAlias< T >::alias(), and OMK::OutputAlias< T >::~OutputAlias().

00120 {
00121   if( _aliasedOutput != 0 )
00122   {
00123     _aliasedOutput->unsetAlias() ;
00124     setUsedOutput( this ) ;
00125     _aliasedOutput = 0 ;
00126   }
00127 }

template<typename T>
void OMK::OutputAlias< T >::aliasedOutputDeleted (  )  [inline, virtual]

call when the aliased output is deleted

Definition at line 155 of file OMKOutputAlias.h.

References OMK::OutputAlias< T >::_aliasedOutput.

00156 {
00157   _aliasedOutput = 0 ;
00158 }

template<typename T>
void OMK::OutputAlias< T >::alias ( Output< T > *  aliasedOutput  )  [inline, virtual]

alias change the alias of this outputAlias

Definition at line 140 of file OMKOutputAlias.h.

References OMK::OutputAlias< T >::_aliasedOutput, OMASSERT, OMK::Output< T >::setAlias(), OMK::Output< T >::setUsedOutput(), and OMK::OutputAlias< T >::unalias().

00141 {
00142    OMASSERT( aliasedOutput != 0 ) ;
00143    if( _aliasedOutput != 0 )
00144    {
00145      unalias() ;
00146      _aliasedOutput = aliasedOutput ;
00147    }
00148    aliasedOutput->setAlias( this ) ;
00149    aliasedOutput->setUsedOutput( this ) ;
00150 }


Member Data Documentation

template<typename T>
Output< T >* OMK::OutputAlias< T >::_aliasedOutput [protected]

the output aliased

Definition at line 71 of file OMKOutputAlias.h.

Referenced by OMK::OutputAlias< T >::alias(), OMK::OutputAlias< T >::aliasedOutputDeleted(), OMK::OutputAlias< T >::setUsedOutput(), and OMK::OutputAlias< T >::unalias().


logo OpenMask

Documentation generated on Mon Jun 9 11:46:02 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007