CMS 3D CMS Logo

IgNTupleModel.cc

Go to the documentation of this file.
00001 //<<<<<< INCLUDES                                                       >>>>>>
00002 
00003 #include "Iguana/Models/interface/IgNTupleModel.h"
00004 #include "Iguana/Models/interface/IgNTupleModelEvent.h"
00005 #include "Iguana/Models/interface/IgNTupleRep.h"
00006 #include <classlib/utils/DebugAids.h>
00007 #include <algorithm>
00008 
00009 //<<<<<< PRIVATE DEFINES                                                >>>>>>
00010 //<<<<<< PRIVATE CONSTANTS                                              >>>>>>
00011 //<<<<<< PRIVATE TYPES                                                  >>>>>>
00012 //<<<<<< PRIVATE VARIABLE DEFINITIONS                                   >>>>>>
00013 //<<<<<< PUBLIC VARIABLE DEFINITIONS                                    >>>>>>
00014 //<<<<<< CLASS STRUCTURE INITIALIZATION                                 >>>>>>
00015 //<<<<<< PRIVATE FUNCTION DEFINITIONS                                   >>>>>>
00016 //<<<<<< PUBLIC FUNCTION DEFINITIONS                                    >>>>>>
00017 //<<<<<< MEMBER FUNCTION DEFINITIONS                                    >>>>>>
00018 
00019 IgNTupleModel::IgNTupleModel (IgState *state)
00020     :IgModel (),
00021      m_state (state)
00022 {    
00023 }
00024 
00025 void            
00026 IgNTupleModel::add (IgNTupleRep *rep)
00027 {
00028     m_reps.push_back (rep);    
00029 }
00030 
00031 void            
00032 IgNTupleModel::remove (IgNTupleRep *rep)
00033 {
00034     m_reps.remove (rep);    
00035 }
00036 
00037 void            
00038 IgNTupleModel::clear (void)
00039 {
00040     m_reps.clear ();    
00041 }
00042 
00043 void
00044 IgNTupleModel::changed (void)
00045 {
00046     IgNTupleModelEvent event (this);
00047     for (Listeners::iterator pos = m_listeners.begin ();
00048          pos != m_listeners.end (); ++pos)
00049         (*pos) (event);
00050 }
00051 
00052 void
00053 IgNTupleModel::listen (EventType /* event */, const Listener &listener)
00054 { m_listeners.push_back (listener); }
00055 
00056 void
00057 IgNTupleModel::unlisten (EventType /* event */, const Listener &listener)
00058 {
00059     Listeners::iterator pos = std::find (m_listeners.begin (),
00060                                          m_listeners.end(),
00061                                          listener);
00062     ASSERT (pos != m_listeners.end ());
00063     m_listeners.erase (pos);
00064 }
00065 
00066 void
00067 IgNTupleModel::bindings (const IgNTupleModel::Bindings &binds)
00068 {
00069     m_bindings.clear ();
00070     m_bindings.resize (binds.size ());
00071     
00072     for (unsigned int i = 0;
00073          i != binds.size ();
00074          i++)
00075     {
00076         m_bindings[i] = binds[i];       
00077     }
00078     
00079 }
00080 
00081 const IgNTupleModel::Bindings &
00082 IgNTupleModel::bindings (void) const
00083 {
00084     return m_bindings;    
00085 }

Generated on Tue Jun 9 17:38:47 2009 for CMSSW by  doxygen 1.5.4