![]() |
![]() |
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 }