Line data Source code
1 : // DUNE DAQ modification notice:
2 : // This file has been modified from the original ATLAS dbe source for the DUNE DAQ project.
3 : // Fork baseline commit: dbe-02-12-17 (2022-05-12).
4 : // Renamed since fork: no.
5 :
6 : #include "dbe/datahandler.hpp"
7 : #include "dbe/Conversion.hpp"
8 : #include "dbe/dbcontroller.hpp"
9 : #include "dbe/treenode.hpp"
10 :
11 3 : dbe::datahandler::datahandler()
12 3 : : root(nullptr)
13 : {
14 3 : }
15 :
16 6 : dbe::datahandler::~datahandler()
17 : {
18 3 : delete root;
19 6 : }
20 :
21 : void
22 0 : dbe::datahandler::ResetData()
23 : {
24 0 : delete root;
25 0 : root = nullptr;
26 0 : }
27 :
28 : void
29 0 : dbe::datahandler::FetchMore(const treenode* ClassNode)
30 : {
31 0 : emit FetchMoreData(ClassNode);
32 0 : }
33 :
34 : dbe::treenode*
35 0 : dbe::datahandler::getnode(std::string const& ClassName) const
36 : {
37 0 : return getnode(QString::fromStdString(ClassName));
38 : }
39 :
40 : dbe::treenode*
41 0 : dbe::datahandler::getnode(const QString& ClassName) const
42 : {
43 0 : int current = 0;
44 0 : int const number_of_childs = root->ChildCount();
45 :
46 0 : for (; current != number_of_childs and root->GetChild(current)->GetData(0).toString() != ClassName; ++current)
47 : ;
48 :
49 0 : return current == number_of_childs ? nullptr : root->GetChild(current);
50 : }
51 :
52 : dbe::treenode*
53 0 : dbe::datahandler::getnode(const std::string& ClassName, const std::string& ObjectName) const
54 : {
55 0 : return getnode(QString::fromStdString(ClassName), QString::fromStdString(ObjectName));
56 : }
57 :
58 : dbe::treenode*
59 0 : dbe::datahandler::getnode(const QString& ClassName, const QString& ObjectName) const
60 : {
61 0 : if (dbe::treenode* classnode = getnode(ClassName)) {
62 0 : int current = 0;
63 0 : int const number_of_objects = classnode->ChildCount();
64 :
65 0 : for (; current < number_of_objects and classnode->GetChild(current)->GetData(0).toString() != ObjectName; ++current)
66 : ;
67 :
68 0 : return current == number_of_objects ? nullptr : classnode->GetChild(current);
69 : }
70 :
71 : return nullptr;
72 : }
73 :
74 : dbe::treenode*
75 0 : dbe::datahandler::getnode() const
76 : {
77 0 : return root;
78 : }
79 :
80 : dbe::treenode*
81 0 : dbe::datahandler::findchild(dbe::treenode* const top, QString const& name)
82 : {
83 0 : QList<dbe::treenode*> childs = top->GetChildren();
84 :
85 0 : for (dbe::treenode* child : childs) {
86 0 : if (QString::fromStdString(child->GetObject().UID()) == name) {
87 0 : return child;
88 : }
89 : }
90 :
91 0 : return nullptr;
92 0 : }
|