00001 #ifndef CondCore_IOVService_IOVService_h
00002 #define CondCore_IOVService_IOVService_h
00003 #include <string>
00004 #include "CondCore/DBCommon/interface/Time.h"
00005 namespace cond{
00006 class PoolTransaction;
00007 class IOVServiceImpl;
00008 class IOVIterator;
00009 class IOVEditor;
00010 class IOVService{
00011 public:
00012 static const bool forwardIter=true;
00013 static const bool backwardIter=!forwardIter;
00014
00015
00016 IOVService( cond::PoolTransaction& pooldb);
00017
00018 virtual ~IOVService();
00019
00020 std::string payloadToken( const std::string& iovToken,
00021 cond::Time_t currenttime );
00022
00023 bool isValid( const std::string& iovToken,
00024 cond::Time_t currenttime );
00025
00026 std::pair<cond::Time_t, cond::Time_t>
00027 validity( const std::string& iovToken, cond::Time_t currenttime );
00028
00029 std::string payloadContainerName( const std::string& iovtoken );
00030
00031 void deleteAll( bool withPayload=false );
00032
00037 IOVIterator* newIOVIterator( const std::string& iovToken, bool forward=forwardIter);
00038
00043 IOVEditor* newIOVEditor( const std::string& token="" );
00044
00050 std::string exportIOVWithPayload( cond::PoolTransaction& destDB,
00051 const std::string& iovToken );
00057 std::string exportIOVRangeWithPayload( cond::PoolTransaction& destDB,
00058 const std::string& iovToken,
00059 const std::string& destToken,
00060 cond::Time_t since,
00061 cond::Time_t till );
00062 private:
00063 cond::PoolTransaction* m_pooldb;
00064 cond::IOVServiceImpl* m_impl;
00065 };
00066
00067 }
00068 #endif