VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtObserverObjectManager.h
Go to the documentation of this file.
00001 /****************************************************************************** 
00002 ** Copyright (c) 2008 MAK Technologies, Inc. 
00003 ** All rights reserved. 
00004 ******************************************************************************/ 
00005 /****************************************************************************** 
00006 ** $RCSfile: DtObserverObjectManager.h,v $ $Revision: 1.10 $ $State: Exp $ 
00007 ******************************************************************************/ 
00008  
00012  
00013 #ifndef DtObserverObjectManager_H_ 
00014 #define DtObserverObjectManager_H_ 
00015 
00016 #include <boost/signals.hpp> 
00017 #include <vrvCore/vrvCore.h> 
00018 #include <map>
00019 #include <vector>
00020 
00021 namespace makVrv 
00022 { 
00023    class DtDe;
00024    class DtObserverObject;
00025    class DtRenderer;
00026 
00029    class DT_DLL_VRVCORE DtObserverObjectManager
00030    { 
00031    public:
00032 
00033       typedef std::vector<DtObserverObject*> ObserverObjectsList;
00034 
00036       DtObserverObjectManager(DtDe& de);
00037 
00039       virtual ~DtObserverObjectManager();
00040 
00042       virtual void update( double simTime );
00043 
00045       virtual void addObject( DtObserverObject* observer,
00046          const std::string& name );
00047       
00049       virtual void removeObject( DtObserverObject* observer );
00050       
00053       virtual void removeObject( const std::string& name );     
00054 
00056 
00057       DtObserverObject* findObserverObjectByName( const std::string& name );
00058       const DtObserverObject* findObserverObjectByName(
00059          const std::string& name ) const;
00061       
00063       const ObserverObjectsList& observerObjects() const;
00064 
00066       boost::signal<void (const std::string&)> signal_observerAdded;
00067          
00069       boost::signal<void (const std::string&)> signal_observerRemoved;
00070 
00071    protected:
00072 
00073       typedef std::map<std::string, DtObserverObject*> ObserverObjectsMap;
00074 
00075       void removeObject( ObserverObjectsMap& observers, 
00076          DtObserverObject* observer );
00077          
00078       void removeObject(ObserverObjectsMap& observers, 
00079          const std::string& name );
00080          
00081       void addObject( ObserverObjectsMap& observers, 
00082          DtObserverObject* observer, const std::string& name );
00083 
00084       DtDe& myDe;
00085       
00086       ObserverObjectsMap myObserverObjects;
00087       ObserverObjectsList myObserverObjectsList;
00088 
00089    };
00090 } 
00091  
00092 #endif 
00093  

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)