00001 #include "otsdaq-core/ConfigurationInterface/DatabaseConfigurationInterface.h"
00002
00003 #include <algorithm>
00004 #include <iterator>
00005
00006 #include "otsdaq-core/ConfigurationInterface/ConfigurationInterface.h"
00007
00008
00009 #include "artdaq-database/ConfigurationDB/configurationdbifc.h"
00010
00011 #include "artdaq-database/BasicTypes/basictypes.h"
00012 using artdaq::database::basictypes::FhiclData;
00013 using artdaq::database::basictypes::JsonData;
00014
00015 namespace artdaq {
00016 namespace database {
00017 namespace configuration {
00018
00019 using ots::ConfigurationBase;
00020
00021 template <>
00022 template <>
00023 bool MakeSerializable<ConfigurationBase const*>::writeDocumentImpl<JsonData>(JsonData& data) const {
00024 std::stringstream ss;
00025
00026 _conf->getView().printJSON(ss);
00027
00028 data.json_buffer = ss.str();
00029
00030 return true;
00031 }
00032
00033 template <>
00034 std::string MakeSerializable<ConfigurationBase const*>::configurationNameImpl() const {
00035
00036 return _conf->getConfigurationName();
00037 }
00038
00039 template <>
00040 template <>
00041 bool MakeSerializable<ConfigurationBase*>::readDocumentImpl<JsonData>(JsonData const& data) {
00042 int retVal = _conf->getViewP()->fillFromJSON(data.json_buffer);
00043
00044 return (retVal >= 0);
00045 }
00046
00047 template <>
00048 std::string MakeSerializable<ConfigurationBase*>::configurationNameImpl() const {
00049 return _conf->getConfigurationName();
00050 }
00051
00052 }
00053 }
00054 }
00055