00001
#if !defined(__LISTMEDIATOR_HPP)
00002
#define __LISTMEDIATOR_HPP
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#if !defined(__COMMON_HPP)
00025
#include <corelinux/Common.hpp>
00026
#endif
00027
00028
#if !defined(__COLLEAGUE_HPP)
00029
#include <corelinux/Colleague.hpp>
00030
#endif
00031
00032
#if !defined(__MEDIATOR_HPP)
00033
#include <corelinux/Mediator.hpp>
00034
#endif
00035
00036
#if !defined(__MAP_HPP)
00037
#include <corelinux/Map.hpp>
00038
#endif
00039
00040
#if !defined(__SET_HPP)
00041
#include <corelinux/Set.hpp>
00042
#endif
00043
00044 DECLARE_CLASS(
ListColleague );
00045
00046
00047 DECLARE_CLASS(
EditColleague );
00048
00049
00050 DECLARE_CLASS(
SelectColleague );
00051
00052
00053 DECLARE_CLASS(
ListMediator );
00054
00059 class ListMediator :
public CORELINUX( Mediator )
00060 {
00061 CORELINUX_MAP
00062 (
00063 DwordIdentifier,
00064 CORELINUX(ColleaguePtr),
00065 less<DwordIdentifier>,
00066 InterestedMap
00067 );
00068
00069
public:
00070
00071
00072
00073
00074
00076
00077
ListMediator(
void );
00078
00080
00081
virtual ~ListMediator(
void );
00082
00083
00084
00085
00086
00088
00089
void run(
void );
00090
00091
protected:
00092
00094
00095
ListMediator(
ListMediatorCref )
00096
throw ( CORELINUX( Assertion ) );
00097
00099
00100
ListMediatorRef operator=(
ListMediatorCref )
00101
throw ( CORELINUX( Assertion ) );
00102
00104
00105
bool operator==(
ListMediatorCref )
const
00106
throw ( CORELINUX( Assertion ) );
00107
00108
00109
00110
00112
00113
virtual void colleagueCreated( CORELINUX(ColleaguePtr) ) ;
00114
00116
00117
virtual CORELINUX(Iterator<corelinux::ColleaguePtr>) *
createIterator
00118 (
00119 CORELINUX(Event<corelinux::Identifier>) *
00120 ) ;
00121
00123
00124
virtual void destroyIterator( CORELINUX(Iterator<corelinux::ColleaguePtr>) * ) ;
00125
00126
00127
private:
00128
00129
ListColleaguePtr theList;
00130
EditColleaguePtr theEditor;
00131
SelectColleaguePtr theSelection;
00132
00134
00135 InterestedMap theInterestedMap;
00136
00137 };
00138
00139
#endif // if !defined(__LISTMEDIATOR_HPP)
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149