OMKInteractiveExtension.h

Go to the documentation of this file.
00001 
00002 /************************************************************************/
00003 /* This file is part of openMask(c) INRIA, CNRS, Universite de Rennes 1 */
00004 /* 1993-2002, thereinafter the Software                                 */
00005 /*                                                                      */
00006 /* The Software has been developped within the Siames Project.          */
00007 /* INRIA, the University of Rennes 1 and CNRS jointly hold intellectual */
00008 /* property rights                                                      */
00009 /*                                                                      */
00010 /* The Software has been registered with the Agence pour la Protection  */
00011 /* des Programmes (APP) under registration number                       */
00012 /* IDDN.FR.001.510008.00.S.P.2001.000.41200                             */
00013 /*                                                                      */
00014 /* This file may be distributed under the terms of the Q Public License */
00015 /* version 1.0 as defined by Trolltech AS of Norway and appearing in    */
00016 /* the file LICENSE.QPL included in the packaging of this file.         */
00017 /*                                                                      */
00018 /* Licensees holding valid specific licenses issued by INRIA, CNRS or   */
00019 /* Universite Rennes 1 for the software may use this file in            */
00020 /* acordance with that specific license                                 */
00021 /************************************************************************/
00022                 
00023 #if !defined OMK_III_INTERACTIVEEXTENSION_H
00024 #define OMK_III_INTERACTIVEEXTENSION_H
00025 
00026 #include "OMKExtension.h"
00027 #include "OMKExtensibleSimulatedObject.h"
00028 #include "OMKConnectors.h"
00029 #include "OMKIAccessor.h"
00030 #include "OMKInteractiveEventId.h"
00031 
00032 namespace OMK  
00033 {
00034   namespace Iii 
00035   {
00036 
00104 class OMKIII_API InteractiveExtension
00105 : public ExtensionT< ExtensibleSimulatedObject >
00106 {
00107 public:
00110   DECLARE_EXTENSION_FACTORY( InteractiveExtension ) ;
00111 
00112 protected:
00115 
00116 
00117   virtual bool loadExtensionParameters( const ConfigurationParameterDescriptor * node ) ;
00119 
00121 
00122 
00123   virtual void preComputeParameters() ;
00125   virtual void postComputeParameters() ;
00127 
00128 protected:
00129   EventListener * _getAccessibleParametersListener ;
00130   EventListener * _controlTakeOverAndGetCurrentValuesListener ;
00131   EventListener * _controlReleaseListener ;
00132   EventListener * _controlFreezeListener ;
00133   EventListener * _controlUnfreezeListener ;
00134   EventListener * _getCurrentValuesListener ;
00135   EventListener * _newValueAvailableListener ;
00149   virtual bool processGetAccessibleParameters( Type::GetAccessibleParametersEvent *event ) ;
00155   virtual bool processGetCurrentValues( Type::GetCurrentValuesEvent *event ) ;
00167   virtual bool processControlTakeOverAndGetCurrentValues( Type::TakeOverAndGetCurrentValuesEvent *event ) ;
00178   virtual bool processControlRelease( Event *event ) ;
00190   virtual bool processControlFreeze( Type::ControlFreezeEvent *event ) ;
00196   virtual bool processControlUnfreeze( Event *event ) ;
00202   virtual bool processNewValueAvailable( Type::NewValueAvailableEvent *event ) ;
00204 public:
00207   void addConnector( IConnector* connector, bool postComputing ) ;
00212   IConnector* getConnector( const Name& id ) ;
00213 
00214 protected:
00215   typedef std::map< const Name, IConnector* > ConnectorsMap ;
00217   ConnectorsMap _connectors ;
00218   ConnectorsMap _preConnectors ;
00219   ConnectorsMap _postConnectors ;
00220   IAccessRule* _defaultAccessRule ;
00221 } ;
00222 
00223   }// namespace Iii
00224 }// namespace OMK
00225 
00226 #endif // defined OMK_III_INTERACTIVEEXTENSION_H

logo OpenMask

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

Generated with doxygen by Dimitri van Heesch ,   1997-2007