Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

/home/pauldt/projects/IDEA/IDEA-ALL/IDEA-DEV/Core/Simulator/Includes/SimResponse.hh

Go to the documentation of this file.
00001 // -*- Mode: c++ -*-
00002 //     File: $Source: /home/cvs/ISG-Repository/IDEA-DEV/Core/Simulator/Includes/SimResponse.hh,v $
00003 //      Tag: $Name: DR_01_11_06 $
00004 //      CVS: $Id: SimResponse.hh,v 1.1 2005/06/21 16:08:22 rijsman Exp $
00005 //     Info: $CVSROOT/Idea3/Copyright.txt
00006 #ifndef SIMULATOR_RESPONSE_HEADER
00007 #define SIMULATOR_RESPONSE_HEADER
00008 
00009 #include <map>
00010 
00011 #include "MessageHandle.hh"
00012 
00013 namespace IDEA
00014 {
00015   //-------------------------------------------------------------------------------------------------
00016 
00022   class ResponseBase
00023   {
00024   public:
00028     ResponseBase( const Time& delay ):m_Delay( delay ) {};
00029 
00034     const Time& getDelay() const { return m_Delay; }
00035 
00036     virtual ~ResponseBase() {};
00037 
00038     virtual MessageHandle createResponseMessage( const Time& received, const MessageData* data, Message::Type type ) = 0;
00039   private:
00040     Time m_Delay;
00041   };
00042 
00043   //-------------------------------------------------------------------------------------------------
00049   class NoResponse:
00050     public ResponseBase
00051   {
00052   public:
00053     NoResponse():
00054       ResponseBase( Time(0,0) )
00055     {
00056     }
00057 
00058     MessageHandle createResponseMessage( const Time& received, const MessageData* data, Message::Type type ) 
00059     { 
00060       return MessageHandle( 0 ); 
00061     }
00062   };
00063 
00064   //-------------------------------------------------------------------------------------------------
00065 
00071   class StatusStartResponse:
00072     public ResponseBase
00073   {
00074   public:
00075 
00079     StatusStartResponse( const Time& time, const std::string& value );
00080 
00081     virtual ~StatusStartResponse() {}
00085     const std::string& getValue() const;
00089     MessageHandle createResponseMessage( const Time& received, const MessageData* data, Message::Type type );
00090   private:
00091     std::string m_Value;
00092   };
00093 
00094   //-------------------------------------------------------------------------------------------------
00095 
00104   class ValueStartResponse:
00105     public StatusStartResponse
00106   {
00107   public:
00108 
00112     ValueStartResponse( const Time& time, const std::string& value, int index );
00113 
00114     virtual ~ValueStartResponse() {}
00119     int getIndex() const;
00123     MessageHandle createResponseMessage( const Time& received, const MessageData* data, Message::Type type );
00124   private:
00125     int m_Index;
00126   };
00127 
00128     
00133   typedef std::list< ResponseBase* > ResponseBaseList;
00134 
00135   //std::ostream& operator<< ( std::ostream& os, const ResponseBaseList& rl );
00136 }
00137 
00138 #endif //SIMULATOR_RESPONSE_HEADER

Contact information
© IDEA
Generated on Fri Feb 3 17:09:41 2006 for IDEA.