| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

RegistrationSequence.cc

Go to the documentation of this file.
00001 #include "Event/RegistrationSequence.h"
00002 
00003 using namespace DayaBay;
00004 
00005 DayaBay::RegistrationSequence::RegistrationSequence() 
00006 {
00007     setEarliest(TimeStamp::GetBOT());
00008     setLatest(TimeStamp::GetBOT());
00009     m_registrations = new Registrations();
00010 }
00011 
00012 DayaBay::RegistrationSequence::~RegistrationSequence() 
00013 {
00014     if (m_registrations) {
00015         m_registrations->clear();
00016         delete m_registrations;
00017         m_registrations = 0;
00018     }
00019 }
00020 
00021 const std::string& defLoc() { return RegistrationSequenceLocation::Default; }
00022 
00023 void DayaBay::RegistrationSequence::setRegistrations(Registrations* value)
00024 {
00025     delete m_registrations;
00026     m_registrations = value;
00027 }
00028 
00029 bool RegistrationSequence::empty() const 
00030 {
00031   return m_registrations->empty();
00032 }
00033 
00034 RegistrationSequence::size_type RegistrationSequence::size() const 
00035 {
00036   return m_registrations->size();
00037 }
00038 
00039 const RegistrationSequence::Registrations& RegistrationSequence::registrations() const {
00040   return *m_registrations;
00041 }
00042 
00043 void RegistrationSequence::insert(IRegistry* registry,
00044                                   DataObject* object,
00045                                   bool marked) {
00046   if ( 0 == object) {
00047     return;
00048   }
00049 
00050   TemporalDataObject* temporal = dynamic_cast<TemporalDataObject*>(object);
00051   if (0 != temporal) {
00052       // only do something when the object has a meaningful time
00053       if(temporal->earliest() != TimeStamp::GetBOT() &&
00054          temporal->latest()   != TimeStamp::GetBOT() ) {
00055 
00056           if (TimeStamp::GetBOT() == earliest() || earliest() > temporal->earliest()) {
00057               setEarliest(temporal->earliest());
00058           }
00059       
00060           if (TimeStamp::GetBOT() == latest() || latest() < temporal->latest()) {
00061               setLatest(temporal->latest());
00062           }
00063       }
00064   }
00065 
00066   m_registrations->push_back(Registration(registry,
00067                                           object,
00068                                           marked));
00069 
00070 }
00071 
00072 RegistrationSequence::Registrations
00073 RegistrationSequence::registration(const std::string& path) const
00074 {
00075     Registrations ret;
00076 
00077     IRegistrationSequence::Registrations::iterator it, 
00078         done = m_registrations->end();
00079     for (it = m_registrations->begin(); it != done; ++it) {
00080         if (it->path() == path) ret.push_back(*it);
00081     }
00082     return ret;
00083 }
00084 
00085 RegistrationSequence::Registration* 
00086 RegistrationSequence::registration(const DataObject* dobj) const
00087 {
00088     IRegistrationSequence::Registrations::iterator it, 
00089         done = m_registrations->end();
00090     for (it = m_registrations->begin(); it != done; ++it) {
00091         if (it->object() == dobj) return &(*it);
00092     }
00093     return 0;    
00094 }
00095 
00096 std::ostream& RegistrationSequence::fillStream(std::ostream& s) const 
00097 {
00098     TemporalDataObject::fillStream(s);
00099     s << "{ " << m_registrations->size() << " registrations :\n";
00100     IRegistrationSequence::Registrations::iterator it, 
00101         done = m_registrations->end();
00102     int count = 0;
00103     for (it = m_registrations->begin(); it != done; ++it) {
00104         DataObject* dobj = it->object();
00105 
00106         s << "\n[" << count++ << "] " << dobj->name() 
00107           << " (entry=" << it->entry() 
00108           << ",store=" << it->store() << ")"
00109           << ": "; dobj->fillStream(s);
00110     }
00111     s << "\n}\n";
00112     return s;
00113 }
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:18:02 2011 for BaseEvent by doxygen 1.4.7