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
Documentation generated on Mon Jun 9 11:45:56 2008 |
Generated with doxygen by Dimitri van Heesch , 1997-2007 |