OMKKernelAttribute.h

Go to the documentation of this file.
00001 /*
00002  * This file is part of openMask © INRIA, CNRS, Universite de Rennes 1 1993-2002, thereinafter the Software
00003  * 
00004  * The Software has been developped within the Siames Project. 
00005  * INRIA, the University of Rennes 1 and CNRS jointly hold intellectual property rights
00006  * 
00007  * The Software has been registered with the Agence pour la Protection des
00008  * Programmes (APP) under registration number IDDN.FR.001.510008.00.S.P.2001.000.41200
00009  *
00010  * This file may be distributed under the terms of the Q Public License
00011  * version 1.0 as defined by Trolltech AS of Norway and appearing in the file
00012  * LICENSE.QPL included in the packaging of this file.
00013  *
00014  * Licensees holding valid specific licenses issued by INRIA, CNRS or Université de Rennes 1 
00015  * for the software may use this file in accordance with that specific license 
00016  *
00017  */
00018 #ifndef OMKKernelAttributeHEADER
00019 #define OMKKernelAttributeHEADER
00020 
00021 #include "OMKName.h"
00022 #include "OMKObjectHandle.h"
00023 #include "OMKSimulatedObject.h"
00024 
00025 namespace OMK
00026 {
00027   class Controller ;
00033 class OMK_API KernelAttribute : public Flowable
00034 {
00035 public:
00040    KernelAttribute( SimulatedObject & owner, const Name & attributeName ) ;
00041 
00042 
00045    virtual ~KernelAttribute() ;
00046    
00047 
00049    virtual const SimulatedObject & getOwner() const;
00050 
00051 
00053    virtual const Name & getName() const ;
00054 
00055 
00057    virtual void extract( std::istream & = std::cin ) = 0 ;
00058 
00059 
00061    virtual void insertInStream( std::ostream & = std::cout ) const = 0 ;
00062 
00063    
00067    virtual void printDebuggingInformation( std::ostream & err ) const = 0;
00068 
00069 protected:
00070    inline void touch() const 
00071    {
00072      ObjectHandle * handle = _owner.getObjectHandle() ;
00073      if( handle != 0 )
00074      { // handle could be null during contruction phase of the owner
00075        handle->attributeRead() ;
00076      }
00077    }
00078 
00081    SimulatedObject & _owner ; 
00082 
00083 
00085    const Name _name ;
00086 }; // OMKKernelAttribute
00087 
00088 } //namespace OMK
00089 //------------------------------------------------------------------------
00090 
00091 #endif

logo OpenMask

Documentation generated on Mon Jun 9 11:45:56 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007