00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef CEYLAN_CALLABLE_EVENT_SOURCE_H_
00028 #define CEYLAN_CALLABLE_EVENT_SOURCE_H_
00029
00030
00031 #include "CeylanEventSource.h"
00032
00033
00034 #include <string>
00035 #include <list>
00036
00037
00038 namespace Ceylan
00039 {
00040
00041
00042
00043
00044 class Event ;
00045
00046
00047
00048 class EventListener ;
00049
00050
00051
00052 class CallerEventListener ;
00053
00054
00055
00080 class CEYLAN_DLL CallableEventSource : public EventSource
00081 {
00082
00083
00084 public:
00085
00086
00087
00089 CallableEventSource() ;
00090
00091
00092
00101 explicit CallableEventSource( EventListener & listener ) ;
00102
00103
00104
00106 virtual ~CallableEventSource() throw() ;
00107
00108
00109
00166 virtual const Event & getEventFor(
00167 const CallerEventListener & listener ) = 0 ;
00168
00169
00170
00181 virtual const std::string toString(
00182 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00183
00184
00185
00186
00187 private:
00188
00189
00190
00198 CallableEventSource( const CallableEventSource & source ) ;
00199
00200
00201
00209 CallableEventSource & operator = (
00210 const CallableEventSource & source ) ;
00211
00212
00213 } ;
00214
00215 }
00216
00217
00218
00219 #endif // CEYLAN_CALLABLE_EVENT_SOURCE_H_
00220