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 #ifndef DIGESTDBMODELEVENTS_H
00026 #define DIGESTDBMODELEVENTS_H
00027
00028
00029 #include "MvcCore/modelevents.h"
00030 #include "MvcCore/genericcontainers.h"
00031
00032 #include "mvcdigestdb.h"
00033 #include "digestdbcontainers.h"
00034
00035
00036 class MDigestDbEvent : public MEvent {
00037 public:
00038 enum Type {
00039 ClassAdd = MEvent::User,
00040 ClassUpdate,
00041 ClassesRemove,
00042 CollectionAdd,
00043 CollectionUpdate,
00044 CollectionsRemove,
00045 ExperimentAdd,
00046 ExperimentUpdate,
00047 ExperimentsRemove,
00048 GestureAdd,
00049 GestureUpdate,
00050 GesturesChangeClasses,
00051 GesturesChangeCollections,
00052 GesturesRemove,
00053 TrainedRecogAdd,
00054 TrainedRecogUpdate,
00055 TrainedRecogsRemove,
00056 User = MEvent::User + 1000
00057 };
00058
00059 MDigestDbEvent( Type type )
00060 : MEvent((MEvent::Type)type) {}
00061
00063 inline static MvcModuleId_t classModuleId() { return MvcDigestDb::id(); }
00065 virtual MvcModuleId_t moduleId() const { return classModuleId(); }
00066 };
00067
00068
00069 class MClassAddEvent : public MDigestDbEvent,
00070 public DClassRecordContainer {
00071 public:
00072 MClassAddEvent( const DClassRecord& record )
00073 : MDigestDbEvent(ClassAdd),
00074 DClassRecordContainer(record) {}
00075 };
00076
00077 class MClassUpdateEvent : public MDigestDbEvent,
00078 public DClassRecordContainer {
00079 public:
00080 MClassUpdateEvent( const DClassRecord& record )
00081 : MDigestDbEvent(ClassUpdate),
00082 DClassRecordContainer(record) {}
00083 };
00084
00085 class MClassesRemoveEvent : public MDigestDbEvent,
00086 public IdSetContainer {
00087 public:
00088 MClassesRemoveEvent( const IdSet& idSet )
00089 : MDigestDbEvent(ClassesRemove),
00090 IdSetContainer(idSet) {}
00091 };
00092
00093
00094 class MCollectionAddEvent : public MDigestDbEvent,
00095 public DCollectionRecordContainer {
00096 public:
00097 MCollectionAddEvent( const DCollectionRecord& record )
00098 : MDigestDbEvent(CollectionAdd),
00099 DCollectionRecordContainer(record) {}
00100 };
00101
00102 class MCollectionUpdateEvent : public MDigestDbEvent,
00103 public DCollectionRecordContainer {
00104 public:
00105 MCollectionUpdateEvent( const DCollectionRecord& record )
00106 : MDigestDbEvent(CollectionUpdate),
00107 DCollectionRecordContainer(record) {}
00108 };
00109
00110 class MCollectionsRemoveEvent : public MDigestDbEvent,
00111 public IdSetContainer {
00112 public:
00113 MCollectionsRemoveEvent( const IdSet& idSet )
00114 : MDigestDbEvent(CollectionsRemove),
00115 IdSetContainer(idSet) {}
00116 };
00117
00118
00119 class MExperimentAddEvent : public MDigestDbEvent,
00120 public DExperimentRecordContainer {
00121 public:
00122 MExperimentAddEvent( const DExperimentRecord& record )
00123 : MDigestDbEvent(ExperimentAdd),
00124 DExperimentRecordContainer(record) {}
00125 };
00126
00127 class MExperimentUpdateEvent : public MDigestDbEvent,
00128 public DExperimentRecordContainer {
00129 public:
00130 MExperimentUpdateEvent( const DExperimentRecord& record )
00131 : MDigestDbEvent(ExperimentUpdate),
00132 DExperimentRecordContainer(record) {}
00133 };
00134
00135 class MExperimentsRemoveEvent : public MDigestDbEvent,
00136 public IdSetContainer {
00137 public:
00138 MExperimentsRemoveEvent( const IdSet& idSet )
00139 : MDigestDbEvent(ExperimentsRemove),
00140 IdSetContainer(idSet) {}
00141 };
00142
00143
00144 class MGestureAddEvent : public MDigestDbEvent,
00145 public DGestureRecordContainer {
00146 public:
00147 MGestureAddEvent( const DGestureRecord& record )
00148 : MDigestDbEvent(GestureAdd),
00149 DGestureRecordContainer(record) {}
00150 };
00151
00152 class MGestureUpdateEvent : public MDigestDbEvent,
00153 public DGestureRecordContainer {
00154 public:
00155 MGestureUpdateEvent( const DGestureRecord& record )
00156 : MDigestDbEvent(GestureUpdate),
00157 DGestureRecordContainer(record) {}
00158 };
00159
00161 class MGesturesChangeClassesEvent : public MDigestDbEvent,
00162 public IdSetContainer,
00163 public AddSetContainer<int>,
00164 public RemoveSetContainer<int> {
00165 public:
00166 MGesturesChangeClassesEvent( const IdSet& idSet,
00167 const IdSet& addSet,
00168 const IdSet& removeSet )
00169 : MDigestDbEvent(GesturesChangeClasses),
00170 IdSetContainer(idSet),
00171 AddSetContainer<int>(addSet),
00172 RemoveSetContainer<int>(removeSet) {}
00173 };
00174
00176 class MGesturesChangeCollectionsEvent : public MDigestDbEvent,
00177 public IdSetContainer,
00178 public AddSetContainer<int>,
00179 public RemoveSetContainer<int> {
00180 public:
00181 MGesturesChangeCollectionsEvent( const IdSet& idSet,
00182 const IdSet& addSet,
00183 const IdSet& removeSet)
00184 : MDigestDbEvent(GesturesChangeCollections),
00185 IdSetContainer(idSet),
00186 AddSetContainer<int>(addSet),
00187 RemoveSetContainer<int>(removeSet) {}
00188 };
00189
00190 class MGesturesRemoveEvent : public MDigestDbEvent,
00191 public IdSetContainer {
00192 public:
00193 MGesturesRemoveEvent( const IdSet& idSet )
00194 : MDigestDbEvent(GesturesRemove),
00195 IdSetContainer(idSet) {}
00196 };
00197
00198
00199 class MTrainedRecogAddEvent : public MDigestDbEvent,
00200 public DTrainedRecogRecordContainer {
00201 public:
00202 MTrainedRecogAddEvent( const DTrainedRecogRecord& record )
00203 : MDigestDbEvent(TrainedRecogAdd),
00204 DTrainedRecogRecordContainer(record) {}
00205 };
00206
00207 class MTrainedRecogUpdateEvent : public MDigestDbEvent,
00208 public DTrainedRecogRecordContainer {
00209 public:
00210 MTrainedRecogUpdateEvent( const DTrainedRecogRecord& record )
00211 : MDigestDbEvent(TrainedRecogUpdate),
00212 DTrainedRecogRecordContainer(record) {}
00213 };
00214
00215 class MTrainedRecogsRemoveEvent : public MDigestDbEvent,
00216 public IdSetContainer {
00217 public:
00218 MTrainedRecogsRemoveEvent( const IdSet& idSet )
00219 : MDigestDbEvent(TrainedRecogsRemove),
00220 IdSetContainer(idSet) {}
00221 };
00222
00223
00224 #endif // ! DIGESTDBMODELEVENTS_H