DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
conffwk
include
conffwk
ConfigurationPointer.hpp
Go to the documentation of this file.
1
//
2
// DUNE DAQ modification notice:
3
// This file has been modified from the original ATLAS config source for the DUNE DAQ project.
4
// Fork baseline commit: 67a24e731 (2022-10-27).
5
// Renamed since fork: yes (from config/ConfigurationPointer.h to include/conffwk/ConfigurationPointer.hpp).
6
//
7
14
15
#ifndef PYTHONCONFIGURATION_H
16
#define PYTHONCONFIGURATION_H
17
18
#include "
conffwk/Configuration.hpp
"
19
#include <boost/shared_ptr.hpp>
20
21
namespace
dunedaq
{
22
namespace
conffwk
{
23
24
namespace
python
{
25
31
class
ConfigurationPointer
32
{
33
34
public
:
36
ConfigurationPointer
()
37
:
m_shared
()
38
,
m_pointer
(0)
39
{
40
}
41
43
ConfigurationPointer
(
const
std::string& s)
44
:
m_shared
(new
Configuration
(s))
45
,
m_pointer
(0)
46
{
47
}
48
50
ConfigurationPointer
(
const
Configuration
& p)
51
:
m_shared
()
52
,
m_pointer
(&const_cast<
Configuration
&>(p))
53
{
54
}
55
57
ConfigurationPointer
(
const
ConfigurationPointer
& other)
58
:
m_shared
(other.
m_shared
)
59
,
m_pointer
(const_cast<
ConfigurationPointer
&>(other).
m_pointer
)
60
{
61
}
62
64
ConfigurationPointer
&
operator=
(
const
ConfigurationPointer
& other)
65
{
66
m_shared
= other.
m_shared
;
67
m_pointer
=
const_cast<
ConfigurationPointer
&
>
(other).
m_pointer
;
68
return
*
this
;
69
}
70
72
virtual
~ConfigurationPointer
() {}
73
75
Configuration
*
operator->
() {
return
(
m_pointer
) ?
m_pointer
:
m_shared
.get(); }
76
78
Configuration
&
operator*
() {
return
(
m_pointer
) ? *
m_pointer
: *
m_shared
; }
79
81
Configuration
*
get
() {
return
(
m_pointer
) ?
m_pointer
:
m_shared
.get(); }
82
83
private
:
84
boost::shared_ptr<Configuration>
m_shared
;
// self-initialized Configuration
85
Configuration
*
m_pointer
;
// user initialized Configuration
86
};
87
88
}
89
}
// namespace conffwk
90
}
// namespace dunedaq
91
92
#endif
/* PYTHONCONFIGURATION_H */
boost::shared_ptr
Definition
ProtocolFlx.hpp:66
dunedaq::conffwk::Configuration
Defines base class for cache of template objects.
Definition
Configuration.hpp:234
dunedaq::conffwk::python::ConfigurationPointer::m_pointer
Configuration * m_pointer
Definition
ConfigurationPointer.hpp:85
dunedaq::conffwk::python::ConfigurationPointer::operator->
Configuration * operator->()
Let python bindings access the configuration pointer.
Definition
ConfigurationPointer.hpp:75
dunedaq::conffwk::python::ConfigurationPointer::ConfigurationPointer
ConfigurationPointer(const ConfigurationPointer &other)
Copying, is shallow. Don't do this at home...
Definition
ConfigurationPointer.hpp:57
dunedaq::conffwk::python::ConfigurationPointer::ConfigurationPointer
ConfigurationPointer()
Default.
Definition
ConfigurationPointer.hpp:36
dunedaq::conffwk::python::ConfigurationPointer::operator=
ConfigurationPointer & operator=(const ConfigurationPointer &other)
Assignment is shallow.
Definition
ConfigurationPointer.hpp:64
dunedaq::conffwk::python::ConfigurationPointer::ConfigurationPointer
ConfigurationPointer(const Configuration &p)
Constructor when the user initializes from C++. In this case, the pointed configuration should never ...
Definition
ConfigurationPointer.hpp:50
dunedaq::conffwk::python::ConfigurationPointer::operator*
Configuration & operator*()
Another way to access the configuration pointer.
Definition
ConfigurationPointer.hpp:78
dunedaq::conffwk::python::ConfigurationPointer::ConfigurationPointer
ConfigurationPointer(const std::string &s)
Constructor when the user initializes from within python.
Definition
ConfigurationPointer.hpp:43
dunedaq::conffwk::python::ConfigurationPointer::m_shared
boost::shared_ptr< Configuration > m_shared
Definition
ConfigurationPointer.hpp:84
dunedaq::conffwk::python::ConfigurationPointer::~ConfigurationPointer
virtual ~ConfigurationPointer()
Destructor. If started from string, destroy if the last instance, otherwise, doesn't do anything at a...
Definition
ConfigurationPointer.hpp:72
dunedaq::conffwk::python::ConfigurationPointer::get
Configuration * get()
Get the configuration pointer.
Definition
ConfigurationPointer.hpp:81
Configuration.hpp
conffwk entry point
dunedaq::conffwk::python
Definition
ConfigurationPointer.hpp:24
dunedaq::conffwk
Definition
test_circular_dependency.hpp:5
dunedaq
The DUNE-DAQ namespace.
Definition
cib_utilities.cpp:5
Generated on
for DUNE-DAQ by
1.18.0