@@ -30,6 +30,15 @@ namespace o2::bkp {
3030enum class DplProcessType ;
3131}
3232
33+
34+ namespace o2 ::quality_control::repository {
35+ class DatabaseInterface ;
36+ }
37+
38+ namespace o2 ::ccdb {
39+ class CCDBManagerInstance ;
40+ }
41+
3342namespace o2 ::quality_control::core {
3443
3544
@@ -46,6 +55,11 @@ void initBookkeeping(std::string_view url);
4655void startBookkeeping (int runNumber, std::string_view actorName, std::string_view detectorName, const o2::bkp::DplProcessType& processType, std::string_view args);
4756Bookkeeping& getBookkeeping ();
4857
58+ std::shared_ptr<repository::DatabaseInterface> initRepository (const std::unordered_map<std::string, std::string>& config);
59+
60+ void initCCDB (const std::string& url);
61+ ccdb::CCDBManagerInstance& getCCDB ();
62+
4963}
5064
5165
@@ -132,7 +146,6 @@ class Actor
132146 detectorName = std::string{concreteActor ().getDetectorName ()};
133147 }
134148
135- // init services
136149 if constexpr (requiresService<Service::InfoLogger>()) {
137150 std::string facility;
138151 if constexpr (runsUserCode<traits>()) {
@@ -150,7 +163,12 @@ class Actor
150163 if constexpr (requiresService<Service::Bookkeeping>()) {
151164 impl::initBookkeeping (mServicesConfig .bookkeepingUrl );
152165 }
153- // todo: init the rest, such as QCDB
166+ if constexpr (requiresService<Service::QCDB>()) {
167+ mRepository = impl::initRepository (mServicesConfig .database );
168+ }
169+ if constexpr (requiresService<Service::CCDB>()) {
170+ impl::initCCDB (mServicesConfig .conditionDBUrl );
171+ }
154172 }
155173
156174 void initDplCallbacks (framework::InitContext& ictx)
@@ -272,13 +290,24 @@ class Actor
272290 return impl::getBookkeeping ();
273291 }
274292
293+ repository::DatabaseInterface& getRepository () requires (requiresService<Service::QCDB>())
294+ {
295+ return *mRepository ;
296+ }
297+
298+ ccdb::CCDBManagerInstance& getCCDB () requires (requiresService<Service::QCDB>())
299+ {
300+ return impl::getCCDB ();
301+ }
302+
275303 const Activity& getActivity () const { return mActivity ; }
276304
277305 private:
278306 Activity mActivity ;
279307 const ServicesConfig mServicesConfig ;
280308
281309 std::shared_ptr<monitoring::Monitoring> mMonitoring ;
310+ std::shared_ptr<repository::DatabaseInterface> mRepository ;
282311};
283312
284313
0 commit comments