digestdbmodelevents.h

Go to the documentation of this file.
00001 /*  -*- c++ -*-  (for Emacs)
00002  *
00003  *  digestdbmodelevents.h
00004  *  Digest
00005  * 
00006  *  Created by Aidan Lane on Fri Aug 12 2005.
00007  *  Copyright (c) 2005-2006 Optimisation and Constraint Solving Group,
00008  *  Monash University. All rights reserved.
00009  *
00010  *  This program is free software; you can redistribute it and/or modify
00011  *  it under the terms of the GNU General Public License as published by
00012  *  the Free Software Foundation; either version 2 of the License, or
00013  *  (at your option) any later version.
00014  *
00015  *  This program is distributed in the hope that it will be useful,
00016  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018  *  GNU General Public License for more details.
00019  *
00020  *  You should have received a copy of the GNU General Public License
00021  *  along with this program; if not, write to the Free Software
00022  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
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

Generated on Mon Jul 30 09:46:50 2007 for Digest by  doxygen 1.5.2