Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Tools/Module/ModuleHandler.h

Go to the documentation of this file.
00001 /**
00002 * @file ModuleHandler.h
00003 *
00004 * Declaration of class ModuleHandler
00005 *
00006 * @author Max Risler
00007 * @author Martin Lötzsch
00008 */
00009 
00010 #ifndef __ModuleHandler_h_
00011 #define __ModuleHandler_h_
00012 
00013 #include "ModuleSelector.h"
00014 
00015 /**
00016 * @class ModuleHandler
00017 * 
00018 * Manages runtime exhangeable modules.
00019 * 
00020 * @author Max Risler
00021 * @author Martin Lötzsch
00022 */
00023 class ModuleHandler : public MessageHandler
00024 {
00025 private: 
00026   /** Pointers to all module selectors */
00027   ModuleSelector *pModuleSelectors[SolutionRequest::numOfModules];
00028 
00029 public:
00030   /** Constructor */
00031   ModuleHandler();
00032   
00033   /**
00034   * Returns pointer to selector module.
00035   * @param id id of module.
00036   */
00037   ModuleSelector *pGetModuleSelector(SolutionRequest::ModuleID id) const;
00038   
00039   /**
00040   * Set pointer to selector module.
00041   * @param id id of module.
00042   * @param module a pointer to the module selector
00043   */
00044   void setModuleSelector(SolutionRequest::ModuleID id, 
00045     ModuleSelector* module);
00046   
00047   /** Returns the id of the selected solution for a module id */
00048   SolutionRequest::ModuleSolutionID getSelectedSolution(SolutionRequest::ModuleID id) const;
00049   
00050   /** Selects solution defined by solution in module id */
00051   void selectSolution(SolutionRequest::ModuleID id, SolutionRequest::ModuleSolutionID solution);
00052   
00053   /** Selects solutions as defined by a solution request */
00054   void selectSolutions(SolutionRequest request);
00055   
00056   /** 
00057   * Called from a MessageQueue to distribute messages.
00058   * Use message.getMessageID to decide if the message is relavant for 
00059   * the MesssageHandler derivate.
00060   * Use message.bin, message.text or message.config as In streams to get the data from.
00061   * @param message The message that can be read.
00062   * @return true if the message was read (handled).
00063   */
00064   virtual bool handleMessage(InMessage& message);
00065 };
00066 
00067 
00068 #endif //__ModuleHandler_h_
00069 
00070 /*
00071 * Change log :
00072 * 
00073 * $Log: ModuleHandler.h,v $
00074 * Revision 1.1.1.1  2004/05/22 17:37:19  cvsadm
00075 * created new repository GT2004_WM
00076 *
00077 * Revision 1.2  2004/01/21 14:31:58  loetzsch
00078 * Module Selectors create only the selected solution.
00079 * When the solution changes, the old solution is erased and the new
00080 * one ist created using createSolution(..)
00081 *
00082 * Revision 1.1  2003/10/07 10:13:24  cvsadm
00083 * Created GT2004 (M.J.)
00084 *
00085 * Revision 1.1.1.1  2003/07/02 09:40:29  cvsadm
00086 * created new repository for the competitions in Padova from the 
00087 * tamara CVS (Tuesday 2:00 pm)
00088 *
00089 * removed unused solutions
00090 *
00091 * Revision 1.4  2002/09/25 10:25:13  loetzsch
00092 * removed the "executeVisionModules" variable
00093 * from SolutionRequest and ModuleHandler.
00094 *
00095 * Revision 1.3  2002/09/10 21:07:30  loetzsch
00096 * continued change of module/solution mechanisms
00097 *
00098 * Revision 1.2  2002/09/10 17:53:26  loetzsch
00099 * First draft of new Module/Solution Architecture
00100 *
00101 * Revision 1.1  2002/09/10 15:53:59  cvsadm
00102 * Created new project GT2003 (M.L.)
00103 * - Cleaned up the /Src/DataTypes directory
00104 * - Removed challenge related source code
00105 * - Removed processing of incoming audio data
00106 * - Renamed AcousticMessage to SoundRequest
00107 *
00108 * Revision 1.2  2002/06/04 00:12:45  loetzsch
00109 * added bool executeVisionModules
00110 *
00111 * Revision 1.1.1.1  2002/05/10 12:40:32  cvsadm
00112 * Moved GT2002 Project from ute to tamara.
00113 *
00114 * Revision 1.9  2002/02/08 18:36:03  risler
00115 * removed destructor again
00116 *
00117 * Revision 1.8  2002/02/08 17:48:21  risler
00118 * destructor added
00119 *
00120 * Revision 1.7  2002/01/20 13:00:18  risler
00121 * changed implementation of selecting default solution
00122 *
00123 * Revision 1.6  2002/01/19 12:43:16  risler
00124 * enabled SolutionRequest, changed HandleDebugMessage calls
00125 *
00126 * Revision 1.5  2002/01/17 14:35:48  risler
00127 * SolutionRequest added
00128 *
00129 * Revision 1.4  2001/12/10 17:47:10  risler
00130 * change log added
00131 *
00132 */

Generated on Thu Sep 23 19:57:40 2004 for GT2004 by doxygen 1.3.6