Go to the documentation of this file.00001 #include "CondCore/IOVService/interface/migrateIOV.h"
00002 #include "IOV.h"
00003 #include "CondFormats/Common/interface/IOVSequence.h"
00004 #include <algorithm>
00005 #include <boost/bind.hpp>
00006
00007
00008 namespace cond {
00009
00010 IOVSequence * migrateIOV(IOV const & iov) {
00011 IOVSequence * result = new IOVSequence(iov.timetype,iov.iov.back().first,"");
00012
00013 cond::Time_t since = iov.firstsince;
00014 for(IOV::const_iterator p=iov.iov.begin(); p!=iov.iov.end();p++) {
00015 (*result).add(since, (*p).second);
00016 since = (*p).first+1;
00017 }
00018 return result;
00019 }
00020
00021
00022 IOV * backportIOV(IOVSequence const & sequence) {
00023 IOV * result = new IOV(sequence.timeType(), sequence.firstSince());
00024 (*result).iov.reserve(sequence.iovs().size());
00025 for(IOVSequence::const_iterator p=sequence.iovs().begin();
00026 p!=sequence.iovs().end()-1; p++) {
00027 cond::Time_t till = (*(p+1)).sinceTime()-1;
00028 (*result).add(till, (*p).wrapperToken());
00029 }
00030 (*result).add(sequence.lastTill(),sequence.iovs().back().wrapperToken());
00031 return result;
00032 }
00033
00034 }