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
00088 CallableEventSource() ;
00089
00090
00099 explicit CallableEventSource( EventListener & listener ) ;
00100
00101
00103 virtual ~CallableEventSource() throw() ;
00104
00105
00106
00163 virtual const Event & getEventFor(
00164 const CallerEventListener & listener ) = 0 ;
00165
00166
00167
00178 virtual const std::string toString(
00179 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00180
00181
00182
00183 private:
00184
00185
00193 CallableEventSource( const CallableEventSource & source ) ;
00194
00195
00203 CallableEventSource & operator = (
00204 const CallableEventSource & source ) ;
00205
00206
00207 } ;
00208
00209 }
00210
00211
00212
00213 #endif // CEYLAN_CALLABLE_EVENT_SOURCE_H_
00214