36 bool check_composite_only)
const
38 std::vector<ConfigObject> referees;
39 std::vector<tref> result;
48 { x.UID(), x.class_name() }));
50 catch (daq::dbe::config_object_retrieval_result_is_null
const & e)
68 for (
auto const & linked :
obj.relations)
70 for (
auto const & candidate : linked.second)
83 while (not acopy.empty())
107 for (
typename type_ref_container::value_type
const & val : this_notify_stack)
133 throw daq::dbe::gref_empty_internal_queue_is_invalid_state(
ERS_HERE);
147 { this->that->template getdirect<ConfigObject>(key) };
151 throw daq::dbe::config_object_retrieval_result_is_null(
ERS_HERE,key);
162 std::string
const & key)
164 std::vector<ConfigObject> voisins
165 { this->that->template getdirect<std::vector<ConfigObject>>(key) };
169 for (ConfigObject
const & voisin : voisins)
176 catch (daq::dbe::config_object_retrieval_result_is_null
const & ex)
222 std::string
const & name,
223 bool check_composite_only)
225 std::vector<ConfigObject> linked;
228 std::vector<configobject::tref> references;
234 references.push_back(
get(
235 { anobj.UID(), anobj.class_name() }));
237 catch (daq::dbe::config_object_retrieval_result_is_null
const & e)
288 catch (dunedaq::conffwk::Exception
const & e)
294 catch (daq::dbe::Exception
const & e)
311 return obj.rebuild();
331 std::string
const & destfile)
344 std::string
const & newname)
352 std::string
const & aname)
357 std::shared_ptr<configobject::oref> current_ptr = objref.
refered;
367 catch (dunedaq::conffwk::Generic
const & e)
374 t_object_map::iterator position;
375 std::tie(position, nofail) =
this_allobjects.emplace(*current_ptr, current_ptr);
379 throw daq::dbe::dbcontroller_internal_cache_failure(
ERS_HERE);
381 return position->second;
394 std::string
const & query)
398 std::vector<configobject::tref> result;
405 { keyin.UID(), keyin.class_name() }));
407 catch (daq::dbe::config_object_retrieval_result_is_null
const & e)
435 return position->second;
438 throw daq::dbe::config_object_retrieval_result_is_null (
ERS_HERE,
449 bool object_inserted;
450 t_object_map::iterator position;
453 std::tie(position, object_inserted) =
this_allobjects.emplace(*element, element);
455 if (not object_inserted)
462 return position->second;
474 if (not
ref.is_null())
static tref set_object(tref newobj, dbe::t_config_object_preimage::type_attrmap const &attributes, dbe::t_config_object_preimage::type_relmap const &relations)
static void destroy_object(dunedaq::conffwk::ConfigObject &)
static dunedaq::conffwk::ConfigObject get_object(std::string const &, std::string const &)
static std::vector< dunedaq::conffwk::ConfigObject > query_class(std::string const &classname, std::string const &query)
static dunedaq::conffwk::ConfigObject create_object(std::string const &fn, std::string const &cn, std::string const &name)
static void rename_object(dunedaq::conffwk::ConfigObject &object, std::string const &newname)
inner::configobject::tref this_referenced_object
inner::configobject::tref ref() const
U operator()(std::string const &key)
void record(tref const &obj)
type_ref_container this_notify_stack
std::function< void(dref const) > config_action_notifiable
type_extractor_stack this_remove_stack
std::deque< t_extractor > type_extractor_stack
void notify(config_action_notifiable tele)
std::vector< T > referenced_by(std::string const &name="*", bool check_composite_only=true) const
dunedaq::conffwk::ConfigObject & ref(bool check_null=true) const
std::shared_ptr< oref > refered
friend class configobject::tref
configobject::tref rename(configobject::tref objref, std::string const &aname)
static dbcontroller & ref()
configobject::gref< T > remove(dbe::tref ref)
static configobject::gref< T > delete_object_request(configobject::tref const &obj)
t_object_map this_allobjects
std::lock_guard< t_mutex > locker
static std::vector< configobject::tref > gets(std::string const &cname, std::string const &query="")
configobject::tref insert(dunedaq::conffwk::ConfigObject const &)
std::vector< configobject::tref > referenced_by(configobject::tref objref, std::string const &name="*", bool check_composite_only=true)
std::recursive_mutex t_mutex
static configobject::tref move_object_request(configobject::tref objref, std::string const &destfile)
configobject::tref lookup(dbe::cokey const &desc)
static configobject::tref get(dbe::cokey const &desc)
static configobject::tref rename_object_request(configobject::tref objref, std::string const &newname)
static configobject::tref create_object_request(dbe::t_config_object_preimage const &rep)
Represents database objects.
const std::string & UID() const noexcept
Return object identity.
void referenced_by(std::vector< ConfigObject > &value, const std::string &relationship_name="*", bool check_composite_only=true, unsigned long rlevel=0, const std::vector< std::string > *rclasses=nullptr) const
Get objects which have references to given object.
bool is_null() const noexcept
Check if object's implementation points to null.
const std::string & class_name() const noexcept
Return object's class name.
Only Configuration DB opened by rdbconfig or oksconflibs plug in can be const char *message Internal DBE references cannot point to null ConfigObject references
bool has_obj(std::string const &classname, std::string const &object_uid)
std::string const parse(ers::Issue const &)
config_object_aggregates config_object_aggregator
inner::configobject::tref tref
config_object_preimage< std::string > t_config_object_preimage