SimReq.H

Go to the documentation of this file.
00001 /*!@file Simulation/SimReq.H A Request to be handled during simulation */
00002 
00003 // //////////////////////////////////////////////////////////////////// //
00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005   //
00005 // by the University of Southern California (USC) and the iLab at USC.  //
00006 // See http://iLab.usc.edu for information about this project.          //
00007 // //////////////////////////////////////////////////////////////////// //
00008 // Major portions of the iLab Neuromorphic Vision Toolkit are protected //
00009 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency //
00010 // in Visual Environments, and Applications'' by Christof Koch and      //
00011 // Laurent Itti, California Institute of Technology, 2001 (patent       //
00012 // pending; application number 09/912,225 filed July 23, 2001; see      //
00013 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status).     //
00014 // //////////////////////////////////////////////////////////////////// //
00015 // This file is part of the iLab Neuromorphic Vision C++ Toolkit.       //
00016 //                                                                      //
00017 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can   //
00018 // redistribute it and/or modify it under the terms of the GNU General  //
00019 // Public License as published by the Free Software Foundation; either  //
00020 // version 2 of the License, or (at your option) any later version.     //
00021 //                                                                      //
00022 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope  //
00023 // that it will be useful, but WITHOUT ANY WARRANTY; without even the   //
00024 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      //
00025 // PURPOSE.  See the GNU General Public License for more details.       //
00026 //                                                                      //
00027 // You should have received a copy of the GNU General Public License    //
00028 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write   //
00029 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,   //
00030 // Boston, MA 02111-1307 USA.                                           //
00031 // //////////////////////////////////////////////////////////////////// //
00032 //
00033 // Primary maintainer for this file:
00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Simulation/SimReq.H $
00035 // $Id: SimReq.H 13103 2010-03-31 02:24:47Z itti $
00036 //
00037 
00038 #ifndef SIMULATION_SIMREQ_H_DEFINED
00039 #define SIMULATION_SIMREQ_H_DEFINED
00040 
00041 #include "Simulation/SimModule.H"
00042 #include <string>
00043 
00044 //! Base class for requests that arise in simulation
00045 /*! SimReq is similar to SimEvent but differs in two critical manners:
00046     (1) SimReq objects never get posted onto theSimEventQueue
00047     (blackboard). So they are private data exchanged between
00048     SimModules without becoming publicly available on the blackboard
00049     like SimEvent objects. (2) SimReq objects are typically used
00050     read/write as opposed to being read-only like SimEvents. */
00051 class SimReq {
00052 public:
00053   //! Constuctor
00054   /*! Normally a SimModule would pass "this" as src. */
00055   SimReq(SimModule* src);
00056 
00057   //! Destructor
00058   virtual ~SimReq();
00059 
00060   //! Get a description for printing out
00061   /*! The base class implementation only returns the demangled name of
00062     the class. Overload as necessary in derived classes if you want to
00063     also return additional information. */
00064   virtual std::string toString() const;
00065 
00066 private:
00067   friend class SimEventQueue; // allow SimEventQueue to access our private data
00068 
00069   SimModule* const itsSource; // source of the event (a brain module)
00070 };
00071 
00072 // ######################################################################
00073 /* So things look consistent in everyone's emacs... */
00074 /* Local Variables: */
00075 /* mode: c++ */
00076 /* indent-tabs-mode: nil */
00077 /* End: */
00078 
00079 #endif // SIMULATION_SIMREQ_H_DEFINED
Generated on Sun May 8 08:06:50 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3