digestdbviewevents.h

Go to the documentation of this file.
00001 /*  -*- c++ -*-  (for Emacs)
00002  *
00003  *  digestdbviewevents.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 DIGESTDBVIEWEVENTS_H
00026 #define DIGESTDBVIEWEVENTS_H
00027 
00028 
00029 #include "MvcCore/viewevents.h"
00030 #include "MvcCore/genericcontainers.h"
00031 
00032 #include "mvcdigestdb.h"
00033 #include "digestdbcontainers.h"
00034 
00035 
00059 class VDigestDbEvent : public VEvent {
00060 public:
00061   enum Type {
00062     ClassesAdded                  = VEvent::User,
00063     ClassesAboutToBeRemoved,    
00064     ClassesRemoved,             
00065     ClassesUpdated,
00066     CollectionsAdded,
00067     CollectionsAboutToBeRemoved,
00068     CollectionsRemoved,
00069     CollectionsUpdated,
00070     ExperimentsAdded,
00071     ExperimentsAboutToBeRemoved,
00072     ExperimentsRemoved,
00073     ExperimentsUpdated,
00074     GesturesAdded,
00075     GesturesAboutToBeRemoved,
00076     GesturesChangedClasses,
00077     GesturesChangedCollections,
00078     GesturesRemoved,
00079     GesturesUpdated,
00080     TrainedRecogsAdded,
00081     TrainedRecogsAboutToBeRemoved,
00082     TrainedRecogsRemoved,
00083     TrainedRecogsUpdated,
00084     User                        = VEvent::User + 1000
00085   };
00086 
00087   VDigestDbEvent( Type type, MvcBase* sender, QObject* originalSender )
00088     : VEvent((VEvent::Type)type, sender),
00089       m_originalSender(originalSender) {}
00090 
00092   inline static MvcModuleId_t classModuleId() { return MvcDigestDb::id(); }
00094   virtual MvcModuleId_t moduleId() const { return classModuleId(); }
00095 
00096   QObject* originalSender() const { return m_originalSender; }
00097 
00098 private:
00099   QObject* m_originalSender;
00100 };
00101 
00102 
00103 class VClassesEvent : public VDigestDbEvent, public IdSetContainer {
00104 public:
00105   VClassesEvent( Type type, const IdSet& idSet,
00106                  MvcBase* sender, QObject* originalSender )
00107     : VDigestDbEvent(type, sender, originalSender),
00108       IdSetContainer(idSet) {}
00109 };
00110 
00111 class VCollectionsEvent : public VDigestDbEvent, public IdSetContainer {
00112 public:
00113   VCollectionsEvent( Type type, const IdSet& idSet,
00114                      MvcBase* sender, QObject* originalSender )
00115     : VDigestDbEvent(type, sender, originalSender),
00116       IdSetContainer(idSet) {}
00117 };
00118 
00119 class VExperimentsEvent : public VDigestDbEvent, public IdSetContainer {
00120 public:
00121   VExperimentsEvent( Type type, const IdSet& idSet,
00122                      MvcBase* sender, QObject* originalSender )
00123     : VDigestDbEvent(type, sender, originalSender),
00124       IdSetContainer(idSet) {}
00125 };
00126 
00127 class VGesturesEvent : public VDigestDbEvent, public IdSetContainer {
00128 public:
00129   VGesturesEvent( Type type, const IdSet& idSet,
00130                   MvcBase* sender, QObject* originalSender )
00131     : VDigestDbEvent(type, sender, originalSender),
00132       IdSetContainer(idSet) {}
00133 };
00134 
00136 class VGesturesChangedClassesEvent : public VGesturesEvent,
00137                                      public AddSetContainer<int>,
00138                                      public RemoveSetContainer<int> {
00139 public:
00140   VGesturesChangedClassesEvent( const IdSet& idSet,
00141                                 const IdSet& addSet,
00142                                 const IdSet& removeSet,
00143                                 MvcBase* sender, QObject* originalSender )
00144     : VGesturesEvent(GesturesChangedClasses, idSet, sender, originalSender),
00145       AddSetContainer<int>(addSet),
00146       RemoveSetContainer<int>(removeSet) {}
00147 };
00148 
00150 class VGesturesChangedCollectionsEvent : public VGesturesEvent,
00151                                          public AddSetContainer<int>,
00152                                          public RemoveSetContainer<int> {
00153 public:
00154   VGesturesChangedCollectionsEvent( const IdSet& idSet,
00155                                     const IdSet& addSet,
00156                                     const IdSet& removeSet,
00157                                     MvcBase* sender, QObject* originalSender )
00158     : VGesturesEvent(GesturesChangedCollections, idSet, sender, originalSender),
00159       AddSetContainer<int>(addSet),
00160       RemoveSetContainer<int>(removeSet) {}
00161 };
00162 
00163 class VTrainedRecogsEvent : public VDigestDbEvent, public IdSetContainer {
00164 public:
00165   VTrainedRecogsEvent( Type type, const IdSet& idSet,
00166                        MvcBase* sender, QObject* originalSender )
00167     : VDigestDbEvent(type, sender, originalSender),
00168       IdSetContainer(idSet) {}
00169 };
00170 
00171 
00172 #endif //  ! DIGESTDBVIEWEVENTS_H

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