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/treenode.hpp"
8 : #include "dbe/dbcontroller.hpp"
9 : #include "dbe/Conversion.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 0 : void dbe::datahandler::ResetData()
22 : {
23 0 : delete root;
24 0 : root = nullptr;
25 0 : }
26 :
27 0 : void dbe::datahandler::FetchMore ( const treenode * ClassNode )
28 : {
29 0 : emit FetchMoreData ( ClassNode );
30 0 : }
31 :
32 0 : dbe::treenode * dbe::datahandler::getnode ( std::string const & ClassName ) const
33 : {
34 0 : return getnode ( QString::fromStdString ( ClassName ) );
35 : }
36 :
37 0 : dbe::treenode * dbe::datahandler::getnode ( const QString & ClassName ) const
38 : {
39 0 : int current = 0;
40 0 : int const number_of_childs = root->ChildCount();
41 :
42 0 : for ( ;
43 0 : current != number_of_childs and root->GetChild ( current )->GetData ( 0 ).toString()
44 0 : != ClassName; ++current )
45 : ;
46 :
47 0 : return current == number_of_childs ? nullptr : root->GetChild ( current );
48 : }
49 :
50 0 : dbe::treenode * dbe::datahandler::getnode ( const std::string & ClassName,
51 : const std::string & ObjectName ) const
52 : {
53 0 : return getnode ( QString::fromStdString ( ClassName ),
54 0 : QString::fromStdString ( ObjectName ) );
55 : }
56 :
57 0 : dbe::treenode * dbe::datahandler::getnode ( const QString & ClassName,
58 : const QString & ObjectName ) const
59 : {
60 0 : if ( dbe::treenode * classnode = getnode ( ClassName ) )
61 : {
62 0 : int current = 0;
63 0 : int const number_of_objects = classnode->ChildCount();
64 :
65 0 : for ( ;
66 0 : current < number_of_objects and classnode->GetChild ( current )->GetData ( 0 ).toString()
67 0 : != ObjectName; ++current )
68 : ;
69 :
70 0 : return current == number_of_objects ? nullptr : classnode->GetChild ( current );
71 : }
72 :
73 : return nullptr;
74 : }
75 :
76 0 : dbe::treenode * dbe::datahandler::getnode() const
77 : {
78 0 : return root;
79 : }
80 :
81 0 : dbe::treenode * dbe::datahandler::findchild ( dbe::treenode * const top,
82 : QString const & name )
83 : {
84 0 : QList<dbe::treenode *> childs = top->GetChildren();
85 :
86 0 : for ( dbe::treenode * child : childs )
87 : {
88 0 : if ( QString::fromStdString ( child->GetObject().UID() ) == name )
89 : {
90 0 : return child;
91 : }
92 : }
93 :
94 0 : return nullptr;
95 0 : }
|